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

Committer:
davervw
Date:
2020-04-15
Revision:
7:dce21deeac6c
Parent:
6:65f96b9dd1d3
Child:
9:a0c6747e539f

File content as of revision 7:dce21deeac6c:

// main.cpp - main()
//
////////////////////////////////////////////////////////////////////////////////
//
// C64-stm429_discovery
// C64/6502 Emulator targeting STM32F429 LCD/USBHOST
// [ported from c-simple-emu-cbm (C Portable Version - for console)]
//
// MIT License
//
// Copyright(c) 2020 by David R.Van Wagner
// davevw.com
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
////////////////////////////////////////////////////////////////////////////////
// OTHER INCLUDED (NOT LIMITED TO) SOURCE/LIBRARIES MAY HAVE DIFFERENT LICENSES.
//    ARM MBED OS
//    ARM MBED USBHOST
//    STM32F429 BSP
////////////////////////////////////////////////////////////////////////////////

#include <mbed.h>
#include "USBHostKeyboard.h"
#include "emuc64.h"
#include "emu6502.h"

static void execute_task(void const *) {
	ResetRun(ExecutePatch);
}

int main(/*int argc, char* argv[]*/)
{
    printf("\n");
    printf("C64-stm429_discovery\n");
	printf("C64 Emu6502 (for STM32F429 Discovery), version 1.2\n");
	printf("Copyright (c) 2020 by David R. Van Wagner\n");
	printf("Open Source - MIT License\n");
	printf("github.com/davervw\n");
	printf("\n");
	printf("Contains other licensed software\n");
	printf("   ARM MBED OS\n");
	printf("   ARM MBED USBHOST\n");
	printf("   STM32F429 BSP\n");
	printf("\n");
	//StartupPRG = "/local/guess2.prg";
	C64_Init("/local/basic", "/local/chargen", "/local/kernal");

    Thread keyboardTask(keyboard_task, NULL, osPriorityNormal, 1024 * 4);
    Thread executeTask(execute_task, NULL, osPriorityNormal, 1024 * 4);

	//DigitalOut led1(LED1);
	//led1 = 1;
    while(1) {
        //led1=!led1;
        Thread::wait(500);
    }

	return 0;
}