; Emulated 65C02 SOC ; ; By Daryl Rictor (c)2012 ; ; 16k - 256 byte RAM ; 48k ROM (in flash) ; IO @ 3Fxx ;****************************************************************************** ; include AVRASM definitions ;****************************************************************************** .include "m1284Pdef.inc" ;****************************************************************************** ; Set Register definitions ;****************************************************************************** .def i = R16 .def j = R17 .def zero = R2 .def one = R3 .def mmap = R4 .def free1 = R12 ; unused register pair .def free2 = R13 ;****************************************************************************** ; Load Lower Flash Tables starting at 0x1B00 (below ROM image) ;****************************************************************************** .include "av2sr.inc" .include "sr2av.inc" .include "opcjmp.inc" .include "ioexe.inc" .include "sbcrom.inc" ;****************************************************************************** ; Program Starts here on Reset ;****************************************************************************** STARTUP: ; first line executed after reset CLI ; disable interupts ;****************************************************************************** ; Initialize the I/O Ports ;****************************************************************************** ; port A pins ldi i, 0xff ; out porta, i ; LDI i, 0x00 ; out ddra, i ; ; port B pins LDI i, 0xff ; out portb, i ; LDI i, 0x00 ; out ddrb, i ; ; port C pins ldi i, 0xff ; out portc, i ; LDI i, 0x00 ; out ddrc, i ; ; port D pins ldi i, 0xff ; out portd, i ; LDI i, 0x00 ; out ddrd, i ; ;****************************************************************************** ; Init other CPU I/O registers ;****************************************************************************** ldi i, 0x80 out ACSR, i ; turn off comparator ldi i, 0x40 ; set stack pointer to top of SRAM out SPH, i ; ldi i, 0xff ; out SPL, i ; ;****************************************************************************** ; Init RS-232 port ;****************************************************************************** InitRS232: ; set baud rate ldi i, 0x0C ; ; 16MHZ 20MHZ 24MHz ldi j, 0x00 ; 115200 xxxx 000A 000C sts UBRR0H, j ; 19200 0033 0040 004D sts UBRR0L, i ; 9600 0067 0081 009B ; 4800 00CF 0103 0137 ; ; 2400 019F 0208 0270 ; Enable receiver and transmitter ldi i, (1<