C64 emulation on STM32F429 Discovery board with builtin LCD and USB keyboard support (OTG). More info at davevw.com and/or github.com/davervw

Dependencies:   LCD_DISCO_F429ZI BSP_DISCO_F429ZI USBHOST

Committer:
davervw
Date:
Mon Apr 13 05:36:43 2020 +0000
Revision:
4:8476be802690
Parent:
1:256d8a124b55
Child:
6:65f96b9dd1d3
terminal console portable version ported to specifically support STM32F429 Discovery board with included 320x240 LCD, and using USBHOST HID keyboard too.   So, full screen editing, commodore fonts, color, and keyboard, with STOP key (ESC), and IRQs.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
davervw 4:8476be802690 1 // main.cpp - main()
davervw 0:90de1cbc8a5f 2 //
davervw 0:90de1cbc8a5f 3 ////////////////////////////////////////////////////////////////////////////////
davervw 0:90de1cbc8a5f 4 //
davervw 4:8476be802690 5 // C64-stm429_discovery
davervw 4:8476be802690 6 // C64/6502 Emulator targeting STM32F429 LCD/USBHOST
davervw 4:8476be802690 7 // [ported from c-simple-emu-cbm (C Portable Version - for console)]
davervw 0:90de1cbc8a5f 8 //
davervw 0:90de1cbc8a5f 9 // MIT License
davervw 0:90de1cbc8a5f 10 //
davervw 0:90de1cbc8a5f 11 // Copyright(c) 2020 by David R.Van Wagner
davervw 0:90de1cbc8a5f 12 // davevw.com
davervw 0:90de1cbc8a5f 13 //
davervw 0:90de1cbc8a5f 14 // Permission is hereby granted, free of charge, to any person obtaining a copy
davervw 0:90de1cbc8a5f 15 // of this software and associated documentation files (the "Software"), to deal
davervw 0:90de1cbc8a5f 16 // in the Software without restriction, including without limitation the rights
davervw 0:90de1cbc8a5f 17 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
davervw 0:90de1cbc8a5f 18 // copies of the Software, and to permit persons to whom the Software is
davervw 0:90de1cbc8a5f 19 // furnished to do so, subject to the following conditions:
davervw 0:90de1cbc8a5f 20 //
davervw 0:90de1cbc8a5f 21 // The above copyright notice and this permission notice shall be included in all
davervw 0:90de1cbc8a5f 22 // copies or substantial portions of the Software.
davervw 0:90de1cbc8a5f 23 //
davervw 0:90de1cbc8a5f 24 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
davervw 0:90de1cbc8a5f 25 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
davervw 0:90de1cbc8a5f 26 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE
davervw 0:90de1cbc8a5f 27 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
davervw 0:90de1cbc8a5f 28 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
davervw 0:90de1cbc8a5f 29 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
davervw 0:90de1cbc8a5f 30 // SOFTWARE.
davervw 0:90de1cbc8a5f 31 //
davervw 0:90de1cbc8a5f 32 ////////////////////////////////////////////////////////////////////////////////
davervw 4:8476be802690 33 // OTHER INCLUDED (NOT LIMITED TO) SOURCE/LIBRARIES MAY HAVE DIFFERENT LICENSES.
davervw 4:8476be802690 34 // ARM MBED OS
davervw 4:8476be802690 35 // ARM MBED USBHOST
davervw 4:8476be802690 36 // STM32F429 BSP
davervw 4:8476be802690 37 ////////////////////////////////////////////////////////////////////////////////
davervw 0:90de1cbc8a5f 38
davervw 0:90de1cbc8a5f 39 #include <mbed.h>
davervw 4:8476be802690 40 #include "USBHostKeyboard.h"
davervw 0:90de1cbc8a5f 41 #include "emuc64.h"
davervw 0:90de1cbc8a5f 42 #include "emu6502.h"
davervw 0:90de1cbc8a5f 43
davervw 4:8476be802690 44 static void execute_task(void const *) {
davervw 4:8476be802690 45 ResetRun(ExecutePatch);
davervw 4:8476be802690 46 }
davervw 0:90de1cbc8a5f 47
davervw 0:90de1cbc8a5f 48 int main(/*int argc, char* argv[]*/)
davervw 0:90de1cbc8a5f 49 {
davervw 4:8476be802690 50 printf("\n");
davervw 4:8476be802690 51 printf("C64-stm429_discovery\n");
davervw 4:8476be802690 52 printf("C64 Emu6502 (for STM32F429 Discovery), version 1.0\n");
davervw 4:8476be802690 53 printf("Copyright (c) 2020 by David R. Van Wagner\n");
davervw 4:8476be802690 54 printf("Open Source - MIT License\n");
davervw 4:8476be802690 55 printf("github.com/davervw\n");
davervw 4:8476be802690 56 printf("\n");
davervw 4:8476be802690 57 printf("Contains other licensed software\n");
davervw 4:8476be802690 58 printf(" ARM MBED OS\n");
davervw 4:8476be802690 59 printf(" ARM MBED USBHOST\n");
davervw 4:8476be802690 60 printf(" STM32F429 BSP\n");
davervw 4:8476be802690 61 printf("\n");
davervw 1:256d8a124b55 62 //StartupPRG = "/local/guess2.prg";
davervw 0:90de1cbc8a5f 63 C64_Init("/local/basic", "/local/kernal");
davervw 4:8476be802690 64
davervw 4:8476be802690 65 Thread keyboardTask(keyboard_task, NULL, osPriorityNormal, 1024 * 4);
davervw 4:8476be802690 66 Thread executeTask(execute_task, NULL, osPriorityNormal, 1024 * 4);
davervw 4:8476be802690 67
davervw 4:8476be802690 68 //DigitalOut led1(LED1);
davervw 4:8476be802690 69 //led1 = 1;
davervw 4:8476be802690 70 while(1) {
davervw 4:8476be802690 71 //led1=!led1;
davervw 4:8476be802690 72 Thread::wait(500);
davervw 4:8476be802690 73 }
davervw 4:8476be802690 74
davervw 0:90de1cbc8a5f 75 return 0;
davervw 0:90de1cbc8a5f 76 }