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:
0:90de1cbc8a5f
Child:
9:a0c6747e539f
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 // emu6502.h - MOS6502 Emulator
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 0:90de1cbc8a5f 33
davervw 0:90de1cbc8a5f 34 #pragma once
davervw 0:90de1cbc8a5f 35
davervw 0:90de1cbc8a5f 36 typedef signed char sbyte;
davervw 0:90de1cbc8a5f 37 typedef unsigned char byte;
davervw 0:90de1cbc8a5f 38 //typedef unsigned char bool;
davervw 0:90de1cbc8a5f 39 typedef unsigned short ushort;
davervw 0:90de1cbc8a5f 40 #define false 0
davervw 0:90de1cbc8a5f 41 #define true 1
davervw 0:90de1cbc8a5f 42
davervw 0:90de1cbc8a5f 43 extern byte A;
davervw 0:90de1cbc8a5f 44 extern byte X;
davervw 0:90de1cbc8a5f 45 extern byte Y;
davervw 0:90de1cbc8a5f 46 extern byte S;
davervw 0:90de1cbc8a5f 47 extern bool N;
davervw 0:90de1cbc8a5f 48 extern bool V;
davervw 0:90de1cbc8a5f 49 extern bool B;
davervw 0:90de1cbc8a5f 50 extern bool D;
davervw 0:90de1cbc8a5f 51 extern bool I;
davervw 0:90de1cbc8a5f 52 extern bool Z;
davervw 0:90de1cbc8a5f 53 extern bool C;
davervw 0:90de1cbc8a5f 54 extern ushort PC;
davervw 0:90de1cbc8a5f 55
davervw 0:90de1cbc8a5f 56 extern bool trace;
davervw 0:90de1cbc8a5f 57 extern bool step;
davervw 0:90de1cbc8a5f 58
davervw 0:90de1cbc8a5f 59 extern void ResetRun(bool (*ExecutePatch)(void));
davervw 0:90de1cbc8a5f 60 extern void Execute(ushort addr, bool (*ExecutePatch)(void));
davervw 0:90de1cbc8a5f 61 extern void Push(int value);
davervw 0:90de1cbc8a5f 62 extern byte Pop(void);
davervw 0:90de1cbc8a5f 63 extern void DisassembleLong(ushort addr, bool *p_conditional, byte *p_bytes, ushort *p_addr2, char *dis, int dis_size, char *line, int line_size);
davervw 0:90de1cbc8a5f 64 extern void DisassembleShort(ushort addr, bool *p_conditional, byte *p_bytes, ushort *p_addr2, char *dis, int dis_size);
davervw 0:90de1cbc8a5f 65 extern byte LO(ushort value);
davervw 0:90de1cbc8a5f 66 extern byte HI(ushort value);
davervw 0:90de1cbc8a5f 67
davervw 0:90de1cbc8a5f 68 extern void SetMemory(ushort addr, byte value);
davervw 0:90de1cbc8a5f 69 extern byte GetMemory(ushort addr);
davervw 0:90de1cbc8a5f 70 extern bool ExecutePatch(void);
davervw 0:90de1cbc8a5f 71