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
main.cpp
00001 // main.cpp - main() 00002 // 00003 //////////////////////////////////////////////////////////////////////////////// 00004 // 00005 // C64-stm429_discovery 00006 // C64/6502 Emulator targeting STM32F429 LCD/USBHOST 00007 // [ported from c-simple-emu-cbm (C Portable Version - for console)] 00008 // 00009 // MIT License 00010 // 00011 // Copyright(c) 2020 by David R.Van Wagner 00012 // davevw.com 00013 // 00014 // Permission is hereby granted, free of charge, to any person obtaining a copy 00015 // of this software and associated documentation files (the "Software"), to deal 00016 // in the Software without restriction, including without limitation the rights 00017 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 00018 // copies of the Software, and to permit persons to whom the Software is 00019 // furnished to do so, subject to the following conditions: 00020 // 00021 // The above copyright notice and this permission notice shall be included in all 00022 // copies or substantial portions of the Software. 00023 // 00024 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 00025 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 00026 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE 00027 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 00028 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 00029 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 00030 // SOFTWARE. 00031 // 00032 //////////////////////////////////////////////////////////////////////////////// 00033 // OTHER INCLUDED (NOT LIMITED TO) SOURCE/LIBRARIES MAY HAVE DIFFERENT LICENSES. 00034 // ARM MBED OS 00035 // ARM MBED USBHOST 00036 // STM32F429 BSP 00037 //////////////////////////////////////////////////////////////////////////////// 00038 00039 #include <mbed.h> 00040 #include "USBHostKeyboard.h" 00041 #include "emuc64.h" 00042 #include "emu6502.h" 00043 00044 static void execute_task(void const *) { 00045 ResetRun(ExecutePatch); 00046 } 00047 00048 int main(/*int argc, char* argv[]*/) 00049 { 00050 printf("\n"); 00051 printf("C64-stm429_discovery\n"); 00052 printf("C64 Emu6502 (for STM32F429 Discovery), version 1.34\n"); 00053 printf("Copyright (c) 2020 by David R. Van Wagner\n"); 00054 printf("Open Source - MIT License\n"); 00055 printf("os.mbed.com/users/davervw/code/C64-stm429_discovery/\n"); 00056 printf("github.com/davervw\n"); 00057 printf("\n"); 00058 printf("Contains other copyrighted and licensed software\n"); 00059 printf(" ARM MBED OS - Apache License 2.0\n"); 00060 printf(" ARM MBED USBHOST - Apache License 2.0\n"); 00061 printf(" STM32F429 Discovery Board BSP\n"); 00062 printf(" COPYRIGHT(c) 2014 STMicroelectronics\n"); 00063 printf(" Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of STMicroelectronics nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.\n"); 00064 printf(" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"); 00065 printf("\n"); 00066 printf("Commodore ROMs not licensed\n"); 00067 printf("\n"); 00068 00069 //StartupPRG = "/local/guess2.prg"; 00070 C64_Init("/local/basic", "/local/chargen", "/local/kernal"); 00071 00072 Thread keyboardTask(keyboard_task, NULL, osPriorityNormal, 1024 * 4); 00073 Thread executeTask(execute_task, NULL, osPriorityNormal, 1024 * 4); 00074 00075 //DigitalOut led1(LED1); 00076 //led1 = 1; 00077 while(1) { 00078 //led1=!led1; 00079 Thread::wait(500); 00080 } 00081 00082 return 0; 00083 }
Generated on Sun Jul 17 2022 23:46:19 by 1.7.2