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 07:24:08 2020 +0000
Revision:
6:65f96b9dd1d3
Parent:
4:8476be802690
Child:
7:dce21deeac6c
Right Ctrl now also mapped to Commodore Key

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 6:65f96b9dd1d3 52 printf("C64 Emu6502 (for STM32F429 Discovery), version 1.01\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 }