This commit is contained in:
Konstantin
2025-06-04 23:11:13 +03:00
parent de524a6561
commit 5ff18c1ebc
3 changed files with 62 additions and 8 deletions

View File

@@ -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

View File

@@ -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 */

View File

@@ -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