Selaa lähdekoodia

ufddos80.asm: for the no-nvram case, reserve 64 bytes on the stack

When there is no low ("nv") RAM, put the 64 bytes that UFD-DOS needs
above the stack.

Binary change for the no_nvram case only.

XXX: This does not handle PUN80 etc. Should really set up the stack
lower (e.g. 0xe000) and reset it or let BASIC do so.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin 1 vuosi sitten
vanhempi
commit
5d5340910c
1 muutettua tiedostoa jossa 9 lisäystä ja 3 poistoa
  1. 9 3
      rv32/roms/abc80/asmsrc/ufddos80.asm

+ 9 - 3
rv32/roms/abc80/asmsrc/ufddos80.asm

@@ -283,6 +283,12 @@ LINE_BUF        = 0xfe40
 PCODE_BUF       = 0xfeb8
 POKE_BUF        = 0xff80
 
+        .if AUXRAM_UFDDOS_BASE >= 0xe000 && AUXRAM_UFDDOS_BASE < 0xfd00
+STACK_BASE      = AUXRAM_UFDDOS_BASE
+        .else
+STACK_BASE      = _DOSBUF0
+        .endif
+
 INIT800:        jp _INIT800             ; 6000 ..d  c3 95 64
 RUNX:           jp _RUNX                ; 6003 ..`  c3 bd 60
 LOADX:          jp _LOADX               ; 6006 .w`  c3 77 60
@@ -1229,7 +1235,7 @@ dosinit80:      ;; 6543 <- 6862
                 ld (DOSDEFDEV),hl       ; 656a "5.  22 35 fd
                 ld hl,(basdevtbl)       ; 656d *.f  2a e4 66
                 ld (DEVLIST),hl         ; 6570 "..  22 0a fe
-setup_stack:    ld hl,_DOSBUF0          ; 6573 !..  21 00 f5
+setup_stack:    ld hl,STACK_BASE
                 pop de                  ; 6576 .    d1
                 ld sp,hl                ; 6577 .    f9
                 ld (STACK),hl           ; 6578 "'.  22 27 fe
@@ -2831,7 +2837,7 @@ _BLKTF:         ;; 6f75 <- 6042 62d3 6b5b 6c9b 6f79
                 jr .L6f96               ; 6f99 ..   18 fb
 autostart_cmd:  ;; 6f9b <- 683d
                 .ascii "RUN START80\r"
-                .org 0xfaf, 13
+		.org 0xfaf, 13
 autostart_cmd_len = . - autostart_cmd
 
 ;;;
@@ -2901,7 +2907,7 @@ find_q0s:       ;; 6ff0 <- 6fcd
 ;;;
 ;;; CALL entry points for random access on ABC80
 ;;;
-                .org 0xffa, 0xff
+		.org 0xffa, 0xff
 RNDSETUP:       jr _RNDSETUP            ; 6ffa ..   18 c9
 RNDREAD:        jr _RNDREAD             ; 6ffc ..   18 ba
 RNDWRITE:       jr _RNDWRITE            ; 6ffe ..   18 ba