mirror of
https://github.com/mgcaret/of816.git
synced 2024-12-28 10:30:21 +00:00
Neon816: get some of the hardware support done
This commit is contained in:
parent
daff3166ec
commit
f1d4d8e5ca
@ -16,7 +16,7 @@
|
||||
; 88-8F RAM 2
|
||||
; 90-FF Reserved for RAM
|
||||
|
||||
cpu_clk = 14000000
|
||||
cpu_clk = 12000000
|
||||
|
||||
; *****************
|
||||
; Memory regions
|
||||
|
@ -3,7 +3,7 @@ set -e -x
|
||||
ca65 -I ../../inc Neon816.s -l Neon816.lst
|
||||
ca65 -I ../../inc romboot.s -l romboot.lst
|
||||
../../build.sh Neon816
|
||||
ld65 -C Neon816.l -S 0x8000 Neon816.o ../../forth.o ./romboot.o -m forth.map -o of816-neon.bin
|
||||
ld65 -C Neon816.l Neon816.o ../../forth.o ./romboot.o -m forth.map -o of816-neon.bin
|
||||
ls -l of816-neon.bin
|
||||
if which -s bin2hex; then
|
||||
hex2bin of816-neon.bin > of816-neon.hex
|
||||
|
@ -2,6 +2,142 @@
|
||||
;
|
||||
.include "./Neon816-hw.inc"
|
||||
|
||||
; Neon816 dictionary, a bit of a different approach than the other ports
|
||||
; This will get set up by the post init function of the system interface
|
||||
; The system interface functions are after this dictionary.
|
||||
|
||||
; Note that most of the words are based on words found in NeonFORTH and
|
||||
; are not subject to the OF816 license terms, but rather any terms that
|
||||
; Lenore Byron places on them.
|
||||
|
||||
dstart "neon816"
|
||||
dchain H_FORTH ; Make branch off the word FORTH
|
||||
|
||||
dword PS2K_STORE,"PS2K!"
|
||||
jsr _popay
|
||||
tya
|
||||
sep #SHORT_A
|
||||
.a8
|
||||
sta f:PS2Kio
|
||||
: lda f:PS2Kstat
|
||||
bit #$08
|
||||
bne :-
|
||||
rep #SHORT_A
|
||||
.a16
|
||||
NEXT
|
||||
eword
|
||||
|
||||
dword PS2K_QUERY,"PS2K?"
|
||||
ldy #$0000
|
||||
sep #SHORT_A
|
||||
.a8
|
||||
lda f:PS2Kstat
|
||||
ror
|
||||
rep #SHORT_A
|
||||
.a16
|
||||
bcc :+
|
||||
dey
|
||||
: tya
|
||||
PUSHNEXT
|
||||
eword
|
||||
|
||||
dword PS2K_FETCH,"PS2K@"
|
||||
lda #$0000
|
||||
sep #SHORT_A
|
||||
.a8
|
||||
: lda f:PS2Kstat
|
||||
ror
|
||||
bcc :-
|
||||
lda f:PS2Kio
|
||||
rep #SHORT_A
|
||||
.a16
|
||||
tay
|
||||
lda #$0000
|
||||
PUSHNEXT
|
||||
eword
|
||||
|
||||
dword PS2M_STORE,"PS2M!"
|
||||
jsr _popay
|
||||
tya
|
||||
sep #SHORT_A
|
||||
.a8
|
||||
sta f:PS2Mio
|
||||
: lda f:PS2Mstat
|
||||
bit #$08
|
||||
bne :-
|
||||
rep #SHORT_A
|
||||
.a16
|
||||
NEXT
|
||||
eword
|
||||
|
||||
dword PS2M_QUERY,"PS2M?"
|
||||
ldy #$0000
|
||||
sep #SHORT_A
|
||||
.a8
|
||||
lda f:PS2Mstat
|
||||
ror
|
||||
rep #SHORT_A
|
||||
.a16
|
||||
bcc :+
|
||||
dey
|
||||
: tya
|
||||
PUSHNEXT
|
||||
eword
|
||||
|
||||
dword PS2M_FETCH,"PS2M@"
|
||||
lda #$0000
|
||||
sep #SHORT_A
|
||||
.a8
|
||||
: lda f:PS2Mstat
|
||||
ror
|
||||
bcc :-
|
||||
lda f:PS2Mio
|
||||
rep #SHORT_A
|
||||
.a16
|
||||
tay
|
||||
lda #$0000
|
||||
PUSHNEXT
|
||||
eword
|
||||
|
||||
; this probably isn't fast enough to reliably set micro and milliseconds
|
||||
dword SETRTC,"SETRTC"
|
||||
ENTER
|
||||
ONLIT RTCus
|
||||
.dword WSTORE
|
||||
ONLIT RTCms
|
||||
.dword WSTORE
|
||||
ONLIT RTCsec
|
||||
.dword CSTORE
|
||||
ONLIT RTCmin
|
||||
.dword CSTORE
|
||||
ONLIT RTChour
|
||||
.dword CSTORE
|
||||
ONLIT RTCday
|
||||
.dword WSTORE
|
||||
EXIT
|
||||
eword
|
||||
|
||||
dword GETRTC,"GETRTC"
|
||||
ENTER
|
||||
ONLIT RTCday
|
||||
.dword WFETCH
|
||||
ONLIT RTChour
|
||||
.dword CFETCH
|
||||
ONLIT RTCmin
|
||||
.dword CFETCH
|
||||
ONLIT RTCsec
|
||||
.dword CFETCH
|
||||
ONLIT RTCms
|
||||
.dword WFETCH
|
||||
ONLIT RTCus
|
||||
.dword WFETCH
|
||||
EXIT
|
||||
eword
|
||||
|
||||
dend
|
||||
|
||||
; and now for the system interface
|
||||
|
||||
.proc _system_interface
|
||||
;wdm 3
|
||||
phx
|
||||
@ -53,6 +189,17 @@ table: .addr _sf_pre_init
|
||||
|
||||
.proc _sf_post_init
|
||||
plx
|
||||
; Here we make a vocabulary definition for the neon816 dictionary
|
||||
; that we defined at the beginning of this file.
|
||||
ENTER
|
||||
ONLIT LAST_neon816
|
||||
SLIT "NEON816"
|
||||
.dword dVOCAB
|
||||
.dword LAST ; now set the head of the vocabulary to the
|
||||
.dword drXT ; last word defined in the neon816 dictionary
|
||||
.dword rBODY
|
||||
.dword STORE
|
||||
CODE
|
||||
jmp _sf_success
|
||||
.endproc
|
||||
|
||||
@ -134,3 +281,4 @@ list:
|
||||
plx
|
||||
jmp _sf_fail
|
||||
.endproc
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user