replaced BSMON constants with Open ROMs ones
This commit is contained in:
1 parent
d17b6a8986
commit
dfc72e8b17
2 files changed
+134
-151
No files matched your search
File renamed without changes.
+134
-151
@@ -9,20 +9,6 @@
|
|||||||
; XXX adapt all the addresses/constants!
|
; XXX adapt all the addresses/constants!
|
||||||
|
|
||||||
|
|
||||||
; *************
|
|
||||||
; * Constants *
|
|
||||||
; *************
|
|
||||||
|
|
||||||
!set WHITE = $05
|
|
||||||
!set YELLOW = $9e
|
|
||||||
!set LRED = $96
|
|
||||||
|
|
||||||
!set CR = $0d
|
|
||||||
!set REV = $12
|
|
||||||
!set CRIGHT = $1d
|
|
||||||
!set QUOTE = $22
|
|
||||||
!set APOSTR = $27
|
|
||||||
|
|
||||||
; ************************************************
|
; ************************************************
|
||||||
; * Register storage for JMPFAR and JSRFAR calls *
|
; * Register storage for JMPFAR and JSRFAR calls *
|
||||||
; ************************************************
|
; ************************************************
|
||||||
@@ -80,8 +66,6 @@
|
|||||||
!addr SA = $b9
|
!addr SA = $b9
|
||||||
!addr FA = $ba
|
!addr FA = $ba
|
||||||
!addr FNADR = $bb
|
!addr FNADR = $bb
|
||||||
!addr BA = $bd
|
|
||||||
!addr FNBANK = $be
|
|
||||||
|
|
||||||
!addr MODE_80 = $d7 ; 80 column / 40 volumn flag
|
!addr MODE_80 = $d7 ; 80 column / 40 volumn flag
|
||||||
|
|
||||||
@@ -103,32 +87,28 @@
|
|||||||
!addr Disk_Sector = $40A ; logical sector 0 -> 255
|
!addr Disk_Sector = $40A ; logical sector 0 -> 255
|
||||||
!addr Disk_Status = $40B ; BCD value of status
|
!addr Disk_Status = $40B ; BCD value of status
|
||||||
|
|
||||||
Mon_Data = $410 ; 40 bytes, buffer for hunt and filename
|
!addr Mon_Data = $410 ; 40 bytes, buffer for hunt and filename
|
||||||
Disk_Msg = $440 ; 40 bytes, disk status as text message
|
!addr Disk_Msg = $440 ; 40 bytes, disk status as text message
|
||||||
|
|
||||||
!addr EXIT_OLD = $cf2e ; exit address for ROM 910110
|
!addr EXIT_OLD = $cf2e ; exit address for ROM 910110
|
||||||
!addr EXIT = $cfa4 ; exit address for ROM 911001
|
!addr EXIT = $cfa4 ; exit address for ROM 911001
|
||||||
|
|
||||||
!addr PRIMM = $ff7d
|
!addr PRIMM = $ff7d
|
||||||
!addr CINT = $ff81
|
!addr CINT = $ff81
|
||||||
!addr IOINIT = $ff84
|
!addr SETMSG = $ff90
|
||||||
!addr SETMSG = $ff90
|
!addr SECOND = $ff93
|
||||||
!addr SECOND = $ff93
|
!addr TKSA = $ff96
|
||||||
!addr TKSA = $ff96
|
!addr ACPTR = $ffa5
|
||||||
!addr KEY = $ff9f
|
!addr CIOUT = $ffa8
|
||||||
!addr ACPTR = $ffa5
|
!addr UNTALK = $ffab
|
||||||
!addr CIOUT = $ffa8
|
!addr UNLSN = $ffae
|
||||||
!addr UNTALK = $ffab
|
!addr LISTEN = $ffb1
|
||||||
!addr UNLSN = $ffae
|
!addr TALK = $ffb4
|
||||||
!addr LISTEN = $ffb1
|
!addr OPEN = $ffc0
|
||||||
!addr TALK = $ffb4
|
!addr CLOSE = $ffc3
|
||||||
!addr OPEN = $ffc0
|
!addr CHRIN = $ffcf
|
||||||
!addr CLOSE = $ffc3
|
!addr CHROUT = $ffd2
|
||||||
!addr CHRIN = $ffcf
|
!addr STOP = $ffe1
|
||||||
!addr CHROUT = $ffd2
|
|
||||||
!addr LOAD = $ffd5
|
|
||||||
!addr SAVE = $ffd8
|
|
||||||
!addr STOP = $ffe1
|
|
||||||
|
|
||||||
|
|
||||||
; *******
|
; *******
|
||||||
@@ -268,7 +248,7 @@ Main_A
|
|||||||
INX
|
INX
|
||||||
CPX #80
|
CPX #80
|
||||||
BCS Mon_Error ; input too long
|
BCS Mon_Error ; input too long
|
||||||
CMP #CR
|
CMP #KEY_RETURN
|
||||||
BNE @loop
|
BNE @loop
|
||||||
|
|
||||||
LDA #0
|
LDA #0
|
||||||
@@ -298,7 +278,7 @@ Mon_Error
|
|||||||
; put a question mark at the end of the text
|
; put a question mark at the end of the text
|
||||||
|
|
||||||
JSR PRIMM
|
JSR PRIMM
|
||||||
!pet KEY_ESC, "o",CRIGHT,'?',0
|
!pet KEY_ESC, "o",KEY_CRSR_RIGHT,'?',0
|
||||||
LDX #$f8 ; reset stack pointer
|
LDX #$f8 ; reset stack pointer
|
||||||
TXS
|
TXS
|
||||||
BRA Main
|
BRA Main
|
||||||
@@ -320,7 +300,7 @@ Print_Commands
|
|||||||
; ************
|
; ************
|
||||||
|
|
||||||
JSR PRIMM
|
JSR PRIMM
|
||||||
!pet CR,YELLOW,REV,"bs monitor commands:"
|
!pet KEY_RETURN,KEY_YELLOW,KEY_RVS_ON,"bs monitor commands:"
|
||||||
|
|
||||||
; **********
|
; **********
|
||||||
Command_Char
|
Command_Char
|
||||||
@@ -339,7 +319,7 @@ Cons_Prefix
|
|||||||
Load_Save_Verify
|
Load_Save_Verify
|
||||||
; **************
|
; **************
|
||||||
|
|
||||||
!pet "lsv",WHITE,0
|
!pet "lsv",KEY_WHITE,0
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
; ********
|
; ********
|
||||||
@@ -589,7 +569,7 @@ Mon_Bits
|
|||||||
BCS @lab
|
BCS @lab
|
||||||
JSR LAC_To_LPC ; Long_PC = start address
|
JSR LAC_To_LPC ; Long_PC = start address
|
||||||
@lab JSR Print_CR
|
@lab JSR Print_CR
|
||||||
LDA #WHITE
|
LDA #KEY_WHITE
|
||||||
STA Long_DA+1
|
STA Long_DA+1
|
||||||
|
|
||||||
LDX #8
|
LDX #8
|
||||||
@@ -597,7 +577,7 @@ Mon_Bits
|
|||||||
JSR Hex_LPC
|
JSR Hex_LPC
|
||||||
LDZ #0
|
LDZ #0
|
||||||
@col SEC
|
@col SEC
|
||||||
LDA #WHITE+LRED ; toggle colour
|
LDA #KEY_WHITE+KEY_LT_RED ; toggle colour
|
||||||
SBC Long_DA+1
|
SBC Long_DA+1
|
||||||
STA Long_DA+1
|
STA Long_DA+1
|
||||||
JSR CHROUT
|
JSR CHROUT
|
||||||
@@ -736,9 +716,9 @@ Dump_Row
|
|||||||
LDX #2 ; 2 blocks in 80 columns
|
LDX #2 ; 2 blocks in 80 columns
|
||||||
BBR7 MODE_80,@loop
|
BBR7 MODE_80,@loop
|
||||||
DEX ; 1 block in 40 columns
|
DEX ; 1 block in 40 columns
|
||||||
@loop LDA #LRED
|
@loop LDA #KEY_LT_RED
|
||||||
JSR Dump_4_Bytes
|
JSR Dump_4_Bytes
|
||||||
LDA #WHITE
|
LDA #KEY_WHITE
|
||||||
JSR Dump_4_Bytes
|
JSR Dump_4_Bytes
|
||||||
DEX
|
DEX
|
||||||
BNE @loop
|
BNE @loop
|
||||||
@@ -750,9 +730,9 @@ Dump_Row
|
|||||||
LDX #2 ; 4 blocks in 80 columns
|
LDX #2 ; 4 blocks in 80 columns
|
||||||
BBR7 MODE_80,@lchr
|
BBR7 MODE_80,@lchr
|
||||||
DEX ; 2 blocks in 40 columns
|
DEX ; 2 blocks in 40 columns
|
||||||
@lchr LDA #LRED
|
@lchr LDA #KEY_LT_RED
|
||||||
JSR Dump_4_Chars
|
JSR Dump_4_Chars
|
||||||
LDA #WHITE
|
LDA #KEY_WHITE
|
||||||
JSR Dump_4_Chars
|
JSR Dump_4_Chars
|
||||||
DEX
|
DEX
|
||||||
BNE @lchr
|
BNE @lchr
|
||||||
@@ -822,7 +802,7 @@ Mon_Hunt
|
|||||||
LBCS Mon_Error ; Long_CT = count
|
LBCS Mon_Error ; Long_CT = count
|
||||||
LDY #0
|
LDY #0
|
||||||
JSR Get_Char
|
JSR Get_Char
|
||||||
CMP #APOSTR
|
CMP #KEY_APOSTROPHE
|
||||||
BNE @bin
|
BNE @bin
|
||||||
JSR Get_Char ; string hunt
|
JSR Get_Char ; string hunt
|
||||||
CMP #0
|
CMP #0
|
||||||
@@ -867,84 +847,87 @@ Mon_Hunt
|
|||||||
Load_Save
|
Load_Save
|
||||||
; *******
|
; *******
|
||||||
|
|
||||||
LDY Disk_Unit
|
; XXX to be rewritten for OpenROMs!
|
||||||
STY FA
|
rts
|
||||||
LDY #8
|
|
||||||
STY SA
|
|
||||||
LDY #0
|
|
||||||
STY BA
|
|
||||||
STY FNLEN
|
|
||||||
STY FNBANK
|
|
||||||
STY STATUS
|
|
||||||
LDA #>Mon_Data
|
|
||||||
STA FNADR+1
|
|
||||||
LDA #<Mon_Data
|
|
||||||
STA FNADR
|
|
||||||
@skip JSR Get_Char ; skip blanks
|
|
||||||
LBEQ Mon_Error
|
|
||||||
CMP #' '
|
|
||||||
BEQ @skip
|
|
||||||
CMP #QUOTE ; must be quote
|
|
||||||
LBNE Mon_Error
|
|
||||||
|
|
||||||
LDX Buf_Index
|
; LDY Disk_Unit
|
||||||
@copyfn LDA Buffer,X ; copy filename
|
; STY FA
|
||||||
BEQ @do ; no more input
|
; LDY #8
|
||||||
INX
|
; STY SA
|
||||||
CMP #QUOTE
|
; LDY #0
|
||||||
BEQ @unit ; end of filename
|
; STY BA
|
||||||
STA (FNADR),Y ; store to filename
|
; STY FNLEN
|
||||||
INC FNLEN
|
; STY FNBANK
|
||||||
INY
|
; STY STATUS
|
||||||
CPY #19 ; max = 16 plus prefix "@0:"
|
; LDA #>Mon_Data
|
||||||
BCC @copyfn
|
; STA FNADR+1
|
||||||
JMP Mon_Error ; filename too long
|
; LDA #<Mon_Data
|
||||||
|
; STA FNADR
|
||||||
|
; @skip JSR Get_Char ; skip blanks
|
||||||
|
; LBEQ Mon_Error
|
||||||
|
; CMP #' '
|
||||||
|
; BEQ @skip
|
||||||
|
; CMP #KEY_QUOTE ; must be quote
|
||||||
|
; LBNE Mon_Error
|
||||||
|
|
||||||
@unit STX Buf_Index ; update read position
|
; LDX Buf_Index
|
||||||
JSR Get_Char
|
; @copyfn LDA Buffer,X ; copy filename
|
||||||
BEQ @do ; no more parameter
|
; BEQ @do ; no more input
|
||||||
JSR Get_LAC
|
; INX
|
||||||
BCS @do
|
; CMP #KEY_QUOTE
|
||||||
LDA Long_AC ; unit #
|
; BEQ @unit ; end of filename
|
||||||
STA FA
|
; STA (FNADR),Y ; store to filename
|
||||||
JSR Get_LAC
|
; INC FNLEN
|
||||||
BCS @do
|
; INY
|
||||||
JSR LAC_To_LPC ; Long_PC = start address
|
; CPY #19 ; max = 16 plus prefix "@0:"
|
||||||
STA BA ; Bank
|
; BCC @copyfn
|
||||||
JSR Get_LAC ; Long_AC = end address + 1
|
; JMP Mon_Error ; filename too long
|
||||||
BCS @load ; no end address -> load/verify
|
|
||||||
JSR Print_CR
|
|
||||||
LDX Long_AC ; X/Y = end address
|
|
||||||
LDY Long_AC+1
|
|
||||||
LDA VERCK ; A = load/verify/save
|
|
||||||
CMP #'S'
|
|
||||||
LBNE Mon_Error ; must be Save
|
|
||||||
LDA #0
|
|
||||||
STA SA ; set SA for PRG
|
|
||||||
LDA #Long_PC ; Long_PC = start address
|
|
||||||
JSR SAVE
|
|
||||||
@exit JMP Main
|
|
||||||
|
|
||||||
@do LDA VERCK
|
; @unit STX Buf_Index ; update read position
|
||||||
CMP #'V' ; Verify
|
; JSR Get_Char
|
||||||
BEQ @exec
|
; BEQ @do ; no more parameter
|
||||||
CMP #'L' ; Load
|
; JSR Get_LAC
|
||||||
LBNE Mon_Error
|
; BCS @do
|
||||||
LDA #0 ; 0 = LOAD
|
; LDA Long_AC ; unit #
|
||||||
@exec JSR LOAD ; A == 0 : LOAD else VERIFY
|
; STA FA
|
||||||
BBR4 STATUS,@exit
|
; JSR Get_LAC
|
||||||
LDA VERCK
|
; BCS @do
|
||||||
LBEQ Mon_Error
|
; JSR LAC_To_LPC ; Long_PC = start address
|
||||||
LBCS Main
|
; STA BA ; Bank
|
||||||
JSR PRIMM
|
; JSR Get_LAC ; Long_AC = end address + 1
|
||||||
!pet " error",0
|
; BCS @load ; no end address -> load/verify
|
||||||
JMP Main
|
; JSR Print_CR
|
||||||
|
; LDX Long_AC ; X/Y = end address
|
||||||
|
; LDY Long_AC+1
|
||||||
|
; LDA VERCK ; A = load/verify/save
|
||||||
|
; CMP #'S'
|
||||||
|
; LBNE Mon_Error ; must be Save
|
||||||
|
; LDA #0
|
||||||
|
; STA SA ; set SA for PRG
|
||||||
|
; LDA #Long_PC ; Long_PC = start address
|
||||||
|
; JSR SAVE
|
||||||
|
; @exit JMP Main
|
||||||
|
|
||||||
@load LDX Long_PC
|
; @do LDA VERCK
|
||||||
LDY Long_PC+1
|
; CMP #'V' ; Verify
|
||||||
LDA #0 ; 0 = use X/Y as load address
|
; BEQ @exec
|
||||||
STA SA ; and ignore load address from file
|
; CMP #'L' ; Load
|
||||||
BRA @do
|
; LBNE Mon_Error
|
||||||
|
; LDA #0 ; 0 = LOAD
|
||||||
|
; @exec JSR LOAD ; A == 0 : LOAD else VERIFY
|
||||||
|
; BBR4 STATUS,@exit
|
||||||
|
; LDA VERCK
|
||||||
|
; LBEQ Mon_Error
|
||||||
|
; LBCS Main
|
||||||
|
; JSR PRIMM
|
||||||
|
; !pet " error",0
|
||||||
|
; JMP Main
|
||||||
|
|
||||||
|
; @load LDX Long_PC
|
||||||
|
; LDY Long_PC+1
|
||||||
|
; LDA #0 ; 0 = use X/Y as load address
|
||||||
|
; STA SA ; and ignore load address from file
|
||||||
|
; BRA @do
|
||||||
|
|
||||||
; ******
|
; ******
|
||||||
Mon_Fill
|
Mon_Fill
|
||||||
@@ -1337,7 +1320,7 @@ Mon_Assemble
|
|||||||
; for easy entry of next assembler instruction
|
; for easy entry of next assembler instruction
|
||||||
|
|
||||||
JSR PRIMM
|
JSR PRIMM
|
||||||
!pet CR,"a ",0
|
!pet KEY_RETURN,"a ",0
|
||||||
|
|
||||||
LDA #'A'
|
LDA #'A'
|
||||||
STA Buffer
|
STA Buffer
|
||||||
@@ -1562,7 +1545,7 @@ Print_Code
|
|||||||
|
|
||||||
; detect long branches
|
; detect long branches
|
||||||
|
|
||||||
@long LDA #YELLOW
|
@long LDA #KEY_YELLOW
|
||||||
JSR CHROUT
|
JSR CHROUT
|
||||||
LDX Op_Code
|
LDX Op_Code
|
||||||
LDA LEN_ADM,X
|
LDA LEN_ADM,X
|
||||||
@@ -1640,7 +1623,7 @@ Print_Code
|
|||||||
|
|
||||||
@mne4 JSR Print_Blank
|
@mne4 JSR Print_Blank
|
||||||
@mne5 JSR Print_Blank
|
@mne5 JSR Print_Blank
|
||||||
LDA #WHITE
|
LDA #KEY_WHITE
|
||||||
JSR CHROUT
|
JSR CHROUT
|
||||||
|
|
||||||
; check for accumulator operand
|
; check for accumulator operand
|
||||||
@@ -1832,7 +1815,7 @@ Read_Number
|
|||||||
|
|
||||||
JSR Get_Glyph ; get 1st. character
|
JSR Get_Glyph ; get 1st. character
|
||||||
BEQ @exit
|
BEQ @exit
|
||||||
CMP #APOSTR ; character entry 'C
|
CMP #KEY_APOSTROPHE ; character entry 'C
|
||||||
BNE @numeric
|
BNE @numeric
|
||||||
JSR Get_Char ; character after '
|
JSR Get_Char ; character after '
|
||||||
STA Long_AC
|
STA Long_AC
|
||||||
@@ -1919,13 +1902,13 @@ Hex_LPC
|
|||||||
|
|
||||||
LDX Long_PC+3
|
LDX Long_PC+3
|
||||||
BEQ @laba
|
BEQ @laba
|
||||||
LDA #YELLOW
|
LDA #KEY_YELLOW
|
||||||
JSR CHROUT
|
JSR CHROUT
|
||||||
TXA
|
TXA
|
||||||
JSR Print_Hex
|
JSR Print_Hex
|
||||||
LDA Long_PC+2
|
LDA Long_PC+2
|
||||||
JSR Print_Hex
|
JSR Print_Hex
|
||||||
LDA #WHITE
|
LDA #KEY_WHITE
|
||||||
JSR CHROUT
|
JSR CHROUT
|
||||||
BRA @labb
|
BRA @labb
|
||||||
@laba LDA Long_PC+2
|
@laba LDA Long_PC+2
|
||||||
@@ -2945,26 +2928,26 @@ Mon_Help
|
|||||||
; ******
|
; ******
|
||||||
JSR PRIMM
|
JSR PRIMM
|
||||||
|
|
||||||
!pet LRED,"a",WHITE,"ssemble - a address mnemonic operand",CR
|
!pet KEY_LT_RED,"a",KEY_WHITE,"ssemble - a address mnemonic operand",KEY_RETURN
|
||||||
!pet LRED,"b",WHITE,"itmaps - b [from [to]]",CR
|
!pet KEY_LT_RED,"b",KEY_WHITE,"itmaps - b [from [to]]",KEY_RETURN
|
||||||
!pet LRED,"c",WHITE,"ompare - c from to with",CR
|
!pet KEY_LT_RED,"c",KEY_WHITE,"ompare - c from to with",KEY_RETURN
|
||||||
!pet LRED,"d",WHITE,"isassemble - d [from [to]]",CR
|
!pet KEY_LT_RED,"d",KEY_WHITE,"isassemble - d [from [to]]",KEY_RETURN
|
||||||
!pet LRED,"f",WHITE,"ill - f from to fillbyte",CR
|
!pet KEY_LT_RED,"f",KEY_WHITE,"ill - f from to fillbyte",KEY_RETURN
|
||||||
!pet LRED,"g",WHITE,"o - g [address]",CR
|
!pet KEY_LT_RED,"g",KEY_WHITE,"o - g [address]",KEY_RETURN
|
||||||
!pet LRED,"h",WHITE,"unt - h from to (string or bytes)",CR
|
!pet KEY_LT_RED,"h",KEY_WHITE,"unt - h from to (string or bytes)",KEY_RETURN
|
||||||
!pet LRED,"j",WHITE,"sr - j address",CR
|
!pet KEY_LT_RED,"j",KEY_WHITE,"sr - j address",KEY_RETURN
|
||||||
!pet LRED,"l",WHITE,"oad - l filename [uniy [address]]",CR
|
!pet KEY_LT_RED,"l",KEY_WHITE,"oad - l filename [uniy [address]]",KEY_RETURN
|
||||||
!pet LRED,"m",WHITE,"emory - m [from [to]]",CR
|
!pet KEY_LT_RED,"m",KEY_WHITE,"emory - m [from [to]]",KEY_RETURN
|
||||||
!pet LRED,"r",WHITE,"egisters - r",CR
|
!pet KEY_LT_RED,"r",KEY_WHITE,"egisters - r",KEY_RETURN
|
||||||
!pet LRED,"s",WHITE,"ave - s filename unit from to",CR
|
!pet KEY_LT_RED,"s",KEY_WHITE,"ave - s filename unit from to",KEY_RETURN
|
||||||
!pet LRED,"t",WHITE,"ransfer - t from to target",CR
|
!pet KEY_LT_RED,"t",KEY_WHITE,"ransfer - t from to target",KEY_RETURN
|
||||||
!pet LRED,"v",WHITE,"erify - v filename [unit [address]]",CR
|
!pet KEY_LT_RED,"v",KEY_WHITE,"erify - v filename [unit [address]]",KEY_RETURN
|
||||||
!pet "e",LRED,"x",WHITE,"it - x",CR
|
!pet "e",KEY_LT_RED,"x",KEY_WHITE,"it - x",KEY_RETURN
|
||||||
!pet LRED,".",WHITE,"<dot> - . address mnemonic operand",CR
|
!pet KEY_LT_RED,".",KEY_WHITE,"<dot> - . address mnemonic operand",KEY_RETURN
|
||||||
!pet LRED,">",WHITE,"<greater> - > address byte sequence",CR
|
!pet KEY_LT_RED,">",KEY_WHITE,"<greater> - > address byte sequence",KEY_RETURN
|
||||||
!pet LRED,";",WHITE,"<semicolon> - ; register contents",CR
|
!pet KEY_LT_RED,";",KEY_WHITE,"<semicolon> - ; register contents",KEY_RETURN
|
||||||
!pet LRED,"@",WHITE,"dos - @ [dos command]",CR
|
!pet KEY_LT_RED,"@",KEY_WHITE,"dos - @ [dos command]",KEY_RETURN
|
||||||
!pet LRED,"?",WHITE,"help - ?",CR
|
!pet KEY_LT_RED,"?",KEY_WHITE,"help - ?",KEY_RETURN
|
||||||
!pet 0
|
!pet 0
|
||||||
JMP Main
|
JMP Main
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user