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:
www-data@mbed-compiler-app-5f564cd9bf-jw2jm
Date:
Fri Apr 17 15:53:37 2020 +0000
Revision:
14:3e32348c888d
Parent:
9:a0c6747e539f
Added tag 1.34 for changeset 035c53a987a1

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 9:a0c6747e539f 63 extern void PHP();
davervw 0:90de1cbc8a5f 64 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 65 extern void DisassembleShort(ushort addr, bool *p_conditional, byte *p_bytes, ushort *p_addr2, char *dis, int dis_size);
davervw 0:90de1cbc8a5f 66 extern byte LO(ushort value);
davervw 0:90de1cbc8a5f 67 extern byte HI(ushort value);
davervw 0:90de1cbc8a5f 68
davervw 0:90de1cbc8a5f 69 extern void SetMemory(ushort addr, byte value);
davervw 0:90de1cbc8a5f 70 extern byte GetMemory(ushort addr);
davervw 0:90de1cbc8a5f 71 extern bool ExecutePatch(void);
davervw 0:90de1cbc8a5f 72