Updates
This commit is contained in:
@@ -22,6 +22,7 @@ HIMEM := $73 ; Highest available memory address+1
|
|||||||
;-----------------------------------------------------------------------------
|
;-----------------------------------------------------------------------------
|
||||||
; Vectors
|
; Vectors
|
||||||
|
|
||||||
|
DOSWARM := $03D0 ; DOS warmstart vector
|
||||||
BRKVec := $03F0 ; Break vector
|
BRKVec := $03F0 ; Break vector
|
||||||
SOFTEV := $03F2 ; Vector for warm start
|
SOFTEV := $03F2 ; Vector for warm start
|
||||||
PWREDUP := $03F4 ; This must be = EOR #$A5 of SOFTEV+1
|
PWREDUP := $03F4 ; This must be = EOR #$A5 of SOFTEV+1
|
||||||
|
|||||||
@@ -24,10 +24,14 @@
|
|||||||
#define COLOR_WHITE 0x07
|
#define COLOR_WHITE 0x07
|
||||||
|
|
||||||
/* Characters codes */
|
/* Characters codes */
|
||||||
#define CH_ENTER 0x0D
|
#define CH_CTRL_C 0x03
|
||||||
#define CH_ESC 0x1B
|
#define CH_ENTER 0x0D
|
||||||
#define CH_CURS_LEFT 0x08
|
#define CH_ESC 0x1B
|
||||||
#define CH_CURS_RIGHT 0x15
|
#define CH_CURS_LEFT 0x08
|
||||||
|
#define CH_CURS_RIGHT 0x15
|
||||||
|
#define CH_CURS_UP 0x19
|
||||||
|
#define CH_CURS_DOWN 0x1A
|
||||||
|
#define CH_ESC 0x1B
|
||||||
|
|
||||||
|
|
||||||
/* Masks for joy_read */
|
/* Masks for joy_read */
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
;
|
;
|
||||||
|
|
||||||
.export __STARTUP__ : absolute = 1 ; Mark as startup
|
.export __STARTUP__ : absolute = 1 ; Mark as startup
|
||||||
|
.export _exit
|
||||||
|
|
||||||
.import initlib, donelib
|
.import initlib, donelib
|
||||||
.import zerobss, callmain
|
.import zerobss, callmain
|
||||||
@@ -14,12 +15,60 @@
|
|||||||
; ------------------------------------------------------------------------
|
; ------------------------------------------------------------------------
|
||||||
|
|
||||||
.segment "STARTUP"
|
.segment "STARTUP"
|
||||||
|
jsr init
|
||||||
|
jsr zerobss
|
||||||
|
jsr callmain
|
||||||
|
_exit: ldx #<exit
|
||||||
|
lda #>exit
|
||||||
|
jsr reset
|
||||||
|
jsr donelib
|
||||||
|
exit: ldx #$02
|
||||||
|
: lda rvsave,x
|
||||||
|
sta SOFTEV,x
|
||||||
|
dex
|
||||||
|
bpl :-
|
||||||
|
ldx #zpspace-1
|
||||||
|
: lda zpsave,x
|
||||||
|
sta sp,x
|
||||||
|
dex
|
||||||
|
bpl :-
|
||||||
|
ldx #$FF
|
||||||
|
txs
|
||||||
|
jmp DOSWARM
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.segment "ONCE"
|
||||||
|
|
||||||
|
init: ldx #zpspace-1
|
||||||
|
: lda sp,x
|
||||||
|
sta zpsave,x
|
||||||
|
dex
|
||||||
|
bpl :-
|
||||||
|
|
||||||
|
ldx #$02
|
||||||
|
: lda SOFTEV,x
|
||||||
|
sta rvsave,x
|
||||||
|
dex
|
||||||
|
bpl :-
|
||||||
|
|
||||||
lda HIMEM
|
lda HIMEM
|
||||||
ldx HIMEM+1
|
ldx HIMEM+1
|
||||||
sta sp
|
sta sp
|
||||||
stx sp+1
|
stx sp+1
|
||||||
jsr initlib
|
ldx #<_exit
|
||||||
jsr zerobss
|
lda #>_exit
|
||||||
jsr callmain
|
jsr reset
|
||||||
jsr donelib
|
jmp initlib
|
||||||
|
|
||||||
|
.code
|
||||||
|
|
||||||
|
reset: stx SOFTEV
|
||||||
|
sta SOFTEV+1
|
||||||
|
eor #$A5
|
||||||
|
sta PWREDUP
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
.segment "INIT"
|
||||||
|
zpsave: .res zpspace
|
||||||
|
rvsave: .res 3
|
||||||
|
|||||||
Reference in New Issue
Block a user