1
0
mirror of https://github.com/dschmenk/PLASMA.git synced 2025-02-09 04:30:37 +00:00

Fix constant string ENTER code for A3 VM

This commit is contained in:
dschmenk 2017-04-08 18:42:01 -07:00
parent ecc010e802
commit 488f039494
3 changed files with 1405 additions and 1410 deletions

BIN
ROGUE.PO

Binary file not shown.

View File

@ -48,7 +48,7 @@ DSTX = XPAGE+DSTH
!WORD SEGEND-SEGSTART
+SOS $40, SEGREQ ; ALLOCATE SEG 1 AND MAP IT
BNE PRHEX
BNE FAIL ; PRHEX
LDA #$01
STA MEMBANK
LDY #$0F ; INSTALL PAGE 0 FETCHOP ROUTINE
@ -71,25 +71,26 @@ DSTX = XPAGE+DSTH
STA IFPH
LDX #ESTKSZ/2 ; INIT EVAL STACK INDEX
JMP SOSCMD
PRHEX PHA
LSR
LSR
LSR
LSR
CLC
ADC #'0'
CMP #':'
BCC +
ADC #6
+ STA $480
PLA
AND #$0F
ADC #'0'
CMP #':'
BCC +
ADC #6
+ STA $880
FAIL RTS
;PRHEX PHA
; LSR
; LSR
; LSR
; LSR
; CLC
; ADC #'0'
; CMP #':'
; BCC +
; ADC #6
;+ STA $480
; PLA
; AND #$0F
; ADC #'0'
; CMP #':'
; BCC +
; ADC #6
;+ STA $481 ;$880
FAIL STA $0480
RTS
SEGREQ !BYTE 4
!WORD $2001
!WORD $9F01
@ -1032,19 +1033,19 @@ ICALADR JSR $FFFF
;*
;* ENTER FUNCTION WITH FRAME SIZE AND PARAM COUNT
;*
;*
;* ENTER FUNCTION WITH FRAME SIZE AND PARAM COUNT
;*
ENTER INY
LDA (IP),Y
PHA ; SAVE ON STACK FOR LEAVE
EOR #$FF
SEC
ADC IFPL
ADC PPL
STA PPL
STA IFPL
BCS +
DEC IFPH
+ INY
LDA #$FF
ADC PPH
STA PPH
STA IFPH
INY
LDA (IP),Y
ASL
TAY

View File

@ -48,12 +48,6 @@ byte perr, terr, lerr
//
byte console[] = ".CONSOLE"
byte autorun[] = "AUTORUN"
byte verstr[] = "PLASMA "
byte freestr[] = "MEM FREE:$"
byte errorstr[] = "ERR:$"
byte okstr[] = "OK"
byte huhstr[] = "?\n"
byte devtovol[] = " => /"
byte textmode[] = 16, 0, 15
byte hexchar[] = '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'
//
@ -1136,7 +1130,7 @@ def volumes
if dev_info(i, @devname, @info, 11) == 0
prstr(@devname)
if volume(@devname, @volname, @ttlblks, @freblks) == 0
prstr(@devtovol)
prstr(" => ")
prstr(@volname)
cout('/')
fin
@ -1299,12 +1293,12 @@ else
//
// Print some startup info.
//
prstr(@verstr)
prstr("PLASMA ")
prbyte(version.1)
cout('.')
prbyte(version.0)
crout
prstr(@freestr)
prstr("MEM:$")
prword(availheap)
crout
fin
@ -1331,15 +1325,15 @@ while 1
write(refcons, @textmode, 3)
break
otherwise
prstr(@huhstr)
prstr("?\n")
wend
if perr
terr = perr
prstr(@errorstr)
prstr("ERR:$")
prbyte(terr)
perr = 0
else
prstr(@okstr)
prstr("OK\n")
fin
crout()
fin