Converted filenames to lowercase to avoid MZF etc name clashes.
This commit is contained in:
5908
software/asm/basic_sp-5025.asm
Normal file
5908
software/asm/basic_sp-5025.asm
Normal file
File diff suppressed because it is too large
Load Diff
@@ -4,4 +4,4 @@ ROW: EQU 25 ; Number of rows on display screen.
|
||||
SCRNSZ: EQU COLW * ROW ; Total size, in bytes, of the screen display area.
|
||||
MODE80C:EQU 0
|
||||
|
||||
INCLUDE "1Z-013A-KM.asm"
|
||||
INCLUDE "1z-013a-km.asm"
|
||||
@@ -4,4 +4,4 @@ ROW: EQU 25 ; Number of rows on display screen.
|
||||
SCRNSZ: EQU COLW * ROW ; Total size, in bytes, of the screen display area.
|
||||
MODE80C:EQU 0
|
||||
|
||||
INCLUDE "1Z-013A.asm"
|
||||
INCLUDE "1z-013a.asm"
|
||||
@@ -4,4 +4,4 @@ ROW: EQU 25 ; Number of rows on display screen.
|
||||
SCRNSZ: EQU COLW * ROW ; Total size, in bytes, of the screen display area.
|
||||
MODE80C:EQU 1
|
||||
|
||||
INCLUDE "1Z-013A-KM.asm"
|
||||
INCLUDE "1z-013a-km.asm"
|
||||
@@ -4,4 +4,4 @@ ROW: EQU 25 ; Number of rows on display screen.
|
||||
SCRNSZ: EQU COLW * ROW ; Total size, in bytes, of the screen display area.
|
||||
MODE80C:EQU 1
|
||||
|
||||
INCLUDE "1Z-013A.asm"
|
||||
INCLUDE "1z-013a.asm"
|
||||
2568
software/asm/mz-xz009/BASIC.ASM
Normal file
2568
software/asm/mz-xz009/BASIC.ASM
Normal file
File diff suppressed because it is too large
Load Diff
1514
software/asm/mz-xz009/CONV.ASM
Normal file
1514
software/asm/mz-xz009/CONV.ASM
Normal file
File diff suppressed because it is too large
Load Diff
546
software/asm/mz-xz009/EDIT.ASM
Normal file
546
software/asm/mz-xz009/EDIT.ASM
Normal file
@@ -0,0 +1,546 @@
|
||||
; ------------------------------------
|
||||
; MZ-800 BASIC Interm.code conversion
|
||||
; FI:EDIT ver 1.0A 7.18.84
|
||||
; Programed by T.Miho
|
||||
; ------------------------------------
|
||||
;
|
||||
INCLD MACRO
|
||||
;
|
||||
CVIMTX: ENT
|
||||
PUSH DE
|
||||
PUSH BC
|
||||
LD C,0
|
||||
DEC DE
|
||||
CVIM10: INC DE
|
||||
CVIM12: CALL IMSPACE
|
||||
OR A
|
||||
JR Z,IMEND
|
||||
CP FFH
|
||||
JR Z,IMPAI
|
||||
CP 80H
|
||||
JP NC,ER01
|
||||
CP 20H
|
||||
JR C,CVIM10
|
||||
LD IX,CVIM12
|
||||
PUSH IX
|
||||
CP '"'
|
||||
JR Z,IMSTR
|
||||
CP "'"
|
||||
JR Z,IMREM
|
||||
CP "?"
|
||||
JR Z,IMPRT
|
||||
CP "."
|
||||
JP Z,IMFLT
|
||||
CP "$"
|
||||
JP Z,IMHEX
|
||||
CALL TSTNUM
|
||||
JR C,IMRSV
|
||||
JP IMNUM
|
||||
;
|
||||
IMEND: LD M,A
|
||||
POP BC
|
||||
POP DE
|
||||
RET
|
||||
;
|
||||
IMPAI: LD M,E4H
|
||||
CALL IM3R
|
||||
JR CVIM12
|
||||
;
|
||||
IMPRT: LD A,8FH
|
||||
CALL IM3RS
|
||||
JR IMRSV6
|
||||
;
|
||||
IMREM: LD M,":"
|
||||
CALL IM3R
|
||||
LD M,"'"
|
||||
CALL IM3RH
|
||||
JP IMDATA
|
||||
SKP H
|
||||
|
||||
;
|
||||
IMSTR: LD M,A
|
||||
CALL IM3R
|
||||
IMSTR2: LD A,(DE)
|
||||
OR A
|
||||
RET Z
|
||||
CP '"'
|
||||
JR NZ,IMSTR
|
||||
IM3RS: LD M,A
|
||||
IM3R: INC DE
|
||||
IM3RH: INC HL
|
||||
IM3RC: INC C
|
||||
RET NZ
|
||||
JP ER08 ;LINE LENGTH
|
||||
;
|
||||
IMVAR: POP BC
|
||||
LD A,(DE)
|
||||
CALL TSTVAR
|
||||
JR C,IM3RS
|
||||
IMVAR2: CALL IM3RS
|
||||
LD A,(DE)
|
||||
CP "$"
|
||||
JR Z,IM3RS
|
||||
CALL TSTNUM
|
||||
RET C
|
||||
JR IMVAR2
|
||||
;
|
||||
IMRSV: PUSH BC
|
||||
LD BC,CTBL1
|
||||
CALL IMSER
|
||||
JR NC,IMRSV4
|
||||
LD BC,GTABL
|
||||
CALL IMSER
|
||||
LD C,FEH
|
||||
JR NC,IMRSV2
|
||||
LD BC,CTBL2
|
||||
CALL IMSER
|
||||
LD C,FFH
|
||||
JR C,IMVAR
|
||||
IMRSV2: LD M,C
|
||||
INC HL
|
||||
LD M,A
|
||||
POP BC
|
||||
CALL IM3RC
|
||||
CALL IM3RH
|
||||
CP B4H ; ERL ******
|
||||
RET NZ
|
||||
CALL IMSPACE
|
||||
CP "="
|
||||
RET NZ
|
||||
LD M,F4H ; = ******
|
||||
CALL IM3R
|
||||
JR IMLNO
|
||||
SKP H
|
||||
|
||||
;
|
||||
IMRSV4: POP BC
|
||||
CALL IM3RH
|
||||
IMRSV6: CP 97H ; REM
|
||||
JR Z,IMDATA
|
||||
CP 94H ; DATA
|
||||
JR Z,IMDATA
|
||||
CP C2H ; ELSE
|
||||
JR Z,IMELSE
|
||||
CP E2H ; THEN
|
||||
JR Z,IMLNO
|
||||
CP E0H
|
||||
RET NC
|
||||
PUSH AF
|
||||
CALL IMSPACE
|
||||
CP "/"
|
||||
JR NZ,IMRSV7
|
||||
LD M,FBH ;/
|
||||
CALL IM3R
|
||||
CALL SKPDE
|
||||
CALL IM3RS
|
||||
JR IMRSV8
|
||||
IMRSV7: CP "#"
|
||||
JR NZ,IMRSV8
|
||||
CALL IM3RS
|
||||
CALL SKPDE
|
||||
CALL TSTNUM
|
||||
CALL NC,IMNUM
|
||||
IMRSV8: POP AF
|
||||
CP 8DH ; FOR
|
||||
RET NC
|
||||
;
|
||||
IMLNO: CALL IMSPACE
|
||||
CP '"'
|
||||
JR NZ,IMLNO2
|
||||
CALL IMSTR
|
||||
JR IMLNO
|
||||
IMLNO2: CP 2CH
|
||||
RET C
|
||||
CP 2FH
|
||||
JR C,IMLNO4 ;",-."
|
||||
CALL TSTNUM
|
||||
RET C
|
||||
CALL IMINT
|
||||
JR IMLNO
|
||||
IMLNO4: CALL IM3RS
|
||||
JR IMLNO
|
||||
;
|
||||
IMELSE: DEC HL
|
||||
LD M,":"
|
||||
INC HL
|
||||
LD M,A
|
||||
CALL IM3RH
|
||||
JR IMLNO
|
||||
;
|
||||
IMDATA: LD A,(DE)
|
||||
CALL ENDCK0
|
||||
RET Z
|
||||
CALL IM3RS
|
||||
CP '"'
|
||||
|
||||
CALL Z,IMSTR2
|
||||
JR IMDATA
|
||||
;
|
||||
;
|
||||
IMSER: PUSH HL ;Search in tabale
|
||||
PUSH DE
|
||||
LD HL,BC
|
||||
LD B,7FH
|
||||
IMSER2: POP DE
|
||||
PUSH DE
|
||||
INC B
|
||||
LD A,M
|
||||
CP FFH
|
||||
JR NZ,IMSER3
|
||||
POP DE ;Table end
|
||||
POP HL
|
||||
SCF
|
||||
RET
|
||||
;
|
||||
IMSER3: CP "."
|
||||
JR NZ,IMSER4
|
||||
INC HL ;AND OR XOR NOT
|
||||
DEC DE
|
||||
LD A,(DE)
|
||||
INC DE
|
||||
CALL TSTVAR
|
||||
JR NC,IMSER6
|
||||
IMSER4: LD A,(DE)
|
||||
CP " "
|
||||
JR NZ,IMSER5
|
||||
LD A,M
|
||||
AND 7FH
|
||||
SUB "A"
|
||||
CP 26
|
||||
JR C,IMSER6
|
||||
CALL SKPDI
|
||||
IMSER5: LD C,M
|
||||
INC HL
|
||||
INC DE
|
||||
CP "."
|
||||
JR Z,IMSER8
|
||||
SUB C
|
||||
JR Z,IMSER4
|
||||
CP 80H
|
||||
JR Z,IMSER9
|
||||
IMSER6: DEC HL ;Not match
|
||||
BIT 7,M
|
||||
INC HL
|
||||
JR Z,-3
|
||||
JR IMSER2
|
||||
IMSER8: LD A,B
|
||||
CP E8H ;operator
|
||||
JR NC,IMSER6
|
||||
CCF
|
||||
IMSER9: POP HL ;Found
|
||||
POP HL
|
||||
LD M,B
|
||||
LD A,B
|
||||
RET
|
||||
;
|
||||
|
||||
IMSPACE:LD A,(DE)
|
||||
CP " "
|
||||
RET NZ
|
||||
LD M,A
|
||||
CALL IM3R
|
||||
JR IMSPACE
|
||||
SKP H
|
||||
|
||||
;
|
||||
IMNUM: EX AF,AF'
|
||||
PUSH DE
|
||||
CALL SKPDI
|
||||
POP DE
|
||||
CALL TSTNUM ;check if one-digit
|
||||
JR NC,IMFLT
|
||||
CP "."
|
||||
JR Z,IMFLT
|
||||
CP "E"
|
||||
JR Z,IMFLT
|
||||
EX AF,AF'
|
||||
SUB "0"-1
|
||||
JP IMFLT ;ok, JP IM3RS
|
||||
;
|
||||
IMFLT: PUSH BC
|
||||
LD M,15H
|
||||
INC HL
|
||||
PUSH HL
|
||||
CALL CVFLAS
|
||||
POP HL
|
||||
LD BC,5
|
||||
ADD HL,BC
|
||||
LD A,6
|
||||
JR BCKSPS
|
||||
;
|
||||
IMINT: PUSH BC
|
||||
CALL CVBCAS
|
||||
LD M,0BH
|
||||
INC HL
|
||||
JR PPOLNO
|
||||
;
|
||||
IMHEX: LD M,A
|
||||
INC DE
|
||||
LD A,(DE)
|
||||
SVC .CKHEX
|
||||
RST 3
|
||||
DEFB .CKHEX
|
||||
ENDM
|
||||
JP C,IM3RH
|
||||
PUSH BC
|
||||
LD M,11H
|
||||
INC HL
|
||||
PUSH HL
|
||||
EX DE,HL
|
||||
SVC .DEHEX
|
||||
RST 3
|
||||
DEFB .DEHEX
|
||||
ENDM
|
||||
LD BC,DE
|
||||
EX DE,HL
|
||||
POP HL
|
||||
PPOLNO: LD A,3
|
||||
LD M,C
|
||||
INC HL
|
||||
LD M,B
|
||||
INC HL
|
||||
BCKSPS: POP BC
|
||||
ADD A,C
|
||||
JP C,ER08 ;LINE LENGTH
|
||||
|
||||
LD C,A
|
||||
BCKSKP: DEC DE
|
||||
LD A,(DE)
|
||||
CP " "
|
||||
JR Z,-4
|
||||
INC DE
|
||||
RET
|
||||
SKP H
|
||||
|
||||
;
|
||||
CVTXIM: ENT
|
||||
PUSH HL
|
||||
PUSH DE
|
||||
PUSH BC
|
||||
EXX
|
||||
LD B,0
|
||||
EXX
|
||||
LD C,0
|
||||
CVTX10: LD A,M
|
||||
OR A
|
||||
JR Z,TXEND
|
||||
LD BC,CVTX10
|
||||
PUSH BC
|
||||
CP "'"
|
||||
JR Z,TXDAT2
|
||||
INC HL
|
||||
LD BC,CTBL1
|
||||
CP 20H
|
||||
JR C,TXNUM
|
||||
CP '"'
|
||||
JR Z,TXSTR
|
||||
CP ":"
|
||||
JR Z,TX3AH
|
||||
CP 97H ;REM
|
||||
JR Z,TXDATA
|
||||
CP 94H ;DATA
|
||||
JR Z,TXDATA
|
||||
CP E4H ;PI
|
||||
JR Z,TXPAI
|
||||
CP FEH
|
||||
JR NC,TXRSV0
|
||||
CP 80H
|
||||
JP NC,TXRSV
|
||||
JP STRDE
|
||||
;
|
||||
TXEND: LD (DE),A
|
||||
POP BC
|
||||
POP DE
|
||||
POP HL
|
||||
RET
|
||||
;
|
||||
TXPAI: LD A,FFH
|
||||
JP STRDE
|
||||
;
|
||||
TXRSV0: LD BC,CTBL2
|
||||
JR NZ,+5
|
||||
LD BC,GTABL
|
||||
LD A,M
|
||||
INC HL
|
||||
JR TXRSV
|
||||
;
|
||||
TXDATA: CALL TXRSV
|
||||
RET Z
|
||||
TXDAT2: LD A,M
|
||||
CALL ENDCK0
|
||||
RET Z
|
||||
CALL STRDE
|
||||
LD A,M
|
||||
INC HL
|
||||
|
||||
CP '"'
|
||||
CALL Z,TXSTR2
|
||||
JR TXDAT2
|
||||
;
|
||||
TXSTR: CALL STRDE
|
||||
TXSTR2: LD A,M
|
||||
OR A
|
||||
RET Z
|
||||
INC HL
|
||||
CP '"'
|
||||
JR NZ,TXSTR
|
||||
JR STRDE
|
||||
;
|
||||
TX3AH: LD (DE),A
|
||||
LD A,M
|
||||
CP C2H ; ELSE
|
||||
RET Z
|
||||
CP "'"
|
||||
RET Z
|
||||
JR STRDE'
|
||||
;
|
||||
TXNUM: CP 15H
|
||||
JR Z,TXFLT
|
||||
CP 0BH
|
||||
JR NC,TXINT
|
||||
DEC A
|
||||
OR 30H
|
||||
JR STRDE
|
||||
;
|
||||
TXINT: PUSH DE
|
||||
LD E,M
|
||||
INC HL
|
||||
LD D,M
|
||||
INC HL
|
||||
PUSH HL
|
||||
CP 12H
|
||||
JR Z,TXINT2
|
||||
CP 0CH
|
||||
JR C,TXINT2
|
||||
JR NZ,TXHEX
|
||||
EX DE,HL
|
||||
INC HL
|
||||
INC HL
|
||||
LD E,M
|
||||
INC HL
|
||||
LD D,M
|
||||
TXINT2: EX DE,HL
|
||||
CALL ASCFIV
|
||||
LD BC,DE
|
||||
POP HL
|
||||
POP DE
|
||||
TXINT4: LD A,(BC)
|
||||
OR A
|
||||
RET Z
|
||||
CALL STRDE
|
||||
INC BC
|
||||
JR TXINT4
|
||||
;
|
||||
TXFLT: PUSH HL
|
||||
PUSH DE
|
||||
|
||||
CALL CVASFL
|
||||
LD BC,DE
|
||||
POP DE
|
||||
POP HL
|
||||
REP5 INC,HL
|
||||
INC HL
|
||||
INC HL
|
||||
INC HL
|
||||
INC HL
|
||||
INC HL
|
||||
ENDM
|
||||
JR TXINT4
|
||||
;
|
||||
TXRSV: CP 80H
|
||||
JR Z,TXRSV4
|
||||
EX AF,AF'
|
||||
TXRSV2: LD A,(BC)
|
||||
RLCA
|
||||
INC BC
|
||||
JR NC,TXRSV2
|
||||
EX AF,AF'
|
||||
DEC A
|
||||
JR TXRSV
|
||||
TXRSV4: LD A,(BC)
|
||||
BIT 7,A
|
||||
JR NZ,STRDES
|
||||
CP "."
|
||||
CALL NZ,STRDE
|
||||
INC BC
|
||||
JR TXRSV4
|
||||
;
|
||||
STRDES: AND 7FH
|
||||
STRDE: LD (DE),A
|
||||
OR A
|
||||
RET Z
|
||||
STRDE': INC DE
|
||||
EXX
|
||||
INC B
|
||||
EXX
|
||||
RET NZ
|
||||
XOR A
|
||||
LD (DE),A
|
||||
DEC DE
|
||||
EXX
|
||||
DEC B
|
||||
EXX
|
||||
RET
|
||||
;
|
||||
TXHEX: LD A,"$"
|
||||
EX AF,AF'
|
||||
EX DE,HL
|
||||
CALL HEXHL
|
||||
LD BC,DE
|
||||
POP HL
|
||||
POP DE
|
||||
EX AF,AF'
|
||||
CALL STRDE
|
||||
JR TXINT4
|
||||
;
|
||||
HEXHL: ENT
|
||||
|
||||
LD DE,DGBF12
|
||||
PUSH DE
|
||||
LD A,H
|
||||
CALL HEXACC
|
||||
LD A,L
|
||||
CALL HEXACC
|
||||
XOR A
|
||||
LD (DE),A
|
||||
POP DE
|
||||
LD B,3
|
||||
;
|
||||
ZRSUP: LD A,(DE)
|
||||
CP "0"
|
||||
RET NZ
|
||||
INC DE
|
||||
DJNZ ZRSUP
|
||||
RET
|
||||
;
|
||||
HEXACC: ENT
|
||||
PUSH AF
|
||||
RRCA
|
||||
RRCA
|
||||
RRCA
|
||||
RRCA
|
||||
AND 0FH
|
||||
CALL HEXAC2
|
||||
POP AF
|
||||
AND 0FH
|
||||
HEXAC2: ADD A,30H
|
||||
CP 3AH
|
||||
JR C,+4
|
||||
ADD A,7
|
||||
LD (DE),A
|
||||
INC DE
|
||||
RET
|
||||
;
|
||||
CVBCAS: ENT
|
||||
PUSH HL
|
||||
EX DE,HL
|
||||
SVC .DEASC
|
||||
RST 3
|
||||
DEFB .DEASC
|
||||
ENDM
|
||||
LD BC,DE
|
||||
EX DE,HL
|
||||
POP HL
|
||||
JP BCKSKP
|
||||
;
|
||||
END
|
||||
2038
software/asm/mz-xz009/EXPR.ASM
Normal file
2038
software/asm/mz-xz009/EXPR.ASM
Normal file
File diff suppressed because it is too large
Load Diff
1945
software/asm/mz-xz009/FLOAT.ASM
Normal file
1945
software/asm/mz-xz009/FLOAT.ASM
Normal file
File diff suppressed because it is too large
Load Diff
716
software/asm/mz-xz009/GRPH.ASM
Normal file
716
software/asm/mz-xz009/GRPH.ASM
Normal file
@@ -0,0 +1,716 @@
|
||||
; -----------------------------
|
||||
; MZ-800 BASIC Graphic command
|
||||
; FI:GRPH ver 1.0B 9.21.84
|
||||
; Programed by T.Miho
|
||||
; -----------------------------
|
||||
;
|
||||
INCLD MACRO
|
||||
;
|
||||
BITFU2: DEFB 0 ;Default W0/W1
|
||||
COL: ENT ;Color code
|
||||
DEFB 03H
|
||||
;
|
||||
;;;;;;;;;;;;;;;
|
||||
;
|
||||
; SET/RESET [c,w]x,y
|
||||
;
|
||||
SET: ENT
|
||||
DEFB F6H
|
||||
RESET: ENT
|
||||
XOR A
|
||||
PUSH AF
|
||||
CALL COORD0
|
||||
SVC .POSSV
|
||||
RST 3
|
||||
DEFB .POSSV
|
||||
ENDM
|
||||
POP AF ;SET/RESET
|
||||
PUSH HL
|
||||
EXX
|
||||
SVC .PSET
|
||||
RST 3
|
||||
DEFB .PSET
|
||||
ENDM
|
||||
POP HL
|
||||
RET
|
||||
;
|
||||
;;;;;;;;;;;;;;;;;;
|
||||
;
|
||||
; LINE/BLINE [c,w] x0,y0,x1,y1,.....
|
||||
;
|
||||
LINE: ENT
|
||||
DEFB F6H
|
||||
BLINE: ENT
|
||||
XOR A
|
||||
LD (LINE4+1),A
|
||||
CALL COORD0
|
||||
CALL HCH2CH
|
||||
LINE2: EXX
|
||||
PUSH HL ;YS
|
||||
PUSH DE ;XS
|
||||
EXX
|
||||
CALL COORD
|
||||
POP DE ;XS
|
||||
EX (SP),HL ;YS,Text
|
||||
EXX
|
||||
LINE4: LD A,0 ;LINE/BLINE
|
||||
SVC .LINE
|
||||
RST 3
|
||||
DEFB .LINE
|
||||
ENDM
|
||||
|
||||
POP HL
|
||||
TEST1 ","
|
||||
CALL TEST1
|
||||
DEFB ","
|
||||
ENDM
|
||||
JR Z,LINE2
|
||||
SVC .POSSV
|
||||
RST 3
|
||||
DEFB .POSSV
|
||||
ENDM
|
||||
RET
|
||||
SKP H
|
||||
|
||||
;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;
|
||||
; PATTERN [C,W] N,X$
|
||||
;
|
||||
PATTER: ENT
|
||||
CALL COLCON
|
||||
CALL IDEEXP
|
||||
XOR A
|
||||
BIT 7,D
|
||||
JR Z,GRDSP4
|
||||
PUSH HL
|
||||
LD H,A
|
||||
LD L,A
|
||||
SBC HL,DE
|
||||
EX DE,HL
|
||||
POP HL
|
||||
LD A,1
|
||||
GRDSP4: EX AF,AF'
|
||||
LD A,D
|
||||
OR A
|
||||
JR NZ,ER03A
|
||||
LD A,E
|
||||
PUSH AF
|
||||
EX AF,AF'
|
||||
PUSH AF
|
||||
CALL HCH2CH
|
||||
CALL STREXP
|
||||
POP AF
|
||||
LD C,A
|
||||
POP AF
|
||||
PUSH HL
|
||||
LD H,C
|
||||
SVC .PATTR
|
||||
RST 3
|
||||
DEFB .PATTR
|
||||
ENDM
|
||||
POP HL
|
||||
CALL ENDCHK
|
||||
JR NZ,PATTER
|
||||
RET
|
||||
SKP H
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;
|
||||
;
|
||||
; POSITION x,y
|
||||
;
|
||||
POSITI: ENT
|
||||
CALL COORD
|
||||
SVC .POSSV
|
||||
RST 3
|
||||
DEFB .POSSV
|
||||
ENDM
|
||||
RET
|
||||
;
|
||||
; Get X-Y coordinate
|
||||
;
|
||||
COORD0: CALL COLCON
|
||||
COORD: CALL COORD1 ;Get x,y coordinate
|
||||
PUSH DE
|
||||
TEST1 ','
|
||||
CALL TEST1
|
||||
DEFB ','
|
||||
ENDM
|
||||
CALL COORD1
|
||||
PUSH DE
|
||||
EXX
|
||||
POP HL
|
||||
POP DE
|
||||
EXX
|
||||
RET
|
||||
;
|
||||
;
|
||||
COORD1: CALL IDEEXP
|
||||
LD A,D ;0000 ... 3FFF
|
||||
ADD A,40H ;C000 ... FFFF
|
||||
RET P
|
||||
ER03A: JP ER03
|
||||
SKP H
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;
|
||||
; color palette
|
||||
;
|
||||
PALET: ENT
|
||||
CALL ENDCHK
|
||||
JP Z,ER01
|
||||
CALL PALRD
|
||||
CALL COLCK2
|
||||
AND 03H
|
||||
PUSH AF
|
||||
LD A,(PALBK)
|
||||
LD D,E
|
||||
SRL D
|
||||
SRL D
|
||||
CP D
|
||||
JP NZ,ER22
|
||||
TESTX ','
|
||||
CALL TESTX
|
||||
DEFB ','
|
||||
ENDM
|
||||
CALL PALRD
|
||||
LD B,A
|
||||
POP AF
|
||||
SVC .DPLST
|
||||
RST 3
|
||||
DEFB .DPLST
|
||||
ENDM
|
||||
RET
|
||||
;
|
||||
PALRD: CALL IBYTE
|
||||
CP 16 ;0 .. 15 check
|
||||
JR NC,ER03A
|
||||
RET
|
||||
;
|
||||
SKP H
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;
|
||||
;
|
||||
; BOX [c,w] xs,ys,xe,ye
|
||||
BOX: ENT
|
||||
CALL COORD0
|
||||
EXX
|
||||
PUSH HL ;YS
|
||||
PUSH DE ;XS
|
||||
EXX
|
||||
CALL HCH2CH
|
||||
CALL COORD
|
||||
EXX
|
||||
PUSH HL ;YE
|
||||
PUSH DE ;XE
|
||||
EXX
|
||||
CALL ENDCHK
|
||||
JR Z,BOX9
|
||||
CALL CH2CH
|
||||
CALL ENDCHK
|
||||
LD A,(COL)
|
||||
CALL NZ,COLCHK
|
||||
SCF
|
||||
BOX9: EXX
|
||||
POP DE
|
||||
POP HL
|
||||
EXX
|
||||
POP DE
|
||||
EX (SP),HL
|
||||
SVC .BOX
|
||||
RST 3
|
||||
DEFB .BOX
|
||||
ENDM
|
||||
POP HL
|
||||
RET
|
||||
SKP H
|
||||
|
||||
;
|
||||
;;;;;;;;;;;;;;;;;;
|
||||
;
|
||||
; COLOR c,w
|
||||
;
|
||||
COLOR: ENT
|
||||
CALL COLSUB
|
||||
LD A,(COL)
|
||||
SVC .DCOL
|
||||
RST 3
|
||||
DEFB .DCOL
|
||||
ENDM
|
||||
LD (SELCOL),A
|
||||
LD A,(PWMODE)
|
||||
LD (BITFU2),A
|
||||
CALL ENDZ
|
||||
RET
|
||||
;
|
||||
;;;;;;;;;;;;;;;;
|
||||
;
|
||||
; COLOR CONTROL EXP
|
||||
;
|
||||
COLCON: ENT
|
||||
TEST1 ","
|
||||
CALL TEST1
|
||||
DEFB ","
|
||||
ENDM
|
||||
TEST1 "["
|
||||
CALL TEST1
|
||||
DEFB "["
|
||||
ENDM
|
||||
JR NZ,COLCN1
|
||||
CALL COLSUB
|
||||
LD A,(COL)
|
||||
SVC .DGCOL
|
||||
RST 3
|
||||
DEFB .DGCOL
|
||||
ENDM
|
||||
TESTX "]"
|
||||
CALL TESTX
|
||||
DEFB "]"
|
||||
ENDM
|
||||
TEST1 ","
|
||||
CALL TEST1
|
||||
DEFB ","
|
||||
ENDM
|
||||
RET
|
||||
;
|
||||
COLCN1: LD A,(SELCOL)
|
||||
LD (COL),A
|
||||
SVC .DGCOL
|
||||
RST 3
|
||||
DEFB .DGCOL
|
||||
ENDM
|
||||
COLCN2: LD A,(BITFU2)
|
||||
LD (PWMODE),A
|
||||
RET
|
||||
;
|
||||
COLSUB: TEST1 ","
|
||||
CALL TEST1
|
||||
|
||||
DEFB ","
|
||||
ENDM
|
||||
JR Z,COLC8
|
||||
CALL COLCHK
|
||||
LD (COL),A
|
||||
TEST1 ','
|
||||
CALL TEST1
|
||||
DEFB ','
|
||||
ENDM
|
||||
JR NZ,COLCN2
|
||||
COLC9: CALL IBYTE
|
||||
CP 2
|
||||
JR NC,ER03B
|
||||
LD (PWMODE),A
|
||||
RET
|
||||
;
|
||||
COLC8: LD A,(SELCOL)
|
||||
LD (COL),A
|
||||
JR COLC9
|
||||
;
|
||||
COLCHK: ENT
|
||||
PUSH BC
|
||||
CALL IBYTE
|
||||
POP BC
|
||||
COLCK2: LD A,(CRTMD1)
|
||||
RRA
|
||||
JR C,CMD1
|
||||
RRA
|
||||
JR C,CMD2
|
||||
RRA
|
||||
JR C,CMD3
|
||||
CMD1: LD A,E
|
||||
CP 4
|
||||
JR NC,ER03B
|
||||
RET
|
||||
CMD2: LD A,E
|
||||
CP 16
|
||||
JR NC,ER03B
|
||||
RET
|
||||
CMD3: LD A,E
|
||||
CP 2
|
||||
RET C
|
||||
ER03B: JP ER03
|
||||
;
|
||||
SKP H
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;
|
||||
;
|
||||
;PAINT COMMAND
|
||||
;
|
||||
PAINT: ENT
|
||||
CALL COLCON
|
||||
CALL POSITI
|
||||
LD B,0
|
||||
LD DE,PAINTB
|
||||
PUSH DE
|
||||
CALL ENDCHK
|
||||
JR Z,PAINT3
|
||||
PAINT1: CALL CH2CH
|
||||
PUSH DE
|
||||
CALL COLCHK
|
||||
POP DE
|
||||
LD (DE),A
|
||||
INC DE
|
||||
INC B
|
||||
LD A,B
|
||||
CP 16
|
||||
JP Z,ER01
|
||||
CALL ENDCHK
|
||||
JR NZ,PAINT1
|
||||
PAINT2: EX (SP),HL ;data adrs
|
||||
PUSH HL
|
||||
LD HL,-527
|
||||
ADD HL,SP
|
||||
LD (PAIWED),HL
|
||||
POP HL
|
||||
SVC .PAINT
|
||||
RST 3
|
||||
DEFB .PAINT
|
||||
ENDM
|
||||
JP C,ER06
|
||||
POP HL
|
||||
RET
|
||||
;
|
||||
PAINT3: LD A,(COL)
|
||||
LD (DE),A
|
||||
INC B ; data count
|
||||
JR PAINT2
|
||||
PAINTB: DEFS 16
|
||||
SKP H
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;
|
||||
;
|
||||
;CIRCLE COMMAND
|
||||
;
|
||||
CIRCLE: ENT
|
||||
PUSH HL
|
||||
LD HL,0
|
||||
LD (CW.H+1),HL
|
||||
LD (CW.XS+1),HL
|
||||
LD (CW.YS+1),HL
|
||||
LD (CW.XE+1),HL
|
||||
LD (CW.YE+1),HL
|
||||
LD HL,KK
|
||||
CALL CLRFAC
|
||||
LD HL,FLT2PI
|
||||
LD DE,SK ;\<5C>mßám\l=2PAI
|
||||
CALL LDIR5
|
||||
POP HL
|
||||
;\s\ºl yÝ-Ä
|
||||
CALL COORD0
|
||||
SVC .POSSV
|
||||
RST 3
|
||||
DEFB .POSSV
|
||||
ENDM
|
||||
CALL HCH2CH
|
||||
CALL IDEEXP
|
||||
PUSH HL
|
||||
LD A,D
|
||||
AND C0H
|
||||
JP NZ,ER03
|
||||
EX DE,HL
|
||||
LD (CW.R+2),HL ;ÞÙZs
|
||||
LD (CW.XS+1),HL
|
||||
LD (CW.XE+1),HL
|
||||
LD HL,(INTFAC)
|
||||
LD DE,CIR.R
|
||||
CALL LDIR5
|
||||
POP HL
|
||||
CALL ENDCHK
|
||||
JP Z,CW
|
||||
CALL CH2CH
|
||||
TEST1 ','
|
||||
CALL TEST1
|
||||
DEFB ','
|
||||
ENDM
|
||||
JR Z,CIRCL2
|
||||
CALL HIRIT
|
||||
CALL ENDCHK
|
||||
JP Z,CW
|
||||
CALL CH2CH
|
||||
CIRCL2: TEST1 ','
|
||||
CALL TEST1
|
||||
DEFB ','
|
||||
ENDM
|
||||
JR Z,CIRCL8
|
||||
LD IX,CW.XS+1
|
||||
LD IY,KK
|
||||
CALL STX
|
||||
CALL ENDCHK
|
||||
JP Z,CW
|
||||
|
||||
CALL CH2CH
|
||||
CIRCL8: TEST1 ','
|
||||
CALL TEST1
|
||||
DEFB ','
|
||||
ENDM
|
||||
JR Z,CIRCL4
|
||||
LD IX,CW.XE+1
|
||||
LD IY,SK
|
||||
CALL STX
|
||||
CALL ENDCHK
|
||||
JP Z,CW
|
||||
CALL CH2CH
|
||||
CIRCL4: TESTX 'O'
|
||||
CALL TESTX
|
||||
DEFB 'O'
|
||||
ENDM
|
||||
SCF
|
||||
JR +3
|
||||
CW: XOR A
|
||||
PUSH HL
|
||||
PUSH AF
|
||||
LD HL,KK
|
||||
LD DE,SK
|
||||
CALL SUB
|
||||
CALL LDIR5
|
||||
LD A,(KK)
|
||||
OR A
|
||||
LD B,0
|
||||
JR Z,CW2 ;KK=SK
|
||||
LD HL,KK+1
|
||||
RES 7,M
|
||||
DEC HL ;HL:= ABS(KK-SK)
|
||||
LD DE,FLTPAI
|
||||
CALL CMP
|
||||
LD B,1
|
||||
JR C,CW2 ; ABS() < PI
|
||||
LD DE,FLT2PI
|
||||
CALL CMP
|
||||
LD B,2
|
||||
JR C,CW2 ; PI <= ABS() < 2*PI
|
||||
LD B,3 ;2*PI <= ABS()
|
||||
CW2: LD A,(SK+1)
|
||||
AND 80H
|
||||
OR B
|
||||
LD B,A
|
||||
POP AF ;CF='O'
|
||||
LD A,B
|
||||
EXX
|
||||
CW.XS: LD DE,0 ;Start X
|
||||
CW.YS: LD HL,0 ;Start Y
|
||||
CW.H: LD BC,0 ;HIRITU
|
||||
EXX
|
||||
CW.XE: LD DE,0 ;End X
|
||||
CW.YE: LD HL,0 ;End Y
|
||||
CW.R: LD IX,0 ;R
|
||||
SVC .CIRCL
|
||||
RST 3
|
||||
DEFB .CIRCL
|
||||
ENDM
|
||||
POP HL
|
||||
|
||||
OR A
|
||||
RET
|
||||
;
|
||||
HIRIT: CALL IDEEXP
|
||||
CALL PUSHR
|
||||
LD HL,(INTFAC)
|
||||
INC HL
|
||||
BIT 7,M
|
||||
JP NZ,ER03
|
||||
DEC HL
|
||||
LD DE,FLONE
|
||||
CALL CMP
|
||||
RET Z
|
||||
LD A,1
|
||||
JR C,HI
|
||||
LD HL,FLONE
|
||||
LD DE,CIRW3
|
||||
PUSH DE
|
||||
CALL LDIR5
|
||||
POP HL
|
||||
LD DE,(INTFAC)
|
||||
CALL DIV
|
||||
LD A,2
|
||||
HI: LD (CW.H+1),A
|
||||
LD DE,256DT
|
||||
CALL MUL
|
||||
LD DE,0.5DT
|
||||
CALL ADD
|
||||
CALL HLFLT
|
||||
LD A,L
|
||||
LD (CW.H+2),A
|
||||
BIT 0,H
|
||||
RET Z
|
||||
XOR A
|
||||
LD (CW.H+1),A
|
||||
RET
|
||||
;
|
||||
STX: PUSH IX
|
||||
PUSH IY
|
||||
CALL IDEEXP
|
||||
POP DE ;KK/SK
|
||||
POP IX
|
||||
PUSH HL
|
||||
PUSH IX
|
||||
LD HL,(INTFAC)
|
||||
CALL LDIR5
|
||||
LD HL,(INTFAC)
|
||||
LD DE,HL
|
||||
REP5 INC,DE
|
||||
INC DE
|
||||
INC DE
|
||||
INC DE
|
||||
INC DE
|
||||
INC DE
|
||||
ENDM
|
||||
CALL LDIR5
|
||||
CALL COS ;HL=(INTFAC)+5
|
||||
LD DE,CIR.R
|
||||
CALL MUL
|
||||
CALL STXSUB
|
||||
|
||||
LD HL,(INTFAC)
|
||||
CALL SIN
|
||||
LD DE,CIR.R
|
||||
CALL MUL
|
||||
CALL NEG
|
||||
CALL STXSUB
|
||||
POP IX
|
||||
POP HL
|
||||
RET
|
||||
;
|
||||
STXSUB: INC HL
|
||||
BIT 7,M
|
||||
PUSH AF
|
||||
RES 7,M
|
||||
DEC HL
|
||||
LD DE,0.5DT
|
||||
CALL ADD
|
||||
POP AF
|
||||
INC HL
|
||||
JR Z,+4
|
||||
SET 7,M
|
||||
DEC HL
|
||||
CALL HLFLT
|
||||
EX DE,HL
|
||||
POP HL ;RET ADRS
|
||||
EX (SP),HL ;Save coordinate
|
||||
LD M,E
|
||||
INC HL
|
||||
LD M,D
|
||||
INC HL
|
||||
INC HL
|
||||
EX (SP),HL
|
||||
JP (HL)
|
||||
;
|
||||
;
|
||||
;CIRCLE WORK AREA PART-2
|
||||
;
|
||||
CIR.R: DEFS 5
|
||||
;
|
||||
CIRW3: DEFS 5
|
||||
;
|
||||
256DT: DEF5 89,00,00,00,00
|
||||
DEFW 0089H
|
||||
DEFW 0000H
|
||||
DEFB 00H
|
||||
ENDM
|
||||
0.5DT: DEF5 80,00,00,A7,C6
|
||||
DEFW 0080H
|
||||
DEFW A700H
|
||||
DEFB C6H
|
||||
ENDM
|
||||
;
|
||||
KK: DEFS 5
|
||||
SK: DEFS 5
|
||||
;
|
||||
; SYMBOL command
|
||||
;
|
||||
DIRARE: EQU 27D0H
|
||||
;
|
||||
SMBOL: ENT
|
||||
|
||||
CALL COORD0 ;position load
|
||||
SVC .POSSV ;position input
|
||||
RST 3
|
||||
DEFB .POSSV
|
||||
ENDM
|
||||
CALL HCH2CH
|
||||
;string pointer load
|
||||
CALL STREXP
|
||||
;string zero check
|
||||
LD A,B
|
||||
OR A
|
||||
PUSH BC
|
||||
PUSH HL
|
||||
LD C,B
|
||||
LD B,0
|
||||
LD HL,DIRARE
|
||||
EX DE,HL
|
||||
JR Z,SMBL2
|
||||
LDIR ;string data xfer
|
||||
SMBL2: POP HL
|
||||
CALL HCH2CH
|
||||
CALL IBYTE ;yoko bairitsu
|
||||
LD A,D
|
||||
OR E
|
||||
JR Z,ERJP3 ;zero error
|
||||
PUSH DE
|
||||
CALL HCH2CH
|
||||
CALL IBYTE ;tate bairitsu
|
||||
LD A,D
|
||||
OR E
|
||||
ERJP3: JP Z,ER03 ;zero error
|
||||
LD A,E
|
||||
POP DE
|
||||
LD D,A
|
||||
CALL ENDCHK ;end check
|
||||
PUSH DE
|
||||
JR Z,SMBL1
|
||||
CALL HCH2CH
|
||||
CALL IBYTE ;angle load
|
||||
LD A,3
|
||||
CP E
|
||||
JP C,ER03
|
||||
LD A,E
|
||||
DEFB 06H
|
||||
SMBL1: XOR A
|
||||
POP DE
|
||||
POP BC
|
||||
LD C,A ;angle push
|
||||
LD A,B ;string length
|
||||
OR A
|
||||
RET Z ;zero return
|
||||
LD A,C ;angle pop
|
||||
PUSH HL
|
||||
EX DE,HL
|
||||
LD DE,DIRARE
|
||||
SVC .SYMBL
|
||||
RST 3
|
||||
DEFB .SYMBL
|
||||
ENDM
|
||||
POP HL
|
||||
|
||||
RET
|
||||
;
|
||||
SKP H
|
||||
|
||||
;
|
||||
;;;;;;;;;;;;;;
|
||||
;
|
||||
; HCOPY 1/2/3
|
||||
; CLS 1/2/3
|
||||
;
|
||||
HCOPY: ENT
|
||||
CALL ENDZ
|
||||
PUSH HL
|
||||
LD A,00H ;ASAHI modify
|
||||
SVC .HCPY
|
||||
RST 3
|
||||
DEFB .HCPY
|
||||
ENDM
|
||||
POP HL
|
||||
RET
|
||||
;
|
||||
CLS: ENT
|
||||
CALL ENDZ
|
||||
PUSH HL
|
||||
SVC .CLS
|
||||
RST 3
|
||||
DEFB .CLS
|
||||
ENDM
|
||||
POP HL
|
||||
RET
|
||||
;
|
||||
END
|
||||
910
software/asm/mz-xz009/H-CMT.ASM
Normal file
910
software/asm/mz-xz009/H-CMT.ASM
Normal file
@@ -0,0 +1,910 @@
|
||||
; -----------------------------
|
||||
; PLE-monitor CMT-driver
|
||||
; FI:M-CMT ver 0.1 6.05.84
|
||||
; -----------------------------
|
||||
;
|
||||
INCLD MACRO
|
||||
;
|
||||
$CMT: ENT
|
||||
DEFW $RS ;###diff Lx
|
||||
DEFM "CMT"
|
||||
DEFB 0
|
||||
DEFB 5FH ;Seq, W, R
|
||||
$CMTF2: DEFB C0H ;CMT, 1OPN
|
||||
DEFB 0
|
||||
DEFW CTINI ;INIT
|
||||
DEFW CTRINF ;RO
|
||||
DEFW CTWINF ;WO
|
||||
DEFW .RET ;START
|
||||
DEFW 256 ;Block/byte
|
||||
DEFW CTRDAT ;INP
|
||||
DEFW CTWDAT ;OUT
|
||||
DEFW 0 ;DELETE
|
||||
DEFW 0 ;WDIR
|
||||
DEFW ER59 ;FREE
|
||||
;
|
||||
CTINI: TEST1 "T" ; Change EOF process
|
||||
CALL TEST1
|
||||
DEFB "T"
|
||||
ENDM
|
||||
LD HL,$CMTF2
|
||||
SET ##EOFE,M ; Tape BASIC mode
|
||||
RET Z
|
||||
RES ##EOFE,M ; Disk BASIC mode
|
||||
OR A
|
||||
RET
|
||||
;
|
||||
CTWINF: CALL PUSHR
|
||||
LD DE,IBUFE
|
||||
LD A,M
|
||||
LD C,5
|
||||
CP 2 ; BTX 2 ==> 5
|
||||
JR Z,CTWF2
|
||||
LD C,4
|
||||
CP 3 ; BSD 3 ==> 4
|
||||
JR Z,CTWF2
|
||||
LD C,A
|
||||
;
|
||||
CTWF2: LD A,C
|
||||
LD (DE),A
|
||||
INC HL
|
||||
INC DE
|
||||
LD BC,17
|
||||
LDIR
|
||||
INC HL
|
||||
INC HL
|
||||
LD BC,6
|
||||
LDIR
|
||||
LD B,128-24
|
||||
CALL ?CLRDE
|
||||
LD HL,IBUFE
|
||||
|
||||
LD BC,128
|
||||
CALL SAVE1
|
||||
JR CTWD9
|
||||
;
|
||||
CTWDAT: CALL SAVE2
|
||||
;
|
||||
CTWD9: JP C,BREAKX ; break!
|
||||
RET ; ok!
|
||||
;-------------------------------
|
||||
;
|
||||
; read inf
|
||||
; ent HL:adrs
|
||||
;-------------------------------
|
||||
CTRINF: LD A,37H ; SCF
|
||||
LD (CTRDAT),A
|
||||
PUSH HL
|
||||
LD HL,IBUFE
|
||||
LD BC,128
|
||||
CALL LOAD1
|
||||
JR C,CTERR ; error or break
|
||||
LD DE,FINMES ; "Found"
|
||||
CALL FNMPRT ; ? file name
|
||||
POP DE
|
||||
LD A,(ZLOG)
|
||||
OR A ; ROPEN or LOAD?
|
||||
LD A,M
|
||||
JP NZ,CTRI1 ; R
|
||||
LD C,2 ; L BTX 5 ==> 2
|
||||
CP 5
|
||||
JR Z,CTRI2
|
||||
CTRI1: LD C,3 ; BSD 4 ==> 3
|
||||
CP 4
|
||||
JR Z,CTRI2
|
||||
LD C,A
|
||||
SUB 2
|
||||
CP 2
|
||||
JP C,ER61 ; file mode error!
|
||||
;
|
||||
CTRI2: LD A,C
|
||||
LD (DE),A
|
||||
INC HL
|
||||
INC DE
|
||||
LD BC,17
|
||||
LDIR
|
||||
XOR A
|
||||
LD B,2
|
||||
CALL ?CLRDE
|
||||
LD BC,6
|
||||
LDIR
|
||||
LD B,32-18-2-6
|
||||
JP ?CLRDE
|
||||
;----------------------------------
|
||||
;
|
||||
; read data
|
||||
; ent HL:adrs
|
||||
; BC:byte size
|
||||
;----------------------------------
|
||||
CTRDAT: XOR A ; XOR A / SCF
|
||||
JR NC,CTRD2
|
||||
LD A,AFH ;XOR A
|
||||
|
||||
LD (CTRDAT),A
|
||||
PUSH HL ; first time only
|
||||
LD HL,ELMD
|
||||
LD DE,LDNGMS ; "Loading"
|
||||
CALL FNMPRT ; ? file name
|
||||
POP HL
|
||||
;
|
||||
CTRD2: CALL LOAD2
|
||||
RET NC ; ok!
|
||||
;
|
||||
CTERR: CP 2
|
||||
JP NZ,BREAKX ; break!
|
||||
LD A,70+80H
|
||||
JP ERRORJ ; error!
|
||||
;-----------------------------------
|
||||
;
|
||||
; CMT SAVE
|
||||
;
|
||||
;-----------------------------------
|
||||
SAVE1: ENT ; Inf.
|
||||
LD A,CCH
|
||||
JR SAVE3
|
||||
;
|
||||
SAVE2: ENT ; Data
|
||||
LD A,53H
|
||||
;
|
||||
SAVE3: LD (SPSV+1),SP ;;;
|
||||
LD SP,IBUFE ;;;
|
||||
PUSH DE
|
||||
LD E,A
|
||||
LD D,D7H ; 'W'=Dreg.
|
||||
LD A,B
|
||||
OR C
|
||||
JR Z,RET1
|
||||
CALL CKSUM ; check sum set
|
||||
CALL MOTOR ; motor on
|
||||
JR C,WRI3 ; break!
|
||||
LD A,E
|
||||
CP CCH
|
||||
JR NZ,WRI2 ; write Data
|
||||
PUSH DE
|
||||
LD DE,WRTMES ; "Writing"
|
||||
CALL FNMPRT ; ? file name
|
||||
POP DE
|
||||
;
|
||||
WRI2: DI
|
||||
CALL GAP ; write gap
|
||||
CALL NC,WTAPE ; write Inf. or Data
|
||||
;
|
||||
WRI3: DI
|
||||
CALL MSTOP ; motor off
|
||||
;
|
||||
RET1: POP DE
|
||||
;
|
||||
SPSV: LD SP,0 ;xxx
|
||||
PUSH AF
|
||||
SVC .EI
|
||||
RST 3
|
||||
DEFB .EI
|
||||
ENDM
|
||||
|
||||
POP AF
|
||||
RET
|
||||
;--------------------------------
|
||||
;
|
||||
; CMT LOAD
|
||||
;
|
||||
;--------------------------------
|
||||
LOAD1: ENT ; Inf.
|
||||
LD A,CCH
|
||||
JR LOAD3
|
||||
;
|
||||
LOAD2: ENT ; Data
|
||||
LD A,53H
|
||||
LOAD3: LD (SPSV+1),SP ;;;
|
||||
LD SP,IBUFE ;;;
|
||||
PUSH DE
|
||||
LD D,D2H ; 'L'->Dreg
|
||||
LD E,A
|
||||
LD A,B
|
||||
OR C
|
||||
JR Z,RET1
|
||||
CALL MOTOR ; motor on
|
||||
DI
|
||||
CALL NC,TMARK ; read gap & tape mark
|
||||
CALL NC,RTAPE ; read Inf. or Data
|
||||
JR WRI3
|
||||
;-------------------------------------
|
||||
;
|
||||
; CMT VERIFY
|
||||
;
|
||||
;-------------------------------------
|
||||
CMTVRF: ENT ; Data
|
||||
PUSH HL
|
||||
LD DE,VFNGMS ; "Verifying"
|
||||
LD HL,ELMD
|
||||
CALL FNMPRT ; ? file name
|
||||
POP HL
|
||||
CALL LOAD?2
|
||||
RET NC ; ok!
|
||||
CP 2
|
||||
JP NZ,BREAKX ; break!
|
||||
LD A,3+80H
|
||||
JP ERRORJ ; error!
|
||||
;
|
||||
LOAD?2: ENT
|
||||
LD (SPSV+1),SP ;;;
|
||||
LD SP,IBUFE ;;;
|
||||
PUSH DE
|
||||
LD D,D2H
|
||||
LD E,53H
|
||||
LD A,B
|
||||
OR C
|
||||
JR Z,RET1
|
||||
CALL CKSUM ; check sum set
|
||||
CALL MOTOR ; motor on
|
||||
DI
|
||||
;
|
||||
CALL NC,TMARK ; read gap & tape mark
|
||||
CALL NC,TVRFY ; verify
|
||||
JR WRI3
|
||||
|
||||
;----------------------------------------
|
||||
; motor on
|
||||
; exit CF=0:ok
|
||||
; CF=1:break
|
||||
;----------------------------------------
|
||||
MOTOR: CALL PUSHR
|
||||
SVC .DI
|
||||
RST 3
|
||||
DEFB .DI
|
||||
ENDM
|
||||
LD A,F8H
|
||||
OUT (LSD0),A ; break set
|
||||
LD B,10
|
||||
;
|
||||
MOT1: IN A,(LSD2)
|
||||
AND 10H
|
||||
JR Z,MOT4
|
||||
;
|
||||
MOT2: LD B,FFH ; 2sec delay
|
||||
;
|
||||
MOT3: CALL DLY7 ; 7ms delay
|
||||
DJNZ MOT3 ; motor entry adjust
|
||||
XOR A ; CF=0
|
||||
RET
|
||||
;
|
||||
MOT4: LD A,6
|
||||
OUT (LSD3),A
|
||||
INC A
|
||||
OUT (LSD3),A
|
||||
DJNZ MOT1
|
||||
LD A,(CMTMSG)
|
||||
OR A
|
||||
JR NZ,MOT6
|
||||
SVC .CR2
|
||||
RST 3
|
||||
DEFB .CR2
|
||||
ENDM
|
||||
LD A,7FH ; Play mark
|
||||
SVC .CRT1X
|
||||
RST 3
|
||||
DEFB .CRT1X
|
||||
ENDM
|
||||
LD A," "
|
||||
SVC .CRT1C
|
||||
RST 3
|
||||
DEFB .CRT1C
|
||||
ENDM
|
||||
LD A,D
|
||||
CP D7H ; 'W'
|
||||
LD DE,RECMES ; "RECORD."
|
||||
JR Z,MOT5 ; write
|
||||
LD DE,PLYMES ; "PLAY"
|
||||
;
|
||||
MOT5: SVC .CRTMS
|
||||
RST 3
|
||||
DEFB .CRTMS
|
||||
ENDM
|
||||
SVC .CR2
|
||||
RST 3
|
||||
DEFB .CR2
|
||||
|
||||
ENDM
|
||||
;
|
||||
MOT6: IN A,(LSD2)
|
||||
AND 10H
|
||||
JR NZ,MOT2
|
||||
IN A,(LSD1)
|
||||
AND 80H
|
||||
JR NZ,MOT6
|
||||
SCF ; CF=1,break!
|
||||
RET
|
||||
;-----------------------------------
|
||||
;
|
||||
; write tape
|
||||
;
|
||||
; in BC=byte size
|
||||
; HL=adr.
|
||||
;
|
||||
; exit CF=0:ok.
|
||||
; CF=1:break
|
||||
;-----------------------------------
|
||||
WTAPE: PUSH DE
|
||||
PUSH BC
|
||||
PUSH HL
|
||||
LD D,2 ; repeat set
|
||||
LD A,F8H
|
||||
OUT (LSD0),A ; break set
|
||||
;
|
||||
WTAP1: LD A,M
|
||||
CALL WBYTE ; 1 byte write
|
||||
IN A,(LSD1)
|
||||
AND 80H ; break check
|
||||
SCF
|
||||
JR Z,RTP5 ; break!
|
||||
INC HL
|
||||
DEC BC
|
||||
LD A,B
|
||||
OR C
|
||||
JR NZ,WTAP1
|
||||
LD HL,(SUMDT) ; check sum write
|
||||
LD A,H
|
||||
CALL WBYTE ; high
|
||||
LD A,L
|
||||
CALL WBYTE ; low
|
||||
CALL LONG
|
||||
XOR A
|
||||
DEC D
|
||||
JR Z,RTP5 ; ok!
|
||||
LD B,A ; Breg=256
|
||||
;
|
||||
WTAP2: CALL SHORT ; write short 256
|
||||
DJNZ WTAP2
|
||||
POP HL
|
||||
POP BC
|
||||
PUSH BC
|
||||
PUSH HL
|
||||
JR WTAP1 ; repeat
|
||||
;-------------------------------------
|
||||
;
|
||||
; read tape
|
||||
;
|
||||
|
||||
; in BC=byte size
|
||||
; HL=load adr.
|
||||
;
|
||||
; exit CF=0:ok
|
||||
; CF=1,Acc=2:error
|
||||
; else:break
|
||||
;-------------------------------------
|
||||
RTAPE: PUSH DE
|
||||
PUSH BC
|
||||
PUSH HL
|
||||
LD D,2 ; repeat set
|
||||
;
|
||||
RTP1: CALL EDGE ; edge search:(49c)
|
||||
JR C,RTP5 ; break!:7c
|
||||
; reading point search
|
||||
CALL DLY3 ; 17c (1232c)
|
||||
IN A,(LSD2)
|
||||
AND 20H
|
||||
JR Z,RTP1 ; again
|
||||
LD HL,0
|
||||
LD (SUMDT),HL
|
||||
POP HL
|
||||
POP BC
|
||||
PUSH BC
|
||||
PUSH HL
|
||||
;
|
||||
RTP3: CALL RBYTE ; 1 byte read
|
||||
JR C,RTP5 ; error!
|
||||
LD M,A ; data->(mem.)
|
||||
INC HL
|
||||
DEC BC
|
||||
LD A,B
|
||||
OR C
|
||||
JR NZ,RTP3
|
||||
LD HL,(SUMDT) ; check sum
|
||||
CALL RBYTE ; high
|
||||
JR C,RTP5 ; error!
|
||||
CP H
|
||||
JR NZ,RTP6 ; error!
|
||||
CALL RBYTE ; low
|
||||
JR C,RTP5 ; error!
|
||||
CP L
|
||||
JR NZ,RTP6 ; error!
|
||||
;
|
||||
RTP4: XOR A
|
||||
;
|
||||
RTP5: POP HL
|
||||
POP BC
|
||||
POP DE
|
||||
RET
|
||||
;
|
||||
RTP6: DEC D
|
||||
JR NZ,RTP1 ; repeat
|
||||
;
|
||||
VFERR: LD A,2 ; error
|
||||
SCF
|
||||
JR RTP5
|
||||
;-------------------------------------
|
||||
;
|
||||
; verify tape
|
||||
|
||||
;
|
||||
; in BC=byte size
|
||||
; HL=adr.
|
||||
;
|
||||
; exit CF=0:ok
|
||||
; CF=1,Acc=2:error
|
||||
; else:break
|
||||
;-------------------------------------
|
||||
TVRFY: PUSH DE
|
||||
PUSH BC
|
||||
PUSH HL
|
||||
LD D,2 ; repeat set
|
||||
;
|
||||
TVF1: CALL EDGE ; edge search:(49c)
|
||||
JR C,RTP5 ; break!:7c
|
||||
; reading point search
|
||||
CALL DLY3 ; 17c (1232c)
|
||||
IN A,(LSD2)
|
||||
AND 20H
|
||||
JR Z,TVF1 ; again
|
||||
POP HL
|
||||
POP BC
|
||||
PUSH BC
|
||||
PUSH HL
|
||||
;
|
||||
TVF2: CALL RBYTE ; 1 byte read
|
||||
JR C,RTP5 ; error!
|
||||
CP M ; CP A.(mem.)
|
||||
JR NZ,VFERR ; verify error!
|
||||
INC HL
|
||||
DEC BC
|
||||
LD A,B
|
||||
OR C
|
||||
JR NZ,TVF2
|
||||
LD HL,(CSMDT) ; Check sum.
|
||||
CALL RBYTE ; high
|
||||
JR C,RTP5 ; error!
|
||||
CP H
|
||||
JR NZ,VFERR ; error!
|
||||
CALL RBYTE ; low
|
||||
JR C,RTP5 ; error!
|
||||
CP L
|
||||
JR NZ,VFERR ; error!
|
||||
DEC D
|
||||
JR NZ,TVF1 ; repeat
|
||||
JR RTP4 ; ok!
|
||||
;
|
||||
RECMES: DEFM 'RECORD.'
|
||||
|
||||
PLYMES: DEFM 'PLAY'
|
||||
DEFB 0
|
||||
;--------------------------------------
|
||||
;
|
||||
; file name print
|
||||
;--------------------------------------
|
||||
FNMPRT: LD A,(CMTMSG)
|
||||
OR A
|
||||
RET NZ
|
||||
SVC .CR2
|
||||
RST 3
|
||||
|
||||
DEFB .CR2
|
||||
ENDM
|
||||
SVC .CRTMS
|
||||
RST 3
|
||||
DEFB .CRTMS
|
||||
ENDM
|
||||
PUSH HL
|
||||
INC HL
|
||||
LD A,'"'
|
||||
SVC .CRT1C
|
||||
RST 3
|
||||
DEFB .CRT1C
|
||||
ENDM
|
||||
LD D,16
|
||||
;
|
||||
FNMLP: LD A,M
|
||||
CP 0DH
|
||||
JR Z,FNMLE
|
||||
SVC .CRT1C
|
||||
RST 3
|
||||
DEFB .CRT1C
|
||||
ENDM
|
||||
INC HL
|
||||
DEC D
|
||||
JR NZ,FNMLP
|
||||
;
|
||||
FNMLE: LD A,'"'
|
||||
SVC .CRT1C
|
||||
RST 3
|
||||
DEFB .CRT1C
|
||||
ENDM
|
||||
SVC .CR2
|
||||
RST 3
|
||||
DEFB .CR2
|
||||
ENDM
|
||||
POP HL
|
||||
RET
|
||||
;
|
||||
WRTMES: DEFM 'WRITING '
|
||||
|
||||
|
||||
DEFB 0
|
||||
FINMES: DEFM 'FOUND '
|
||||
|
||||
|
||||
DEFB 0
|
||||
LDNGMS: DEFM 'LOADING '
|
||||
|
||||
|
||||
DEFB 0
|
||||
VFNGMS: DEFM 'VERIFYING '
|
||||
|
||||
|
||||
DEFB 0
|
||||
;
|
||||
;
|
||||
;-----------------------------------------
|
||||
;
|
||||
; tape format
|
||||
;
|
||||
|
||||
; <LONG> <SHORT>
|
||||
; <460us><496us><240us> <264us>
|
||||
; b b b b b b
|
||||
; gxxxxxx° gxx° gxx° g
|
||||
; xxxxxt b hxxxxxxt hxxt hxxt
|
||||
; b b b b
|
||||
; b b b b
|
||||
; / / / / / /
|
||||
; ! ! Read point! ! Read point
|
||||
; ! 368us ! 368us
|
||||
; Read edge Read edge
|
||||
;
|
||||
;-----------------------------------------
|
||||
;
|
||||
; Information format : Data format
|
||||
; :
|
||||
; * gap : * gap
|
||||
; short 10 sec : short 5 sec
|
||||
; (22000) : (11000)
|
||||
; * tape mark : * tape mark
|
||||
; long 40 : long 20
|
||||
; short 40 : short 20
|
||||
; * long 1 : * long 1
|
||||
; * Information : * Data
|
||||
; block : block
|
||||
; (128 bytes) : (???? bytes)
|
||||
; * check sum : * check sum
|
||||
; (2 bytes) : (2 bytes)
|
||||
; * long 1 : * long 1
|
||||
; * short 256 : * short 256
|
||||
; * Information : * Data
|
||||
; block : block
|
||||
; (128 bytes) : (???? bytes)
|
||||
; * check sum : * check sum
|
||||
; (2 bytes) : (2 bytes)
|
||||
; * long 1 : * long 1
|
||||
;
|
||||
;-----------------------------------------
|
||||
;
|
||||
;
|
||||
; EDGE (tape data edge search)
|
||||
; (85c+111c)/4= 49 clock
|
||||
;
|
||||
; exit CF=0:ok
|
||||
; CF=1:break
|
||||
;
|
||||
EDGE: LD A,F8H
|
||||
OUT (LSD0),A ; break set
|
||||
NOP
|
||||
;
|
||||
EDG1: IN A,(LSD1)
|
||||
AND 81H ; shift & break
|
||||
JR NZ,EDG2
|
||||
SCF
|
||||
RET
|
||||
;
|
||||
EDG2: IN A,(LSD2) ; 11c
|
||||
AND 20H ; 7c
|
||||
JR NZ,EDG1 ; CSTR D5=0: 7c/12c
|
||||
;
|
||||
|
||||
EDG3: IN A,(LSD1) ; 11c
|
||||
AND 81H ; 7c
|
||||
JR NZ,EDG4 ; 7c/12c
|
||||
SCF
|
||||
RET
|
||||
;
|
||||
EDG4: IN A,(LSD2) ; 7c
|
||||
AND 20H ; 7c
|
||||
JR Z,EDG3 ; CSTR D5=1: 7c/12c
|
||||
RET ; 10c
|
||||
;--------------------------------------
|
||||
;
|
||||
; 1 byte read
|
||||
;
|
||||
; exit SUMDT=Store
|
||||
; CF=1:break
|
||||
; CF=0:data=Acc
|
||||
;--------------------------------------
|
||||
RBYTE: PUSH DE
|
||||
PUSH BC
|
||||
PUSH HL
|
||||
LD HL,0800H ; 8 repeat set
|
||||
;
|
||||
RBY1: CALL EDGE ; edge search:(49c)
|
||||
JP C,TM4 ; break!:7c
|
||||
; reading point search:17c(1232c)
|
||||
CALL DLY3 ; 17c (1232c)
|
||||
IN A,(LSD2) ; data read
|
||||
AND 20H ; CF=0
|
||||
JP Z,RBY2 ; again
|
||||
PUSH HL
|
||||
LD HL,(SUMDT) ; check sum set
|
||||
INC HL
|
||||
LD (SUMDT),HL
|
||||
POP HL
|
||||
SCF ; CF=1
|
||||
;
|
||||
RBY2: LD A,L
|
||||
RLA ; rotate left
|
||||
LD L,A
|
||||
DEC H
|
||||
JP NZ,RBY1 ; repeat
|
||||
CALL EDGE
|
||||
LD A,L
|
||||
JR TM4 ; ok!
|
||||
;-------------------------------------
|
||||
;
|
||||
; 1 byte write
|
||||
; in Acc=data
|
||||
;-------------------------------------
|
||||
WBYTE: PUSH BC
|
||||
LD B,8 ; 8 repeat set
|
||||
CALL LONG ; write long
|
||||
;
|
||||
WBY1: RLCA ; rotate left
|
||||
CALL C,LONG ; 'H' long
|
||||
CALL NC,SHORT ; 'L' short
|
||||
DEC B
|
||||
JP NZ,WBY1 ; repeat
|
||||
POP BC
|
||||
|
||||
RET
|
||||
;-------------------------------------
|
||||
;
|
||||
; tape mark read
|
||||
;
|
||||
; in E=CCH:Inf. long40,short40
|
||||
; else:Data long20,short20
|
||||
;
|
||||
; exit CF=0:ok
|
||||
; CF=1:break
|
||||
;
|
||||
;-------------------------------------
|
||||
TMARK: CALL GAPCK
|
||||
;
|
||||
PUSH DE
|
||||
PUSH BC
|
||||
PUSH HL
|
||||
LD HL,2828H ; H=40,L=40
|
||||
LD A,E
|
||||
CP CCH ;'L'
|
||||
JR Z,TM0
|
||||
LD HL,1414H ; H=20,L=20
|
||||
;
|
||||
TM0: LD (TMCNT),HL
|
||||
;
|
||||
TM1: LD HL,(TMCNT)
|
||||
;
|
||||
TM2: CALL EDGE ; edge search:(49c)
|
||||
JR C,TM4 ; break!:7c
|
||||
; reading point search:17c(1232c)
|
||||
CALL DLY3 ; 17c (1232c)
|
||||
IN A,(LSD2)
|
||||
AND 20H
|
||||
JR Z,TM1 ; again
|
||||
DEC H
|
||||
JR NZ,TM2
|
||||
;
|
||||
TM3: CALL EDGE ; edge search:(49c)
|
||||
JR C,TM4 ; break!:7c
|
||||
; reading point search:17c(1232c)
|
||||
CALL DLY3 ; 17c (1232c)
|
||||
IN A,(LSD2)
|
||||
AND 20H
|
||||
JR NZ,TM1 ; again
|
||||
DEC L
|
||||
JR NZ,TM3
|
||||
CALL EDGE
|
||||
;
|
||||
TM4: POP HL
|
||||
;
|
||||
TM5: POP BC
|
||||
POP DE
|
||||
RET
|
||||
;------------------------------------
|
||||
;
|
||||
; check sum set
|
||||
;
|
||||
; in BC=byte size
|
||||
; HL=adr.
|
||||
;
|
||||
|
||||
; exit SUMDT=store
|
||||
; CSMDT=store
|
||||
;------------------------------------
|
||||
CKSUM: PUSH DE
|
||||
PUSH BC
|
||||
PUSH HL
|
||||
LD DE,0
|
||||
;
|
||||
CKS1: LD A,B
|
||||
OR C
|
||||
JR NZ,CKS2
|
||||
EX DE,HL
|
||||
LD (SUMDT),HL
|
||||
LD (CSMDT),HL
|
||||
JR TM4 ; ret
|
||||
;
|
||||
CKS2: LD A,(HL)
|
||||
PUSH BC
|
||||
LD B,8 ; 8 bits
|
||||
;
|
||||
CKS3: RLCA ; rotate left
|
||||
JR NC,CKS4
|
||||
INC DE
|
||||
;
|
||||
CKS4: DJNZ CKS3
|
||||
POP BC
|
||||
INC HL
|
||||
DEC BC
|
||||
JR CKS1
|
||||
;--------------------------------------
|
||||
;
|
||||
; gap + tape mark
|
||||
;
|
||||
; in E=CCH:short gap (10 sec)
|
||||
; else:short GAP ( 5 sec)
|
||||
;--------------------------------------
|
||||
GAP: PUSH DE
|
||||
PUSH BC
|
||||
LD A,E
|
||||
LD BC,55F0H ; Inf. 22000(10 sec)
|
||||
LD DE,2828H ; short40,long40
|
||||
CP CCH ;'L'
|
||||
JP Z,GAP1
|
||||
LD BC,2AF8H ; Data 11000( 5 sec)
|
||||
LD DE,1414H ;short20,long20
|
||||
;
|
||||
GAP1: CALL SHORT ; write short
|
||||
DEC BC
|
||||
LD A,B
|
||||
OR C
|
||||
JR NZ,GAP1
|
||||
;
|
||||
GAP2: CALL LONG ; write long
|
||||
DEC D
|
||||
JR NZ,GAP2
|
||||
;
|
||||
GAP3: CALL SHORT ; write short
|
||||
DEC E
|
||||
JR NZ,GAP3
|
||||
CALL LONG
|
||||
|
||||
JR TM5
|
||||
;-----------------------------------------
|
||||
;
|
||||
; GAP check
|
||||
; (long100 search)
|
||||
;-----------------------------------------
|
||||
GAPCK: PUSH DE
|
||||
PUSH BC
|
||||
PUSH HL
|
||||
;
|
||||
GAPCK1: LD H,100 ; 100 repeat set
|
||||
;
|
||||
GAPCK2: CALL EDGE ; edge search:(49c)
|
||||
JR C,TM4 ; error!:7c
|
||||
CALL DLY3 ; reading point search:17c(1232c)
|
||||
IN A,(LSD2)
|
||||
AND 20H
|
||||
JR NZ,GAPCK1 ; again
|
||||
DEC H
|
||||
JR NZ,GAPCK2
|
||||
JR TM4
|
||||
;----------------------------------------
|
||||
;
|
||||
; SHORT AND LONG PULSE FOR 1 BIT WRITE
|
||||
;----------------------------------------
|
||||
SHORT: PUSH AF ; 11c
|
||||
LD A,03H ; 7c
|
||||
OUT (LSD3),A ; 11c
|
||||
CALL DLY1 ; 17c (408c)
|
||||
CALL DLY1 ; 17c (408c)
|
||||
LD A,02H ; 7c
|
||||
OUT (LSD3),A ; 11c
|
||||
CALL DLY1 ; 17c (408c)
|
||||
CALL DLY1 ; 17c (408c)
|
||||
POP AF ; 10c
|
||||
RET ; 10c
|
||||
;
|
||||
;
|
||||
LONG: PUSH AF ; 11c
|
||||
LD A,03H ; 7c
|
||||
OUT (LSD3),A ; 11c
|
||||
CALL DLY4 ; 17c (1704c)
|
||||
LD A,02H ; 7c
|
||||
OUT (LSD3),A ; 11c
|
||||
CALL DLY4 ; 17c (1704c)
|
||||
POP AF ; 10c
|
||||
RET ; 10c
|
||||
;----------------------------------------
|
||||
;
|
||||
; MOTOR STOP
|
||||
;----------------------------------------
|
||||
MSTOP: PUSH AF
|
||||
PUSH BC
|
||||
PUSH DE
|
||||
LD B,10
|
||||
;
|
||||
MST1: IN A,(LSD2) ; motor check
|
||||
AND 10H
|
||||
JR Z,MST3 ; ok
|
||||
LD A,06H ; motor off
|
||||
|
||||
OUT (LSD3),A
|
||||
INC A
|
||||
OUT (LSD3),A
|
||||
DJNZ MST1
|
||||
;
|
||||
MST3: POP DE
|
||||
POP BC
|
||||
POP AF
|
||||
RET
|
||||
;-------------------------------------------
|
||||
;
|
||||
; 7.046 ms delay ... 24989c
|
||||
;-------------------------------------------
|
||||
DLY7: ENT
|
||||
PUSH BC ; 11c
|
||||
LD B,20 ; 7c
|
||||
;
|
||||
DLY.7: CALL DLY3 ; 17*19+17 (23332c)
|
||||
CALL DLY0 ; 17*19+17 ( 226c)
|
||||
DJNZ DLY.7 ; 13*19+8
|
||||
POP BC ; 10c
|
||||
RET ; 10c
|
||||
;-------------------------------------------
|
||||
;
|
||||
; 14 clock delay
|
||||
;-------------------------------------------
|
||||
DLY0: NOP ; 4c
|
||||
RET ; 10c
|
||||
;-------------------------------------------
|
||||
;
|
||||
; 347.4 us delay ... 1232c
|
||||
;-------------------------------------------
|
||||
DLY3: NOP ; 4c
|
||||
LD A,76 ; 7c
|
||||
;
|
||||
DLYA: DEC A ; 4*XX+4
|
||||
JR NZ,DLYA ; 12*XX+7
|
||||
RET ; 10c
|
||||
;-----------------------------------
|
||||
;
|
||||
; Delay for short.
|
||||
; 115.0 us delay ... 408c
|
||||
;-----------------------------------
|
||||
DLY1: ENT
|
||||
LD A,24 ; 7c
|
||||
JR DLYA ; 12c
|
||||
;-----------------------------------
|
||||
;
|
||||
; Delay for long.
|
||||
; 480.4 us delay ... 1704c
|
||||
;-----------------------------------
|
||||
DLY4: ENT
|
||||
LD A,105 ; 7c
|
||||
JR DLYA ; 12c
|
||||
;
|
||||
END
|
||||
74
software/asm/mz-xz009/H-FD.ASM
Normal file
74
software/asm/mz-xz009/H-FD.ASM
Normal file
@@ -0,0 +1,74 @@
|
||||
; ----------------------------
|
||||
; PL-monitor FD dummy
|
||||
; FI:DMY-FD ver 003 3.28.84
|
||||
; ----------------------------
|
||||
;
|
||||
INCLD MACRO
|
||||
;
|
||||
;
|
||||
$FD: ENT
|
||||
DEFW $QD
|
||||
DEFB 0
|
||||
;
|
||||
CLX: ENT ;dummy routines
|
||||
DUST: ENT
|
||||
FLOFF: ENT
|
||||
FREEX: ENT
|
||||
INREC: ENT
|
||||
INX1B: ENT
|
||||
LD.DIR: ENT
|
||||
LDX: ENT
|
||||
LOPX: ENT
|
||||
OPX: ENT
|
||||
PRREC: ENT
|
||||
PRX1B: ENT
|
||||
RECST: ENT
|
||||
SVX: ENT
|
||||
OR A
|
||||
RET
|
||||
;
|
||||
FLOCK: ENT
|
||||
FSWAP: ENT
|
||||
JP ER59
|
||||
SKP H
|
||||
|
||||
;
|
||||
; SVC .DELET
|
||||
;
|
||||
FDELET: ENT
|
||||
CALL PUSHR
|
||||
LD HL,(ZDELT) ;SEQ
|
||||
LD A,L
|
||||
OR H
|
||||
JR Z,FREN2
|
||||
PUSH HL
|
||||
SVC .LOPEN
|
||||
RST 3
|
||||
DEFB .LOPEN
|
||||
ENDM
|
||||
LD A,2
|
||||
LD (ZRWX),A
|
||||
CALL ?OPEND
|
||||
JR FREN4
|
||||
;
|
||||
; SVC .RENAM
|
||||
;
|
||||
FRENAM: ENT
|
||||
CALL PUSHR
|
||||
LD HL,(ZWDIR)
|
||||
LD A,L
|
||||
OR H
|
||||
FREN2: JP Z,ER59
|
||||
PUSH HL
|
||||
SVC .LOPEN
|
||||
RST 3
|
||||
DEFB .LOPEN
|
||||
ENDM
|
||||
LD HL,ELMD
|
||||
CALL SETFNAM
|
||||
LD HL,200H
|
||||
LD (ZLOG),HL
|
||||
CALL SERFLW ;check already exist
|
||||
FREN4: POP IX
|
||||
JP IOCALL
|
||||
END
|
||||
1410
software/asm/mz-xz009/H-QD.ASM
Normal file
1410
software/asm/mz-xz009/H-QD.ASM
Normal file
File diff suppressed because it is too large
Load Diff
39
software/asm/mz-xz009/HLA
Normal file
39
software/asm/mz-xz009/HLA
Normal file
@@ -0,0 +1,39 @@
|
||||
# This viminfo file was generated by Vim 8.0.
|
||||
# You may edit it if you are careful!
|
||||
|
||||
# Viminfo version
|
||||
|1,4
|
||||
|
||||
# Value of 'encoding' when this file was written
|
||||
*encoding=utf-8
|
||||
|
||||
|
||||
# hlsearch on (H) or off (h):
|
||||
~h
|
||||
# Command Line History (newest to oldest):
|
||||
:q
|
||||
|2,0,1616620341,,"q"
|
||||
|
||||
# Search String History (newest to oldest):
|
||||
|
||||
# Expression History (newest to oldest):
|
||||
|
||||
# Input Line History (newest to oldest):
|
||||
|
||||
# Debug Line History (newest to oldest):
|
||||
|
||||
# Registers:
|
||||
|
||||
# File marks:
|
||||
'0 1 0 /srv/dvlp/Projects/dev/github/tranZPUter/software/asm/MZ-XZ009/fgrep
|
||||
|4,48,1,0,1616620341,"/srv/dvlp/Projects/dev/github/tranZPUter/software/asm/MZ-XZ009/fgrep"
|
||||
|
||||
# Jumplist (newest first):
|
||||
-' 1 0 /srv/dvlp/Projects/dev/github/tranZPUter/software/asm/MZ-XZ009/fgrep
|
||||
|4,39,1,0,1616620341,"/srv/dvlp/Projects/dev/github/tranZPUter/software/asm/MZ-XZ009/fgrep"
|
||||
|
||||
# History of marks within files (newest to oldest):
|
||||
|
||||
> /srv/dvlp/Projects/dev/github/tranZPUter/software/asm/MZ-XZ009/fgrep
|
||||
* 1616620340 0
|
||||
" 1 0
|
||||
1643
software/asm/mz-xz009/IOCS.ASM
Normal file
1643
software/asm/mz-xz009/IOCS.ASM
Normal file
File diff suppressed because it is too large
Load Diff
83
software/asm/mz-xz009/MACRO.ASM
Normal file
83
software/asm/mz-xz009/MACRO.ASM
Normal file
@@ -0,0 +1,83 @@
|
||||
; ---------------------------
|
||||
; MZ-800 Macro define
|
||||
; FI:MACRO ver 1.0 7.26.84
|
||||
; ---------------------------
|
||||
;
|
||||
;
|
||||
MACRO SVC
|
||||
RST 3
|
||||
DEFB @1
|
||||
ENDM
|
||||
;
|
||||
MACRO IOCALL
|
||||
LD IX,(@1)
|
||||
CALL IOCALL
|
||||
ENDM
|
||||
;
|
||||
MACRO TEST1
|
||||
CALL TEST1
|
||||
DEFB @1
|
||||
ENDM
|
||||
;
|
||||
MACRO TESTX
|
||||
CALL TESTX
|
||||
DEFB @1
|
||||
ENDM
|
||||
;
|
||||
MACRO DEF8
|
||||
DEFW @2@1H
|
||||
DEFW @4@3H
|
||||
DEFW @6@5H
|
||||
DEFW @8@7H
|
||||
ENDM
|
||||
;
|
||||
MACRO DEF5
|
||||
DEFW @2@1H
|
||||
DEFW @4@3H
|
||||
DEFB @5H
|
||||
ENDM
|
||||
;
|
||||
MACRO REP5
|
||||
@1 @2
|
||||
@1 @2
|
||||
@1 @2
|
||||
@1 @2
|
||||
@1 @2
|
||||
ENDM
|
||||
;
|
||||
MACRO SVCT
|
||||
@2: EQU @1H
|
||||
DEFW @3
|
||||
ENDM
|
||||
END
|
||||
|
||||
MACRO TBL
|
||||
DEFM "@1"
|
||||
DEFB "@2"+80H
|
||||
ENDM
|
||||
|
||||
MACRO ENTRY
|
||||
ER@1: ENT
|
||||
LD A,@1
|
||||
DEFB 21H
|
||||
ENDM
|
||||
|
||||
MACRO FKEY
|
||||
DEFB FNB@1E-FNB@1S
|
||||
FNB@1S: DEFM @2
|
||||
IFD @3
|
||||
DEFB @3
|
||||
ENDIF
|
||||
FNB@1E: DEFS FNB@1S+15-FNB@1E
|
||||
ENDM
|
||||
|
||||
MACRO ERENT
|
||||
ER@1: ENT
|
||||
IFD @2
|
||||
LD A,@1+80H
|
||||
ENDIF
|
||||
IFU @2
|
||||
LD A,@1
|
||||
ENDIF
|
||||
DEFB 21H
|
||||
ENDM
|
||||
439
software/asm/mz-xz009/MON-EMM.ASM
Normal file
439
software/asm/mz-xz009/MON-EMM.ASM
Normal file
@@ -0,0 +1,439 @@
|
||||
; ----------------------------
|
||||
; Lx-monitor EMM driver
|
||||
; FI:MON-EMM ver 005 4.27.84
|
||||
; ----------------------------
|
||||
;
|
||||
INCLD MACRO
|
||||
;
|
||||
$RAM: ENT
|
||||
DEFW $FD
|
||||
DEFM "RAM"
|
||||
DEFB 0
|
||||
DEFB 5FH
|
||||
DEFB 20H ;1WOPN
|
||||
DEFB 32 ;Max dir
|
||||
DEFW EMINI ;INIT
|
||||
DEFW EMRINF
|
||||
DEFW EMWINF
|
||||
DEFW EMON
|
||||
DEFW 1024
|
||||
DEFW EMRDAT
|
||||
DEFW EMWDAT
|
||||
DEFW EMDEL
|
||||
DEFW EMWDIR
|
||||
DEFW EMFRKB
|
||||
;
|
||||
EMFRKB: CALL EMFRB
|
||||
LD C,H
|
||||
LD B,0 ;/256
|
||||
SRL C ;/512
|
||||
SRL C ;/1024
|
||||
OR A
|
||||
RET
|
||||
;
|
||||
EMFRB: PUSH DE
|
||||
LD HL,0 ;free area(bytes)
|
||||
CALL EMLD2 ;max
|
||||
PUSH DE
|
||||
INC HL
|
||||
INC HL
|
||||
CALL EMLD2 ;use
|
||||
POP HL
|
||||
SBC HL,DE
|
||||
JP C,ER41 ;I/O ERR
|
||||
POP DE
|
||||
RET
|
||||
;
|
||||
;
|
||||
EMCLR: LD DE,10H
|
||||
EMSETU: LD HL,2
|
||||
CALL EMSV2 ;Set used mem
|
||||
EX DE,HL
|
||||
LD DE,0
|
||||
JP EMSV2 ;File end mark
|
||||
SKP H
|
||||
|
||||
;
|
||||
EMINI: RET C
|
||||
LD A,(EMFLG)
|
||||
OR A
|
||||
JP Z,ER50
|
||||
CALL OKYN
|
||||
TEST1 ","
|
||||
CALL TEST1
|
||||
DEFB ","
|
||||
ENDM
|
||||
PUSH HL
|
||||
CALL EMCLR
|
||||
POP HL
|
||||
TEST1 0
|
||||
CALL TEST1
|
||||
DEFB 0
|
||||
ENDM
|
||||
RET Z ;INIT "EM:"
|
||||
SVC .DEASC ;INIT "EM:$hhhh"
|
||||
RST 3
|
||||
DEFB .DEASC
|
||||
ENDM
|
||||
EMINI2: LD HL,0
|
||||
DI
|
||||
LD B,1
|
||||
LD A,D
|
||||
AND FCH
|
||||
CP FCH
|
||||
LD HL,FFFFH
|
||||
JR Z,EMINI3 ;if >=FC00 then FFFF
|
||||
LD B,3
|
||||
LD A,D
|
||||
OR A
|
||||
LD HL,20H
|
||||
JR NZ,+3 ;if <=00FF then 0020
|
||||
EMINI3: EX DE,HL
|
||||
LD A,B
|
||||
LD (EMFLG),A
|
||||
LD HL,0
|
||||
CALL EMSV2 ;Set max mem
|
||||
CALL PBCCLR
|
||||
EI
|
||||
RET
|
||||
SKP H
|
||||
|
||||
;
|
||||
; EMM power on routine
|
||||
;
|
||||
EMMPWR: ENT
|
||||
LD HL,8
|
||||
LD B,L
|
||||
LD C,0
|
||||
EMPWR2: CALL EMLD1
|
||||
SUB L
|
||||
OR C
|
||||
LD C,A
|
||||
LD A,L
|
||||
CALL EMSV1
|
||||
INC L
|
||||
DJNZ EMPWR2
|
||||
LD A,C
|
||||
OR A
|
||||
JR NZ,EMPWR4
|
||||
LD HL,0 ;already initialized
|
||||
CALL EMLD2
|
||||
LD A,2
|
||||
INC D
|
||||
JR Z,+3
|
||||
INC A
|
||||
LD (EMFLG),A
|
||||
JP PBCCLR
|
||||
EMPWR4: CALL EMCLR
|
||||
LD HL,0 ;check EMM installed?
|
||||
LD A,5AH
|
||||
CALL EMSV1
|
||||
CALL EMLD1
|
||||
SUB 5AH
|
||||
LD DE,C000H ;Initial set 48KB
|
||||
JR Z,EMINI2
|
||||
XOR A
|
||||
LD (EMFLG),A
|
||||
RET
|
||||
SKP H
|
||||
|
||||
;
|
||||
; Dir search start
|
||||
;
|
||||
EMON: LD A,(EMFLG)
|
||||
OR A
|
||||
JP Z,ER50
|
||||
LD HL,10H
|
||||
LD (EMPTR),HL
|
||||
RET
|
||||
;
|
||||
; Read inf
|
||||
; ent HL:adrs
|
||||
;
|
||||
EMRINF: LD BC,HL
|
||||
LD HL,(EMPTR)
|
||||
CALL EMLD2
|
||||
LD A,D
|
||||
OR E
|
||||
SCF
|
||||
RET Z
|
||||
INC HL
|
||||
INC HL
|
||||
PUSH HL
|
||||
ADD HL,DE
|
||||
JP C,ER41 ;I/O ERR
|
||||
LD (EMPTR),HL
|
||||
POP HL
|
||||
INC HL
|
||||
INC HL
|
||||
INC HL
|
||||
LD DE,BC
|
||||
LD BC,32-2
|
||||
CALL EMLDD
|
||||
LD BC,32+2
|
||||
ADD HL,BC
|
||||
EX DE,HL
|
||||
LD M,E ;Save data area adrs
|
||||
INC HL
|
||||
LD M,D
|
||||
OR A
|
||||
RET
|
||||
;
|
||||
; Read data
|
||||
; ent HL:buffer adrs
|
||||
; BC:byte size
|
||||
;
|
||||
EMRDAT: EX DE,HL
|
||||
LD L,(IY+30)
|
||||
LD H,(IY+31)
|
||||
INC HL
|
||||
INC HL
|
||||
INC HL
|
||||
CALL EMLDD
|
||||
LD (IY+30),L
|
||||
LD (IY+31),H
|
||||
OR A
|
||||
RET
|
||||
SKP H
|
||||
|
||||
;
|
||||
; Write file
|
||||
; HL:inf adrs
|
||||
;
|
||||
EMWINF: PUSH AF
|
||||
CALL SERFLW
|
||||
PUSH HL
|
||||
LD HL,2
|
||||
CALL EMLD2
|
||||
LD (EMWP0),DE
|
||||
PUSH DE
|
||||
LD HL,64+7
|
||||
ADD HL,DE
|
||||
CALL EMFRE? ;Check file space
|
||||
POP DE
|
||||
INC DE
|
||||
INC DE
|
||||
POP HL ;inf adrs
|
||||
LD BC,64
|
||||
POP AF
|
||||
CALL EMSVB
|
||||
LD (EMWP1),DE
|
||||
RET
|
||||
SKP H
|
||||
|
||||
;
|
||||
; Write data
|
||||
; HL:data adrs
|
||||
; BC:data bytes
|
||||
; A0:close flag
|
||||
;
|
||||
;
|
||||
EMWDAT: PUSH AF
|
||||
PUSH HL
|
||||
PUSH BC
|
||||
LD HL,(EMWP1)
|
||||
INC BC
|
||||
INC BC
|
||||
INC BC
|
||||
ADD HL,BC
|
||||
CALL EMFRE?
|
||||
POP BC
|
||||
POP HL
|
||||
LD DE,(EMWP1)
|
||||
POP AF
|
||||
PUSH AF
|
||||
OR 01H ;data block
|
||||
CALL EMSVB
|
||||
LD (EMWP1),DE
|
||||
POP AF
|
||||
BIT 2,A ;close ?
|
||||
RET Z ;no
|
||||
PUSH DE ;yes
|
||||
CALL EMSETU
|
||||
POP HL
|
||||
LD DE,(EMWP0)
|
||||
DEC HL
|
||||
DEC HL
|
||||
OR A
|
||||
SBC HL,DE
|
||||
EX DE,HL
|
||||
JP EMSV2
|
||||
;
|
||||
;
|
||||
EMFRE?: JR C,ER53A
|
||||
PUSH HL
|
||||
LD HL,0
|
||||
CALL EMLD2
|
||||
OR A
|
||||
POP HL
|
||||
SBC HL,DE
|
||||
RET C
|
||||
ER53A: JP ER53 ;No file pace
|
||||
SKP H
|
||||
|
||||
;
|
||||
; delete file
|
||||
;
|
||||
EMDEL: LD HL,(ELMD30)
|
||||
LD DE,-64-5
|
||||
ADD HL,DE ;HL:=move destination
|
||||
CALL EMLD2 ;DE:=delete size - 2
|
||||
EX DE,HL ;DE:=move destination
|
||||
ADD HL,DE
|
||||
INC HL
|
||||
INC HL ;HL:=move source
|
||||
PUSH DE
|
||||
PUSH HL
|
||||
LD HL,2
|
||||
CALL EMLD2
|
||||
EX DE,HL ;HL:=last use
|
||||
POP DE ;DE:=move source
|
||||
PUSH DE
|
||||
OR A
|
||||
SBC HL,DE
|
||||
INC HL
|
||||
INC HL
|
||||
LD BC,HL ;BC:=move bytes
|
||||
POP HL ;HL:=move source
|
||||
POP DE ;DE:=move destination
|
||||
CALL EMLDIR
|
||||
DEC DE
|
||||
DEC DE ;DE:=new last-use
|
||||
LD HL,2
|
||||
JP EMSV2
|
||||
;
|
||||
; write dir
|
||||
;
|
||||
EMWDIR: LD HL,(ELMD30)
|
||||
LD DE,-64
|
||||
ADD HL,DE
|
||||
EX DE,HL
|
||||
LD HL,ELMD
|
||||
LD BC,32
|
||||
JP EMSVD
|
||||
SKP H
|
||||
|
||||
;
|
||||
EM.P0: EQU EAH
|
||||
EM.P1: EQU EBH
|
||||
;
|
||||
; EMM 1 Byte Write
|
||||
; ent A: data
|
||||
; HL:EMM adrs
|
||||
;
|
||||
EMSV1: ENT
|
||||
PUSH BC
|
||||
LD C,EM.P1
|
||||
LD B,H
|
||||
OUT (C),L
|
||||
OUT (EM.P0),A
|
||||
POP BC
|
||||
OR A
|
||||
RET
|
||||
;
|
||||
; EMM 1 Byte Read
|
||||
; ent HL:EMM adrs
|
||||
; ext A: dat
|
||||
;
|
||||
EMLD1: ENT
|
||||
PUSH BC
|
||||
LD C,EM.P1
|
||||
LD B,H
|
||||
OUT (C),L
|
||||
IN A,(EM.P0)
|
||||
POP BC
|
||||
OR A
|
||||
RET
|
||||
;
|
||||
; EMM 2 Byte Write
|
||||
; ent DE:data
|
||||
; HL:EMM adrs
|
||||
;
|
||||
EMSV2: ENT
|
||||
LD A,E
|
||||
CALL EMSV1
|
||||
INC HL
|
||||
LD A,D
|
||||
CALL EMSV1
|
||||
DEC HL
|
||||
RET
|
||||
;
|
||||
; EMM 2 Byte Read
|
||||
; ent HL:EMM adrs
|
||||
; DE:data
|
||||
;
|
||||
EMLD2: ENT
|
||||
CALL EMLD1
|
||||
LD E,A
|
||||
INC HL
|
||||
CALL EMLD1
|
||||
LD D,A
|
||||
DEC HL
|
||||
RET
|
||||
SKP H
|
||||
|
||||
;
|
||||
; EMM write block
|
||||
; ent HL :data Top
|
||||
; DE :EMM Adrs
|
||||
; BC :byte Size
|
||||
; A :block flag
|
||||
;
|
||||
EMSVB: EX DE,HL
|
||||
CALL EMSV1
|
||||
INC HL
|
||||
LD A,C
|
||||
CALL EMSV1
|
||||
INC HL
|
||||
LD A,B
|
||||
CALL EMSV1
|
||||
INC HL
|
||||
EX DE,HL
|
||||
EMSVD: ENT
|
||||
EX DE,HL
|
||||
EMSVE: LD A,(DE)
|
||||
CALL EMSV1
|
||||
INC HL
|
||||
INC DE
|
||||
DEC BC
|
||||
LD A,B
|
||||
OR C
|
||||
JR NZ,EMSVE
|
||||
EX DE,HL
|
||||
RET
|
||||
;
|
||||
; EMM BC Byte Read
|
||||
; ent DE :Store Top
|
||||
; HL :EMM Adrs
|
||||
; BC :Byte Size
|
||||
;
|
||||
EMLDD: ENT
|
||||
CALL EMLD1
|
||||
LD (DE),A
|
||||
INC HL
|
||||
INC DE
|
||||
DEC BC
|
||||
LD A,B
|
||||
OR C
|
||||
RET Z
|
||||
JR EMLDD
|
||||
;
|
||||
; EMM BC Byte LDIR
|
||||
; ent HL :EMM source top
|
||||
; DE :EMM destination top
|
||||
; BC :Byte Size
|
||||
;
|
||||
EMLDIR: ENT
|
||||
CALL EMLD1 ;EMM (HL) Data => Acc
|
||||
EX DE,HL
|
||||
CALL EMSV1 ;Acc => (DE) EMM
|
||||
EX DE,HL
|
||||
INC HL
|
||||
INC DE
|
||||
DEC BC
|
||||
LD A,B
|
||||
|
||||
OR C
|
||||
RET Z ;End
|
||||
JR EMLDIR
|
||||
END
|
||||
2983
software/asm/mz-xz009/MON-GRPH.ASM
Normal file
2983
software/asm/mz-xz009/MON-GRPH.ASM
Normal file
File diff suppressed because it is too large
Load Diff
1535
software/asm/mz-xz009/MON-IOCS.ASM
Normal file
1535
software/asm/mz-xz009/MON-IOCS.ASM
Normal file
File diff suppressed because it is too large
Load Diff
1067
software/asm/mz-xz009/MON-PSG.ASM
Normal file
1067
software/asm/mz-xz009/MON-PSG.ASM
Normal file
File diff suppressed because it is too large
Load Diff
469
software/asm/mz-xz009/MON-RS.ASM
Normal file
469
software/asm/mz-xz009/MON-RS.ASM
Normal file
@@ -0,0 +1,469 @@
|
||||
; ----------------------------
|
||||
; MZ-800 RS-232C driver
|
||||
; FI:MON-RS ver 001 8.02.84
|
||||
; ----------------------------
|
||||
;
|
||||
INCLD MACRO
|
||||
RSYS: EQU 1 ;0 700,1500
|
||||
; 1 800
|
||||
IF RSYS
|
||||
RMCH: EQU 3
|
||||
ENDIF
|
||||
;
|
||||
IF RSYS-1
|
||||
RMCH: EQU 1
|
||||
ENDIF
|
||||
;
|
||||
;
|
||||
$RS: ENT
|
||||
DEFW $RAM
|
||||
DEFM "RS"
|
||||
DEFW 0
|
||||
DEFB 8FH ;Streem, O1C, I1C, W, R
|
||||
DEFB RMCH ;ch.
|
||||
DEFB 0
|
||||
DEFW RSINI ;INIT
|
||||
DEFW RSRO ;ROPEN
|
||||
DEFW RSWO ;WOPEN
|
||||
DEFW RSCL ;CLOSE
|
||||
DEFW RSKL ;KILL
|
||||
DEFW RSINP ;INP1C
|
||||
DEFW RSOUT ;OUT1C
|
||||
DEFW .RET ;POS
|
||||
;
|
||||
RSINI: RET C
|
||||
PUSH IY
|
||||
CALL SETIY
|
||||
CALL RSINT0
|
||||
CALL RSPARM
|
||||
JR RETIY
|
||||
;
|
||||
RSINT0: SVC .DEASC
|
||||
RST 3
|
||||
DEFB .DEASC
|
||||
ENDM
|
||||
LD (IY+#MONIT),E
|
||||
TEST1 ","
|
||||
CALL TEST1
|
||||
DEFB ","
|
||||
ENDM
|
||||
JP NZ,ER03
|
||||
SVC .DEASC
|
||||
RST 3
|
||||
DEFB .DEASC
|
||||
ENDM
|
||||
LD (IY+#INIT),E
|
||||
TEST1 0
|
||||
CALL TEST1
|
||||
DEFB 0
|
||||
ENDM
|
||||
RET Z
|
||||
|
||||
TEST1 ","
|
||||
CALL TEST1
|
||||
DEFB ","
|
||||
ENDM
|
||||
JP NZ,ER03
|
||||
SVC .DEASC
|
||||
RST 3
|
||||
DEFB .DEASC
|
||||
ENDM
|
||||
LD (IY+#CRLF),E
|
||||
RET
|
||||
SKP H
|
||||
|
||||
;
|
||||
RSRO:
|
||||
RSWO: PUSH IY
|
||||
CALL SETIY
|
||||
LD A,(IY+#STAT)
|
||||
INC (IY+#STAT)
|
||||
OR A
|
||||
CALL Z,RSOPEN
|
||||
JR RETIY
|
||||
;
|
||||
;
|
||||
RSCL:
|
||||
RSKL: PUSH IY
|
||||
CALL SETIY
|
||||
DEC (IY+#STAT)
|
||||
LD A,(IY+#STAT)
|
||||
OR A
|
||||
CALL Z,RCLOSE
|
||||
JR RETIY2
|
||||
;
|
||||
;
|
||||
;
|
||||
RSINP: PUSH IY
|
||||
CALL SETIY
|
||||
CALL RSINP0
|
||||
JP C,IOERR
|
||||
CP (IY+#CRLF)
|
||||
JR NZ,+4
|
||||
LD A,0DH
|
||||
RETIY2: OR A
|
||||
RETIY: POP IY
|
||||
RET
|
||||
;
|
||||
RSINP0: BIT 6,(IY+#INIT)
|
||||
JP Z,GET1C
|
||||
LD IX,GET1C
|
||||
LD HL,IY
|
||||
LD DE,#JISR
|
||||
ADD HL,DE
|
||||
JP JISR
|
||||
;
|
||||
RSOUT: PUSH IY
|
||||
CALL SETIY
|
||||
CP 0DH
|
||||
JR NZ,+5
|
||||
LD A,(IY+#CRLF)
|
||||
CALL RSOUT0
|
||||
JR RETIY
|
||||
;
|
||||
RSOUT0: BIT 6,(IY+#INIT)
|
||||
JP Z,PUT1C
|
||||
LD IX,PUT1C
|
||||
LD HL,IY
|
||||
LD DE,#JISX
|
||||
ADD HL,DE
|
||||
LD DE,(DISPX)
|
||||
JP JISX
|
||||
SKP H
|
||||
|
||||
;
|
||||
SETIY: PUSH AF
|
||||
PUSH DE
|
||||
LD A,(ZCH)
|
||||
INC A
|
||||
LD IY,$A-TBLN
|
||||
LD DE,TBLN
|
||||
SETIY2: ADD IY,DE
|
||||
DEC A
|
||||
JR NZ,SETIY2
|
||||
LD C,(IY+0)
|
||||
POP DE
|
||||
POP AF
|
||||
RET
|
||||
;
|
||||
;
|
||||
;*** PORT ADDRESS EQU ***
|
||||
;
|
||||
CHADT: EQU B0H
|
||||
CHACT: EQU B1H
|
||||
CHBDT: EQU B2H
|
||||
CHBCT: EQU B3H
|
||||
;
|
||||
;
|
||||
CHCDT: EQU D0H
|
||||
CHCCT: EQU D1H
|
||||
CHDDT: EQU D2H
|
||||
CHDCT: EQU D3H
|
||||
;
|
||||
#CRLF: EQU -8
|
||||
#JISX: EQU -7
|
||||
#JISR: EQU -5
|
||||
#MONIT: EQU -3
|
||||
#INIT: EQU -2
|
||||
#STAT: EQU -1
|
||||
SKP H
|
||||
|
||||
;
|
||||
;
|
||||
DEFS 1 ;CR or LF
|
||||
DEFS 2 ;for JISX
|
||||
DEFS 2 ;for JISR
|
||||
DEFS 1 ;monitor
|
||||
DEFS 1 ;init code
|
||||
DEFS 1 ;status
|
||||
$A: DEFB CHACT ;0
|
||||
DEFB CHADT ;1
|
||||
DEFS 1 ;2 Mask Pattern
|
||||
DEFW 1010H ;3,4
|
||||
DEFW 4004H ;5,6 WR4
|
||||
DEFW C003H ;7,8 WR3
|
||||
DEFW 6005H ;9,10 WR5
|
||||
DEFB 30H
|
||||
DEFB 3
|
||||
;
|
||||
;
|
||||
DEFS 8
|
||||
$B: DEFB CHBCT
|
||||
DEFB CHBDT
|
||||
DEFS 1
|
||||
DEFW 1010H
|
||||
DEFW 4004H
|
||||
DEFW C003H
|
||||
DEFW 6005H
|
||||
DEFB 30H
|
||||
DEFB 3
|
||||
;
|
||||
;
|
||||
IF RSYS
|
||||
DEFS 8
|
||||
$C: DEFB CHCCT ;0
|
||||
DEFB CHCDT ;1
|
||||
DEFS 1 ;2 Mask Pattern
|
||||
DEFW 1010H ;3,4
|
||||
DEFW 4004H ;5,6 WR4
|
||||
DEFW C003H ;7,8 WR3
|
||||
DEFW 6005H ;9,10 WR5
|
||||
DEFB 30H
|
||||
DEFB 3
|
||||
;
|
||||
;
|
||||
DEFS 8
|
||||
$D: DEFB CHDCT
|
||||
DEFB CHDDT
|
||||
DEFS 1
|
||||
DEFW 1010H
|
||||
DEFW 4004H
|
||||
DEFW C003H
|
||||
DEFW 6005H
|
||||
DEFB 30H
|
||||
DEFB 3
|
||||
ENDIF
|
||||
;
|
||||
TBLN: EQU $B-$A
|
||||
;
|
||||
SKP H
|
||||
|
||||
;
|
||||
;
|
||||
; Break Check
|
||||
;
|
||||
BRK: CALL BRKCHK
|
||||
RET NZ
|
||||
JP BREAKZ
|
||||
;
|
||||
; sio parameter set
|
||||
;
|
||||
;
|
||||
;
|
||||
RSPARM:
|
||||
LD A,18H ;channel reset
|
||||
OUT (C),A
|
||||
LD A,30H ;err reset
|
||||
OUT (C),A
|
||||
LD A,(IY+#INIT) ;inital bit
|
||||
AND 0CH ;stop bit
|
||||
JR NZ,RSP0
|
||||
SET 2,(IY+#INIT) ;1 bit/chr
|
||||
RSP0: LD A,(IY+#INIT) ;initial bit
|
||||
LD B,A ;B=init code
|
||||
AND 0FH ;mask
|
||||
OR 40H ;clock rate *16
|
||||
LD (IY+6),A ;wr4
|
||||
LD A,B
|
||||
AND 80H ;rx disable d7 bit/chr
|
||||
OR 40H
|
||||
LD (IY+8),A ;wr3
|
||||
RRA
|
||||
AND 7FH ;dtroff
|
||||
OR 0AH ;tx enable rtson dtroff
|
||||
LD (IY+10),A ;wr5
|
||||
LD A,B
|
||||
OR 7FH
|
||||
LD (IY+2),A ;bit mask
|
||||
CALL RSSUB
|
||||
RSTBUF:
|
||||
IN A,(C)
|
||||
RRCA
|
||||
RET NC
|
||||
DEC C
|
||||
IN A,(C)
|
||||
INC C
|
||||
LD A,1
|
||||
OUT (C),A
|
||||
IN A,(C)
|
||||
AND 70H
|
||||
JR Z,RSTBUF
|
||||
RET
|
||||
;
|
||||
;
|
||||
;
|
||||
;
|
||||
; SIO close
|
||||
;
|
||||
;
|
||||
RCLOSE: RES 0,(IY+8) ;rx disable
|
||||
RES 7,(IY+10) ;rdy off
|
||||
|
||||
LD (IY+#STAT),0
|
||||
RSSUB: LD B,10
|
||||
PUSH IY
|
||||
POP HL
|
||||
LD DE,3
|
||||
ADD HL,DE
|
||||
OTIR
|
||||
RET
|
||||
;
|
||||
;
|
||||
; SIO open
|
||||
;
|
||||
;
|
||||
RSOPEN: LD A,30H
|
||||
OUT (C),A ;err reset
|
||||
RET
|
||||
SKP H
|
||||
|
||||
;
|
||||
;
|
||||
; in IY=channel data
|
||||
; C=channel control port
|
||||
;
|
||||
;
|
||||
;
|
||||
RSEN: SET 0,(IY+8) ;wr3 RX enable
|
||||
LD A,13H
|
||||
OUT (C),A ;ext/int reset
|
||||
LD A,(IY+8) ;wr3
|
||||
OUT (C),A ;wr5
|
||||
LD A,35H ;err reset
|
||||
OUT (C),A
|
||||
LD A,(IY+10) ;wr5
|
||||
OR 88H ;dtr,rts on tx enable
|
||||
LD (IY+10),A ;wr5
|
||||
OUT (C),A
|
||||
RET
|
||||
;
|
||||
;
|
||||
RSDIS: LD A,3
|
||||
OUT (C),A
|
||||
RES 0,(IY+8) ;wr3 RX disenable
|
||||
LD A,(IY+8) ;wr3
|
||||
OUT (C),A
|
||||
;
|
||||
RDYOF: RES 7,(IY+10) ;wr5 dtr reset
|
||||
JR WR5OUT
|
||||
;
|
||||
;
|
||||
RTSON: SET 1,(IY+10) ;wr5 rts set
|
||||
JR WR5OUT
|
||||
;
|
||||
;
|
||||
RTSOFF: RES 1,(IY+10) ;wr5 rts reset
|
||||
JR WR5OUT
|
||||
;
|
||||
;
|
||||
RDYON: SET 7,(IY+10) ;wr5 dtr set
|
||||
WR5OUT: LD A,5
|
||||
OUT (C),A
|
||||
LD A,(IY+10) ;wr5
|
||||
OUT (C),A
|
||||
OR A
|
||||
RET
|
||||
SKP H
|
||||
|
||||
;
|
||||
;
|
||||
; Receive 1 char
|
||||
;
|
||||
;
|
||||
GET1C: CALL PUSHR
|
||||
LD C,(IY+0)
|
||||
GET1: CALL BRK
|
||||
CALL DRCKR
|
||||
JR C,GET1
|
||||
CALL RSEN
|
||||
CHIN: CALL BRK
|
||||
IN A,(C)
|
||||
RRCA
|
||||
JR NC,CHIN ;skip if no data
|
||||
DEC C
|
||||
IN A,(C) ;data input
|
||||
INC C
|
||||
AND (IY+2) ;mask
|
||||
PUSH AF
|
||||
LD A,1
|
||||
OUT (C),A
|
||||
IN A,(C)
|
||||
AND 70H
|
||||
JR NZ,RSER ;skip if err
|
||||
CALL RDYOF
|
||||
POP AF
|
||||
RET
|
||||
;
|
||||
;
|
||||
;
|
||||
RSER: LD B,A
|
||||
POP AF
|
||||
PUSH BC
|
||||
CALL RSPARM
|
||||
POP BC
|
||||
LD A,29 ;framing err
|
||||
RLC B
|
||||
RLC B
|
||||
RET C
|
||||
INC A ;overrun err
|
||||
RLC B
|
||||
RET C
|
||||
INC A ;parity err
|
||||
SCF
|
||||
RET
|
||||
SKP H
|
||||
|
||||
;
|
||||
;
|
||||
; Send 1 char
|
||||
;
|
||||
;
|
||||
PUT1C: CALL PUSHR
|
||||
LD C,(IY+0)
|
||||
LD D,A
|
||||
CALL RTSON
|
||||
PUT1: CALL BRK
|
||||
CALL DRCKS
|
||||
CALL NC,CTSCK
|
||||
JR C,PUT1
|
||||
IN A,(C)
|
||||
BIT 2,A ;tx buf empty ?
|
||||
JR Z,PUT1
|
||||
BIT 7,(IY+#MONIT) ;all chr send?
|
||||
JR Z,PUT2
|
||||
LD A,1
|
||||
OUT (C),A
|
||||
IN A,(C)
|
||||
RRCA
|
||||
JR NC,PUT1
|
||||
PUT2: DEC C
|
||||
OUT (C),D ;data out
|
||||
INC C
|
||||
BIT 6,(IY+#MONIT) ;rts on/off?
|
||||
JR Z,PUT3
|
||||
CALL RTSOFF
|
||||
PUT3: OR A
|
||||
RET
|
||||
;
|
||||
; DCD check
|
||||
;
|
||||
DRCKR: OR A
|
||||
BIT 0,(IY+#MONIT) ;moniter dr ?
|
||||
JR DRCK1
|
||||
;
|
||||
DRCKS: OR A ;carry clear
|
||||
BIT 1,(IY+#MONIT) ;moniter dr ?
|
||||
DRCK1: RET Z
|
||||
LD A,10H ;ext/int reset
|
||||
OUT (C),A
|
||||
IN A,(C)
|
||||
AND 8
|
||||
RET NZ ;cy=0
|
||||
SCF
|
||||
RET
|
||||
;
|
||||
; CTS check
|
||||
;
|
||||
CTSCK: OR A
|
||||
BIT 2,(IY+#MONIT) ;moniter cts ?
|
||||
RET Z
|
||||
LD A,10H
|
||||
OUT (C),A
|
||||
IN A,(C)
|
||||
AND 20H
|
||||
RET NZ
|
||||
SCF
|
||||
|
||||
RET
|
||||
;
|
||||
END
|
||||
3737
software/asm/mz-xz009/MON1.ASM
Normal file
3737
software/asm/mz-xz009/MON1.ASM
Normal file
File diff suppressed because it is too large
Load Diff
640
software/asm/mz-xz009/MON2.ASM
Normal file
640
software/asm/mz-xz009/MON2.ASM
Normal file
@@ -0,0 +1,640 @@
|
||||
; -------------------------
|
||||
; MZ-800 monitor Work area
|
||||
; FI:MON2 ver 1.0A 9.05.84
|
||||
; -------------------------
|
||||
;
|
||||
INCLD MACRO
|
||||
INCLD XCRTEQU
|
||||
;
|
||||
;
|
||||
; Interrupt vector
|
||||
;
|
||||
;
|
||||
ORG 0FF0H
|
||||
DEFS 12 ;interrupt reserve
|
||||
;
|
||||
ORG 0FFCH
|
||||
DEFW PSGINT ;PSG(timer) interrupt
|
||||
DEFW LPTINT ;Printer intrrupt
|
||||
;
|
||||
; Directry entry
|
||||
;
|
||||
ORG 1000H
|
||||
ELMD: ENT ;file mode
|
||||
DEFS 1
|
||||
ELMD1: ENT ;file name
|
||||
DEFS 17
|
||||
ELMD18: ENT ;protection, type
|
||||
DEFS 2
|
||||
ELMD20: ENT ;size
|
||||
DEFS 2
|
||||
ELMD22: ENT ;adrs
|
||||
DEFS 2
|
||||
ELMD24: ENT ;exec
|
||||
DEFS 2
|
||||
ELMD26: ENT
|
||||
DEFS 4
|
||||
ELMD30: ENT
|
||||
DEFS 2
|
||||
ELMD32: ENT
|
||||
DEFS 32
|
||||
;
|
||||
; LU table entry
|
||||
;
|
||||
ZTOP: ENT ;LU block top
|
||||
DEFW 2
|
||||
ZLOG: ENT ;LU#
|
||||
DEFB 0
|
||||
ZRWX: ENT ;1:R, 2:W, 3:X
|
||||
DEFB 0
|
||||
ZEQT: ENT ;Address of EQTBL
|
||||
DEFW 0
|
||||
ZCH: ENT ;CH#
|
||||
DEFB 0
|
||||
ZEOF: ENT ;EOF?
|
||||
DEFB 0
|
||||
ZWRK1: ENT ;Work 1
|
||||
DEFB 0
|
||||
ZWRK2: ENT ;Work 2
|
||||
DEFB 0
|
||||
;
|
||||
|
||||
SKP H
|
||||
|
||||
;
|
||||
; EQT table entry
|
||||
;
|
||||
ZNXT: ENT ;STRM SQR RND
|
||||
DEFW 0
|
||||
ZDEVNM: ENT ;-- device name --
|
||||
DEFS 4
|
||||
ZFLAG1: ENT ;----- flag 1 ----
|
||||
DEFB 1
|
||||
ZFLAG2: ENT ;----- flag 2 ----
|
||||
DEFB 0
|
||||
ZDIRMX: ENT ;---- max dir ----
|
||||
DEFB 0
|
||||
ZINIT: ENT ;--- initialize --
|
||||
DEFW 0
|
||||
ZRO: ENT ;ROPEN RDINF
|
||||
ZMAPS: ENT ; Map.start
|
||||
DEFW 0
|
||||
ZWO: ENT ;WOPEN WRFIL
|
||||
ZMAPB: ENT ; Map.bytes
|
||||
DEFW 0
|
||||
ZCL: ENT ;CLOSE
|
||||
ZSTRT: ENT ; START
|
||||
ZDIRS: ENT ; Dir.start
|
||||
DEFW 0
|
||||
ZKL: ENT ;KILL
|
||||
ZBLK: ENT ; - Block/byte -
|
||||
DEFW 0
|
||||
ZINP: ENT ;INP RDDAT BREAD
|
||||
DEFW 0
|
||||
ZOUT: ENT ;OUT WRDAT BWRIT
|
||||
DEFW 0
|
||||
ZPOS: ENT ;Position
|
||||
ZDELT: ENT ; DELETE
|
||||
DEFW 0
|
||||
ZWDIR: ENT ; WR DIR
|
||||
DEFW 0
|
||||
ZFREE: ENT ; - free bytes -
|
||||
DEFW 0
|
||||
;
|
||||
ZBYTES: EQU ZFREE+2-ZNXT ;Z-area bytes
|
||||
;
|
||||
DEFS 2
|
||||
;
|
||||
DCHAN: ENT ;default channel
|
||||
DEFS 1
|
||||
DDEV: ENT ;default device
|
||||
DEFS 2
|
||||
;
|
||||
;
|
||||
.$CRT: ENT
|
||||
DEFW $CRT
|
||||
.$LPT: ENT
|
||||
DEFW $LPT
|
||||
;
|
||||
SKP H
|
||||
|
||||
;
|
||||
; Work area pointers
|
||||
;
|
||||
TEXTST: ENT ;Text starat
|
||||
DEFS 2
|
||||
TEXTED: ENT
|
||||
POOL: ENT ;I/O work
|
||||
DEFS 2
|
||||
POOLED: ENT
|
||||
VARST: ENT ;Variable start
|
||||
DEFS 2
|
||||
STRST: ENT ;String start
|
||||
DEFS 2
|
||||
VARED: ENT ;Var & string end
|
||||
DEFS 2
|
||||
TMPEND: ENT ;Temporaly end
|
||||
DEFS 2
|
||||
INTFAC: ENT ;Initial FAC
|
||||
DEFS 2
|
||||
MEMLMT: ENT ;LIMIT command
|
||||
DEFS 2
|
||||
MEMMAX: ENT ;Last avairable memory
|
||||
DEFW FF00H
|
||||
;
|
||||
;
|
||||
; cursor / position work
|
||||
;
|
||||
;
|
||||
;
|
||||
CURXY: ENT ;cursor position
|
||||
CURX: ENT
|
||||
DEFB 0
|
||||
CURY: ENT
|
||||
DEFB 0
|
||||
POSADR: ENT ;text buf addr
|
||||
DEFW 2000H
|
||||
BITADR: ENT ;bitmap mem addr
|
||||
DEFW 8000H
|
||||
;
|
||||
POINTX: ENT ;Graphic x-coordinate
|
||||
DEFS 2
|
||||
POINTY: ENT ;Graphic y-coordinate
|
||||
DEFS 2
|
||||
;
|
||||
CURFLG: ENT ;0:off 1:on
|
||||
DEFB 0
|
||||
CURMAK: ENT ;cursor mark 0=normal
|
||||
DEFB 0 ; 1=sftlock
|
||||
; 2=graph
|
||||
SKP H
|
||||
|
||||
;
|
||||
; CRT/LPT work
|
||||
;
|
||||
CMTMSG: ENT ;if =0 disp cmt-msg
|
||||
DEFS 1
|
||||
INPFLG: ENT ;0=plot off 1=plot on
|
||||
DEFB 0
|
||||
DISPX: ENT ;0=MSG 1=MSGX
|
||||
DEFS 1
|
||||
FILOUT: ENT ;0=CRT 1=LPT
|
||||
DEFB 0
|
||||
PSEL: ENT ;Printer select
|
||||
DEFB 1
|
||||
PCRLF: ENT ;LPT CRLF CODE
|
||||
DEFB 0DH
|
||||
LPT.TM: ENT ;LPT wait time
|
||||
DEFB 14
|
||||
LPOSB: ENT ;LPT position
|
||||
DEFB 0
|
||||
PSMAL: ENT ;LPT small/capital
|
||||
DEFB 0
|
||||
PNMODE: ENT ;LPT mode
|
||||
DEFB 1 ; 1..text, 2..graph
|
||||
;
|
||||
;
|
||||
; crt dispmode work
|
||||
;
|
||||
;
|
||||
DMD: ENT ;disp mode 0 320 4 col
|
||||
DEFB 0 ; 2 320 16 col
|
||||
; 4 640 2 col
|
||||
; 6 640 4 col
|
||||
MEMOP: ENT ;option mem exit
|
||||
DEFB 0 ;0= off 1= on
|
||||
PWMODE: ENT ;graphic operation mode
|
||||
DEFB 0
|
||||
CMODE: ENT ;color mode
|
||||
DEFB 3
|
||||
CPLANE: ENT ;curent active plane
|
||||
DEFB 3
|
||||
MAXCF: ENT ;maximum plane data
|
||||
DEFB 4
|
||||
PMASK: ENT ;mask plane data
|
||||
DEFB FFH
|
||||
GMODE: ENT ;graphic color mode
|
||||
DEFB 3
|
||||
;
|
||||
DEFS 50H ;10A0 -- 10EF monitor stack
|
||||
;
|
||||
;
|
||||
;
|
||||
IBUFE: ENT ;CMT work
|
||||
DEFS 128
|
||||
;
|
||||
DEFS 34
|
||||
DEFB EFH ;FLSDT
|
||||
DEFS 2 ;STRFG, DPRNT
|
||||
TMCNT: ENT
|
||||
DEFS 2
|
||||
SUMDT: ENT
|
||||
|
||||
DEFS 2 ;SUMDT
|
||||
CSMDT: ENT
|
||||
DEFS 2 ;CSMDT
|
||||
DEFS 2 ;AMPM, TIMFG
|
||||
DEFB 1 ;SWRK
|
||||
TEMPW: ENT
|
||||
DEFB 4 ;TEMPW
|
||||
DEFB 5 ;ONTYO
|
||||
DEFS 3 ;OCTV, RATIO
|
||||
;
|
||||
KEYBM1: ENT
|
||||
DEFS 1
|
||||
KEYBUF: ENT
|
||||
DEFS 262
|
||||
KEY262: ENT
|
||||
DEFS 2
|
||||
KEY264: ENT
|
||||
DEFS 2
|
||||
KEY266: ENT
|
||||
DEFS 4
|
||||
;
|
||||
FUNBUF: ENT
|
||||
FKEY 1,"RUN ",0DH
|
||||
DEFB FNB1E-FNB1S
|
||||
FNB1S: DEFM "RUN "
|
||||
|
||||
IFD 0DH
|
||||
DEFB 0DH
|
||||
ENDIF
|
||||
FNB1E: DEFS FNB1S+15-FNB1E
|
||||
ENDM
|
||||
FKEY 2,"LIST "
|
||||
DEFB FNB2E-FNB2S
|
||||
FNB2S: DEFM "LIST "
|
||||
|
||||
IFD @3
|
||||
ENDIF
|
||||
FNB2E: DEFS FNB2S+15-FNB2E
|
||||
ENDM
|
||||
FKEY 3,"AUTO "
|
||||
DEFB FNB3E-FNB3S
|
||||
FNB3S: DEFM "AUTO "
|
||||
|
||||
IFD @3
|
||||
ENDIF
|
||||
FNB3E: DEFS FNB3S+15-FNB3E
|
||||
ENDM
|
||||
FKEY 4,"RENUM "
|
||||
DEFB FNB4E-FNB4S
|
||||
FNB4S: DEFM "RENUM "
|
||||
|
||||
|
||||
IFD @3
|
||||
ENDIF
|
||||
FNB4E: DEFS FNB4S+15-FNB4E
|
||||
ENDM
|
||||
FKEY 5,"COLOR " ;QD FD ->"DIR "
|
||||
DEFB FNB5E-FNB5S
|
||||
FNB5S: DEFM "COLOR "
|
||||
|
||||
IFD @3
|
||||
ENDIF
|
||||
FNB5E: DEFS FNB5S+15-FNB5E
|
||||
ENDM
|
||||
FKEY 6,"CHR$("
|
||||
DEFB FNB6E-FNB6S
|
||||
FNB6S: DEFM "CHR$("
|
||||
|
||||
IFD @3
|
||||
ENDIF
|
||||
FNB6E: DEFS FNB6S+15-FNB6E
|
||||
ENDM
|
||||
FKEY 7,"DEF KEY("
|
||||
DEFB FNB7E-FNB7S
|
||||
FNB7S: DEFM "DEF KEY("
|
||||
|
||||
IFD @3
|
||||
ENDIF
|
||||
FNB7E: DEFS FNB7S+15-FNB7E
|
||||
ENDM
|
||||
FKEY 8,"CONT"
|
||||
DEFB FNB8E-FNB8S
|
||||
FNB8S: DEFM "CONT"
|
||||
IFD @3
|
||||
ENDIF
|
||||
FNB8E: DEFS FNB8S+15-FNB8E
|
||||
ENDM
|
||||
FKEY 9,"SAVE "
|
||||
DEFB FNB9E-FNB9S
|
||||
FNB9S: DEFM "SAVE "
|
||||
|
||||
IFD @3
|
||||
ENDIF
|
||||
FNB9E: DEFS FNB9S+15-FNB9E
|
||||
ENDM
|
||||
FKEY 10,"LOAD "
|
||||
DEFB FNB10E-FNB10S
|
||||
FNB10S: DEFM "LOAD "
|
||||
|
||||
IFD @3
|
||||
ENDIF
|
||||
FNB10E: DEFS FNB10S+15-FNB10E
|
||||
ENDM
|
||||
;
|
||||
INBUFC: ENT ;INBUF counter
|
||||
DEFB 0
|
||||
INBUFL: ENT ;INBUF length
|
||||
DEFB 0
|
||||
INBUF: ENT ;pending key 16
|
||||
DEFS 16
|
||||
;
|
||||
LINLIM: ENT ;getline buffer limit
|
||||
|
||||
DEFB 255 ;const
|
||||
KEYDAT: ENT
|
||||
DEFB 0
|
||||
;
|
||||
; timer work
|
||||
;
|
||||
AMPM: ENT
|
||||
DEFB 0
|
||||
SECD: ENT
|
||||
DEFW 0
|
||||
;
|
||||
; scrool work
|
||||
;
|
||||
XS: ENT ;console X start const=0
|
||||
DEFB 0
|
||||
XE: ENT ;console X end
|
||||
DEFB 39
|
||||
CWIDTH: ENT ;console width
|
||||
DEFW 40 ;cwidth=xe+1
|
||||
CSIZE: ENT ;csize=cwidth*8
|
||||
DEFW 320
|
||||
YS: ENT ;console Y start
|
||||
DEFB 0
|
||||
YE: ENT ;console Y end
|
||||
DEFB 24
|
||||
YW: ENT ;console Y width
|
||||
DEFB 25 ;yw=ye-ys+1
|
||||
;
|
||||
; scrool custom data
|
||||
;
|
||||
SOF: ENT ;scrool offset
|
||||
DEFW 0
|
||||
SW: ENT ;scrool width
|
||||
DEFB 7DH ;sw = yw*5
|
||||
SSA: ENT ;scrool start
|
||||
DEFB 0 ;ssa = ys*5
|
||||
SEA: ENT ;scrool end
|
||||
DEFB 7DH ;sea =(ye+1)*5
|
||||
SSW: ENT ;scrool offset limit
|
||||
DEFW 3E8H ;ssw = sw *8
|
||||
;
|
||||
; crt work (basic used)
|
||||
;
|
||||
CRTMD1: ENT ;crt bit data
|
||||
DEFB 1
|
||||
CRTMD2: ENT ;crt mode no. data
|
||||
DEFB 1
|
||||
SELCOL: ENT ;default color
|
||||
DEFB 3
|
||||
PAIWED: ENT
|
||||
DEFW 0 ;paint stack end
|
||||
;
|
||||
;
|
||||
;
|
||||
; palette work
|
||||
;
|
||||
PALBK: ENT ;palette block number
|
||||
DEFB 0
|
||||
PALAD: ENT ;palette init addr
|
||||
DEFW PAL4T
|
||||
|
||||
PALTBL: ENT ;palette data table
|
||||
DEFS 4
|
||||
;
|
||||
;
|
||||
; palette init data table
|
||||
;
|
||||
PAL2T: ENT ;palette
|
||||
DEFB 00H ;PAL 0 black
|
||||
DEFB 1FH ;PAL 1 white
|
||||
DEFB 2FH ;PAL 2 white
|
||||
DEFB 3FH ;PAL 3 white
|
||||
;
|
||||
PAL4T: ENT ;palette
|
||||
DEFB 00H ;PAL 0 black
|
||||
DEFB 11H ;PAL 1 blue
|
||||
DEFB 22H ;PAL 2 red
|
||||
DEFB 3FH ;PAL 3 white
|
||||
;
|
||||
PAL16T: ENT ;palette
|
||||
DEFB 00H ;PAL 0 black
|
||||
DEFB 11H ;PAL 1 blue
|
||||
DEFB 22H ;PAL 2 red
|
||||
DEFB 33H ;PAL 3 purple
|
||||
;
|
||||
;
|
||||
; cursor init data table
|
||||
;
|
||||
CURDT1: ENT ;cursor normal
|
||||
DEFB FFH ;0
|
||||
DEFB FFH ;1
|
||||
DEFB FFH ;2
|
||||
DEFB FFH ;3
|
||||
DEFB FFH ;4
|
||||
DEFB FFH ;5
|
||||
DEFB FFH ;6
|
||||
DEFB FFH ;7
|
||||
;
|
||||
CURDT2: ENT ;cursor sftlock
|
||||
DEFB 7EH ;0
|
||||
DEFB FFH ;1
|
||||
DEFB FFH ;2
|
||||
DEFB FFH ;3
|
||||
DEFB FFH ;4
|
||||
DEFB FFH ;5
|
||||
DEFB FFH ;6
|
||||
DEFB 7EH ;7
|
||||
;
|
||||
CURDT3: ENT ;cursor graph
|
||||
DEFB 00H ;0
|
||||
DEFB 00H ;1
|
||||
DEFB 00H ;2
|
||||
DEFB 00H ;3
|
||||
DEFB 00H ;4
|
||||
DEFB 00H ;5
|
||||
DEFB 00H ;6
|
||||
DEFB FFH ;7
|
||||
;
|
||||
; screen management buffer
|
||||
;
|
||||
SCRNT0: ENT
|
||||
|
||||
DEFS 25
|
||||
SCRNTE: DEFB 0
|
||||
;
|
||||
;
|
||||
; emm work
|
||||
;
|
||||
;
|
||||
EMFLG: ENT
|
||||
DEFS 1
|
||||
EMPTR: ENT
|
||||
DEFS 2
|
||||
EMWP0: ENT
|
||||
DEFS 2
|
||||
EMWP1: ENT
|
||||
DEFS 2
|
||||
SKP H
|
||||
|
||||
; ------------------------------
|
||||
;
|
||||
; lpt work
|
||||
;
|
||||
; ------------------------------
|
||||
;
|
||||
WPULSE: DEFB 0
|
||||
WSTROB: DEFB 0
|
||||
PBCMAW: DEFW 3FF0H
|
||||
PBCN: ENT
|
||||
DEFW 0 ;
|
||||
PBCIP: DEFW C000H ;FIFO inp pointer
|
||||
PBCOP: DEFW C000H ;FIFO out pointer
|
||||
PBCTOP: DEFW C000H ;buffer top
|
||||
SPLFLG: DEFB 0 ;spool on/stop/off
|
||||
OUTIMF: DEFB 0 ;output image flag
|
||||
HPCOUN: DEFB 4 ;printer counter
|
||||
HERRF: ENT
|
||||
DEFB 0 ;ROM error flag
|
||||
;
|
||||
;
|
||||
;---------------------------------
|
||||
;
|
||||
;
|
||||
; code translation table
|
||||
;
|
||||
;---------------------------------
|
||||
;
|
||||
CTABLE: ENT
|
||||
DEFW CTABL1 ;change table address
|
||||
;
|
||||
;
|
||||
CTABL1: DEFB 39 ;change number
|
||||
;
|
||||
;
|
||||
DEFB 023H ;#
|
||||
DEFB 023H
|
||||
;
|
||||
DEFB 040H ;@
|
||||
DEFB 040H
|
||||
;
|
||||
DEFB 05BH ;[
|
||||
DEFB 05BH
|
||||
;
|
||||
DEFB 05CH ;\
|
||||
DEFB 05CH
|
||||
;
|
||||
DEFB 05DH ;]
|
||||
DEFB 05DH
|
||||
;
|
||||
DEFB 08BH ;^
|
||||
DEFB 05EH
|
||||
;
|
||||
DEFB 090H ;under_
|
||||
DEFB 05FH
|
||||
;
|
||||
DEFB 093H ;'
|
||||
DEFB 060H
|
||||
;
|
||||
DEFB 0A1H ;a
|
||||
|
||||
DEFB 061H
|
||||
;
|
||||
DEFB 09AH ;b
|
||||
DEFB 062H
|
||||
;
|
||||
DEFB 09FH ;c
|
||||
DEFB 063H
|
||||
;
|
||||
DEFB 09CH ;d
|
||||
DEFB 064H
|
||||
;
|
||||
DEFB 092H ;e
|
||||
DEFB 065H
|
||||
;
|
||||
DEFB 0AAH ;f
|
||||
DEFB 066H
|
||||
;
|
||||
DEFB 097H ;g
|
||||
DEFB 067H
|
||||
;
|
||||
DEFB 098H ;h
|
||||
DEFB 068H
|
||||
;
|
||||
DEFB 0A6H ;i
|
||||
DEFB 069H
|
||||
;
|
||||
DEFB 0AFH ;j
|
||||
DEFB 06AH
|
||||
;
|
||||
DEFB 0A9H ;k
|
||||
DEFB 06BH
|
||||
;
|
||||
DEFB 0B8H ;l
|
||||
DEFB 6CH
|
||||
;
|
||||
DEFB 0B3H ;m
|
||||
DEFB 6DH
|
||||
;
|
||||
DEFB 0B0H ;n
|
||||
DEFB 6EH
|
||||
;
|
||||
DEFB 0B7H ;o
|
||||
DEFB 6FH
|
||||
;
|
||||
DEFB 09EH ;p
|
||||
DEFB 70H
|
||||
;
|
||||
DEFB 0A0H ;q
|
||||
DEFB 71H
|
||||
;
|
||||
DEFB 09DH ;r
|
||||
DEFB 72H
|
||||
;
|
||||
DEFB 0A4H ;s
|
||||
DEFB 73H
|
||||
;
|
||||
DEFB 096H ;t
|
||||
DEFB 74H
|
||||
;
|
||||
DEFB 0A5H ;u
|
||||
|
||||
DEFB 75H
|
||||
;
|
||||
DEFB 0ABH ;v
|
||||
DEFB 76H
|
||||
;
|
||||
DEFB 0A3H ;w
|
||||
DEFB 77H
|
||||
;
|
||||
DEFB 09BH ;x
|
||||
DEFB 78H
|
||||
;
|
||||
DEFB 0BDH ;y
|
||||
DEFB 79H
|
||||
;
|
||||
DEFB 0A2H ;z
|
||||
DEFB 7AH
|
||||
;
|
||||
DEFB 0BEH ;{
|
||||
DEFB 7BH
|
||||
;
|
||||
DEFB 0C0H ;Ý
|
||||
DEFB 7CH
|
||||
;
|
||||
DEFB 080H ;}
|
||||
DEFB 7DH
|
||||
;
|
||||
DEFB 094H ;~
|
||||
DEFB 7EH
|
||||
;
|
||||
DEFB 07FH ;
|
||||
DEFB 7FH
|
||||
;
|
||||
;
|
||||
END
|
||||
941
software/asm/mz-xz009/MON3.ASM
Normal file
941
software/asm/mz-xz009/MON3.ASM
Normal file
@@ -0,0 +1,941 @@
|
||||
INCLD MACRO
|
||||
LIST
|
||||
INCLD XMON-ROM
|
||||
;
|
||||
;---------------------------------
|
||||
; XMON-ROM 8.30.84
|
||||
;
|
||||
; JISX MZ-800 --> ASC
|
||||
; ent A :data
|
||||
; IX :output sub
|
||||
; (HL) :tab counter
|
||||
; E :DISPX
|
||||
;
|
||||
;---------------------------------
|
||||
;
|
||||
;
|
||||
JISX: ENT
|
||||
CP 0DH
|
||||
JR Z,JISXCR
|
||||
CP 0AH
|
||||
JR Z,JISXCR
|
||||
CALL AJISX ;code change
|
||||
CP 20H
|
||||
JR NC,.IX
|
||||
BIT 0,E ;print/p ?
|
||||
JR Z,.IX ;no
|
||||
LD A," "
|
||||
.IX: JP (IX)
|
||||
;
|
||||
JISXCR: CALL .IX
|
||||
LD M,0
|
||||
RET
|
||||
;
|
||||
AJISX: PUSH BC
|
||||
LD C,0
|
||||
CALL AJISX1
|
||||
POP BC
|
||||
RET
|
||||
;
|
||||
;
|
||||
AJISX1: CALL PUSHR
|
||||
LD HL,(CTABLE)
|
||||
LD B,(HL) ;code counter set
|
||||
INC HL ;HL=MZ-800
|
||||
LD D,H ;DE=JIS
|
||||
LD E,L
|
||||
INC DE
|
||||
BIT 0,C ;MZ-800 --> JIS ?
|
||||
JR Z,AJISX2 ;yes
|
||||
EX DE,HL
|
||||
AJISX2: CP (HL)
|
||||
JR Z,AJISX3 ;code match
|
||||
INC HL
|
||||
INC HL
|
||||
INC DE
|
||||
INC DE
|
||||
DJNZ AJISX2
|
||||
RET
|
||||
;
|
||||
AJISX3: LD A,(DE)
|
||||
|
||||
RET
|
||||
;
|
||||
;
|
||||
;---------------------------------
|
||||
;
|
||||
;
|
||||
; JISR ASC --> MZ-800
|
||||
; ent (A) :data
|
||||
; IX :input sub
|
||||
;
|
||||
;---------------------------------
|
||||
;
|
||||
;
|
||||
JISR: ENT
|
||||
CALL .IX ;input sub :A set
|
||||
RET C
|
||||
;
|
||||
PUSH BC
|
||||
LD C,1
|
||||
CALL AJISX1
|
||||
POP BC
|
||||
OR A
|
||||
RET
|
||||
;---------------------------------
|
||||
;
|
||||
$LPT: ENT
|
||||
DEFW $CMT
|
||||
DEFM "LPT"
|
||||
DEFB 0
|
||||
DEFB 8AH ;Streem, O1C, W
|
||||
DEFW 0
|
||||
DEFW LPTINI
|
||||
DEFW ER59 ;ROPEN
|
||||
DEFW .RET ;WOPEN
|
||||
DEFW .RET ;CLOSE
|
||||
DEFW .RET ;KILL
|
||||
DEFW 0 ;INP
|
||||
DEFW LPT1C?
|
||||
DEFW LPTPOS
|
||||
;
|
||||
;
|
||||
PIO.AC: EQU FCH ;Port-A control
|
||||
PIO.AD: EQU FEH ;Port-A data
|
||||
PIO.BC: EQU FDH ;Port-B control
|
||||
PIO.BD: EQU FFH ;Port-B data
|
||||
;
|
||||
P.PLT: EQU 0 ;1P01, 1P09
|
||||
P.KP5: EQU 1 ;KP5
|
||||
P.JIS: EQU 2 ;JIS code
|
||||
P.THRU: EQU 3 ;thrue
|
||||
;
|
||||
;
|
||||
LPTPOS: LD A,(INPFLG)
|
||||
OR A
|
||||
LD A,(LPOSB)
|
||||
RET Z
|
||||
LD A,(CURX)
|
||||
RET
|
||||
;
|
||||
;
|
||||
|
||||
;
|
||||
;----------------------------------
|
||||
;
|
||||
; PL ROM CALL
|
||||
;
|
||||
;----------------------------------
|
||||
ROMST: EQU 03H ;F403H
|
||||
ROMST1: EQU F400H
|
||||
;
|
||||
;
|
||||
TIMST: ENT
|
||||
CALL ROMJP2
|
||||
DEFB ROMST
|
||||
;
|
||||
TIMRD: ENT
|
||||
CALL ROMJP2
|
||||
DEFB ROMST+3
|
||||
;
|
||||
STICK: ENT
|
||||
CALL ROMJP2
|
||||
DEFB ROMST+6
|
||||
;
|
||||
STRIG: ENT
|
||||
CALL ROMJP2
|
||||
DEFB ROMST+9
|
||||
;
|
||||
HCPY: ENT
|
||||
CALL ROMJP
|
||||
DEFB ROMST+12
|
||||
;
|
||||
LPT1C?: ENT
|
||||
LD HL,DISPX
|
||||
BIT 0,M
|
||||
JR NZ,LPT1CX
|
||||
;
|
||||
LPT1C: ENT
|
||||
PUSH IY
|
||||
EX AF,AF'
|
||||
LD A,3+15 ;F003+15
|
||||
LD (APL1CD),A
|
||||
LD A,.CRT1C
|
||||
APL1CF: LD (APL1CE),A
|
||||
EX AF,AF'
|
||||
CALL APL1C
|
||||
POP IY
|
||||
PUSH BC
|
||||
LD B,A
|
||||
LD A,(INPFLG)
|
||||
OR A
|
||||
LD A,B
|
||||
POP BC
|
||||
RET Z
|
||||
RST 3
|
||||
APL1CE: DEFB .CRT1C
|
||||
RET
|
||||
APL1C: LD IY,JISX
|
||||
CALL ROMJP
|
||||
APL1CD: DEFB ROMST+15
|
||||
;
|
||||
LPT1CX: ENT
|
||||
|
||||
PUSH IY
|
||||
EX AF,AF'
|
||||
LD A,3+18 ;F003+18
|
||||
LD (APL1CD),A
|
||||
LD A,.CRT1CX
|
||||
JR APL1CF
|
||||
;
|
||||
LPTINI: ENT
|
||||
CALL ROMJP
|
||||
DEFB ROMST+21
|
||||
;
|
||||
LPTOUT: ENT
|
||||
CALL ROMJP
|
||||
DEFB ROMST+24
|
||||
;
|
||||
PBCCLR: ENT
|
||||
CALL ROMJP
|
||||
DEFB ROMST+27
|
||||
;
|
||||
SPLOFF: ENT
|
||||
CALL ROMJP
|
||||
DEFB ROMST+30
|
||||
;
|
||||
SPLON: ENT
|
||||
CALL ROMJP
|
||||
DEFB ROMST+33
|
||||
;
|
||||
SPLSW: ENT
|
||||
CALL ROMJP
|
||||
DEFB ROMST+36
|
||||
;
|
||||
LPTM02: ENT
|
||||
CALL ROMJP
|
||||
DEFB ROMST+39
|
||||
;
|
||||
;---------------------------
|
||||
;
|
||||
;
|
||||
;
|
||||
ROMJP: EX AF,AF'
|
||||
LD A,(PSEL)
|
||||
BIT P.KP5,A
|
||||
JR Z,ROMJP1
|
||||
;
|
||||
PUSH BC
|
||||
LD B,3
|
||||
SVC .MCTRL
|
||||
RST 3
|
||||
DEFB .MCTRL
|
||||
ENDM
|
||||
POP BC
|
||||
;
|
||||
ROMJP1: EX AF,AF'
|
||||
ROMJP2: EX AF,AF'
|
||||
XOR A
|
||||
LD (KEY266),HL
|
||||
LD (HERRF),A
|
||||
EX AF,AF'
|
||||
DI
|
||||
LD (KEY264),SP
|
||||
|
||||
EX (SP),HL ;HL=call stored address
|
||||
LD SP,HL ;
|
||||
POP HL ;HL=call address
|
||||
OUT (LSE3),A
|
||||
LD SP,KEY262
|
||||
CALL HLJP
|
||||
OUT (LSE1),A
|
||||
LD SP,(KEY264)
|
||||
EX (SP),HL
|
||||
INC SP
|
||||
INC SP
|
||||
EI
|
||||
EX AF,AF'
|
||||
LD A,(HERRF)
|
||||
OR A
|
||||
JR NZ,ROMERR
|
||||
EX AF,AF'
|
||||
RET
|
||||
HLJP: LD H,0F4H ;HL=F4??H
|
||||
JP (HL)
|
||||
;
|
||||
;
|
||||
ROMERR:
|
||||
LD B,A ;B=0
|
||||
EX AF,AF'
|
||||
DEC B ;B=1
|
||||
JP Z,BREAKZ
|
||||
DEC B ;B=2
|
||||
JP NZ,ERRORJ
|
||||
ROMER1: LD HL,(PBCN) ;INIT M2
|
||||
LD A,H
|
||||
OR L
|
||||
JR Z,LPTM02
|
||||
CALL SPLON
|
||||
SVC .BREAK
|
||||
RST 3
|
||||
DEFB .BREAK
|
||||
ENDM
|
||||
JP Z,BREAKZ
|
||||
JR ROMER1
|
||||
;
|
||||
;
|
||||
LPTINT: ENT
|
||||
DI
|
||||
PUSH AF
|
||||
PUSH HL
|
||||
PUSH BC
|
||||
LD (WKLINT),SP
|
||||
LD SP,WKLINT
|
||||
OUT (LSE3),A
|
||||
CALL ROMST1
|
||||
OUT (LSE1),A
|
||||
LD SP,(WKLINT)
|
||||
POP BC
|
||||
POP HL
|
||||
POP AF
|
||||
EI
|
||||
RETI
|
||||
DEFS 8
|
||||
WKLINT: DEFW 0
|
||||
|
||||
;
|
||||
END
|
||||
SKP H
|
||||
|
||||
INCLD MONOP
|
||||
; ---------------------------
|
||||
; MZ-800 Monitor command
|
||||
; FI:MONOP ver 1.0A 8.04.84
|
||||
; ---------------------------
|
||||
;
|
||||
MONOP: ENT
|
||||
PUSH HL
|
||||
LD DE,(ERRORP)
|
||||
PUSH DE
|
||||
LD DE,MONERR
|
||||
LD (ERRORP),DE ;error ret adr set
|
||||
LD A,(LINLIM)
|
||||
PUSH AF
|
||||
LD A,100 ;getline max set
|
||||
LD (LINLIM),A
|
||||
LD (MONSP+1),SP ;stack pointer push
|
||||
XOR A
|
||||
LD (FILOUT),A ;crt mode
|
||||
MONCLD: LD SP,0000H ;stack initize
|
||||
MONHOT: LD BC,MONHOT
|
||||
PUSH BC ;last return addrs set
|
||||
SVC .CR2 ;linefeed & cr
|
||||
RST 3
|
||||
DEFB .CR2
|
||||
ENDM
|
||||
LD A,"*" ;prompt disp
|
||||
SVC .CRT1C
|
||||
RST 3
|
||||
DEFB .CRT1C
|
||||
ENDM
|
||||
CALL MONEDT ;memory corretion ?
|
||||
JR NC,-3
|
||||
LD A,(DE)
|
||||
CP "*"
|
||||
RET NZ ;prompt check
|
||||
INC DE
|
||||
LD A,(DE) ;acc=next interpret data
|
||||
INC DE ;next interpret data addr
|
||||
;
|
||||
;
|
||||
; moniter tabel command jump
|
||||
;
|
||||
EXX ;parameter push
|
||||
LD HL,MNCMTB
|
||||
LD B,10 ;commands counter
|
||||
MNCMCP: CP M
|
||||
INC HL
|
||||
JR Z,MNCMOK ;skip if just command
|
||||
INC HL ;next search
|
||||
INC HL
|
||||
DJNZ MNCMCP
|
||||
EXX
|
||||
RET
|
||||
;
|
||||
MONERR: LD C,A
|
||||
AND 7FH
|
||||
JR Z,MONCLD ;Break
|
||||
LD A,C ;acc=errcode
|
||||
SVC .ERRX ;display error messege
|
||||
|
||||
RST 3
|
||||
DEFB .ERRX
|
||||
ENDM
|
||||
SVC .ERCVR ;error recover fd/qd
|
||||
RST 3
|
||||
DEFB .ERCVR
|
||||
ENDM
|
||||
JR MONCLD
|
||||
;
|
||||
;
|
||||
MNCMOK: LD E,M
|
||||
INC HL
|
||||
LD D,M
|
||||
PUSH DE ;commnd addr set
|
||||
EXX ;parameter pop
|
||||
RET
|
||||
;
|
||||
MNCMTB: DEFM 'D'
|
||||
DEFW MONDMP
|
||||
DEFM 'M'
|
||||
DEFW MONSET
|
||||
DEFM 'P'
|
||||
DEFW MONPRT
|
||||
DEFM 'G'
|
||||
DEFW MONGOT
|
||||
DEFM 'F'
|
||||
DEFW MONSCH
|
||||
DEFM 'R'
|
||||
DEFW MONSP
|
||||
DEFM 'S'
|
||||
DEFW MONSAV
|
||||
DEFM 'L'
|
||||
DEFW MONLOD
|
||||
DEFM 'V'
|
||||
DEFW MONVRY
|
||||
DEFM 'T'
|
||||
DEFW MONTRN
|
||||
;
|
||||
MONPRT: LD A,(FILOUT) ;lpt/crt
|
||||
XOR 1
|
||||
LD (FILOUT),A
|
||||
RET
|
||||
;---------------------------------
|
||||
;
|
||||
; moniter save commnd
|
||||
;
|
||||
;---------------------------------
|
||||
MONSAV: CALL SAVTRN ;set addrs
|
||||
RET C
|
||||
EXX
|
||||
CALL FNMST ;file name set
|
||||
EXX
|
||||
LD (ELMD20),BC ;bytes
|
||||
LD (ELMD22),DE ;data adrs
|
||||
LD (ELMD24),HL ;exec adrs
|
||||
SVC .SAVEF ;save file
|
||||
RST 3
|
||||
DEFB .SAVEF
|
||||
ENDM
|
||||
RET
|
||||
|
||||
;---------------------------------
|
||||
;
|
||||
; moniter load command
|
||||
;
|
||||
;---------------------------------
|
||||
MONLOD: CALL HLSET ;load addr set
|
||||
PUSH HL ;hl=load addrs
|
||||
PUSH AF
|
||||
CALL LOAVRY ;filename set & open
|
||||
POP AF
|
||||
POP HL
|
||||
JR NC,+5 ;user load addr set ??
|
||||
LD HL,(ELMD22)
|
||||
SVC .LOADF ;load file
|
||||
RST 3
|
||||
DEFB .LOADF
|
||||
ENDM
|
||||
RET
|
||||
;---------------------------------
|
||||
;
|
||||
; filename set & open
|
||||
;
|
||||
;---------------------------------
|
||||
LOAVRY: CALL FNMST ;file name set
|
||||
SVC .LOPEN ;ropen
|
||||
RST 3
|
||||
DEFB .LOPEN
|
||||
ENDM
|
||||
CP 1
|
||||
RET Z
|
||||
JP ER61 ;File mode error
|
||||
;---------------------------------
|
||||
;
|
||||
; moniter verify command
|
||||
;
|
||||
;---------------------------------
|
||||
MONVRY: CALL LOAVRY ;filename set
|
||||
LD HL,(ELMD22)
|
||||
SVC .VRFYF ;file verify
|
||||
RST 3
|
||||
DEFB .VRFYF
|
||||
ENDM
|
||||
RET
|
||||
;---------------------------------
|
||||
;
|
||||
; moniter rerturn command
|
||||
;
|
||||
; to BASIC
|
||||
;---------------------------------
|
||||
MONSP: LD SP,0000H
|
||||
POP AF
|
||||
LD (LINLIM),A
|
||||
POP HL
|
||||
LD (ERRORP),HL
|
||||
POP HL
|
||||
RET
|
||||
;---------------------------------
|
||||
;
|
||||
; moniter operation
|
||||
;
|
||||
|
||||
;---------------------------------
|
||||
MONEDT: LD DE,FF00H ;moniter work
|
||||
SVC .GETL
|
||||
RST 3
|
||||
DEFB .GETL
|
||||
ENDM
|
||||
JR C,MONEDE
|
||||
;
|
||||
; check ':xxxx='
|
||||
;
|
||||
LD A,(DE)
|
||||
CP ":" ;mem correct ??
|
||||
SCF
|
||||
RET NZ
|
||||
;
|
||||
INC DE
|
||||
CALL HLSET ;addrs input ?
|
||||
RET C
|
||||
LD A,(DE)
|
||||
INC DE
|
||||
XOR 3DH ;"=" input ?
|
||||
RET NZ
|
||||
;
|
||||
;
|
||||
NEXTAC: CALL ACSET ;data read
|
||||
CCF
|
||||
RET NC
|
||||
LD M,A ;mem correction !
|
||||
INC HL ;next pointer
|
||||
JR NEXTAC
|
||||
;
|
||||
;
|
||||
MONEDE: LD (DE),A ;error
|
||||
RET
|
||||
;----------------------------------
|
||||
;
|
||||
; 4 ascii to binary (word)
|
||||
;
|
||||
; ent. de=ascii data pointer
|
||||
; ext hl=xxxxH
|
||||
;
|
||||
;----------------------------------
|
||||
HLSET: PUSH HL
|
||||
CALL SPCTAC ;separater search
|
||||
PUSH DE
|
||||
CALL ACSETH ;2 ascii to binary
|
||||
JR C,HLSETE
|
||||
LD H,A
|
||||
CALL ACSETH ;2 ascii to binary
|
||||
JR C,HLSETE
|
||||
LD L,A
|
||||
POP AF
|
||||
POP AF
|
||||
XOR A
|
||||
RET
|
||||
;
|
||||
HLSETE: POP DE
|
||||
POP HL
|
||||
SCF
|
||||
RET
|
||||
|
||||
;----------------------------------
|
||||
;
|
||||
; separater search
|
||||
;
|
||||
;----------------------------------
|
||||
SPCTA2: INC DE
|
||||
SPCTAC: LD A,(DE)
|
||||
CP 20H
|
||||
JR Z,SPCTA2
|
||||
RET
|
||||
;---------------------------------
|
||||
;
|
||||
; 1 ascii to binary (nible)
|
||||
;
|
||||
; ent. de=ascii data pointer
|
||||
; ext acc= 0xH
|
||||
;
|
||||
;---------------------------------
|
||||
ACSETS: LD A,(DE)
|
||||
SVC .CKHEX ;0-9 a-f check
|
||||
RST 3
|
||||
DEFB .CKHEX
|
||||
ENDM
|
||||
INC DE ;next pointer
|
||||
RET
|
||||
;---------------------------------
|
||||
;
|
||||
; 2 ascii to binary (byte)
|
||||
;
|
||||
; ent. de=ascii data pointer
|
||||
; ext acc= xxH
|
||||
;
|
||||
;---------------------------------
|
||||
ACSET: CALL SPCTAC ;separeter search
|
||||
CP ";"
|
||||
JR Z,SEMIOK ;skip if ascii input
|
||||
ACSETH:
|
||||
PUSH BC
|
||||
PUSH DE
|
||||
CALL ACSETS ;1 ascii to binary(nible)
|
||||
JR C,ACSTER
|
||||
LD C,A ;high nible
|
||||
CALL ACSETS ;1 ascii to binary(nible)
|
||||
JR C,ACSTER
|
||||
LD B,A ;low nible
|
||||
LD A,C
|
||||
RLCA
|
||||
RLCA
|
||||
RLCA
|
||||
RLCA
|
||||
ADD A,B
|
||||
LD C,A
|
||||
LD A,C
|
||||
POP BC
|
||||
POP BC
|
||||
OR A
|
||||
RET
|
||||
;
|
||||
ACSTER: POP DE
|
||||
POP BC
|
||||
|
||||
SCF
|
||||
RET
|
||||
;----------------------------------
|
||||
;
|
||||
; ascii code input mode
|
||||
;
|
||||
;----------------------------------
|
||||
SEMIOK: INC DE
|
||||
LD A,(DE)
|
||||
INC DE
|
||||
OR A ;¯¯JR ACSETO
|
||||
RET ;¯¯
|
||||
;----------------------------------
|
||||
;
|
||||
; moniter jump commnd
|
||||
;
|
||||
;----------------------------------
|
||||
MONGOT: CALL HLSET ;addrs set
|
||||
RET C
|
||||
JP (HL)
|
||||
;----------------------------------
|
||||
;
|
||||
; moniter dump commnd
|
||||
;
|
||||
;----------------------------------
|
||||
MONDMP: CALL HLSET ;top addrs set
|
||||
JR C,MONDP1 ;skip if 'd' only
|
||||
PUSH HL
|
||||
CALL HLSET ;end addrs set
|
||||
JR C,MONDP2 ;skip if top addrs only
|
||||
POP DE
|
||||
EX DE,HL
|
||||
JR MONDP3
|
||||
;
|
||||
;
|
||||
;
|
||||
MONDP2: POP HL ;
|
||||
MONDP1: EX DE,HL
|
||||
LD HL,80H
|
||||
ADD HL,DE ;last addrs calc
|
||||
EX DE,HL
|
||||
MONDP3: LD C,8 ;counter set
|
||||
CALL MONDPS ;dump list disp
|
||||
RET C
|
||||
PUSH HL
|
||||
SBC HL,DE ;dump end calc
|
||||
POP HL
|
||||
RET NC
|
||||
JR MONDP3
|
||||
;
|
||||
MONDPS: CALL HLHXPR ;addrs disp
|
||||
LD B,C
|
||||
PUSH HL
|
||||
MONDP4: LD A,M ;data read
|
||||
CALL ACHXPR ;1 byte disp
|
||||
INC HL
|
||||
LD A,20H ;space disp
|
||||
SVC .&1C
|
||||
RST 3
|
||||
DEFB .&1C
|
||||
|
||||
ENDM
|
||||
DJNZ MONDP4
|
||||
POP HL
|
||||
;
|
||||
LD A,"/" ;separater disp
|
||||
SVC .&1C
|
||||
RST 3
|
||||
DEFB .&1C
|
||||
ENDM
|
||||
LD B,C
|
||||
MONDP5: LD A,M ;data read
|
||||
CP 20H ;contol code
|
||||
JR NC,+4
|
||||
LD A,"." ;yes, control code
|
||||
SVC .&1C
|
||||
RST 3
|
||||
DEFB .&1C
|
||||
ENDM
|
||||
INC HL ;next pointer
|
||||
DJNZ MONDP5
|
||||
;
|
||||
SVC .&CR ;
|
||||
RST 3
|
||||
DEFB .&CR
|
||||
ENDM
|
||||
SVC .HALT ;braek & stop
|
||||
RST 3
|
||||
DEFB .HALT
|
||||
ENDM
|
||||
OR A
|
||||
RET
|
||||
;--------------------------------
|
||||
;
|
||||
; disp addrs
|
||||
;
|
||||
; ent. hl=addrs
|
||||
; ':xxxx='
|
||||
;
|
||||
;--------------------------------
|
||||
HLHXPR: LD A,":"
|
||||
SVC .&1C
|
||||
RST 3
|
||||
DEFB .&1C
|
||||
ENDM
|
||||
LD A,H
|
||||
CALL ACHXPR ;acc disp
|
||||
LD A,L
|
||||
CALL ACHXPR ;acc disp
|
||||
LD A,"="
|
||||
SVC .&1C
|
||||
RST 3
|
||||
DEFB .&1C
|
||||
ENDM
|
||||
RET
|
||||
;--------------------------------
|
||||
;
|
||||
; acc disp
|
||||
;
|
||||
; ent. acc = disp data
|
||||
;
|
||||
|
||||
;--------------------------------
|
||||
ACHXPR: PUSH AF
|
||||
RLCA
|
||||
RLCA
|
||||
RLCA
|
||||
RLCA
|
||||
CALL AC1HXP ;nible disp
|
||||
POP AF
|
||||
AC1HXP: AND 0FH ;ascii trans
|
||||
ADD A,30H
|
||||
CP ":"
|
||||
JR C,+4
|
||||
ADD A,7
|
||||
SVC .&1C ;disp acc(nible)
|
||||
RST 3
|
||||
DEFB .&1C
|
||||
ENDM
|
||||
RET
|
||||
;---------------------------------
|
||||
;
|
||||
; moniter mem correction comd
|
||||
;
|
||||
;---------------------------------
|
||||
MONSET: CALL HLSET ;
|
||||
LD A,(FILOUT) ;lpt/crt switch
|
||||
PUSH AF
|
||||
XOR A
|
||||
LD (FILOUT),A ;crt mode
|
||||
MONSTL: SVC .CR2
|
||||
RST 3
|
||||
DEFB .CR2
|
||||
ENDM
|
||||
CALL HLHXPR ;addrs disp
|
||||
LD A,M ;data read
|
||||
CALL ACHXPR ;data disp
|
||||
LD A,20 ;back space
|
||||
SVC .CRT1C
|
||||
RST 3
|
||||
DEFB .CRT1C
|
||||
ENDM
|
||||
SVC .CRT1C
|
||||
RST 3
|
||||
DEFB .CRT1C
|
||||
ENDM
|
||||
CALL MONEDT ;moniter operation
|
||||
JR NC,MONSTL
|
||||
POP AF
|
||||
LD (FILOUT),A
|
||||
RET
|
||||
;--------------------------------
|
||||
;
|
||||
; moniter search command
|
||||
;
|
||||
;--------------------------------
|
||||
MONSCH: CALL HLSET ;start addrs
|
||||
RET C
|
||||
PUSH HL
|
||||
CALL HLSET ;end addrs
|
||||
POP BC
|
||||
RET C
|
||||
|
||||
PUSH HL ;hl end addr
|
||||
PUSH BC ;bc start addr
|
||||
LD HL,FF00H ;check data read
|
||||
CALL NEXTAC ;(hl)<--data
|
||||
LD DE,FF00H
|
||||
OR A
|
||||
SBC HL,DE ;check data bytes
|
||||
LD C,L
|
||||
POP HL
|
||||
PUSH HL
|
||||
EXX
|
||||
POP HL ;hl start addr
|
||||
POP DE ;de end addr
|
||||
EXX
|
||||
RET Z
|
||||
MNSHLP: CALL HLDECK ;de=FF00h
|
||||
JR NZ,SKPSCH ;de check databuf
|
||||
CALL MONDPS ;data disp
|
||||
RET C
|
||||
SKPSCH: SVC .BREAK
|
||||
RST 3
|
||||
DEFB .BREAK
|
||||
ENDM
|
||||
RET Z
|
||||
EXX
|
||||
INC HL ;next check pointer
|
||||
PUSH HL
|
||||
SCF
|
||||
SBC HL,DE ;end check ?
|
||||
POP HL
|
||||
RET NC
|
||||
PUSH HL
|
||||
EXX
|
||||
POP HL ;next check pointer
|
||||
JR MNSHLP
|
||||
;----------------------------------
|
||||
;
|
||||
; 3 pointer data interpret
|
||||
;
|
||||
; ent de=ascii data top addr
|
||||
;
|
||||
; ext de=first data
|
||||
; bc=(second-first) data
|
||||
; hl=last data
|
||||
;
|
||||
; used save,xfer commnd
|
||||
;
|
||||
; command : save : xfer
|
||||
;
|
||||
; de : start: source
|
||||
; bc : bytes: bytes
|
||||
; hl : end : destination
|
||||
;----------------------------------
|
||||
SAVTRN: CALL HLSET ;first
|
||||
PUSH HL
|
||||
CALL NC,HLSET ;second
|
||||
POP BC ;first
|
||||
RET C
|
||||
SBC HL,BC ;calc bytes
|
||||
INC HL
|
||||
|
||||
PUSH HL ;bytes
|
||||
PUSH BC ;first
|
||||
CALL HLSET ;last
|
||||
PUSH HL ;last
|
||||
EXX
|
||||
POP HL ;last
|
||||
POP DE ;first
|
||||
POP BC ;bytes
|
||||
RET
|
||||
;-------------------------------
|
||||
;
|
||||
; moniter xfer command
|
||||
;
|
||||
;-------------------------------
|
||||
MONTRN: CALL SAVTRN ;
|
||||
RET C
|
||||
EX DE,HL
|
||||
PUSH HL
|
||||
SBC HL,DE ;direction check
|
||||
POP HL
|
||||
JR C,LDDRTR
|
||||
LDIR
|
||||
RET
|
||||
LDDRTR: ADD HL,BC ;last addrs calc
|
||||
DEC HL
|
||||
EX DE,HL
|
||||
ADD HL,BC
|
||||
DEC HL
|
||||
EX DE,HL
|
||||
LDDR
|
||||
RET
|
||||
;----------------------------------
|
||||
;
|
||||
; filename set
|
||||
;
|
||||
;----------------------------------
|
||||
FNMST: LD A,(DE)
|
||||
OR A
|
||||
JR Z,FNMST2
|
||||
INC DE
|
||||
CP ":" ;demiliter seach
|
||||
JR NZ,FNMST
|
||||
FNMST2: SVC .COUNT ;count string length
|
||||
RST 3
|
||||
DEFB .COUNT
|
||||
ENDM
|
||||
SVC .DEVFN ;interpret dev. file name
|
||||
RST 3
|
||||
DEFB .DEVFN
|
||||
ENDM
|
||||
LD A,1
|
||||
LD (ELMD),A ;.OBJ atribut
|
||||
RET
|
||||
;---------------------------------
|
||||
;
|
||||
; check (de) (hl) ?
|
||||
;
|
||||
; hl,de check data point
|
||||
; c counter
|
||||
;
|
||||
|
||||
;---------------------------------
|
||||
HLDECK: LD A,(DE)
|
||||
CP M
|
||||
RET NZ
|
||||
PUSH BC
|
||||
PUSH DE
|
||||
PUSH HL
|
||||
LD B,C
|
||||
HLDEC1: LD A,(DE)
|
||||
CP M
|
||||
JR NZ,HLDEC2
|
||||
INC DE
|
||||
INC HL
|
||||
DJNZ HLDEC1
|
||||
XOR A
|
||||
HLDEC2: POP HL
|
||||
POP DE
|
||||
POP BC
|
||||
RET
|
||||
;
|
||||
END
|
||||
END
|
||||
83
software/asm/mz-xz009/MON4.ASM
Normal file
83
software/asm/mz-xz009/MON4.ASM
Normal file
@@ -0,0 +1,83 @@
|
||||
ORG 3C00H
|
||||
INCLD MACRO
|
||||
LIST
|
||||
INCLD XROM
|
||||
;----------------------------------
|
||||
;
|
||||
; ascii display code trans
|
||||
;
|
||||
;----------------------------------
|
||||
?ADCN: ENT
|
||||
CP 10H ;EX only
|
||||
JR C,?AD3 ; <10H ==> F0H
|
||||
CP 80H
|
||||
JR Z,?AD7 ; 80H ==> 40H
|
||||
CP C0H
|
||||
JR Z,?AD7 ; C0H ==> 80H
|
||||
DI
|
||||
OUT (LSE2),A
|
||||
CALL 0BB9H
|
||||
OUT (LSE0),A
|
||||
EI
|
||||
RET
|
||||
?AD3: LD A,F0H
|
||||
RET
|
||||
?AD7: SUB 40H
|
||||
RET
|
||||
;
|
||||
?DACN: ENT
|
||||
CP F0H
|
||||
JR NC,?DA3
|
||||
CP 73H
|
||||
JR Z,?AD3 ; 73H ==> F0H
|
||||
CP 40H ;EX only
|
||||
JR Z,?DA7 ; 40H ==> 80H
|
||||
CP 80H
|
||||
JR Z,?DA7 ; 80H ==> C0H
|
||||
DI
|
||||
OUT (LSE2),A
|
||||
CALL 0BCEH
|
||||
OUT (LSE0),A
|
||||
EI
|
||||
CP F0H
|
||||
RET NZ
|
||||
?DA3: LD A," "
|
||||
RET
|
||||
?DA7: ADD A,40H
|
||||
RET
|
||||
;
|
||||
;
|
||||
;
|
||||
?KYTBL: ENT
|
||||
PUSH AF
|
||||
LD A,L
|
||||
SUB 8
|
||||
JR C,?KY0
|
||||
SUB 48
|
||||
JR C,?KY1
|
||||
?KY0: ADD A,10
|
||||
LD L,A
|
||||
ADD HL,BC
|
||||
|
||||
LD C,M
|
||||
POP AF
|
||||
RET
|
||||
?KY1: LD A,(BC)
|
||||
PUSH AF
|
||||
INC BC
|
||||
LD A,(BC)
|
||||
LD B,A
|
||||
POP AF
|
||||
LD C,A ;BC=ROM adrs
|
||||
ADD HL,BC
|
||||
DI
|
||||
OUT (LSE2),A
|
||||
LD A,M
|
||||
OUT (LSE0),A
|
||||
EI
|
||||
CALL ?DACN
|
||||
LD C,A
|
||||
POP AF
|
||||
RET
|
||||
END
|
||||
END
|
||||
356
software/asm/mz-xz009/MONEQU.ASM
Normal file
356
software/asm/mz-xz009/MONEQU.ASM
Normal file
@@ -0,0 +1,356 @@
|
||||
LIST
|
||||
|
||||
INCLD XE1
|
||||
IOOUT: EQU 0104H
|
||||
DEASC: EQU 029EH
|
||||
PATCH: EQU 0531H
|
||||
INKEY0: EQU 0BA1H
|
||||
IOERR: EQU 00EBH
|
||||
TEST1: EQU 0164H
|
||||
ERRX: EQU 0340H
|
||||
COLS: EQU 049CH
|
||||
HCLSW: EQU 061DH
|
||||
PONT: EQU 0963H
|
||||
INKEY1: EQU 0B21H
|
||||
$KB: EQU 0DF6H
|
||||
.HL: EQU 00A7H
|
||||
PUSHR: EQU 00C7H
|
||||
SETDFL: EQU 0314H
|
||||
BINPUT: EQU 0A67H
|
||||
PUSHRA: EQU 00BAH
|
||||
CKHEX: EQU 02E9H
|
||||
DCOLOR: EQU 048AH
|
||||
PONTB: EQU 097AH
|
||||
ERRORJ: EQU 00EDH
|
||||
?CLRHL: EQU 0137H
|
||||
?SETDE: EQU 013EH
|
||||
INDRCT: EQU 0151H
|
||||
INCHLF: EQU 015DH
|
||||
IOCALL: EQU 0247H
|
||||
DWIDTH: EQU 04EFH
|
||||
ACCDI: EQU 05ADH
|
||||
LBOUND: EQU 05F9H
|
||||
PONTC: EQU 0960H
|
||||
INKEY$: EQU 0B1AH
|
||||
BRKCHK: EQU 001EH
|
||||
DEVASC: EQU 010DH
|
||||
DWIND: EQU 04AEH
|
||||
PONTCB: EQU 0977H
|
||||
INKEYF: EQU 0B8BH
|
||||
SYSSTA: EQU 004DH
|
||||
PUSHW: EQU 0671H
|
||||
HCUROF: EQU 093BH
|
||||
TESTX: EQU 016EH
|
||||
PALOFF: EQU 0441H
|
||||
DPALST: EQU 0476H
|
||||
PRNTT: EQU 0A58H
|
||||
EQTBL: EQU 0DDDH
|
||||
$TEMPO: EQU 0041H
|
||||
.RET: EQU 00B2H
|
||||
?CLRDE: EQU 013DH
|
||||
HLFTCH: EQU 015EH
|
||||
HALT: EQU 02F8H
|
||||
ADDP0: EQU 031CH
|
||||
DGCOL: EQU 0493H
|
||||
TBCALC: EQU 0615H
|
||||
ERRORP: EQU 004FH
|
||||
LDDEMD: EQU 0132H
|
||||
ADDP1: EQU 0323H
|
||||
HCLS: EQU 0652H
|
||||
.NOP: EQU 00A6H
|
||||
|
||||
ASCHL: EQU 025EH
|
||||
ADDP2: EQU 032AH
|
||||
SETDNM: EQU 0397H
|
||||
PLTOTX: EQU 0EB3H
|
||||
DSMODE: EQU 03BEH
|
||||
CURMOV: EQU 094DH
|
||||
GETL: EQU 0A84H
|
||||
BREAKX: EQU 00E6H
|
||||
CHKACC: EQU 011BH
|
||||
LDDEHL: EQU 0143H
|
||||
LDHLDE: EQU 014AH
|
||||
BITMAP: EQU 05CEH
|
||||
BRKEY: EQU 0D22H
|
||||
$CRT: EQU 0DDDH
|
||||
CRT1C: EQU 0E61H
|
||||
ADDHLA: EQU 0158H
|
||||
DEHEX: EQU 02CEH
|
||||
DPALBK: EQU 044FH
|
||||
FLASH: EQU 0945H
|
||||
$USR: EQU 0F7FH
|
||||
BREAKZ: EQU 00E8H
|
||||
LDDEMI: EQU 012DH
|
||||
?SETHL: EQU 0138H
|
||||
HCURON: EQU 092BH
|
||||
LSPAL: EQU 00F0H
|
||||
LSFC: EQU 00FCH
|
||||
LSE0: EQU 00E0H
|
||||
LSE1: EQU 00E1H
|
||||
LSE2: EQU 00E2H
|
||||
LSE3: EQU 00E3H
|
||||
LSE4: EQU 00E4H
|
||||
LSE5: EQU 00E5H
|
||||
LSE6: EQU 00E6H
|
||||
LSD0: EQU 00D0H
|
||||
LSD1: EQU 00D1H
|
||||
LSD2: EQU 00D2H
|
||||
LSD3: EQU 00D3H
|
||||
LSWF: EQU 00CCH
|
||||
LSRF: EQU 00CDH
|
||||
LSDMD: EQU 00CEH
|
||||
LSSCR: EQU 00CFH
|
||||
TEXTBF: EQU 2000H
|
||||
BITBUF: EQU 8000H
|
||||
FONTBF: EQU 1000H
|
||||
ERRTXT: EQU FDA0H
|
||||
.IOSVC: EQU 0003H
|
||||
.MONOP: EQU 0000H
|
||||
.CR1: EQU 0001H
|
||||
.CR2: EQU 0002H
|
||||
.CRT1C: EQU 0003H
|
||||
.CRT1X: EQU 0004H
|
||||
.CRTMS: EQU 0005H
|
||||
.LPTOT: EQU 0006H
|
||||
.LPT1C: EQU 0007H
|
||||
.&CR: EQU 0008H
|
||||
.&1C: EQU 0009H
|
||||
.&1CX: EQU 000AH
|
||||
.&MSG: EQU 000BH
|
||||
.GETL: EQU 000CH
|
||||
.INKEY: EQU 000DH
|
||||
|
||||
.BREAK: EQU 000EH
|
||||
.HALT: EQU 000FH
|
||||
.DI: EQU 0010H
|
||||
.EI: EQU 0011H
|
||||
.CURMV: EQU 0012H
|
||||
.DEASC: EQU 0013H
|
||||
.DEHEX: EQU 0014H
|
||||
.CKHEX: EQU 0015H
|
||||
.ASCHL: EQU 0016H
|
||||
.COUNT: EQU 0017H
|
||||
.ADDP0: EQU 0018H
|
||||
.ADDP1: EQU 0019H
|
||||
.ADDP2: EQU 001AH
|
||||
.ERRX: EQU 001BH
|
||||
.?DACN: EQU 001CH
|
||||
.?ADCN: EQU 001DH
|
||||
.STICK: EQU 001EH
|
||||
.STRIG: EQU 001FH
|
||||
.BELL: EQU 0020H
|
||||
.PLAY: EQU 0021H
|
||||
.SOUND: EQU 0022H
|
||||
.MCTRL: EQU 0023H
|
||||
.IOOUT: EQU 0024H
|
||||
.TIMRD: EQU 0025H
|
||||
.TIMST: EQU 0026H
|
||||
.INP1C: EQU 0027H
|
||||
.CLRIO: EQU 0028H
|
||||
.SEGAD: EQU 0029H
|
||||
.OPSEG: EQU 002AH
|
||||
.DLSEG: EQU 002BH
|
||||
.DEVNM: EQU 002CH
|
||||
.DEVFN: EQU 002DH
|
||||
.LUCHK: EQU 002EH
|
||||
.LOPEN: EQU 002FH
|
||||
.LOADF: EQU 0030H
|
||||
.SAVEF: EQU 0031H
|
||||
.VRFYF: EQU 0032H
|
||||
.RWOPN: EQU 0033H
|
||||
.INSTT: EQU 0034H
|
||||
.INMSG: EQU 0035H
|
||||
.INDAT: EQU 0036H
|
||||
.PRSTR: EQU 0037H
|
||||
.CLKL: EQU 0038H
|
||||
.DIR: EQU 0039H
|
||||
.SETDF: EQU 003AH
|
||||
.LSALL: EQU 003BH
|
||||
.FINIT: EQU 003CH
|
||||
.DELET: EQU 003DH
|
||||
.RENAM: EQU 003EH
|
||||
.LOCK: EQU 003FH
|
||||
.RECST: EQU 0040H
|
||||
.INREC: EQU 0041H
|
||||
.PRREC: EQU 0042H
|
||||
.ERCVR: EQU 0043H
|
||||
.SWAP: EQU 0044H
|
||||
.CLS: EQU 0045H
|
||||
.POSCK: EQU 0046H
|
||||
.POSSV: EQU 0047H
|
||||
.PSET: EQU 0048H
|
||||
.LINE: EQU 0049H
|
||||
|
||||
.PATTR: EQU 004AH
|
||||
.BOX: EQU 004BH
|
||||
.PAINT: EQU 004CH
|
||||
.CIRCL: EQU 004DH
|
||||
.POINT: EQU 004EH
|
||||
.HCPY: EQU 004FH
|
||||
.DSMOD: EQU 0050H
|
||||
.DPLBK: EQU 0051H
|
||||
.DPLST: EQU 0052H
|
||||
.DWIND: EQU 0053H
|
||||
.DCOL: EQU 0054H
|
||||
.DGCOL: EQU 0055H
|
||||
.ICRT: EQU 0056H
|
||||
.SYMBL: EQU 0057H
|
||||
END
|
||||
INCLD XE2
|
||||
ZWRK2: EQU 1049H
|
||||
ZWO: EQU 1057H
|
||||
ZWDIR: EQU 1063H
|
||||
VARST: EQU 1074H
|
||||
STRST: EQU 1076H
|
||||
INPFLG: EQU 108FH
|
||||
LPOSB: EQU 1095H
|
||||
INBUFL: EQU 1353H
|
||||
YW: EQU 1371H
|
||||
ZKL: EQU 105BH
|
||||
ZINP: EQU 105DH
|
||||
ELMD: EQU 1000H
|
||||
ZOUT: EQU 105FH
|
||||
.$LPT: EQU 106EH
|
||||
VARED: EQU 1078H
|
||||
CURX: EQU 1082H
|
||||
POINTX: EQU 1088H
|
||||
KEYDAT: EQU 1365H
|
||||
SELCOL: EQU 137BH
|
||||
PALAD: EQU 137FH
|
||||
ELMD1: EQU 1001H
|
||||
ZBLK: EQU 105BH
|
||||
ZDELT: EQU 1061H
|
||||
DDEV: EQU 106AH
|
||||
POOLED: EQU 1074H
|
||||
CURY: EQU 1083H
|
||||
POINTY: EQU 108AH
|
||||
CURFLG: EQU 108CH
|
||||
CURMAK: EQU 108DH
|
||||
FILOUT: EQU 1091H
|
||||
PNMODE: EQU 1097H
|
||||
CPLANE: EQU 109CH
|
||||
KEY262: EQU 12AAH
|
||||
CWIDTH: EQU 136BH
|
||||
PAL2T: EQU 1385H
|
||||
CURDT1: EQU 1391H
|
||||
PBCN: EQU 13CEH
|
||||
ELMD20: EQU 1014H
|
||||
ZEQT: EQU 1044H
|
||||
ZEOF: EQU 1047H
|
||||
ZNXT: EQU 104AH
|
||||
ZDEVNM: EQU 104CH
|
||||
PSEL: EQU 1092H
|
||||
INBUF: EQU 1354H
|
||||
|
||||
CURDT2: EQU 1399H
|
||||
ELMD30: EQU 101EH
|
||||
ZCH: EQU 1046H
|
||||
ZFLAG1: EQU 1050H
|
||||
INTFAC: EQU 107CH
|
||||
MEMMAX: EQU 1080H
|
||||
DMD: EQU 1098H
|
||||
KEY264: EQU 12ACH
|
||||
LINLIM: EQU 1364H
|
||||
PAL4T: EQU 1389H
|
||||
CURDT3: EQU 13A1H
|
||||
ELMD22: EQU 1016H
|
||||
ZFLAG2: EQU 1051H
|
||||
BITADR: EQU 1086H
|
||||
TMCNT: EQU 1195H
|
||||
KEYBUF: EQU 11A4H
|
||||
FUNBUF: EQU 12B2H
|
||||
ELMD32: EQU 1020H
|
||||
ZSTRT: EQU 1059H
|
||||
PCRLF: EQU 1093H
|
||||
KEY266: EQU 12AEH
|
||||
INBUFC: EQU 1352H
|
||||
SSA: EQU 1375H
|
||||
HERRF: EQU 13D9H
|
||||
ELMD24: EQU 1018H
|
||||
TMPEND: EQU 107AH
|
||||
DISPX: EQU 1090H
|
||||
CMODE: EQU 109BH
|
||||
SOF: EQU 1372H
|
||||
PAL16T: EQU 138DH
|
||||
EMPTR: EQU 13C4H
|
||||
ZCL: EQU 1059H
|
||||
POSADR: EQU 1084H
|
||||
KEYBM1: EQU 11A3H
|
||||
SEA: EQU 1376H
|
||||
EMWP0: EQU 13C6H
|
||||
ELMD26: EQU 101AH
|
||||
ZMAPB: EQU 1057H
|
||||
POOL: EQU 1072H
|
||||
SW: EQU 1374H
|
||||
PAIWED: EQU 137CH
|
||||
PALBK: EQU 137EH
|
||||
SCRNT0: EQU 13A9H
|
||||
EMWP1: EQU 13C8H
|
||||
ELMD18: EQU 1012H
|
||||
ZRWX: EQU 1043H
|
||||
ZRO: EQU 1055H
|
||||
ZMAPS: EQU 1055H
|
||||
.$CRT: EQU 106CH
|
||||
CURXY: EQU 1082H
|
||||
CMTMSG: EQU 108EH
|
||||
IBUFE: EQU 10F0H
|
||||
CSMDT: EQU 1199H
|
||||
AMPM: EQU 1366H
|
||||
XS: EQU 1369H
|
||||
CRTMD1: EQU 1379H
|
||||
EMFLG: EQU 13C3H
|
||||
CTABLE: EQU 13DAH
|
||||
ZLOG: EQU 1042H
|
||||
ZDIRS: EQU 1059H
|
||||
|
||||
ZPOS: EQU 1061H
|
||||
ZFREE: EQU 1065H
|
||||
TEXTST: EQU 1070H
|
||||
MEMLMT: EQU 107EH
|
||||
PWMODE: EQU 109AH
|
||||
PMASK: EQU 109EH
|
||||
GMODE: EQU 109FH
|
||||
YS: EQU 136FH
|
||||
CRTMD2: EQU 137AH
|
||||
ZTOP: EQU 1040H
|
||||
PSMAL: EQU 1096H
|
||||
SUMDT: EQU 1197H
|
||||
TEMPW: EQU 119EH
|
||||
XE: EQU 136AH
|
||||
SSW: EQU 1377H
|
||||
ZDIRMX: EQU 1052H
|
||||
ZINIT: EQU 1053H
|
||||
DCHAN: EQU 1069H
|
||||
TEXTED: EQU 1072H
|
||||
MEMOP: EQU 1099H
|
||||
CSIZE: EQU 136DH
|
||||
YE: EQU 1370H
|
||||
ZWRK1: EQU 1048H
|
||||
LPT.TM: EQU 1094H
|
||||
MAXCF: EQU 109DH
|
||||
SECD: EQU 1367H
|
||||
PALTBL: EQU 1381H
|
||||
LSPAL: EQU 00F0H
|
||||
LSFC: EQU 00FCH
|
||||
LSE0: EQU 00E0H
|
||||
LSE1: EQU 00E1H
|
||||
LSE2: EQU 00E2H
|
||||
LSE3: EQU 00E3H
|
||||
LSE4: EQU 00E4H
|
||||
LSE5: EQU 00E5H
|
||||
LSE6: EQU 00E6H
|
||||
LSD0: EQU 00D0H
|
||||
LSD1: EQU 00D1H
|
||||
LSD2: EQU 00D2H
|
||||
LSD3: EQU 00D3H
|
||||
LSWF: EQU 00CCH
|
||||
LSRF: EQU 00CDH
|
||||
LSDMD: EQU 00CEH
|
||||
LSSCR: EQU 00CFH
|
||||
TEXTBF: EQU 2000H
|
||||
BITBUF: EQU 8000H
|
||||
FONTBF: EQU 1000H
|
||||
ERRTXT: EQU FDA0H
|
||||
ZBYTES: EQU 001DH
|
||||
END
|
||||
END
|
||||
463
software/asm/mz-xz009/MUSIC.ASM
Normal file
463
software/asm/mz-xz009/MUSIC.ASM
Normal file
@@ -0,0 +1,463 @@
|
||||
; ---------------------------
|
||||
; MZ-800 BASIC Music command
|
||||
; FI:MUSIC ver 1.0A 7.18.84
|
||||
; Programed by T.Miho
|
||||
; ---------------------------
|
||||
;
|
||||
INCLD MACRO
|
||||
;
|
||||
DIRARE: EQU 27D0H
|
||||
NMAX: EQU 83 ;/ÙÄs max
|
||||
;
|
||||
;
|
||||
; SOUND m,l / SOUND=(r,d)
|
||||
;
|
||||
SOUND: ENT
|
||||
TEST1 0F4H ;=
|
||||
CALL TEST1
|
||||
DEFB 0F4H
|
||||
ENDM
|
||||
JR NZ,SOUND1
|
||||
CALL HCH28H ;(
|
||||
CALL IBYTE
|
||||
CP 16
|
||||
SET 7,A
|
||||
JR SOUND2
|
||||
;
|
||||
SOUND1: CALL IBYTE
|
||||
CP NMAX+1
|
||||
SOUND2: JP NC,ER03
|
||||
PUSH AF
|
||||
CALL HCH2CH ;,
|
||||
CALL IDEEXP
|
||||
POP AF
|
||||
PUSH AF
|
||||
OR A
|
||||
CALL M,HCH29H ;)
|
||||
POP AF
|
||||
PUSH HL
|
||||
SVC .SOUND
|
||||
RST 3
|
||||
DEFB .SOUND
|
||||
ENDM
|
||||
POP HL
|
||||
RET
|
||||
;
|
||||
; TEMPO n (n= 1 to 7 )
|
||||
;
|
||||
TEMPO: ENT
|
||||
CALL IBYTE
|
||||
DEC A
|
||||
CP 7
|
||||
INC A
|
||||
JP $TEMPO
|
||||
SKP H
|
||||
|
||||
;
|
||||
;;;;;;;;;;;;;;;;;;;;;
|
||||
;
|
||||
; NOISE A1$;A2$,B1$;...
|
||||
; MUSIC A1$;A2$;...;A6$,B1$;...
|
||||
;
|
||||
NOISE: ENT
|
||||
LD A,08H ;pattern (3)
|
||||
DEFB 1
|
||||
;
|
||||
MUSIC: ENT
|
||||
LD A,07H ;pattern (0,1,2)
|
||||
LD (MUNOF),A ;channel pattern
|
||||
CALL HLFTCH
|
||||
LD B,3
|
||||
CP BEH ;WAIT
|
||||
JR Z,MCTRL
|
||||
DEC B
|
||||
CP 99H ;STOP
|
||||
JR Z,MCTRL
|
||||
CP DCH ;INIT
|
||||
JR NZ,MUSIC1
|
||||
;
|
||||
LD DE,MUSCHO
|
||||
LD B,4
|
||||
LD A,2
|
||||
CALL ?SETDE
|
||||
MCTRL: PUSH HL
|
||||
SVC .MCTRL
|
||||
RST 3
|
||||
DEFB .MCTRL
|
||||
ENDM
|
||||
POP HL
|
||||
INC HL
|
||||
RET
|
||||
;
|
||||
MUSIC1: CALL ENDCHK
|
||||
RET Z
|
||||
XOR A
|
||||
LD (MUDNO),A
|
||||
LD (MUCHNO),A
|
||||
LD B,A
|
||||
LD A,0DH
|
||||
LD DE,DIRARE
|
||||
LD (MMBU1A),DE
|
||||
LD (DE),A
|
||||
CALL ?SETDE
|
||||
LD A,(MUNOF)
|
||||
LD (MUNOF2),A
|
||||
MUSI1: LD DE,MUNOF2
|
||||
LD A,(DE)
|
||||
RRC A
|
||||
LD (DE),A
|
||||
PUSH AF
|
||||
LD B,0
|
||||
JR NC,MUSI3
|
||||
CALL HLFTCH
|
||||
CP ";"
|
||||
JR Z,MUSI3
|
||||
CALL STREXP
|
||||
|
||||
MUSI3: PUSH HL
|
||||
LD A,(MUCHNO)
|
||||
CP 4
|
||||
JP Z,ER01 ;Ch no over
|
||||
INC A
|
||||
LD (MUCHNO),A
|
||||
INC B
|
||||
JP Z,ER05
|
||||
LD A,(MUDNO)
|
||||
ADD A,B
|
||||
JP C,ER05 ;data no. over
|
||||
LD (MUDNO),A
|
||||
LD HL,(MMBU1A)
|
||||
CALL LDHLDE
|
||||
LD (MMBU1A),HL
|
||||
DEC HL
|
||||
LD M,0DH
|
||||
POP HL
|
||||
POP AF
|
||||
JR NC,MUSI1
|
||||
CALL ENDCHK
|
||||
JR Z,MUSI4
|
||||
TEST1 ','
|
||||
CALL TEST1
|
||||
DEFB ','
|
||||
ENDM
|
||||
JR Z,MUSI4
|
||||
TEST1 ';'
|
||||
CALL TEST1
|
||||
DEFB ';'
|
||||
ENDM
|
||||
JR MUSI1
|
||||
MUSI4: PUSH HL
|
||||
LD HL,DIRARE
|
||||
LD IX,HL
|
||||
LD IY,MUSCHO
|
||||
LD B,4
|
||||
MUSI5: PUSH BC
|
||||
PUSH HL
|
||||
LD HL,IX
|
||||
LD DE,DIRARE
|
||||
XOR A
|
||||
SBC HL,DE
|
||||
LD (IY+4),L
|
||||
POP HL
|
||||
LD (MUSI6+1),SP
|
||||
CALL MML.EN
|
||||
MUSI6: LD SP,0 ;xxx
|
||||
POP BC
|
||||
INC HL
|
||||
INC IY
|
||||
DJNZ MUSI5
|
||||
LD B,3
|
||||
SVC .MCTRL ;MWAIT
|
||||
RST 3
|
||||
DEFB .MCTRL
|
||||
ENDM
|
||||
MUSI8: LD BC,100H
|
||||
LD HL,DIRARE
|
||||
LD DE,DIRARE+700H
|
||||
|
||||
LDIR
|
||||
LD B,4
|
||||
LD HL,MMCHDA
|
||||
MUSDS: LD E,M
|
||||
LD D,0
|
||||
INC HL
|
||||
PUSH HL
|
||||
LD HL,DIRARE+700H
|
||||
ADD HL,DE
|
||||
LD A,M
|
||||
CP 0FFH
|
||||
JR Z,MUSDS1
|
||||
LD A,4
|
||||
SUB B
|
||||
PUSH BC
|
||||
EX DE,HL
|
||||
SVC .PLAY
|
||||
RST 3
|
||||
DEFB .PLAY
|
||||
ENDM
|
||||
POP BC
|
||||
MUSDS1: POP HL
|
||||
DJNZ MUSDS
|
||||
LD B,1
|
||||
SVC .MCTRL ;PSGON
|
||||
RST 3
|
||||
DEFB .MCTRL
|
||||
ENDM
|
||||
;
|
||||
POP HL
|
||||
JP MUSIC1
|
||||
;
|
||||
MUSCHO: DEFW 0202H ;Oct data eny ch.
|
||||
DEFW 0202H
|
||||
MMCHDA: DEFS 4 ;Play & Noise Data addr
|
||||
;
|
||||
MUDNO: DEFS 1 ;total data No.
|
||||
MUCHNO: DEFS 1 ;ch no.
|
||||
MMBU1A: DEFS 2 ;MML data buffer
|
||||
MUNOF: DEFS 1 ;07:MUSIC 08:NOISE
|
||||
MUNOF2: DEFS 1 ;rotate(MUNOF)
|
||||
;
|
||||
SKP H
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;
|
||||
; MML(HL) => IOCSM(IX) trans
|
||||
; END code=00H or 0DH or C8H
|
||||
;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;
|
||||
MML.EN: CALL MML.WC
|
||||
MML.E0: CALL HLFTCH
|
||||
CALL MMAGCH
|
||||
JR C,MMTCAL
|
||||
LD C,0
|
||||
CALL MML.AG ;String:A-G
|
||||
JR MMTCA9
|
||||
;
|
||||
MMTCAL: CALL MMENCH
|
||||
JP Z,MMLEND
|
||||
LD B,12
|
||||
EX DE,HL
|
||||
LD HL,MMTCAT ;Call address table
|
||||
MMTCA0: CP M ;cmp chr
|
||||
INC HL
|
||||
JR Z,MMTCAJ
|
||||
DEC B
|
||||
JP Z,ER03
|
||||
INC HL
|
||||
INC HL
|
||||
JR MMTCA0
|
||||
MMTCAJ: LD C,M
|
||||
INC HL
|
||||
LD B,M
|
||||
EX DE,HL
|
||||
INC HL
|
||||
CALL .BC
|
||||
MMTCA9: JP C,ER03
|
||||
JR MML.E0
|
||||
;
|
||||
.BC: PUSH BC
|
||||
RET
|
||||
;
|
||||
MMTCAT: DEFM '#'
|
||||
DEFW MML.SH
|
||||
DEFM '+'
|
||||
DEFW MML.UO
|
||||
DEFB D7H
|
||||
DEFW MML.UO
|
||||
DEFM '-'
|
||||
DEFW MML.DO
|
||||
DEFB CFH
|
||||
DEFW MML.DO
|
||||
DEFM 'O'
|
||||
DEFW MML.O
|
||||
DEFM 'N'
|
||||
DEFW MML.N
|
||||
DEFM 'T'
|
||||
DEFW MML.T
|
||||
DEFM 'V'
|
||||
DEFW MML.V
|
||||
DEFM 'S'
|
||||
DEFW MML.S
|
||||
|
||||
DEFM 'M'
|
||||
DEFW MML.M
|
||||
DEFM 'L'
|
||||
DEFW MML.L
|
||||
;
|
||||
MML.DO: LD C,-12 ;-
|
||||
DEFB 11H
|
||||
;
|
||||
MML.UO: LD C,12 ;+
|
||||
TEST1 "#"
|
||||
CALL TEST1
|
||||
DEFB "#"
|
||||
ENDM
|
||||
JR NZ,+3
|
||||
INC C
|
||||
DEFB 11H
|
||||
;
|
||||
MML.SH: LD C,1 ;#
|
||||
CALL HLFTCH
|
||||
CALL MMAGCH
|
||||
RET C
|
||||
MML.AG: LD B,A
|
||||
INC HL
|
||||
CALL MML.DL
|
||||
CCF
|
||||
CALL C,MML.L1
|
||||
RET C
|
||||
LD A,B
|
||||
CP 'R'
|
||||
JR Z,MML.R
|
||||
PUSH HL
|
||||
LD HL,ONCTT-41H ;A-G
|
||||
CALL ADDHLA
|
||||
LD B,(IY+0)
|
||||
INC B
|
||||
LD A,M
|
||||
POP HL
|
||||
ADD A,C
|
||||
SUB 12
|
||||
ADD A,12
|
||||
DJNZ -2
|
||||
JR MML.N0
|
||||
;
|
||||
MML.R: XOR A
|
||||
MML.R0: PUSH AF
|
||||
CALL MML.WO
|
||||
POP AF
|
||||
MML.W1: LD (IX+0),A
|
||||
INC IX
|
||||
RET
|
||||
;
|
||||
MML.O: CALL MML.DL ;O
|
||||
JR NC,+4
|
||||
LD A,2
|
||||
CP 7
|
||||
CCF
|
||||
RET C
|
||||
LD (IY+0),A ;oct No.
|
||||
RET
|
||||
;
|
||||
|
||||
MML.N: CALL MML.DL ;N
|
||||
RET C
|
||||
MML.N0: CP NMAX+1
|
||||
CCF
|
||||
RET C
|
||||
JR MML.R0
|
||||
;
|
||||
MML.T: CALL MML.DL ;T
|
||||
JR NC,+4
|
||||
LD A,4
|
||||
DEC A
|
||||
CP 7
|
||||
CCF
|
||||
RET C
|
||||
ADD A,6AH
|
||||
LD (MML.W),A
|
||||
RET
|
||||
;
|
||||
MML.V: CALL MML.DL ;V
|
||||
JR NC,+4
|
||||
LD A,15
|
||||
CP 16
|
||||
CCF
|
||||
RET C
|
||||
ADD A,80H
|
||||
LD (MML.W+1),A
|
||||
RET
|
||||
;
|
||||
MML.L: CALL MML.DL ;L
|
||||
JR NC,+4
|
||||
LD A,5
|
||||
MML.L1: CP 10
|
||||
CCF
|
||||
RET C
|
||||
MML.L2: ADD A,60H
|
||||
LD (MML.W+2),A
|
||||
RET
|
||||
;
|
||||
MML.S: CALL MML.DL ;S
|
||||
RET C
|
||||
CP 9
|
||||
CCF
|
||||
RET C
|
||||
ADD A,90H
|
||||
LD (MML.W+3),A
|
||||
RET
|
||||
;
|
||||
MML.M: CALL MML.DL ;M
|
||||
RET C
|
||||
OR A
|
||||
SCF
|
||||
RET Z
|
||||
LD B,A
|
||||
LD C,0A0H
|
||||
LD (MML.W+4),BC
|
||||
OR A
|
||||
RET
|
||||
;
|
||||
;
|
||||
MML.DL: CALL HLFTCH
|
||||
|
||||
CALL MMENCH
|
||||
SCF
|
||||
CALL NZ,TSTNUM
|
||||
RET C ;RET not number
|
||||
SVC .DEASC
|
||||
RST 3
|
||||
DEFB .DEASC
|
||||
ENDM
|
||||
JP DCHECK
|
||||
;
|
||||
MMAGCH: CP 'R' ;A-G & R check
|
||||
RET Z
|
||||
CP 'A'
|
||||
RET C
|
||||
CP 'H'
|
||||
CCF
|
||||
RET
|
||||
;
|
||||
MMENCH: OR A
|
||||
RET Z
|
||||
CP 0DH
|
||||
RET Z
|
||||
CP 0C8H
|
||||
RET
|
||||
;
|
||||
MMLEND: CALL MML.WO
|
||||
LD A,FFH ;Music Data end
|
||||
CALL MML.W1
|
||||
JP MUSI6
|
||||
;
|
||||
MML.WO: LD DE,MML.W
|
||||
LD B,6
|
||||
LD A,(DE)
|
||||
OR A
|
||||
CALL NZ,MML.W1
|
||||
INC DE
|
||||
DJNZ -6
|
||||
;
|
||||
MML.WC: LD DE,MML.W
|
||||
LD B,6
|
||||
JP ?CLRDE
|
||||
;
|
||||
;
|
||||
ONCTT: DEFB 9 ;A
|
||||
DEFB 11 ;B
|
||||
DEFB 0 ;C
|
||||
DEFB 2 ;D
|
||||
DEFB 4 ;E
|
||||
DEFB 5 ;F
|
||||
DEFB 7 ;G
|
||||
;
|
||||
MML.W: DEFB 0 ;T
|
||||
DEFB 0 ;V
|
||||
DEFB 0 ;L
|
||||
DEFB 0 ;S
|
||||
DEFB 0 ;Mn
|
||||
DEFB 0
|
||||
;
|
||||
END
|
||||
754
software/asm/mz-xz009/PLT.ASM
Normal file
754
software/asm/mz-xz009/PLT.ASM
Normal file
@@ -0,0 +1,754 @@
|
||||
; -----------------------------
|
||||
; MZ-800 BASIC Plotter package
|
||||
; FI:PLT ver 1.0A 8.25.84
|
||||
; Programed by T.Miho
|
||||
; -----------------------------
|
||||
;
|
||||
INCLD MACRO
|
||||
;
|
||||
P.PLT: EQU 0
|
||||
PNCHNM: DEFB "N" ;N,S,L
|
||||
;
|
||||
NEWON: ENT
|
||||
LD BC,ER59'
|
||||
LD DE,NEWONT ;NEW ON
|
||||
NEWON2: LD A,(DE) ; omit plotter
|
||||
INC DE
|
||||
ADD A,A
|
||||
JR Z,NEWON4
|
||||
LD HL,SJPTBL
|
||||
CALL ADDHLA
|
||||
LD M,C
|
||||
INC HL
|
||||
LD M,B
|
||||
JR NEWON2
|
||||
NEWON4: XOR A ; PLOT OFF
|
||||
LD (INPFLG),A
|
||||
LD A,(PNMODE)
|
||||
DEC A
|
||||
CALL NZ,MODETX ; PMODE TX
|
||||
LD HL,NEWAD2
|
||||
NEWON9: LD (TEXTST),HL
|
||||
RET
|
||||
SKP H
|
||||
|
||||
;
|
||||
NEWONT: DEFB A2H ;PMODE
|
||||
DEFB A3H ;PSKIP
|
||||
DEFB A4H ;PLOT
|
||||
DEFB A5H ;PLINE
|
||||
DEFB A6H ;RLINE
|
||||
DEFB A7H ;PMOVE
|
||||
DEFB A8H ;RMOVE
|
||||
DEFB AEH ;PCOLOR
|
||||
DEFB AFH ;PHOME
|
||||
DEFB B0H ;HSET
|
||||
DEFB B1H ;GPRINT
|
||||
DEFB B3H ;AXIS
|
||||
DEFB BBH ;PCIRCLE
|
||||
DEFB BCH ;PTEST
|
||||
DEFB BDH ;PAGE
|
||||
DEFB 0
|
||||
;
|
||||
LPTTMD: ENT
|
||||
LD B,1 ;Check text mode
|
||||
JR +4
|
||||
LPTGMD: ENT
|
||||
LD B,2 ;Check graph mode
|
||||
LD A,(PNMODE)
|
||||
CP B
|
||||
RET Z
|
||||
JP LPTMER
|
||||
;
|
||||
SKP H
|
||||
|
||||
;
|
||||
NEWAD2: ENT
|
||||
;
|
||||
MODE: ENT
|
||||
CALL MODE0 ;"PMODE" command
|
||||
XOR A
|
||||
LD (LPOSB),A ;LPT TAB
|
||||
RET
|
||||
;
|
||||
MODE0: LD A,(INPFLG)
|
||||
OR A
|
||||
JP NZ,LPTMER
|
||||
CALL PPCHCK
|
||||
TEST1 "G"
|
||||
CALL TEST1
|
||||
DEFB "G"
|
||||
ENDM
|
||||
JP Z,PGRAPH
|
||||
TESTX "T"
|
||||
CALL TESTX
|
||||
DEFB "T"
|
||||
ENDM
|
||||
TEST1 "N"
|
||||
CALL TEST1
|
||||
DEFB "N"
|
||||
ENDM
|
||||
JR Z,TEXTN
|
||||
TEST1 "L"
|
||||
CALL TEST1
|
||||
DEFB "L"
|
||||
ENDM
|
||||
JR Z,TEXTN
|
||||
TESTX "S"
|
||||
CALL TESTX
|
||||
DEFB "S"
|
||||
ENDM
|
||||
TEXTN: LD (PNCHNM),A
|
||||
CALL ENDZ
|
||||
CALL OUTA3H
|
||||
MODETX: LD A,1
|
||||
LD (PNMODE),A
|
||||
SVC .LPTOT
|
||||
RST 3
|
||||
DEFB .LPTOT
|
||||
ENDM
|
||||
LD A,(PNCHNM)
|
||||
CP "N"
|
||||
RET Z
|
||||
CP "L"
|
||||
LD A,0BH
|
||||
JR Z,XLPTOT
|
||||
T80CH: LD A,9
|
||||
SVC .LPTOT
|
||||
RST 3
|
||||
DEFB .LPTOT
|
||||
ENDM
|
||||
SVC .LPTOT
|
||||
RST 3
|
||||
DEFB .LPTOT
|
||||
ENDM
|
||||
|
||||
XLPTOT: SVC .LPTOT
|
||||
RST 3
|
||||
DEFB .LPTOT
|
||||
ENDM
|
||||
RET
|
||||
;
|
||||
OUTA3H: LD A,0AH
|
||||
SVC .LPTOT
|
||||
RST 3
|
||||
DEFB .LPTOT
|
||||
ENDM
|
||||
LD A,3
|
||||
JR XLPTOT
|
||||
;
|
||||
PGRAPH: INC HL ;Graphic mode
|
||||
CALL ENDZ
|
||||
LD A,2
|
||||
LD (PNMODE),A
|
||||
JR XLPTOT
|
||||
SKP H
|
||||
|
||||
;
|
||||
SKIP: ENT
|
||||
CALL PPCHCK
|
||||
CALL LPTTMD ;SKIP n
|
||||
CALL IDEEXP
|
||||
LD A,E
|
||||
OR A
|
||||
RET Z
|
||||
CP -20
|
||||
JR NC,SKIPPS
|
||||
CP 21
|
||||
JP NC,ER03
|
||||
SKIPPS: CALL ENDZ
|
||||
BIT 7,E
|
||||
JR NZ,SKIPD
|
||||
SKIPI: LD A,0AH
|
||||
SVC .LPTOT
|
||||
RST 3
|
||||
DEFB .LPTOT
|
||||
ENDM
|
||||
DEC E
|
||||
JR NZ,SKIPI
|
||||
RET
|
||||
;
|
||||
SKIPD: LD A,03H
|
||||
SVC .LPTOT
|
||||
RST 3
|
||||
DEFB .LPTOT
|
||||
ENDM
|
||||
INC E
|
||||
JR NZ,SKIPD
|
||||
RET
|
||||
;
|
||||
PNMX99: PUSH HL
|
||||
LD HL,999
|
||||
JR +6
|
||||
PNMX48: PUSH HL
|
||||
LD HL,480
|
||||
PUSH HL
|
||||
ADD HL,DE
|
||||
POP HL
|
||||
JR C,PNMX2
|
||||
SBC HL,DE
|
||||
JP C,ER03
|
||||
PNMX2: POP HL
|
||||
RET
|
||||
SKP H
|
||||
|
||||
;
|
||||
PLINE: ENT ; PLINE %n,x,y
|
||||
LD C,"D"
|
||||
DEFB 11H
|
||||
RLINE: ENT ; RLINE %n,x,y"
|
||||
LD C,"J"
|
||||
DEFB 11H
|
||||
PMOVE: ENT ; PMOVE x,y
|
||||
LD C,"M"
|
||||
DEFB 11H
|
||||
RMOVE: ENT ; RMOVE x,y
|
||||
LD C,"R"
|
||||
CALL PPCHCK
|
||||
CALL LPTGMD
|
||||
LD A,C
|
||||
LD (LINEC+1),A
|
||||
CP "M"
|
||||
JR NC,LINE5 ;"M","R"
|
||||
TEST1 "%"
|
||||
CALL TEST1
|
||||
DEFB "%"
|
||||
ENDM
|
||||
JR NZ,LINE5
|
||||
CALL IBYTE
|
||||
LD A,E
|
||||
DEC A
|
||||
CP 16
|
||||
JP NC,ER03
|
||||
DEC DE
|
||||
LD A,"L"
|
||||
SVC .LPTOT
|
||||
RST 3
|
||||
DEFB .LPTOT
|
||||
ENDM
|
||||
CALL NUMPLT
|
||||
CALL LPTCR
|
||||
CALL ENDCHK
|
||||
RET Z
|
||||
CALL CH2CH
|
||||
LINE5: CALL IDEEXP
|
||||
CALL CH2CH
|
||||
CALL PNMX48
|
||||
PUSH DE
|
||||
CALL IDEEXP
|
||||
CP ","
|
||||
JR Z,LINEXY
|
||||
CALL ENDZ
|
||||
LINEXY: CALL PNMX99
|
||||
POP BC
|
||||
PUSH DE
|
||||
LINEC: LD A,0 ;Plotter command
|
||||
SVC .LPTOT
|
||||
RST 3
|
||||
DEFB .LPTOT
|
||||
ENDM
|
||||
LD E,C
|
||||
LD D,B
|
||||
CALL NUMPLT ;X
|
||||
CALL LPTCOM
|
||||
POP DE
|
||||
|
||||
CALL NUMPLT ;Y
|
||||
CALL LPTCR
|
||||
CALL ENDCHK
|
||||
RET Z
|
||||
INC HL
|
||||
JR LINE5
|
||||
SKP H
|
||||
|
||||
;
|
||||
PCOLOR: ENT
|
||||
CALL PPCHCK
|
||||
CALL IBYTE ;PCOLOR n
|
||||
LD A,E
|
||||
CP 4
|
||||
JP NC,ER03
|
||||
CALL ENDZ
|
||||
LD A,(PNMODE)
|
||||
CP 2
|
||||
JR Z,PNMBR2
|
||||
CALL OUTA3H
|
||||
LD A,2
|
||||
SVC .LPTOT
|
||||
RST 3
|
||||
DEFB .LPTOT
|
||||
ENDM
|
||||
CALL PNMBR2
|
||||
JP PRTTX
|
||||
;
|
||||
PNMBR2: LD A,"C"
|
||||
SVC .LPTOT
|
||||
RST 3
|
||||
DEFB .LPTOT
|
||||
ENDM
|
||||
LD A,E
|
||||
OR 30H
|
||||
SVC .LPTOT
|
||||
RST 3
|
||||
DEFB .LPTOT
|
||||
ENDM
|
||||
LPTCR: LD A,0DH
|
||||
JR +4
|
||||
LPTCOM: LD A,","
|
||||
YLPTOT: SVC .LPTOT
|
||||
RST 3
|
||||
DEFB .LPTOT
|
||||
ENDM
|
||||
RET
|
||||
;
|
||||
PHOME: ENT
|
||||
LD C,"H"
|
||||
DEFB 11H
|
||||
HSET: ENT
|
||||
LD C,"I"
|
||||
CALL LPTGMD ;PHOME / HSET
|
||||
CALL ENDZ
|
||||
LD A,C
|
||||
JR YLPTOT
|
||||
;
|
||||
SKP H
|
||||
|
||||
;
|
||||
GPRINT: ENT
|
||||
CALL PPCHCK
|
||||
CALL LPTGMD ;GPRINT [n,s],x$
|
||||
TEST1 "["
|
||||
CALL TEST1
|
||||
DEFB "["
|
||||
ENDM
|
||||
JR NZ,SYMBL2
|
||||
CALL IBYTE
|
||||
CP 64
|
||||
JP NC,ER03
|
||||
PUSH DE
|
||||
CALL HCH2CH
|
||||
CALL IBYTE
|
||||
CP 4
|
||||
JP NC,ER03
|
||||
PUSH DE
|
||||
TESTX "]"
|
||||
CALL TESTX
|
||||
DEFB "]"
|
||||
ENDM
|
||||
POP BC
|
||||
POP DE
|
||||
PUSH BC
|
||||
LD A,"S"
|
||||
SVC .LPTOT
|
||||
RST 3
|
||||
DEFB .LPTOT
|
||||
ENDM
|
||||
CALL NUMPLT
|
||||
CALL LPTCOM
|
||||
POP DE
|
||||
LD A,"Q"
|
||||
SVC .LPTOT
|
||||
RST 3
|
||||
DEFB .LPTOT
|
||||
ENDM
|
||||
CALL NUMPLT
|
||||
CALL LPTCR
|
||||
CALL ENDCHK
|
||||
RET Z
|
||||
CALL CH2CH
|
||||
SYMBL2: CALL STREXP
|
||||
CALL ENDCHK
|
||||
JR Z,SYMBL5
|
||||
CALL CH2CH
|
||||
DEC HL
|
||||
SYMBL5: LD A,B
|
||||
OR A
|
||||
JR Z,SYMBL4
|
||||
LD A,"P"
|
||||
SVC .LPTOT
|
||||
RST 3
|
||||
DEFB .LPTOT
|
||||
ENDM
|
||||
SYMBL3: LD A,(DE)
|
||||
SVC .LPTOT
|
||||
RST 3
|
||||
DEFB .LPTOT
|
||||
|
||||
ENDM
|
||||
INC DE
|
||||
DJNZ SYMBL3
|
||||
CALL LPTCR
|
||||
SYMBL4: CALL ENDCHK
|
||||
RET Z
|
||||
INC HL
|
||||
JR SYMBL2
|
||||
SKP H
|
||||
|
||||
;
|
||||
AXIS: ENT
|
||||
CALL LPTGMD ;AXIS x,p,r
|
||||
CALL IBYTE
|
||||
CP 2
|
||||
JP NC,ER03
|
||||
PUSH AF
|
||||
CALL HCH2CH
|
||||
CALL IDEEXP
|
||||
PUSH DE
|
||||
CALL CH2CH
|
||||
CALL IBYTE
|
||||
OR A
|
||||
JP Z,ER03
|
||||
CALL ENDZ
|
||||
LD A,"X"
|
||||
SVC .LPTOT
|
||||
RST 3
|
||||
DEFB .LPTOT
|
||||
ENDM
|
||||
POP BC
|
||||
POP AF
|
||||
PUSH DE
|
||||
PUSH BC
|
||||
OR 30H
|
||||
SVC .LPTOT
|
||||
RST 3
|
||||
DEFB .LPTOT
|
||||
ENDM
|
||||
CALL LPTCOM
|
||||
POP DE
|
||||
CALL PNMX99
|
||||
CALL NUMPLT
|
||||
CALL LPTCOM
|
||||
POP DE
|
||||
CALL NUMPLT
|
||||
JP LPTCR
|
||||
SKP H
|
||||
|
||||
;
|
||||
PCIRCLE:ENT
|
||||
CALL LPTGMD ;PCIRCLE x,y,r,s,e,d
|
||||
PUSH HL
|
||||
LD DE,0
|
||||
LD HL,CRS
|
||||
CALL FLTHEX
|
||||
LD DE,360
|
||||
LD HL,CRE
|
||||
CALL FLTHEX
|
||||
LD HL,FLTEN
|
||||
LD DE,CRTEN
|
||||
CALL LDIR5
|
||||
POP HL
|
||||
CALL EXPR ;X
|
||||
CALL CH2CH
|
||||
PUSH HL
|
||||
LD HL,CRX
|
||||
EX DE,HL
|
||||
CALL LDIR5
|
||||
POP HL
|
||||
CALL EXPR ;Y
|
||||
CALL CH2CH
|
||||
PUSH HL
|
||||
LD HL,CRY
|
||||
EX DE,HL
|
||||
CALL LDIR5
|
||||
POP HL
|
||||
CALL EXPR ;R
|
||||
PUSH HL
|
||||
PUSH AF
|
||||
LD HL,CRR
|
||||
EX DE,HL
|
||||
CALL LDIR5
|
||||
LD A,(CRR+1)
|
||||
RLCA
|
||||
JP C,ER03
|
||||
POP AF
|
||||
CP ","
|
||||
JR NZ,CIREND
|
||||
POP HL
|
||||
INC HL
|
||||
CALL EXPR ;S
|
||||
PUSH HL
|
||||
PUSH AF
|
||||
LD HL,CRS
|
||||
EX DE,HL
|
||||
CALL LDIR5
|
||||
POP AF
|
||||
CP ","
|
||||
JR NZ,CIREND
|
||||
POP HL
|
||||
INC HL
|
||||
CALL EXPR ;E
|
||||
PUSH HL
|
||||
PUSH AF
|
||||
LD HL,CRE
|
||||
EX DE,HL
|
||||
CALL LDIR5
|
||||
POP AF
|
||||
|
||||
CP ","
|
||||
JR NZ,CIREND
|
||||
POP HL
|
||||
INC HL
|
||||
CALL EXPR ;D
|
||||
PUSH HL
|
||||
LD HL,CRTEN
|
||||
EX DE,HL
|
||||
CALL LDIR5
|
||||
LD A,(CRTEN+1)
|
||||
RLCA
|
||||
JP C,ER03
|
||||
CIREND:
|
||||
POP HL
|
||||
CALL ENDZ
|
||||
PUSH HL
|
||||
;
|
||||
LD HL,CRE
|
||||
LD DE,CRS
|
||||
LD A,(CRTEN)
|
||||
OR A
|
||||
CALL NZ,CMP
|
||||
JP C,ER03
|
||||
;
|
||||
CALL CRXYRS ;CAL X,Y
|
||||
;
|
||||
LD HL,CRXX ;MOVE X,Y
|
||||
LD (CRMOVX+1),HL
|
||||
LD HL,CRYY
|
||||
LD (CRMOVY+1),HL
|
||||
CALL CRMOVE
|
||||
LD A,(CRTEN)
|
||||
OR A
|
||||
JR Z,CREDLI
|
||||
;
|
||||
CRCLP: LD HL,CRS ;S+D
|
||||
LD DE,CRTEN
|
||||
CALL ADD
|
||||
LD DE,CRE
|
||||
CALL CMP
|
||||
JR NC,EDLINE
|
||||
CALL CRXYRS
|
||||
CALL CRLINE
|
||||
;
|
||||
SVC .BREAK
|
||||
RST 3
|
||||
DEFB .BREAK
|
||||
ENDM
|
||||
JR NZ,CRCLP
|
||||
;
|
||||
POP HL
|
||||
RET
|
||||
;
|
||||
EDLINE: CALL CREDST
|
||||
CALL CRLINE
|
||||
POP HL
|
||||
RET
|
||||
;
|
||||
CREDST: LD HL,CRE
|
||||
LD DE,CRS
|
||||
|
||||
LD BC,5
|
||||
LDIR
|
||||
JR CRXYRS
|
||||
;
|
||||
CREDLI: LD HL,CRX
|
||||
LD (CRMOVX+1),HL
|
||||
LD HL,CRY
|
||||
LD (CRMOVY+1),HL
|
||||
CALL CRLINE
|
||||
CALL CREDST
|
||||
LD HL,CRXX
|
||||
LD (CRMOVX+1),HL
|
||||
LD HL,CRYY
|
||||
LD (CRMOVY+1),HL
|
||||
CALL CRLINE
|
||||
POP HL
|
||||
RET
|
||||
;
|
||||
CRLINE: LD A,"D"
|
||||
DEFB 21H
|
||||
CRMOVE: LD A,"M"
|
||||
PUSH AF
|
||||
CRMOVX: LD HL,CRX
|
||||
CALL HLFLT
|
||||
PUSH HL
|
||||
EX DE,HL
|
||||
CALL PNMX99
|
||||
CRMOVY: LD HL,CRY
|
||||
CALL HLFLT
|
||||
PUSH HL
|
||||
EX DE,HL
|
||||
CALL PNMX99
|
||||
POP HL
|
||||
POP DE
|
||||
POP AF
|
||||
SVC .LPTOT
|
||||
RST 3
|
||||
DEFB .LPTOT
|
||||
ENDM
|
||||
PUSH HL
|
||||
CALL NUMPLT
|
||||
CALL LPTCOM
|
||||
POP DE
|
||||
CALL NUMPLT
|
||||
JP LPTCR
|
||||
;
|
||||
CRXYRS: LD DE,(INTFAC)
|
||||
LD HL,CRS
|
||||
CALL LDIR5
|
||||
LD HL,(INTFAC)
|
||||
CALL RAD
|
||||
CALL COS
|
||||
LD DE,CRR
|
||||
CALL MUL
|
||||
LD DE,CRX
|
||||
CALL ADD
|
||||
LD DE,CRXX
|
||||
CALL LDIR5
|
||||
LD DE,(INTFAC)
|
||||
LD HL,CRS
|
||||
|
||||
CALL LDIR5
|
||||
LD HL,(INTFAC)
|
||||
CALL RAD
|
||||
CALL SIN
|
||||
LD DE,CRR
|
||||
CALL MUL
|
||||
LD DE,CRY
|
||||
CALL ADD
|
||||
LD DE,CRYY
|
||||
JP LDIR5
|
||||
;
|
||||
CRX: DEFS 5
|
||||
CRY: DEFS 5
|
||||
CRR: DEFS 5
|
||||
CRS: DEFS 5
|
||||
CRE: DEFS 5
|
||||
CRTEN: DEFS 5
|
||||
CRXX: DEFS 5
|
||||
CRYY: DEFS 5
|
||||
DEFS 5
|
||||
;
|
||||
;
|
||||
;
|
||||
NUMPLT: PUSH AF
|
||||
PUSH HL
|
||||
LD HL,(INTFAC)
|
||||
CALL FLTHEX
|
||||
CALL CVNMFL
|
||||
SVC .COUNT
|
||||
RST 3
|
||||
DEFB .COUNT
|
||||
ENDM
|
||||
NUMPL2: LD A,(DE)
|
||||
SVC .LPTOT
|
||||
RST 3
|
||||
DEFB .LPTOT
|
||||
ENDM
|
||||
INC DE
|
||||
DJNZ NUMPL2
|
||||
POP HL
|
||||
POP AF
|
||||
RET
|
||||
;
|
||||
SKP H
|
||||
|
||||
;
|
||||
TEST: ENT
|
||||
CALL PPCHCK
|
||||
CALL LPTTMD ;TEST command
|
||||
CALL ENDZ
|
||||
LD A,04H
|
||||
SVC .LPTOT
|
||||
RST 3
|
||||
DEFB .LPTOT
|
||||
ENDM
|
||||
RET
|
||||
;
|
||||
PAGE: ENT
|
||||
CALL LPTTMD ;PAGE n
|
||||
CALL IDEEXP
|
||||
LD A,E
|
||||
OR A
|
||||
JP Z,ER03
|
||||
CP 73
|
||||
JP NC,ER03
|
||||
CALL ENDZ
|
||||
LD A,9
|
||||
SVC .LPTOT
|
||||
RST 3
|
||||
DEFB .LPTOT
|
||||
ENDM
|
||||
SVC .LPTOT
|
||||
RST 3
|
||||
DEFB .LPTOT
|
||||
ENDM
|
||||
LD A,(PSEL)
|
||||
BIT P.PLT,A
|
||||
JR Z,PAGE2
|
||||
CALL NUMPLT ;Plotter only
|
||||
JP LPTCR
|
||||
PAGE2: LD A,E ;Except plotter
|
||||
LD DE,KEYBUF
|
||||
CALL HEXACC
|
||||
DEC DE
|
||||
DEC DE
|
||||
LD A,(DE)
|
||||
SVC .LPTOT
|
||||
RST 3
|
||||
DEFB .LPTOT
|
||||
ENDM
|
||||
INC DE
|
||||
LD A,(DE)
|
||||
SVC .LPTOT
|
||||
RST 3
|
||||
DEFB .LPTOT
|
||||
ENDM
|
||||
RET
|
||||
;
|
||||
PLOT: ENT
|
||||
LD A,M
|
||||
CP 9DH ;PLOT ON/OFF
|
||||
JR Z,PLOTO'
|
||||
CP A1H ;OFF
|
||||
JP NZ,ER01
|
||||
XOR A
|
||||
|
||||
PLOTOK: LD (INPFLG),A
|
||||
INC HL
|
||||
RET
|
||||
PLOTO': CALL LPTTMD
|
||||
CALL PPCHCK
|
||||
LD A,(PNCHNM)
|
||||
CP "L"
|
||||
JP Z,LPTMER
|
||||
CALL PRTTX
|
||||
PL40C: LD A,(INPFLG)
|
||||
OR A
|
||||
JR NZ,PLOTOK
|
||||
CALL CONSOI
|
||||
LD A,16H
|
||||
SVC .CRT1C
|
||||
RST 3
|
||||
DEFB .CRT1C
|
||||
ENDM
|
||||
OR 01H
|
||||
JR PLOTOK
|
||||
;
|
||||
PRTTX: LD A,1
|
||||
SVC .LPTOT
|
||||
RST 3
|
||||
DEFB .LPTOT
|
||||
ENDM
|
||||
LD A,(CRTMD2)
|
||||
CP 3
|
||||
RET C
|
||||
CALL T80CH
|
||||
RET
|
||||
;
|
||||
PPCHCK: LD A,(PSEL)
|
||||
BIT P.PLT,A ;if not plotter
|
||||
JP Z,LPTMER ; then err
|
||||
RET
|
||||
;
|
||||
NEWAD0: ENT
|
||||
;
|
||||
END
|
||||
1346
software/asm/mz-xz009/STMNT.ASM
Normal file
1346
software/asm/mz-xz009/STMNT.ASM
Normal file
File diff suppressed because it is too large
Load Diff
5
software/asm/mz-xz009/XSYS.ASM
Normal file
5
software/asm/mz-xz009/XSYS.ASM
Normal file
@@ -0,0 +1,5 @@
|
||||
;
|
||||
;
|
||||
ORG 5800H
|
||||
$START: ENT
|
||||
END
|
||||
9
software/asm/mz-xz009/XWORK.ASM
Normal file
9
software/asm/mz-xz009/XWORK.ASM
Normal file
@@ -0,0 +1,9 @@
|
||||
ORG 2000H
|
||||
TEXTBF:
|
||||
DEFS 2000
|
||||
;
|
||||
; work area
|
||||
;
|
||||
DIRARE: ENT ;DIR area
|
||||
DEFS 800H
|
||||
END
|
||||
891
software/asm/mz2000_ipl.asm
Normal file
891
software/asm/mz2000_ipl.asm
Normal file
@@ -0,0 +1,891 @@
|
||||
;****************************************************************
|
||||
;
|
||||
; MZ-2000 Initial Program Loader Firmware.
|
||||
;
|
||||
; Disassembled with dz80 v2.1 and comments copied from the
|
||||
; MZ-80B IPL disassembly.
|
||||
;
|
||||
;****************************************************************
|
||||
;
|
||||
CR EQU 0D8H
|
||||
TR EQU 0D9H
|
||||
SCR EQU 0DAH
|
||||
DR EQU 0DBH
|
||||
DM EQU 0DCH
|
||||
HS EQU 0DDH
|
||||
PPIA EQU 0E0H
|
||||
PPIB EQU 0E1H
|
||||
PPIC EQU 0E2H
|
||||
PPICTL EQU 0E3H
|
||||
PIOA EQU 0E8H
|
||||
PIOCTLA EQU 0E9H
|
||||
PIOB EQU 0EAH
|
||||
PIOCTLB EQU 0EBH
|
||||
GRPHCTL EQU 0F4H
|
||||
IBUFE EQU 0CF00H
|
||||
ATRB EQU 0CF00H
|
||||
NAME EQU 0CF01H
|
||||
SIZE EQU 0CF12H
|
||||
DTADR EQU 0CF14H
|
||||
SUMDT EQU 0FFE0H
|
||||
TMCNT EQU 0FFE2H
|
||||
IBADR1 EQU 0CF00H
|
||||
IBADR2 EQU 08000H
|
||||
NTRACK EQU 0FFE0H
|
||||
NSECT EQU 0FFE1H
|
||||
BSIZE EQU 0FFE2H
|
||||
STTR EQU 0FFE4H
|
||||
STSE EQU 0FFE5H
|
||||
MTFG EQU 0FFE6H
|
||||
CLBF0 EQU 0FFE7H
|
||||
CLBF1 EQU 0FFE8H
|
||||
CLBF2 EQU 0FFE9H
|
||||
CLBF3 EQU 0FFEAH
|
||||
RETRY EQU 0FFEBH
|
||||
DRINO EQU 0FFECH
|
||||
PRGSTART EQU 00000H
|
||||
|
||||
ORG PRGSTART
|
||||
|
||||
L0000: JR START
|
||||
;
|
||||
; NST RESET
|
||||
;
|
||||
NST: LD A,003H ;Set PC1 NST=1
|
||||
OUT (PPICTL),A
|
||||
START: LD A,082H ;8255 A=OUT B=IN C=OUT
|
||||
OUT (PPICTL),A
|
||||
LD A,058H ;PIO A=OUT
|
||||
OUT (PPIC),A
|
||||
LD SP,SUMDT ;PIO B=IN
|
||||
LD A,0F7H
|
||||
OUT (PPIA),A
|
||||
LD A,00FH
|
||||
OUT (PIOCTLA),A ;BST=1 NST=0 OPEN=1 WRITE=1
|
||||
LD A,0CFH
|
||||
OUT (PIOCTLB),A
|
||||
LD A,0FFH
|
||||
OUT (PIOCTLB),A
|
||||
XOR A ;Set Graphics VRAM to default, input to GRPH I, no output.
|
||||
OUT (0F6H),A
|
||||
OUT (GRPHCTL),A
|
||||
INC A
|
||||
OUT (0F7H),A
|
||||
LD A,007H
|
||||
OUT (0F5H),A
|
||||
LD A,0D3H
|
||||
OUT (PIOA),A
|
||||
LD HL,0D000H
|
||||
LD A,CR
|
||||
CLEAR: LD (HL),000H ; DISPLAY CLEAR
|
||||
INC HL
|
||||
CP H
|
||||
JR NZ,CLEAR
|
||||
LD A,0FFH
|
||||
OUT (PPIA),A
|
||||
LD A,003H
|
||||
OUT (0F7H),A
|
||||
CALL L006E
|
||||
LD A,002H
|
||||
OUT (0F7H),A
|
||||
CALL L006E
|
||||
LD A,001H
|
||||
OUT (0F7H),A
|
||||
CALL L006E
|
||||
LD A,013H
|
||||
OUT (PIOA),A
|
||||
XOR A
|
||||
LD (DRINO),A
|
||||
LD (MTFG),A
|
||||
KEYIN: CALL KEYS1
|
||||
BIT 3,A ;C - Cassette.
|
||||
JR Z,CMT
|
||||
BIT 0,A ;/ - Boot external rom.
|
||||
JP Z,EXROMT
|
||||
JR NKIN ;No selection, so standard startup, try FDC then CMT.
|
||||
|
||||
L006E: LD HL,0C000H
|
||||
DI
|
||||
IN A,(PIOA)
|
||||
SET 7,A
|
||||
RES 6,A
|
||||
OUT (PIOA),A
|
||||
LD DE,0C001H
|
||||
LD (HL),000H
|
||||
LD BC,03E7FH
|
||||
L0082: LDIR
|
||||
RES 7,A
|
||||
SET 6,A
|
||||
OUT (PIOA),A
|
||||
EI
|
||||
RET
|
||||
|
||||
KEYS1: LD B,014H ;Preserve A4-A7, set A4 to prevent all strobes low, the select line 5 (0-4).
|
||||
KEYS: IN A,(PIOA)
|
||||
AND 0F0H
|
||||
OR B
|
||||
OUT (PIOA),A
|
||||
IN A,(PIOB) ;Read the strobed key.
|
||||
RET
|
||||
|
||||
NKIN: CALL FDCC
|
||||
JP Z,FD
|
||||
JR CMT
|
||||
|
||||
FDCC: LD A,0A5H
|
||||
LD B,A
|
||||
OUT (TR),A
|
||||
CALL DLY80U
|
||||
IN A,(TR)
|
||||
CP B
|
||||
RET
|
||||
;
|
||||
; ;
|
||||
; CMT CONTROL ;
|
||||
; ;
|
||||
;
|
||||
CMT: CALL MSTOP
|
||||
CALL KYEMES
|
||||
CALL RDINF
|
||||
JR C,ST1
|
||||
CALL LDMSG
|
||||
LD HL,NAME
|
||||
LD E,010H
|
||||
LD C,010H
|
||||
CALL DISP2
|
||||
LD A,(IBUFE)
|
||||
CP 001H
|
||||
JR NZ,MISMCH
|
||||
CALL RDDAT
|
||||
ST1: PUSH AF
|
||||
CALL FR
|
||||
POP AF
|
||||
JP C,TRYAG
|
||||
JP NST
|
||||
|
||||
MISMCH: LD HL,MES16
|
||||
LD E,00AH
|
||||
LD C,00FH
|
||||
CALL DISP
|
||||
CALL MSTOP
|
||||
SCF
|
||||
JR ST1
|
||||
;
|
||||
;READ INFORMATION
|
||||
; CF=1:ERROR
|
||||
?RDI:
|
||||
RDINF: DI
|
||||
IN A,(PPIC)
|
||||
SET 5,A
|
||||
OUT (PPIC),A
|
||||
LD D,004H
|
||||
LD BC,0080H
|
||||
LD HL,IBUFE
|
||||
RD1: CALL MOTOR
|
||||
JR C,STPEIR
|
||||
CALL TMARK
|
||||
JR C,STPEIR
|
||||
CALL RTAPE
|
||||
JR C,STPEIR
|
||||
BIT 3,D
|
||||
JR Z,EIRTN
|
||||
STPEIR: CALL MSTOP
|
||||
EIRTN: EI
|
||||
RET
|
||||
;
|
||||
;
|
||||
;READ DATA
|
||||
;
|
||||
?RDD:
|
||||
RDDAT: DI
|
||||
LD D,008H
|
||||
LD BC,(0CF12H)
|
||||
LD HL,IBADR2
|
||||
JR RD1
|
||||
;
|
||||
;
|
||||
;READ TAPE
|
||||
; BC=SIZE
|
||||
; DE=LOAD ADDRSS
|
||||
RTAPE: PUSH DE
|
||||
PUSH BC
|
||||
PUSH HL
|
||||
LD H,002H
|
||||
RTP2: CALL SPDIN
|
||||
JR C,TRTN1 ; BREAK
|
||||
JR Z,RTP2
|
||||
LD D,H
|
||||
LD HL,L0000
|
||||
LD (SUMDT),HL
|
||||
POP HL
|
||||
POP BC
|
||||
PUSH BC
|
||||
PUSH HL
|
||||
RTP3: CALL RBYTE
|
||||
JR C,TRTN1
|
||||
LD (HL),A
|
||||
INC HL
|
||||
DEC BC
|
||||
LD A,B
|
||||
OR C
|
||||
JR NZ,RTP3
|
||||
LD HL,(SUMDT)
|
||||
CALL RBYTE
|
||||
JR C,TRTN1
|
||||
LD E,A
|
||||
CALL RBYTE
|
||||
JR C,TRTN1
|
||||
CP L
|
||||
JR NZ,RTP5
|
||||
LD A,E
|
||||
CP H
|
||||
JR Z,TRTN1
|
||||
RTP5: DEC D
|
||||
JR Z,RTP6
|
||||
LD H,D
|
||||
JR RTP2
|
||||
|
||||
RTP6: CALL BOOTER
|
||||
SCF
|
||||
TRTN1: POP HL
|
||||
POP BC
|
||||
POP DE
|
||||
RET
|
||||
|
||||
EDGE: IN A,(PPIB)
|
||||
CPL
|
||||
RLCA
|
||||
RET C ; BREAK
|
||||
RLCA
|
||||
JR NC,EDGE ; WAIT ON LOW
|
||||
L016A: IN A,(PPIB)
|
||||
CPL
|
||||
RLCA
|
||||
RET C ; BREAK
|
||||
RLCA
|
||||
JR C,L016A ; WAIT ON HIGH
|
||||
RET
|
||||
; 1 BYTE READ
|
||||
; DATA=A
|
||||
; SUMDT STORE
|
||||
RBYTE: PUSH HL
|
||||
LD HL,00800H ; 8 BITS
|
||||
RBY1: CALL SPDIN
|
||||
JR C,RBY3 ; BREAK
|
||||
JR Z,RBY2 ; BIT=0
|
||||
PUSH HL
|
||||
LD HL,(SUMDT) ;CHECKSUM
|
||||
INC HL
|
||||
LD (SUMDT),HL
|
||||
POP HL
|
||||
SCF
|
||||
RBY2: RL L
|
||||
DEC H
|
||||
JR NZ,RBY1
|
||||
CALL EDGE
|
||||
LD A,L
|
||||
RBY3: POP HL
|
||||
RET
|
||||
;TAPE MARK DETECT
|
||||
; E=L:INFORMATION
|
||||
; E=S:DATA
|
||||
TMARK: PUSH HL
|
||||
LD HL,01414H
|
||||
BIT 3,D
|
||||
JR NZ,TM0
|
||||
ADD HL,HL
|
||||
TM0: LD (TMCNT),HL
|
||||
TM1: LD HL,(TMCNT)
|
||||
TM2: CALL SPDIN
|
||||
JR C,RBY3
|
||||
JR Z,TM1
|
||||
DEC H
|
||||
JR NZ,TM2
|
||||
TM3: CALL SPDIN
|
||||
JR C,RBY3
|
||||
JR NZ,TM1
|
||||
DEC L
|
||||
JR NZ,TM3
|
||||
CALL EDGE
|
||||
JR RBY3
|
||||
|
||||
SPDIN: CALL EDGE ;WAIT ON HIGH
|
||||
RET C ;BREAK
|
||||
CALL DLY2
|
||||
IN A,(PPIB) ;READ BIT
|
||||
AND 040H
|
||||
RET
|
||||
;
|
||||
;
|
||||
;MOTOR ON
|
||||
MOTOR: PUSH DE
|
||||
PUSH BC
|
||||
PUSH HL
|
||||
IN A,(PPIB)
|
||||
AND 020H
|
||||
JR Z,MOTRD
|
||||
LD HL,MES6
|
||||
LD E,00AH
|
||||
LD C,00EH
|
||||
CALL DISP
|
||||
CALL OPEN
|
||||
MOT1: IN A,(PIOB)
|
||||
CPL
|
||||
RLCA
|
||||
JR C,MOTR
|
||||
IN A,(PPIB)
|
||||
AND 020H
|
||||
JR NZ,MOT1
|
||||
CALL KYEMES
|
||||
CALL DEL1M
|
||||
MOTRD: CALL PLAY
|
||||
MOTR: POP HL
|
||||
POP BC
|
||||
POP DE
|
||||
RET
|
||||
;
|
||||
;
|
||||
;MOTOR STOP
|
||||
MSTOP: LD A,0F7H
|
||||
OUT (PPIA),A
|
||||
CALL DEL6
|
||||
LD A,0FFH
|
||||
OUT (PPIA),A
|
||||
RET
|
||||
;EJECT
|
||||
OPEN: LD A,008H ;Reset PC4 - EJECT activate
|
||||
OUT (PPICTL),A
|
||||
CALL DEL6
|
||||
LD A,009H
|
||||
OUT (PPICTL),A ;Set PC4 - Deactivate EJECT
|
||||
RET
|
||||
|
||||
KYEMES: LD HL,MES3
|
||||
LD E,004H
|
||||
LD C,01CH
|
||||
CALL DISP
|
||||
RET
|
||||
;
|
||||
;PLAY
|
||||
PLAY: LD A,0FBH
|
||||
OUT (PPIA),A
|
||||
CALL DEL6
|
||||
LD A,0FFH
|
||||
OUT (PPIA),A
|
||||
RET
|
||||
|
||||
FR: LD A,0FEH
|
||||
FR1: OUT (PPIA),A
|
||||
CALL DEL6
|
||||
LD A,0FFH
|
||||
OUT (PPIA),A
|
||||
IN A,(PPIC)
|
||||
RES 5,A
|
||||
OUT (PPIC),A
|
||||
RET
|
||||
;
|
||||
;TIMING DEL
|
||||
DM1: PUSH AF
|
||||
DM1A: XOR A
|
||||
DM1B: DEC A
|
||||
JR NZ,DM1B
|
||||
DEC BC
|
||||
LD A,B
|
||||
OR C
|
||||
JR NZ,DM1A
|
||||
POP AF
|
||||
POP BC
|
||||
RET
|
||||
|
||||
DEL6: PUSH BC
|
||||
LD BC,RDINF
|
||||
JR DM1
|
||||
|
||||
DEL1M: PUSH BC
|
||||
LD BC,060FH
|
||||
JR DM1
|
||||
;
|
||||
;TAPE DELAY TIMING
|
||||
;
|
||||
;
|
||||
DLY2: LD A,031H
|
||||
DLY2A: DEC A
|
||||
JP NZ,DLY2A
|
||||
RET
|
||||
|
||||
LDMSG: LD HL,MES1
|
||||
LD E,000H
|
||||
LD C,00EH
|
||||
JR DISP
|
||||
|
||||
DISP2: LD A,0D3H
|
||||
OUT (PIOA),A
|
||||
JR DISP1
|
||||
|
||||
BOOTER: LD HL,MES8
|
||||
LD E,00AH
|
||||
LD C,00DH
|
||||
DISP: LD A,0D3H
|
||||
OUT (PIOA),A
|
||||
EXX
|
||||
LD HL,0D000H
|
||||
LD A,CR
|
||||
DISP3: LD (HL),000H
|
||||
INC HL
|
||||
CP H
|
||||
JR NZ,DISP3
|
||||
EXX
|
||||
DISP1: XOR A
|
||||
LD B,A
|
||||
LD D,0D0H
|
||||
LDIR
|
||||
LD A,013H
|
||||
OUT (PIOA),A
|
||||
RET
|
||||
|
||||
;
|
||||
MES1: DB "IPL is loading"
|
||||
MES3: DB "IPL is looking for a program"
|
||||
MES6: DB "Make ready CMT"
|
||||
MES8: DB "Loading error"
|
||||
MES9: DB "Make ready FD"
|
||||
MES10: DB "Press F or C"
|
||||
MES11: DB "F:Floppy disk "
|
||||
MES12: DB "C:Cassette tape"
|
||||
MES13: DB "Drive No? (1-4)"
|
||||
MES14: DB "This disk is not master "
|
||||
MES15: DB "Pressing S key starts the CMT"
|
||||
MES16: DB "File mode error"
|
||||
;
|
||||
IPLMC: DB 01H
|
||||
DB "IPLPRO"
|
||||
|
||||
;
|
||||
;
|
||||
;FD
|
||||
FD: LD IX,IBUFE
|
||||
XOR A
|
||||
LD (0CF1EH),A
|
||||
LD (0CF1FH),A
|
||||
LD IY,SUMDT
|
||||
LD HL,0100H
|
||||
LD (IY+002H),L
|
||||
LD (IY+003H),H
|
||||
CALL BREAD ;INFORMATION INPUT
|
||||
LD HL,IBUFE ;MASTER CHECK
|
||||
LD DE,IPLMC
|
||||
LD B,006H
|
||||
MCHECK: LD C,(HL)
|
||||
LD A,(DE)
|
||||
CP C
|
||||
JP NZ,NMASTE
|
||||
INC HL
|
||||
INC DE
|
||||
DJNZ MCHECK
|
||||
CALL LDMSG
|
||||
LD HL,0CF07H
|
||||
LD E,010H
|
||||
LD C,00AH
|
||||
CALL DISP2
|
||||
LD IX,IBADR2
|
||||
LD HL,(0CF14H)
|
||||
LD (IY+002H),L
|
||||
LD (IY+003H),H
|
||||
CALL BREAD
|
||||
CALL MOFF
|
||||
JP NST
|
||||
|
||||
NODISK: LD HL,MES9
|
||||
LD E,00AH
|
||||
LD C,00DH
|
||||
CALL DISP
|
||||
JP ERR1
|
||||
;
|
||||
; READY CHECK
|
||||
;
|
||||
READY: LD A,(MTFG)
|
||||
RRCA
|
||||
CALL NC,MTON
|
||||
LD A,(DRINO) ;DRIVE NO GET
|
||||
OR 084H
|
||||
OUT (DM),A ;DRIVE SELECT MOTON
|
||||
XOR A
|
||||
CALL DLY60M
|
||||
LD HL,L0000
|
||||
REDY0: DEC HL
|
||||
LD A,H
|
||||
OR L
|
||||
JR Z,NODISK
|
||||
RET C
|
||||
RET C
|
||||
CPL
|
||||
RLCA
|
||||
JR C,REDY0
|
||||
LD A,(DRINO)
|
||||
LD C,A
|
||||
LD HL,CLBF0
|
||||
LD B,000H
|
||||
ADD HL,BC
|
||||
BIT 0,(HL)
|
||||
RET NZ
|
||||
CALL RCLB
|
||||
SET 0,(HL)
|
||||
RET
|
||||
;
|
||||
; MOTOR ON
|
||||
;
|
||||
MTON: LD A,080H
|
||||
OUT (DM),A
|
||||
LD B,00AH ;1SEC DELAY
|
||||
MTD1: LD HL,03C19H
|
||||
MTD2: DEC HL
|
||||
LD A,L
|
||||
OR H
|
||||
JR NZ,MTD2
|
||||
DJNZ MTD1
|
||||
LD A,001H
|
||||
LD (MTFG),A
|
||||
RET
|
||||
;
|
||||
; Track SEEK
|
||||
;
|
||||
SEEK: LD A,01BH
|
||||
CPL
|
||||
OUT (CR),A
|
||||
CALL BUSY
|
||||
CALL DLY60M
|
||||
IN A,(CR)
|
||||
CPL
|
||||
AND 099H
|
||||
RET
|
||||
;
|
||||
;MOTOR OFF
|
||||
;
|
||||
MOFF: CALL DLY1M
|
||||
XOR A
|
||||
OUT (DM),A
|
||||
LD (CLBF0),A
|
||||
LD (CLBF1),A
|
||||
LD (CLBF2),A
|
||||
LD (CLBF3),A
|
||||
LD (MTFG),A
|
||||
RET
|
||||
;
|
||||
; RECALIBRATION
|
||||
;
|
||||
RCLB: PUSH HL
|
||||
LD A,00BH
|
||||
CPL
|
||||
OUT (CR),A
|
||||
CALL BUSY
|
||||
CALL DLY60M
|
||||
IN A,(CR)
|
||||
CPL
|
||||
AND 085H
|
||||
XOR 004H
|
||||
POP HL
|
||||
RET Z
|
||||
JP ERR
|
||||
;
|
||||
; BUSY AND WAIT
|
||||
;
|
||||
BUSY: PUSH DE
|
||||
PUSH HL
|
||||
CALL DLY80U
|
||||
LD E,007H
|
||||
BUSY2: LD HL,L0000
|
||||
BUSY0: DEC HL
|
||||
LD A,H
|
||||
OR L
|
||||
JR Z,BUSY1
|
||||
IN A,(CR)
|
||||
CPL
|
||||
RRCA
|
||||
JR C,BUSY0
|
||||
POP HL
|
||||
POP DE
|
||||
RET
|
||||
|
||||
BUSY1: DEC E
|
||||
JR NZ,BUSY2
|
||||
JP ERR
|
||||
;
|
||||
; DATA CHECK
|
||||
;
|
||||
CONVRT: LD B,000H
|
||||
LD DE,0010H
|
||||
LD HL,(0CF1EH)
|
||||
XOR A
|
||||
TRANS: SBC HL,DE
|
||||
JR C,TRANS1
|
||||
INC B
|
||||
JR TRANS
|
||||
|
||||
TRANS1: ADD HL,DE
|
||||
LD H,B
|
||||
INC L
|
||||
LD (IY+004H),H
|
||||
LD (IY+005H),L
|
||||
DCHK: LD A,(DRINO)
|
||||
CP 004H
|
||||
JR NC,DTCK1
|
||||
LD A,(IY+004H)
|
||||
CP 046H
|
||||
JR NC,DTCK1
|
||||
LD A,(IY+005H)
|
||||
OR A
|
||||
JR Z,DTCK1
|
||||
CP 011H
|
||||
JR NC,DTCK1
|
||||
LD A,(IY+002H)
|
||||
OR (IY+003H)
|
||||
RET NZ
|
||||
DTCK1: JP ERR
|
||||
;
|
||||
; SEQUENTIAL READ
|
||||
;
|
||||
BREAD: DI
|
||||
CALL CONVRT
|
||||
LD A,00AH
|
||||
LD (RETRY),A
|
||||
READ1: CALL READY
|
||||
LD D,(IY+003H)
|
||||
LD A,(IY+002H)
|
||||
OR A
|
||||
JR Z,RE0
|
||||
INC D
|
||||
RE0: LD A,(IY+005H)
|
||||
LD (IY+001H),A
|
||||
LD A,(IY+004H)
|
||||
LD (IY+000H),A
|
||||
PUSH IX
|
||||
POP HL
|
||||
RE8: SRL A
|
||||
CPL
|
||||
OUT (DR),A
|
||||
JR NC,RE1
|
||||
LD A,001H
|
||||
JR RE2
|
||||
|
||||
RE1: LD A,000H
|
||||
RE2: CPL
|
||||
OUT (HS),A
|
||||
CALL SEEK
|
||||
JR NZ,REE
|
||||
LD C,DR
|
||||
LD A,(IY+000H)
|
||||
SRL A
|
||||
CPL
|
||||
OUT (TR),A
|
||||
LD A,(IY+001H)
|
||||
CPL
|
||||
OUT (SCR),A
|
||||
EXX
|
||||
LD HL,RE3
|
||||
PUSH HL
|
||||
EXX
|
||||
LD A,094H
|
||||
CPL
|
||||
OUT (CR),A
|
||||
CALL WAIT
|
||||
RE6: LD B,000H
|
||||
RE4: IN A,(CR)
|
||||
RRCA
|
||||
RET C
|
||||
RRCA
|
||||
JR C,RE4
|
||||
INI
|
||||
JR NZ,RE4
|
||||
INC (IY+001H)
|
||||
LD A,(IY+001H)
|
||||
CP 011H
|
||||
JR Z,RETS
|
||||
DEC D
|
||||
JR NZ,RE6
|
||||
JR RE5
|
||||
|
||||
RETS: DEC D
|
||||
RE5: LD A,CR
|
||||
CPL
|
||||
OUT (CR),A
|
||||
CALL BUSY
|
||||
RE3: IN A,(CR)
|
||||
CPL
|
||||
AND 0FFH
|
||||
JR NZ,REE
|
||||
EXX
|
||||
POP HL
|
||||
EXX
|
||||
LD A,(IY+001H)
|
||||
CP 011H
|
||||
JR NZ,REX
|
||||
LD A,001H
|
||||
LD (IY+001H),A
|
||||
INC (IY+000H)
|
||||
REX: LD A,D
|
||||
OR A
|
||||
JR NZ,RE7
|
||||
LD A,080H
|
||||
OUT (DM),A
|
||||
RET
|
||||
|
||||
RE7: LD A,(IY+000H)
|
||||
JR RE8
|
||||
|
||||
REE: LD A,(RETRY)
|
||||
DEC A
|
||||
LD (RETRY),A
|
||||
JR Z,ERR
|
||||
CALL RCLB
|
||||
JP READ1
|
||||
;
|
||||
; WAIT AND BUSY OFF
|
||||
;
|
||||
WAIT: PUSH DE
|
||||
PUSH HL
|
||||
CALL DLY80U
|
||||
LD E,008H
|
||||
WAIT2: LD HL,L0000
|
||||
WAIT0: DEC HL
|
||||
LD A,H
|
||||
OR L
|
||||
JR Z,WAIT1
|
||||
IN A,(CR)
|
||||
CPL
|
||||
RRCA
|
||||
JR NC,WAIT0
|
||||
POP HL
|
||||
POP DE
|
||||
RET
|
||||
|
||||
WAIT1: DEC E
|
||||
JR NZ,WAIT2
|
||||
JR ERR
|
||||
|
||||
NMASTE: LD HL,MES14
|
||||
LD E,007H
|
||||
LD C,01BH
|
||||
CALL DISP
|
||||
JR ERR1
|
||||
;
|
||||
; ;
|
||||
; ERRROR OR BREAK ;
|
||||
; ;
|
||||
;
|
||||
ERR: CALL BOOTER
|
||||
ERR1: CALL MOFF
|
||||
LD SP,SUMDT
|
||||
TRYAG: CALL FDCC
|
||||
JR NZ,TRYAG3
|
||||
LD HL,MES10
|
||||
LD E,05AH
|
||||
LD C,00CH
|
||||
CALL DISP2
|
||||
LD E,0ABH
|
||||
LD C,011H
|
||||
CALL DISP2
|
||||
LD E,0D3H
|
||||
LD C,00FH
|
||||
CALL DISP2
|
||||
TRYAG1: CALL KEYS1
|
||||
BIT 3,A
|
||||
JP Z,CMT
|
||||
BIT 6,A
|
||||
JR Z,DNO
|
||||
JR TRYAG1
|
||||
|
||||
DNO: LD HL,MES13
|
||||
LD E,00AH
|
||||
LD C,00FH
|
||||
CALL DISP
|
||||
DNO10: LD D,012H
|
||||
CALL DNO0
|
||||
JR NC,DNO3
|
||||
LD D,018H
|
||||
CALL DNO0
|
||||
JR NC,DNO3
|
||||
JR DNO10
|
||||
|
||||
DNO3: LD A,B
|
||||
LD (DRINO),A
|
||||
JP FD
|
||||
|
||||
TRYAG3: LD HL,MES15
|
||||
LD E,054H
|
||||
LD C,01DH
|
||||
CALL DISP2
|
||||
TRYAG4: LD B,006H
|
||||
TRYAG5: CALL KEYS
|
||||
BIT 3,A
|
||||
JP Z,CMT
|
||||
JR TRYAG5
|
||||
|
||||
DNO0: IN A,(PIOA)
|
||||
AND 0F0H
|
||||
OR D
|
||||
OUT (PIOA),A
|
||||
IN A,(PIOB)
|
||||
LD B,000H
|
||||
LD C,004H
|
||||
RRCA
|
||||
DNO1: RRCA
|
||||
RET NC
|
||||
INC B
|
||||
DEC C
|
||||
JR NZ,DNO1
|
||||
RET
|
||||
;
|
||||
; TIME DELAY (1M &60M &80U )
|
||||
;
|
||||
DLY80U: PUSH DE
|
||||
LD DE,000DH
|
||||
JP DLYT
|
||||
|
||||
DLY1M: PUSH DE
|
||||
LD DE,L0082
|
||||
JP DLYT
|
||||
|
||||
DLY60M: PUSH DE
|
||||
LD DE,01A2CH
|
||||
DLYT: DEC DE
|
||||
LD A,E
|
||||
OR D
|
||||
JR NZ,DLYT
|
||||
POP DE
|
||||
RET
|
||||
;
|
||||
;
|
||||
; ;
|
||||
; INTRAM EXROM ;
|
||||
; ;
|
||||
;
|
||||
EXROMT: LD HL,IBADR2
|
||||
LD IX,EROM1
|
||||
JR SEROMA
|
||||
|
||||
EROM1: IN A,(0F9H)
|
||||
CP 000H
|
||||
JP NZ,NKIN
|
||||
LD IX,EROM2
|
||||
ERMT1: JR SEROMA
|
||||
|
||||
EROM2: IN A,(0F9H)
|
||||
LD (HL),A
|
||||
INC HL
|
||||
LD A,L
|
||||
OR H
|
||||
JR NZ,ERMT1
|
||||
OUT (0F8H),A
|
||||
JP NST
|
||||
|
||||
SEROMA: LD A,H
|
||||
OUT (0F8H),A
|
||||
LD A,L
|
||||
OUT (0F9H),A
|
||||
LD D,004H
|
||||
SEROMD: DEC D
|
||||
JR NZ,SEROMD
|
||||
JP (IX)
|
||||
|
||||
; Align to rom size.
|
||||
DS 0800H - 1 - ($ + 0800H - 1) % 0800H, 0FFh
|
||||
@@ -54,7 +54,7 @@ KEYS: IN A,(PIOA)
|
||||
AND 0F0H
|
||||
OR B
|
||||
OUT (PIOA),A
|
||||
IN A,(PIOB) ;Read the strobed key.
|
||||
IN A,(PIOB) ;Read the strobed key.
|
||||
RET
|
||||
;
|
||||
;
|
||||
@@ -237,7 +237,7 @@ TM3: CALL SPDIN
|
||||
JR RBY3
|
||||
;READ 1 BIT
|
||||
SPDIN: CALL EDGE ;WAIT ON HIGH
|
||||
RET C ;BREAK
|
||||
RET C ;BREAK
|
||||
|
||||
CALL DLY2
|
||||
IN A,(PPIB) ;READ BIT
|
||||
@@ -823,6 +823,9 @@ SEROMD: DEC D
|
||||
JR NZ,SEROMD
|
||||
JP (IX)
|
||||
|
||||
; Align to ROM size.
|
||||
DS 0800H - 1 - ($ + 0800H - 1) % 0800H, 0FFh
|
||||
|
||||
;----------------------------------------------------------
|
||||
; Variables/Work area
|
||||
;----------------------------------------------------------
|
||||
1
software/dis/MZ2000_IPL/dz80.ini
Symbolic link
1
software/dis/MZ2000_IPL/dz80.ini
Symbolic link
@@ -0,0 +1 @@
|
||||
mz2000_ipl.ini
|
||||
889
software/dis/MZ2000_IPL/mz2000_ipl.asm
Normal file
889
software/dis/MZ2000_IPL/mz2000_ipl.asm
Normal file
@@ -0,0 +1,889 @@
|
||||
;****************************************************************
|
||||
;
|
||||
; MZ-2000 Initial Program Loader Firmware.
|
||||
;
|
||||
; Disassembled with dz80 v2.1 and comments copied from the
|
||||
; MZ-80B IPL disassembly.
|
||||
;
|
||||
;****************************************************************
|
||||
;
|
||||
CR EQU 0D8H
|
||||
TR EQU 0D9H
|
||||
SCR EQU 0DAH
|
||||
DR EQU 0DBH
|
||||
DM EQU 0DCH
|
||||
HS EQU 0DDH
|
||||
PPIA EQU 0E0H
|
||||
PPIB EQU 0E1H
|
||||
PPIC EQU 0E2H
|
||||
PPICTL EQU 0E3H
|
||||
PIOA EQU 0E8H
|
||||
PIOCTLA EQU 0E9H
|
||||
PIOB EQU 0EAH
|
||||
PIOCTLB EQU 0EBH
|
||||
GRPHCTL EQU 0F4H
|
||||
IBUFE EQU 0CF00H
|
||||
ATRB EQU 0CF00H
|
||||
NAME EQU 0CF01H
|
||||
SIZE EQU 0CF12H
|
||||
DTADR EQU 0CF14H
|
||||
SUMDT EQU 0FFE0H
|
||||
TMCNT EQU 0FFE2H
|
||||
IBADR1 EQU 0CF00H
|
||||
IBADR2 EQU 08000H
|
||||
NTRACK EQU 0FFE0H
|
||||
NSECT EQU 0FFE1H
|
||||
BSIZE EQU 0FFE2H
|
||||
STTR EQU 0FFE4H
|
||||
STSE EQU 0FFE5H
|
||||
MTFG EQU 0FFE6H
|
||||
CLBF0 EQU 0FFE7H
|
||||
CLBF1 EQU 0FFE8H
|
||||
CLBF2 EQU 0FFE9H
|
||||
CLBF3 EQU 0FFEAH
|
||||
RETRY EQU 0FFEBH
|
||||
DRINO EQU 0FFECH
|
||||
PRGSTART EQU 00000H
|
||||
|
||||
ORG PRGSTART
|
||||
|
||||
L0000: JR START
|
||||
;
|
||||
; NST RESET
|
||||
;
|
||||
NST: LD A,003H ;Set PC1 NST=1
|
||||
OUT (PPICTL),A
|
||||
START: LD A,082H ;8255 A=OUT B=IN C=OUT
|
||||
OUT (PPICTL),A
|
||||
LD A,058H ;PIO A=OUT
|
||||
OUT (PPIC),A
|
||||
LD SP,SUMDT ;PIO B=IN
|
||||
LD A,0F7H
|
||||
OUT (PPIA),A
|
||||
LD A,00FH
|
||||
OUT (PIOCTLA),A ;BST=1 NST=0 OPEN=1 WRITE=1
|
||||
LD A,0CFH
|
||||
OUT (PIOCTLB),A
|
||||
LD A,0FFH
|
||||
OUT (PIOCTLB),A
|
||||
XOR A ;Set Graphics VRAM to default, input to GRPH I, no output.
|
||||
OUT (0F6H),A
|
||||
OUT (GRPHCTL),A
|
||||
INC A
|
||||
OUT (0F7H),A
|
||||
LD A,007H
|
||||
OUT (0F5H),A
|
||||
LD A,0D3H
|
||||
OUT (PIOA),A
|
||||
LD HL,0D000H
|
||||
LD A,CR
|
||||
CLEAR: LD (HL),000H ; DISPLAY CLEAR
|
||||
INC HL
|
||||
CP H
|
||||
JR NZ,CLEAR
|
||||
LD A,0FFH
|
||||
OUT (PPIA),A
|
||||
LD A,003H
|
||||
OUT (0F7H),A
|
||||
CALL L006E
|
||||
LD A,002H
|
||||
OUT (0F7H),A
|
||||
CALL L006E
|
||||
LD A,001H
|
||||
OUT (0F7H),A
|
||||
CALL L006E
|
||||
LD A,013H
|
||||
OUT (PIOA),A
|
||||
XOR A
|
||||
LD (DRINO),A
|
||||
LD (MTFG),A
|
||||
KEYIN: CALL KEYS1
|
||||
BIT 3,A ;C - Cassette.
|
||||
JR Z,CMT
|
||||
BIT 0,A ;/ - Boot external rom.
|
||||
JP Z,EXROMT
|
||||
JR NKIN ;No selection, so standard startup, try FDC then CMT.
|
||||
|
||||
L006E: LD HL,0C000H
|
||||
DI
|
||||
IN A,(PIOA)
|
||||
SET 7,A
|
||||
RES 6,A
|
||||
OUT (PIOA),A
|
||||
LD DE,0C001H
|
||||
LD (HL),000H
|
||||
LD BC,03E7FH
|
||||
L0082: LDIR
|
||||
RES 7,A
|
||||
SET 6,A
|
||||
OUT (PIOA),A
|
||||
EI
|
||||
RET
|
||||
|
||||
KEYS1: LD B,014H ;Preserve A4-A7, set A4 to prevent all strobes low, the select line 5 (0-4).
|
||||
KEYS: IN A,(PIOA)
|
||||
AND 0F0H
|
||||
OR B
|
||||
OUT (PIOA),A
|
||||
IN A,(PIOB) ;Read the strobed key.
|
||||
RET
|
||||
|
||||
NKIN: CALL FDCC
|
||||
JP Z,FD
|
||||
JR CMT
|
||||
|
||||
FDCC: LD A,0A5H
|
||||
LD B,A
|
||||
OUT (TR),A
|
||||
CALL DLY80U
|
||||
IN A,(TR)
|
||||
CP B
|
||||
RET
|
||||
;
|
||||
; ;
|
||||
; CMT CONTROL ;
|
||||
; ;
|
||||
;
|
||||
CMT: CALL MSTOP
|
||||
CALL KYEMES
|
||||
CALL RDINF
|
||||
JR C,ST1
|
||||
CALL LDMSG
|
||||
LD HL,NAME
|
||||
LD E,010H
|
||||
LD C,010H
|
||||
CALL DISP2
|
||||
LD A,(IBUFE)
|
||||
CP 001H
|
||||
JR NZ,MISMCH
|
||||
CALL RDDAT
|
||||
ST1: PUSH AF
|
||||
CALL FR
|
||||
POP AF
|
||||
JP C,TRYAG
|
||||
JP NST
|
||||
|
||||
MISMCH: LD HL,MES16
|
||||
LD E,00AH
|
||||
LD C,00FH
|
||||
CALL DISP
|
||||
CALL MSTOP
|
||||
SCF
|
||||
JR ST1
|
||||
;
|
||||
;READ INFORMATION
|
||||
; CF=1:ERROR
|
||||
?RDI:
|
||||
RDINF: DI
|
||||
IN A,(PPIC)
|
||||
SET 5,A
|
||||
OUT (PPIC),A
|
||||
LD D,004H
|
||||
LD BC,0080H
|
||||
LD HL,IBUFE
|
||||
RD1: CALL MOTOR
|
||||
JR C,STPEIR
|
||||
CALL TMARK
|
||||
JR C,STPEIR
|
||||
CALL RTAPE
|
||||
JR C,STPEIR
|
||||
BIT 3,D
|
||||
JR Z,EIRTN
|
||||
STPEIR: CALL MSTOP
|
||||
EIRTN: EI
|
||||
RET
|
||||
;
|
||||
;
|
||||
;READ DATA
|
||||
;
|
||||
?RDD:
|
||||
RDDAT: DI
|
||||
LD D,008H
|
||||
LD BC,(0CF12H)
|
||||
LD HL,IBADR2
|
||||
JR RD1
|
||||
;
|
||||
;
|
||||
;READ TAPE
|
||||
; BC=SIZE
|
||||
; DE=LOAD ADDRSS
|
||||
RTAPE: PUSH DE
|
||||
PUSH BC
|
||||
PUSH HL
|
||||
LD H,002H
|
||||
RTP2: CALL SPDIN
|
||||
JR C,TRTN1 ; BREAK
|
||||
JR Z,RTP2
|
||||
LD D,H
|
||||
LD HL,L0000
|
||||
LD (SUMDT),HL
|
||||
POP HL
|
||||
POP BC
|
||||
PUSH BC
|
||||
PUSH HL
|
||||
RTP3: CALL RBYTE
|
||||
JR C,TRTN1
|
||||
LD (HL),A
|
||||
INC HL
|
||||
DEC BC
|
||||
LD A,B
|
||||
OR C
|
||||
JR NZ,RTP3
|
||||
LD HL,(SUMDT)
|
||||
CALL RBYTE
|
||||
JR C,TRTN1
|
||||
LD E,A
|
||||
CALL RBYTE
|
||||
JR C,TRTN1
|
||||
CP L
|
||||
JR NZ,RTP5
|
||||
LD A,E
|
||||
CP H
|
||||
JR Z,TRTN1
|
||||
RTP5: DEC D
|
||||
JR Z,RTP6
|
||||
LD H,D
|
||||
JR RTP2
|
||||
|
||||
RTP6: CALL BOOTER
|
||||
SCF
|
||||
TRTN1: POP HL
|
||||
POP BC
|
||||
POP DE
|
||||
RET
|
||||
|
||||
EDGE: IN A,(PPIB)
|
||||
CPL
|
||||
RLCA
|
||||
RET C ; BREAK
|
||||
RLCA
|
||||
JR NC,EDGE ; WAIT ON LOW
|
||||
L016A: IN A,(PPIB)
|
||||
CPL
|
||||
RLCA
|
||||
RET C ; BREAK
|
||||
RLCA
|
||||
JR C,L016A ; WAIT ON HIGH
|
||||
RET
|
||||
; 1 BYTE READ
|
||||
; DATA=A
|
||||
; SUMDT STORE
|
||||
RBYTE: PUSH HL
|
||||
LD HL,00800H ; 8 BITS
|
||||
RBY1: CALL SPDIN
|
||||
JR C,RBY3 ; BREAK
|
||||
JR Z,RBY2 ; BIT=0
|
||||
PUSH HL
|
||||
LD HL,(SUMDT) ;CHECKSUM
|
||||
INC HL
|
||||
LD (SUMDT),HL
|
||||
POP HL
|
||||
SCF
|
||||
RBY2: RL L
|
||||
DEC H
|
||||
JR NZ,RBY1
|
||||
CALL EDGE
|
||||
LD A,L
|
||||
RBY3: POP HL
|
||||
RET
|
||||
;TAPE MARK DETECT
|
||||
; E=L:INFORMATION
|
||||
; E=S:DATA
|
||||
TMARK: PUSH HL
|
||||
LD HL,01414H
|
||||
BIT 3,D
|
||||
JR NZ,TM0
|
||||
ADD HL,HL
|
||||
TM0: LD (TMCNT),HL
|
||||
TM1: LD HL,(TMCNT)
|
||||
TM2: CALL SPDIN
|
||||
JR C,RBY3
|
||||
JR Z,TM1
|
||||
DEC H
|
||||
JR NZ,TM2
|
||||
TM3: CALL SPDIN
|
||||
JR C,RBY3
|
||||
JR NZ,TM1
|
||||
DEC L
|
||||
JR NZ,TM3
|
||||
CALL EDGE
|
||||
JR RBY3
|
||||
|
||||
SPDIN: CALL EDGE ;WAIT ON HIGH
|
||||
RET C ;BREAK
|
||||
CALL DLY2
|
||||
IN A,(PPIB) ;READ BIT
|
||||
AND 040H
|
||||
RET
|
||||
;
|
||||
;
|
||||
;MOTOR ON
|
||||
MOTOR: PUSH DE
|
||||
PUSH BC
|
||||
PUSH HL
|
||||
IN A,(PPIB)
|
||||
AND 020H
|
||||
JR Z,MOTRD
|
||||
LD HL,MES6
|
||||
LD E,00AH
|
||||
LD C,00EH
|
||||
CALL DISP
|
||||
CALL OPEN
|
||||
MOT1: IN A,(PIOB)
|
||||
CPL
|
||||
RLCA
|
||||
JR C,MOTR
|
||||
IN A,(PPIB)
|
||||
AND 020H
|
||||
JR NZ,MOT1
|
||||
CALL KYEMES
|
||||
CALL DEL1M
|
||||
MOTRD: CALL PLAY
|
||||
MOTR: POP HL
|
||||
POP BC
|
||||
POP DE
|
||||
RET
|
||||
;
|
||||
;
|
||||
;MOTOR STOP
|
||||
MSTOP: LD A,0F7H
|
||||
OUT (PPIA),A
|
||||
CALL DEL6
|
||||
LD A,0FFH
|
||||
OUT (PPIA),A
|
||||
RET
|
||||
;EJECT
|
||||
OPEN: LD A,008H ;Reset PC4 - EJECT activate
|
||||
OUT (PPICTL),A
|
||||
CALL DEL6
|
||||
LD A,009H
|
||||
OUT (PPICTL),A ;Set PC4 - Deactivate EJECT
|
||||
RET
|
||||
|
||||
KYEMES: LD HL,MES3
|
||||
LD E,004H
|
||||
LD C,01CH
|
||||
CALL DISP
|
||||
RET
|
||||
;
|
||||
;PLAY
|
||||
PLAY: LD A,0FBH
|
||||
OUT (PPIA),A
|
||||
CALL DEL6
|
||||
LD A,0FFH
|
||||
OUT (PPIA),A
|
||||
RET
|
||||
|
||||
FR: LD A,0FEH
|
||||
FR1: OUT (PPIA),A
|
||||
CALL DEL6
|
||||
LD A,0FFH
|
||||
OUT (PPIA),A
|
||||
IN A,(PPIC)
|
||||
RES 5,A
|
||||
OUT (PPIC),A
|
||||
RET
|
||||
;
|
||||
;TIMING DEL
|
||||
DM1: PUSH AF
|
||||
DM1A: XOR A
|
||||
DM1B: DEC A
|
||||
JR NZ,DM1B
|
||||
DEC BC
|
||||
LD A,B
|
||||
OR C
|
||||
JR NZ,DM1A
|
||||
POP AF
|
||||
POP BC
|
||||
RET
|
||||
|
||||
DEL6: PUSH BC
|
||||
LD BC,RDINF
|
||||
JR DM1
|
||||
|
||||
DEL1M: PUSH BC
|
||||
LD BC,060FH
|
||||
JR DM1
|
||||
;
|
||||
;TAPE DELAY TIMING
|
||||
;
|
||||
;
|
||||
DLY2: LD A,031H
|
||||
DLY2A: DEC A
|
||||
JP NZ,DLY2A
|
||||
RET
|
||||
|
||||
LDMSG: LD HL,MES1
|
||||
LD E,000H
|
||||
LD C,00EH
|
||||
JR DISP
|
||||
|
||||
DISP2: LD A,0D3H
|
||||
OUT (PIOA),A
|
||||
JR DISP1
|
||||
|
||||
BOOTER: LD HL,MES8
|
||||
LD E,00AH
|
||||
LD C,00DH
|
||||
DISP: LD A,0D3H
|
||||
OUT (PIOA),A
|
||||
EXX
|
||||
LD HL,0D000H
|
||||
LD A,CR
|
||||
DISP3: LD (HL),000H
|
||||
INC HL
|
||||
CP H
|
||||
JR NZ,DISP3
|
||||
EXX
|
||||
DISP1: XOR A
|
||||
LD B,A
|
||||
LD D,0D0H
|
||||
LDIR
|
||||
LD A,013H
|
||||
OUT (PIOA),A
|
||||
RET
|
||||
|
||||
;
|
||||
MES1: DB "IPL is loading"
|
||||
MES3: DB "IPL is looking for a program"
|
||||
MES6: DB "Make ready CMT"
|
||||
MES8: DB "Loading error"
|
||||
MES9: DB "Make ready FD"
|
||||
MES10: DB "Press F or C"
|
||||
MES11: DB "F:Floppy disk "
|
||||
MES12: DB "C:Cassette tape"
|
||||
MES13: DB "Drive No? (1-4)"
|
||||
MES14: DB "This disk is not master "
|
||||
MES15: DB "Pressing S key starts the CMT"
|
||||
MES16: DB "File mode error"
|
||||
;
|
||||
IPLMC: DB 01H
|
||||
DB "IPLPRO"
|
||||
|
||||
;
|
||||
;
|
||||
;FD
|
||||
FD: LD IX,IBUFE
|
||||
XOR A
|
||||
LD (0CF1EH),A
|
||||
LD (0CF1FH),A
|
||||
LD IY,SUMDT
|
||||
LD HL,0100H
|
||||
LD (IY+002H),L
|
||||
LD (IY+003H),H
|
||||
CALL BREAD ;INFORMATION INPUT
|
||||
LD HL,IBUFE ;MASTER CHECK
|
||||
LD DE,IPLMC
|
||||
LD B,006H
|
||||
MCHECK: LD C,(HL)
|
||||
LD A,(DE)
|
||||
CP C
|
||||
JP NZ,NMASTE
|
||||
INC HL
|
||||
INC DE
|
||||
DJNZ MCHECK
|
||||
CALL LDMSG
|
||||
LD HL,0CF07H
|
||||
LD E,010H
|
||||
LD C,00AH
|
||||
CALL DISP2
|
||||
LD IX,IBADR2
|
||||
LD HL,(0CF14H)
|
||||
LD (IY+002H),L
|
||||
LD (IY+003H),H
|
||||
CALL BREAD
|
||||
CALL MOFF
|
||||
JP NST
|
||||
|
||||
NODISK: LD HL,MES9
|
||||
LD E,00AH
|
||||
LD C,00DH
|
||||
CALL DISP
|
||||
JP ERR1
|
||||
;
|
||||
; READY CHECK
|
||||
;
|
||||
READY: LD A,(MTFG)
|
||||
RRCA
|
||||
CALL NC,MTON
|
||||
LD A,(DRINO) ;DRIVE NO GET
|
||||
OR 084H
|
||||
OUT (DM),A ;DRIVE SELECT MOTON
|
||||
XOR A
|
||||
CALL DLY60M
|
||||
LD HL,L0000
|
||||
REDY0: DEC HL
|
||||
LD A,H
|
||||
OR L
|
||||
JR Z,NODISK
|
||||
RET C
|
||||
RET C
|
||||
CPL
|
||||
RLCA
|
||||
JR C,REDY0
|
||||
LD A,(DRINO)
|
||||
LD C,A
|
||||
LD HL,CLBF0
|
||||
LD B,000H
|
||||
ADD HL,BC
|
||||
BIT 0,(HL)
|
||||
RET NZ
|
||||
CALL RCLB
|
||||
SET 0,(HL)
|
||||
RET
|
||||
;
|
||||
; MOTOR ON
|
||||
;
|
||||
MTON: LD A,080H
|
||||
OUT (DM),A
|
||||
LD B,00AH ;1SEC DELAY
|
||||
MTD1: LD HL,03C19H
|
||||
MTD2: DEC HL
|
||||
LD A,L
|
||||
OR H
|
||||
JR NZ,MTD2
|
||||
DJNZ MTD1
|
||||
LD A,001H
|
||||
LD (MTFG),A
|
||||
RET
|
||||
;
|
||||
; Track SEEK
|
||||
;
|
||||
SEEK: LD A,01BH
|
||||
CPL
|
||||
OUT (CR),A
|
||||
CALL BUSY
|
||||
CALL DLY60M
|
||||
IN A,(CR)
|
||||
CPL
|
||||
AND 099H
|
||||
RET
|
||||
;
|
||||
;MOTOR OFF
|
||||
;
|
||||
MOFF: CALL DLY1M
|
||||
XOR A
|
||||
OUT (DM),A
|
||||
LD (CLBF0),A
|
||||
LD (CLBF1),A
|
||||
LD (CLBF2),A
|
||||
LD (CLBF3),A
|
||||
LD (MTFG),A
|
||||
RET
|
||||
;
|
||||
; RECALIBRATION
|
||||
;
|
||||
RCLB: PUSH HL
|
||||
LD A,00BH
|
||||
CPL
|
||||
OUT (CR),A
|
||||
CALL BUSY
|
||||
CALL DLY60M
|
||||
IN A,(CR)
|
||||
CPL
|
||||
AND 085H
|
||||
XOR 004H
|
||||
POP HL
|
||||
RET Z
|
||||
JP ERR
|
||||
;
|
||||
; BUSY AND WAIT
|
||||
;
|
||||
BUSY: PUSH DE
|
||||
PUSH HL
|
||||
CALL DLY80U
|
||||
LD E,007H
|
||||
BUSY2: LD HL,L0000
|
||||
BUSY0: DEC HL
|
||||
LD A,H
|
||||
OR L
|
||||
JR Z,BUSY1
|
||||
IN A,(CR)
|
||||
CPL
|
||||
RRCA
|
||||
JR C,BUSY0
|
||||
POP HL
|
||||
POP DE
|
||||
RET
|
||||
|
||||
BUSY1: DEC E
|
||||
JR NZ,BUSY2
|
||||
JP ERR
|
||||
;
|
||||
; DATA CHECK
|
||||
;
|
||||
CONVRT: LD B,000H
|
||||
LD DE,0010H
|
||||
LD HL,(0CF1EH)
|
||||
XOR A
|
||||
TRANS: SBC HL,DE
|
||||
JR C,TRANS1
|
||||
INC B
|
||||
JR TRANS
|
||||
|
||||
TRANS1: ADD HL,DE
|
||||
LD H,B
|
||||
INC L
|
||||
LD (IY+004H),H
|
||||
LD (IY+005H),L
|
||||
DCHK: LD A,(DRINO)
|
||||
CP 004H
|
||||
JR NC,DTCK1
|
||||
LD A,(IY+004H)
|
||||
CP 046H
|
||||
JR NC,DTCK1
|
||||
LD A,(IY+005H)
|
||||
OR A
|
||||
JR Z,DTCK1
|
||||
CP 011H
|
||||
JR NC,DTCK1
|
||||
LD A,(IY+002H)
|
||||
OR (IY+003H)
|
||||
RET NZ
|
||||
DTCK1: JP ERR
|
||||
;
|
||||
; SEQUENTIAL READ
|
||||
;
|
||||
BREAD: DI
|
||||
CALL CONVRT
|
||||
LD A,00AH
|
||||
LD (RETRY),A
|
||||
READ1: CALL READY
|
||||
LD D,(IY+003H)
|
||||
LD A,(IY+002H)
|
||||
OR A
|
||||
JR Z,RE0
|
||||
INC D
|
||||
RE0: LD A,(IY+005H)
|
||||
LD (IY+001H),A
|
||||
LD A,(IY+004H)
|
||||
LD (IY+000H),A
|
||||
PUSH IX
|
||||
POP HL
|
||||
RE8: SRL A
|
||||
CPL
|
||||
OUT (DR),A
|
||||
JR NC,RE1
|
||||
LD A,001H
|
||||
JR RE2
|
||||
|
||||
RE1: LD A,000H
|
||||
RE2: CPL
|
||||
OUT (HS),A
|
||||
CALL SEEK
|
||||
JR NZ,REE
|
||||
LD C,DR
|
||||
LD A,(IY+000H)
|
||||
SRL A
|
||||
CPL
|
||||
OUT (TR),A
|
||||
LD A,(IY+001H)
|
||||
CPL
|
||||
OUT (SCR),A
|
||||
EXX
|
||||
LD HL,RE3
|
||||
PUSH HL
|
||||
EXX
|
||||
LD A,094H
|
||||
CPL
|
||||
OUT (CR),A
|
||||
CALL WAIT
|
||||
RE6: LD B,000H
|
||||
RE4: IN A,(CR)
|
||||
RRCA
|
||||
RET C
|
||||
RRCA
|
||||
JR C,RE4
|
||||
INI
|
||||
JR NZ,RE4
|
||||
INC (IY+001H)
|
||||
LD A,(IY+001H)
|
||||
CP 011H
|
||||
JR Z,RETS
|
||||
DEC D
|
||||
JR NZ,RE6
|
||||
JR RE5
|
||||
|
||||
RETS: DEC D
|
||||
RE5: LD A,CR
|
||||
CPL
|
||||
OUT (CR),A
|
||||
CALL BUSY
|
||||
RE3: IN A,(CR)
|
||||
CPL
|
||||
AND 0FFH
|
||||
JR NZ,REE
|
||||
EXX
|
||||
POP HL
|
||||
EXX
|
||||
LD A,(IY+001H)
|
||||
CP 011H
|
||||
JR NZ,REX
|
||||
LD A,001H
|
||||
LD (IY+001H),A
|
||||
INC (IY+000H)
|
||||
REX: LD A,D
|
||||
OR A
|
||||
JR NZ,RE7
|
||||
LD A,080H
|
||||
OUT (DM),A
|
||||
RET
|
||||
|
||||
RE7: LD A,(IY+000H)
|
||||
JR RE8
|
||||
|
||||
REE: LD A,(RETRY)
|
||||
DEC A
|
||||
LD (RETRY),A
|
||||
JR Z,ERR
|
||||
CALL RCLB
|
||||
JP READ1
|
||||
;
|
||||
; WAIT AND BUSY OFF
|
||||
;
|
||||
WAIT: PUSH DE
|
||||
PUSH HL
|
||||
CALL DLY80U
|
||||
LD E,008H
|
||||
WAIT2: LD HL,L0000
|
||||
WAIT0: DEC HL
|
||||
LD A,H
|
||||
OR L
|
||||
JR Z,WAIT1
|
||||
IN A,(CR)
|
||||
CPL
|
||||
RRCA
|
||||
JR NC,WAIT0
|
||||
POP HL
|
||||
POP DE
|
||||
RET
|
||||
|
||||
WAIT1: DEC E
|
||||
JR NZ,WAIT2
|
||||
JR ERR
|
||||
|
||||
NMASTE: LD HL,MES14
|
||||
LD E,007H
|
||||
LD C,01BH
|
||||
CALL DISP
|
||||
JR ERR1
|
||||
;
|
||||
; ;
|
||||
; ERRROR OR BREAK ;
|
||||
; ;
|
||||
;
|
||||
ERR: CALL BOOTER
|
||||
ERR1: CALL MOFF
|
||||
LD SP,SUMDT
|
||||
TRYAG: CALL FDCC
|
||||
JR NZ,TRYAG3
|
||||
LD HL,MES10
|
||||
LD E,05AH
|
||||
LD C,00CH
|
||||
CALL DISP2
|
||||
LD E,0ABH
|
||||
LD C,011H
|
||||
CALL DISP2
|
||||
LD E,0D3H
|
||||
LD C,00FH
|
||||
CALL DISP2
|
||||
TRYAG1: CALL KEYS1
|
||||
BIT 3,A
|
||||
JP Z,CMT
|
||||
BIT 6,A
|
||||
JR Z,DNO
|
||||
JR TRYAG1
|
||||
|
||||
DNO: LD HL,MES13
|
||||
LD E,00AH
|
||||
LD C,00FH
|
||||
CALL DISP
|
||||
DNO10: LD D,012H
|
||||
CALL DNO0
|
||||
JR NC,DNO3
|
||||
LD D,018H
|
||||
CALL DNO0
|
||||
JR NC,DNO3
|
||||
JR DNO10
|
||||
|
||||
DNO3: LD A,B
|
||||
LD (DRINO),A
|
||||
JP FD
|
||||
|
||||
TRYAG3: LD HL,MES15
|
||||
LD E,054H
|
||||
LD C,01DH
|
||||
CALL DISP2
|
||||
TRYAG4: LD B,006H
|
||||
TRYAG5: CALL KEYS
|
||||
BIT 3,A
|
||||
JP Z,CMT
|
||||
JR TRYAG5
|
||||
|
||||
DNO0: IN A,(PIOA)
|
||||
AND 0F0H
|
||||
OR D
|
||||
OUT (PIOA),A
|
||||
IN A,(PIOB)
|
||||
LD B,000H
|
||||
LD C,004H
|
||||
RRCA
|
||||
DNO1: RRCA
|
||||
RET NC
|
||||
INC B
|
||||
DEC C
|
||||
JR NZ,DNO1
|
||||
RET
|
||||
;
|
||||
; TIME DELAY (1M &60M &80U )
|
||||
;
|
||||
DLY80U: PUSH DE
|
||||
LD DE,000DH
|
||||
JP DLYT
|
||||
|
||||
DLY1M: PUSH DE
|
||||
LD DE,L0082
|
||||
JP DLYT
|
||||
|
||||
DLY60M: PUSH DE
|
||||
LD DE,01A2CH
|
||||
DLYT: DEC DE
|
||||
LD A,E
|
||||
OR D
|
||||
JR NZ,DLYT
|
||||
POP DE
|
||||
RET
|
||||
;
|
||||
;
|
||||
; ;
|
||||
; INTRAM EXROM ;
|
||||
; ;
|
||||
;
|
||||
EXROMT: LD HL,IBADR2
|
||||
LD IX,EROM1
|
||||
JR SEROMA
|
||||
|
||||
EROM1: IN A,(0F9H)
|
||||
CP 000H
|
||||
JP NZ,NKIN
|
||||
LD IX,EROM2
|
||||
ERMT1: JR SEROMA
|
||||
|
||||
EROM2: IN A,(0F9H)
|
||||
LD (HL),A
|
||||
INC HL
|
||||
LD A,L
|
||||
OR H
|
||||
JR NZ,ERMT1
|
||||
OUT (0F8H),A
|
||||
JP NST
|
||||
|
||||
SEROMA: LD A,H
|
||||
OUT (0F8H),A
|
||||
LD A,L
|
||||
OUT (0F9H),A
|
||||
LD D,004H
|
||||
SEROMD: DEC D
|
||||
JR NZ,SEROMD
|
||||
JP (IX)
|
||||
|
||||
264
software/dis/MZ2000_IPL/mz2000_ipl.ini
Normal file
264
software/dis/MZ2000_IPL/mz2000_ipl.ini
Normal file
@@ -0,0 +1,264 @@
|
||||
----------------------------------------
|
||||
-- dZ80 configuration file
|
||||
----------------------------------------
|
||||
|
||||
----------------------------------------
|
||||
-- Disassembly control
|
||||
----------------------------------------
|
||||
|
||||
cpu="z80"
|
||||
inputfile="mz2000_ipl.rom"
|
||||
outputfile="mz2000_ipl.asm"
|
||||
--fileheadersize=27
|
||||
filebaseaddr=0
|
||||
disstart=0
|
||||
disend=1606
|
||||
--quiet=0
|
||||
labelledoutput=1
|
||||
|
||||
----------------------------------------
|
||||
-- Layout
|
||||
----------------------------------------
|
||||
|
||||
labelreference=1
|
||||
addresscolumn=1
|
||||
opcodecolumn=1
|
||||
relativejumpcomment=1
|
||||
uppercase=1
|
||||
autoblanklines=1
|
||||
db="db"
|
||||
comment="; "
|
||||
radix=16
|
||||
numprefix="0"
|
||||
numsuffix="H"
|
||||
|
||||
----------------------------------------
|
||||
-- Scripts
|
||||
----------------------------------------
|
||||
|
||||
--script="scripts\\spectrum.lua"
|
||||
|
||||
----------------------------------------
|
||||
-- References
|
||||
----------------------------------------
|
||||
|
||||
referencefile="mz2000_ipl.ref"
|
||||
inportreference=1
|
||||
outportreference=1
|
||||
addressreference=1
|
||||
indirectaddressreference=1
|
||||
limitreferences=1
|
||||
|
||||
----------------------------------------
|
||||
-- Opcode mapfile and code/data areas
|
||||
----------------------------------------
|
||||
|
||||
--opmapfile="mayhem.map"
|
||||
|
||||
-- Code Region isnt required as v2.x sets the entire region to code unless a data region overrides it.
|
||||
d_SetCodeRegion(0, 1606)
|
||||
|
||||
-- Set the known data regions, either as a data region (byte), word or string. The type affects the assembly output definitions and word
|
||||
-- regions will attempt to map to an address, ie. jump tables will be setup with labels rather than constants.
|
||||
d_SetDataRegion( hex("0289"), 218)
|
||||
|
||||
d_SetStringRegion( hex("0289"), 13)
|
||||
d_SetStringRegion( hex("0297"), 27)
|
||||
d_SetStringRegion( hex("02B3"), 13)
|
||||
d_SetStringRegion( hex("02C1"), 12)
|
||||
d_SetStringRegion( hex("02CE"), 12)
|
||||
d_SetStringRegion( hex("02DB"), 11)
|
||||
d_SetStringRegion( hex("02E7"), 31)
|
||||
d_SetStringRegion( hex("0307"), 14)
|
||||
d_SetStringRegion( hex("0316"), 22)
|
||||
d_SetStringRegion( hex("032D"), 3)
|
||||
d_SetStringRegion( hex("0331"), 28)
|
||||
d_SetStringRegion( hex("034E"), 14)
|
||||
d_SetStringRegion( hex("035D"), 7)
|
||||
|
||||
-- Create a mapping table of known Sharp I/O ports and 8 bit constants.
|
||||
--
|
||||
-- Format Addr IsAddr Label : IsAddr = 0, value is a constant, = 1, value is an address.
|
||||
--d_SetByteEquate(hex("FE") , 1, "PRTC" )
|
||||
--d_SetByteEquate(hex("FF") , 1, "PRTD" )
|
||||
|
||||
-- Create a mapping table of known Sharp MZ BIOS/Memory Mapped Hardware addresses which dz80
|
||||
-- can use to replace an address with the label. The EQU list will also be output at the start
|
||||
-- of the disassembly file so it can compile.
|
||||
-- Format Addr IsAddr Label : IsAddr = 0, value is a constant, = 1, value is an address.
|
||||
d_SetWordEquate(hex("0002"), 1, "NST" )
|
||||
d_SetWordEquate(hex("0006"), 1, "START" )
|
||||
|
||||
d_SetWordEquate(hex("0036"), 1, "CLEAR" )
|
||||
d_SetWordEquate(hex("0060"), 1, "KEYIN" )
|
||||
d_SetWordEquate(hex("008C"), 1, "KEYS1" )
|
||||
d_SetWordEquate(hex("008E"), 1, "KEYS" )
|
||||
d_SetWordEquate(hex("0098"), 1, "NKIN" )
|
||||
d_SetWordEquate(hex("00A0"), 1, "FDCC" )
|
||||
d_SetWordEquate(hex("0364"), 1, "FD" )
|
||||
d_SetWordEquate(hex("00AC"), 1, "CMT" )
|
||||
d_SetWordEquate(hex("00CE"), 1, "ST1" )
|
||||
d_SetWordEquate(hex("00D9"), 1, "MISMCH" )
|
||||
d_SetWordEquate(hex("026D"), 1, "DISP" )
|
||||
d_SetWordEquate(hex("01F6"), 1, "MSTOP" )
|
||||
d_SetWordEquate(hex("00E9"), 1, "RDINF" )
|
||||
d_SetWordEquate(hex("00F8"), 1, "RD1" )
|
||||
d_SetWordEquate(hex("01C7"), 1, "MOTOR" )
|
||||
d_SetWordEquate(hex("0193"), 1, "TMARK" )
|
||||
d_SetWordEquate(hex("010B"), 1, "STPEIR" )
|
||||
d_SetWordEquate(hex("010E"), 1, "EIRTN" )
|
||||
d_SetWordEquate(hex("0110"), 1, "RDDAT" )
|
||||
d_SetWordEquate(hex("011C"), 1, "RTAPE" )
|
||||
d_SetWordEquate(hex("0121"), 1, "RTP2" )
|
||||
d_SetWordEquate(hex("01BB"), 1, "SPDIN" )
|
||||
d_SetWordEquate(hex("015E"), 1, "TRTN1" )
|
||||
d_SetWordEquate(hex("0121"), 1, "RTP2" )
|
||||
d_SetWordEquate(hex("0133"), 1, "RTP3" )
|
||||
d_SetWordEquate(hex("0173"), 1, "RBYTE" )
|
||||
d_SetWordEquate(hex("0154"), 1, "RTP5" )
|
||||
d_SetWordEquate(hex("015A"), 1, "RTP6" )
|
||||
d_SetWordEquate(hex("0266"), 1, "BOOTER" )
|
||||
d_SetWordEquate(hex("0162"), 1, "EDGE" )
|
||||
d_SetWordEquate(hex("0177"), 1, "RBY1" )
|
||||
d_SetWordEquate(hex("0188"), 1, "RBY2" )
|
||||
d_SetWordEquate(hex("0191"), 1, "RBY3" )
|
||||
d_SetWordEquate(hex("019C"), 1, "TM0" )
|
||||
d_SetWordEquate(hex("019F"), 1, "TM1" )
|
||||
d_SetWordEquate(hex("01A2"), 1, "TM2" )
|
||||
d_SetWordEquate(hex("01AC"), 1, "TM3" )
|
||||
d_SetWordEquate(hex("01DD"), 1, "MOT1" )
|
||||
d_SetWordEquate(hex("01EF"), 1, "MOTRD" )
|
||||
d_SetWordEquate(hex("01F2"), 1, "MOTR" )
|
||||
d_SetWordEquate(hex("0202"), 1, "OPEN" )
|
||||
d_SetWordEquate(hex("020E"), 1, "KYEMES" )
|
||||
d_SetWordEquate(hex("0219"), 1, "PLAY" )
|
||||
d_SetWordEquate(hex("0237"), 1, "DM1" )
|
||||
d_SetWordEquate(hex("0238"), 1, "DM1A" )
|
||||
d_SetWordEquate(hex("0239"), 1, "DM1B" )
|
||||
d_SetWordEquate(hex("0244"), 1, "DEL6" )
|
||||
d_SetWordEquate(hex("024A"), 1, "DEL1M" )
|
||||
d_SetWordEquate(hex("0250"), 1, "DLY2" )
|
||||
d_SetWordEquate(hex("0252"), 1, "DLY2A" )
|
||||
d_SetWordEquate(hex("0257"), 1, "LDMSG" )
|
||||
d_SetWordEquate(hex("027E"), 1, "DISP1" )
|
||||
d_SetWordEquate(hex("0260"), 1, "DISP2" )
|
||||
d_SetWordEquate(hex("0277"), 1, "DISP3" )
|
||||
d_SetWordEquate(hex("0289"), 1, "MES1" )
|
||||
d_SetWordEquate(hex("0297"), 1, "MES3" )
|
||||
d_SetWordEquate(hex("02B3"), 1, "MES6" )
|
||||
d_SetWordEquate(hex("02C1"), 1, "MES8" )
|
||||
d_SetWordEquate(hex("02CE"), 1, "MES9" )
|
||||
d_SetWordEquate(hex("02DB"), 1, "MES10" )
|
||||
d_SetWordEquate(hex("0307"), 1, "MES13" )
|
||||
d_SetWordEquate(hex("0316"), 1, "MES14" )
|
||||
d_SetWordEquate(hex("034E"), 1, "MES16" )
|
||||
d_SetWordEquate(hex("035D"), 1, "IPLMC" )
|
||||
d_SetWordEquate(hex("0387"), 1, "MCHECK" )
|
||||
d_SetWordEquate(hex("03B4"), 1, "NODISK" )
|
||||
d_SetWordEquate(hex("03C1"), 1, "READY" )
|
||||
d_SetWordEquate(hex("03D6"), 1, "REDY0" )
|
||||
d_SetWordEquate(hex("03F4"), 1, "MTON" )
|
||||
d_SetWordEquate(hex("03FA"), 1, "MTD1" )
|
||||
d_SetWordEquate(hex("03FD"), 1, "MTD2" )
|
||||
d_SetWordEquate(hex("040A"), 1, "SEEK" )
|
||||
d_SetWordEquate(hex("041B"), 1, "MOFF" )
|
||||
d_SetWordEquate(hex("0431"), 1, "RCLB" )
|
||||
d_SetWordEquate(hex("0449"), 1, "BUSY" )
|
||||
d_SetWordEquate(hex("0450"), 1, "BUSY2" )
|
||||
d_SetWordEquate(hex("0453"), 1, "BUSY0" )
|
||||
d_SetWordEquate(hex("0461"), 1, "BUSY1" )
|
||||
d_SetWordEquate(hex("0467"), 1, "CONVRT" )
|
||||
d_SetWordEquate(hex("0470"), 1, "TRANS" )
|
||||
d_SetWordEquate(hex("0477"), 1, "TRANS1" )
|
||||
d_SetWordEquate(hex("0480"), 1, "DCHK" )
|
||||
d_SetWordEquate(hex("049F"), 1, "DTCK1" )
|
||||
d_SetWordEquate(hex("04A2"), 1, "BREAD" )
|
||||
d_SetWordEquate(hex("04AB"), 1, "READ1" )
|
||||
d_SetWordEquate(hex("04B8"), 1, "RE0" )
|
||||
d_SetWordEquate(hex("04C7"), 1, "RE8" )
|
||||
d_SetWordEquate(hex("04D2"), 1, "RE1" )
|
||||
d_SetWordEquate(hex("04D4"), 1, "RE2" )
|
||||
d_SetWordEquate(hex("04FA"), 1, "RE6" )
|
||||
d_SetWordEquate(hex("04FC"), 1, "RE4" )
|
||||
d_SetWordEquate(hex("0516"), 1, "RETS" )
|
||||
d_SetWordEquate(hex("0517"), 1, "RE5" )
|
||||
d_SetWordEquate(hex("051F"), 1, "RE3" )
|
||||
d_SetWordEquate(hex("0538"), 1, "REX" )
|
||||
d_SetWordEquate(hex("0541"), 1, "RE7" )
|
||||
d_SetWordEquate(hex("0546"), 1, "REE" )
|
||||
d_SetWordEquate(hex("0555"), 1, "WAIT" )
|
||||
d_SetWordEquate(hex("055C"), 1, "WAIT2" )
|
||||
d_SetWordEquate(hex("055F"), 1, "WAIT0" )
|
||||
d_SetWordEquate(hex("056D"), 1, "WAIT1" )
|
||||
d_SetWordEquate(hex("0572"), 1, "NMASTE" )
|
||||
d_SetWordEquate(hex("057E"), 1, "ERR" )
|
||||
d_SetWordEquate(hex("0581"), 1, "ERR1" )
|
||||
d_SetWordEquate(hex("0583"), 1, "TRYAG2" )
|
||||
d_SetWordEquate(hex("0587"), 1, "TRYAG" )
|
||||
d_SetWordEquate(hex("05A4"), 1, "TRYAG1" )
|
||||
d_SetWordEquate(hex("05B2"), 1, "DNO" )
|
||||
d_SetWordEquate(hex("05BC"), 1, "DNO10" )
|
||||
d_SetWordEquate(hex("05CC"), 1, "DNO3" )
|
||||
d_SetWordEquate(hex("05D3"), 1, "TRYAG3" )
|
||||
d_SetWordEquate(hex("05DD"), 1, "TRYAG4" )
|
||||
d_SetWordEquate(hex("05DF"), 1, "TRYAG5" )
|
||||
d_SetWordEquate(hex("0331"), 1, "MES15" )
|
||||
d_SetWordEquate(hex("05E9"), 1, "DNO0" )
|
||||
d_SetWordEquate(hex("05F7"), 1, "DNO1" )
|
||||
d_SetWordEquate(hex("05FE"), 1, "DLY80U" )
|
||||
d_SetWordEquate(hex("0605"), 1, "DLY1M" )
|
||||
d_SetWordEquate(hex("060C"), 1, "DLY60M" )
|
||||
d_SetWordEquate(hex("0610"), 1, "DLYT" )
|
||||
d_SetWordEquate(hex("0617"), 1, "EXROMT" )
|
||||
d_SetWordEquate(hex("0620"), 1, "EROM1" )
|
||||
d_SetWordEquate(hex("062B"), 1, "ERMT1" )
|
||||
d_SetWordEquate(hex("062D"), 1, "EROM2" )
|
||||
d_SetWordEquate(hex("063A"), 1, "SEROMA" )
|
||||
d_SetWordEquate(hex("0642"), 1, "SEROMD" )
|
||||
|
||||
d_SetWordEquate(hex("CF00"), 1, "IBUFE" )
|
||||
d_SetWordEquate(hex("CF00"), 1, "ATRB" )
|
||||
d_SetWordEquate(hex("CF01"), 1, "NAME" )
|
||||
d_SetWordEquate(hex("CF12"), 1, "SIZE" )
|
||||
d_SetWordEquate(hex("CF14"), 1, "DTADR" )
|
||||
d_SetWordEquate(hex("FFE0"), 1, "SUMDT" )
|
||||
d_SetWordEquate(hex("FFE2"), 1, "TMCNT" )
|
||||
d_SetWordEquate(hex("CF00"), 1, "IBADR1" )
|
||||
d_SetWordEquate(hex("8000"), 1, "IBADR2" )
|
||||
d_SetWordEquate(hex("FFE0"), 1, "NTRACK" )
|
||||
d_SetWordEquate(hex("FFE1"), 1, "NSECT" )
|
||||
d_SetWordEquate(hex("FFE2"), 1, "BSIZE" )
|
||||
d_SetWordEquate(hex("FFE4"), 1, "STTR" )
|
||||
d_SetWordEquate(hex("FFE5"), 1, "STSE" )
|
||||
d_SetWordEquate(hex("FFE6"), 1, "MTFG" )
|
||||
d_SetWordEquate(hex("FFE7"), 1, "CLBF0" )
|
||||
d_SetWordEquate(hex("FFE8"), 1, "CLBF1" )
|
||||
d_SetWordEquate(hex("FFE9"), 1, "CLBF2" )
|
||||
d_SetWordEquate(hex("FFEA"), 1, "CLBF3" )
|
||||
d_SetWordEquate(hex("FFEB"), 1, "RETRY" )
|
||||
d_SetWordEquate(hex("FFEC"), 1, "DRINO" )
|
||||
d_SetByteEquate(hex("D8"), 1, "CR" )
|
||||
d_SetByteEquate(hex("D9"), 1, "TR" )
|
||||
d_SetByteEquate(hex("DA"), 1, "SCR" )
|
||||
d_SetByteEquate(hex("DB"), 1, "DR" )
|
||||
d_SetByteEquate(hex("DC"), 1, "DM" )
|
||||
d_SetByteEquate(hex("DD"), 1, "HS" )
|
||||
d_SetByteEquate(hex("E0"), 1, "PPIA" )
|
||||
d_SetByteEquate(hex("E1"), 1, "PPIB" )
|
||||
d_SetByteEquate(hex("E2"), 1, "PPIC" )
|
||||
d_SetByteEquate(hex("E3"), 1, "PPICTL" )
|
||||
d_SetByteEquate(hex("E8"), 1, "PIOA" )
|
||||
d_SetByteEquate(hex("E9"), 1, "PIOCTLA" )
|
||||
d_SetByteEquate(hex("EA"), 1, "PIOB" )
|
||||
d_SetByteEquate(hex("EB"), 1, "PIOCTLB" )
|
||||
d_SetByteEquate(hex("F4"), 1, "GRPHCTL" )
|
||||
|
||||
-- Comments to be added at fixed addresses.
|
||||
d_SetComment( hex("1250"), "Sharp defined BASIC restart location from Monitor." )
|
||||
d_SetComment( hex("5B55"), "Relocated to 0x3302 for 0x5B bytes." )
|
||||
d_SetComment( hex("5BB0"), "Relocated to 0x4806 for 0xF8 bytes." )
|
||||
d_SetComment( hex("5CA8"), "End of Relocated code." )
|
||||
|
||||
----------------------------------------
|
||||
-- End of configuration file
|
||||
----------------------------------------
|
||||
466
software/dis/MZ2000_IPL/mz2000_ipl.ref
Normal file
466
software/dis/MZ2000_IPL/mz2000_ipl.ref
Normal file
@@ -0,0 +1,466 @@
|
||||
dZ80 2.1 Reference file from the disassembly of "mz2000_ipl.rom".
|
||||
|
||||
Input Port Reference (22 entries)
|
||||
---------------------------------
|
||||
|
||||
Input Port 000d8H. 6 references:
|
||||
--------------------------------
|
||||
|
||||
00415H: IN A,(0D8H)
|
||||
0043dH: IN A,(0D8H)
|
||||
00458H: IN A,(0D8H)
|
||||
004fcH: IN A,(0D8H)
|
||||
0051fH: IN A,(0D8H)
|
||||
00564H: IN A,(0D8H)
|
||||
|
||||
Input Port 000d9H. 1 references:
|
||||
--------------------------------
|
||||
|
||||
000a8H: IN A,(0D9H)
|
||||
|
||||
Input Port 000e1H. 5 references:
|
||||
--------------------------------
|
||||
|
||||
00162H: IN A,(0E1H)
|
||||
0016aH: IN A,(0E1H)
|
||||
001c2H: IN A,(0E1H)
|
||||
001caH: IN A,(0E1H)
|
||||
001e3H: IN A,(0E1H)
|
||||
|
||||
Input Port 000e2H. 2 references:
|
||||
--------------------------------
|
||||
|
||||
000eaH: IN A,(0E2H)
|
||||
00230H: IN A,(0E2H)
|
||||
|
||||
Input Port 000e8H. 3 references:
|
||||
--------------------------------
|
||||
|
||||
00072H: IN A,(0E8H)
|
||||
0008eH: IN A,(0E8H)
|
||||
005e9H: IN A,(0E8H)
|
||||
|
||||
Input Port 000eaH. 3 references:
|
||||
--------------------------------
|
||||
|
||||
00095H: IN A,(0EAH)
|
||||
001ddH: IN A,(0EAH)
|
||||
005f0H: IN A,(0EAH)
|
||||
|
||||
Input Port 000f9H. 2 references:
|
||||
--------------------------------
|
||||
|
||||
00620H: IN A,(0F9H)
|
||||
0062dH: IN A,(0F9H)
|
||||
|
||||
|
||||
Output Port Reference (50 entries)
|
||||
----------------------------------
|
||||
|
||||
Output Port 000d8H. 4 references:
|
||||
---------------------------------
|
||||
|
||||
0040dH: OUT (0D8H),A
|
||||
00435H: OUT (0D8H),A
|
||||
004f5H: OUT (0D8H),A
|
||||
0051aH: OUT (0D8H),A
|
||||
|
||||
Output Port 000d9H. 2 references:
|
||||
---------------------------------
|
||||
|
||||
000a3H: OUT (0D9H),A
|
||||
004e4H: OUT (0D9H),A
|
||||
|
||||
Output Port 000daH. 1 references:
|
||||
---------------------------------
|
||||
|
||||
004eaH: OUT (0DAH),A
|
||||
|
||||
Output Port 000dbH. 1 references:
|
||||
---------------------------------
|
||||
|
||||
004caH: OUT (0DBH),A
|
||||
|
||||
Output Port 000dcH. 4 references:
|
||||
---------------------------------
|
||||
|
||||
003cdH: OUT (0DCH),A
|
||||
003f6H: OUT (0DCH),A
|
||||
0041fH: OUT (0DCH),A
|
||||
0053eH: OUT (0DCH),A
|
||||
|
||||
Output Port 000ddH. 1 references:
|
||||
---------------------------------
|
||||
|
||||
004d5H: OUT (0DDH),A
|
||||
|
||||
Output Port 000e0H. 8 references:
|
||||
---------------------------------
|
||||
|
||||
00013H: OUT (0E0H),A
|
||||
0003eH: OUT (0E0H),A
|
||||
001f8H: OUT (0E0H),A
|
||||
001ffH: OUT (0E0H),A
|
||||
0021bH: OUT (0E0H),A
|
||||
00222H: OUT (0E0H),A
|
||||
00227H: OUT (0E0H),A
|
||||
0022eH: OUT (0E0H),A
|
||||
|
||||
Output Port 000e2H. 3 references:
|
||||
---------------------------------
|
||||
|
||||
0000cH: OUT (0E2H),A
|
||||
000eeH: OUT (0E2H),A
|
||||
00234H: OUT (0E2H),A
|
||||
|
||||
Output Port 000e3H. 4 references:
|
||||
---------------------------------
|
||||
|
||||
00004H: OUT (0E3H),A
|
||||
00008H: OUT (0E3H),A
|
||||
00204H: OUT (0E3H),A
|
||||
0020bH: OUT (0E3H),A
|
||||
|
||||
Output Port 000e8H. 9 references:
|
||||
---------------------------------
|
||||
|
||||
0002fH: OUT (0E8H),A
|
||||
00057H: OUT (0E8H),A
|
||||
00078H: OUT (0E8H),A
|
||||
00088H: OUT (0E8H),A
|
||||
00093H: OUT (0E8H),A
|
||||
00262H: OUT (0E8H),A
|
||||
0026fH: OUT (0E8H),A
|
||||
00286H: OUT (0E8H),A
|
||||
005eeH: OUT (0E8H),A
|
||||
|
||||
Output Port 000e9H. 1 references:
|
||||
---------------------------------
|
||||
|
||||
00017H: OUT (0E9H),A
|
||||
|
||||
Output Port 000ebH. 2 references:
|
||||
---------------------------------
|
||||
|
||||
0001bH: OUT (0EBH),A
|
||||
0001fH: OUT (0EBH),A
|
||||
|
||||
Output Port 000f4H. 1 references:
|
||||
---------------------------------
|
||||
|
||||
00024H: OUT (0F4H),A
|
||||
|
||||
Output Port 000f5H. 1 references:
|
||||
---------------------------------
|
||||
|
||||
0002bH: OUT (0F5H),A
|
||||
|
||||
Output Port 000f6H. 1 references:
|
||||
---------------------------------
|
||||
|
||||
00022H: OUT (0F6H),A
|
||||
|
||||
Output Port 000f7H. 4 references:
|
||||
---------------------------------
|
||||
|
||||
00027H: OUT (0F7H),A
|
||||
00042H: OUT (0F7H),A
|
||||
00049H: OUT (0F7H),A
|
||||
00050H: OUT (0F7H),A
|
||||
|
||||
Output Port 000f8H. 2 references:
|
||||
---------------------------------
|
||||
|
||||
00635H: OUT (0F8H),A
|
||||
0063bH: OUT (0F8H),A
|
||||
|
||||
Output Port 000f9H. 1 references:
|
||||
---------------------------------
|
||||
|
||||
0063eH: OUT (0F9H),A
|
||||
|
||||
|
||||
Direct address Reference (47 entries)
|
||||
-------------------------------------
|
||||
|
||||
Direct address 00000H. 4 references:
|
||||
------------------------------------
|
||||
|
||||
00129H: LD HL,00000H
|
||||
003d3H: LD HL,00000H
|
||||
00450H: LD HL,00000H
|
||||
0055cH: LD HL,00000H
|
||||
|
||||
Direct address 0000dH. 1 references:
|
||||
------------------------------------
|
||||
|
||||
005ffH: LD DE,0000DH
|
||||
|
||||
Direct address 00010H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
00469H: LD DE,00010H
|
||||
|
||||
Direct address 00080H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
000f2H: LD BC,00080H
|
||||
|
||||
Direct address 00082H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
00606H: LD DE,00082H
|
||||
|
||||
Direct address 000e9H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
00245H: LD BC,000E9H
|
||||
|
||||
Direct address 00100H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
00373H: LD HL,00100H
|
||||
|
||||
Direct address 00289H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
00257H: LD HL,00289H
|
||||
|
||||
Direct address 00297H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
0020eH: LD HL,00297H
|
||||
|
||||
Direct address 002b3H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
001d0H: LD HL,002B3H
|
||||
|
||||
Direct address 002c1H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
00266H: LD HL,002C1H
|
||||
|
||||
Direct address 002ceH. 1 references:
|
||||
------------------------------------
|
||||
|
||||
003b4H: LD HL,002CEH
|
||||
|
||||
Direct address 002dbH. 1 references:
|
||||
------------------------------------
|
||||
|
||||
0058cH: LD HL,002DBH
|
||||
|
||||
Direct address 00307H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
005b2H: LD HL,00307H
|
||||
|
||||
Direct address 00316H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
00572H: LD HL,00316H
|
||||
|
||||
Direct address 00331H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
005d3H: LD HL,00331H
|
||||
|
||||
Direct address 0034eH. 1 references:
|
||||
------------------------------------
|
||||
|
||||
000d9H: LD HL,0034EH
|
||||
|
||||
Direct address 0035dH. 1 references:
|
||||
------------------------------------
|
||||
|
||||
00382H: LD DE,0035DH
|
||||
|
||||
Direct address 0051fH. 1 references:
|
||||
------------------------------------
|
||||
|
||||
004edH: LD HL,0051FH
|
||||
|
||||
Direct address 0060fH. 1 references:
|
||||
------------------------------------
|
||||
|
||||
0024bH: LD BC,0060FH
|
||||
|
||||
Direct address 00620H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
0061aH: LD IX,00620H
|
||||
|
||||
Direct address 0062dH. 1 references:
|
||||
------------------------------------
|
||||
|
||||
00627H: LD IX,0062DH
|
||||
|
||||
Direct address 00800H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
00174H: LD HL,00800H
|
||||
|
||||
Direct address 01414H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
00194H: LD HL,01414H
|
||||
|
||||
Direct address 01a2cH. 1 references:
|
||||
------------------------------------
|
||||
|
||||
0060dH: LD DE,01A2CH
|
||||
|
||||
Direct address 03c19H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
003faH: LD HL,03C19H
|
||||
|
||||
Direct address 03e7fH. 1 references:
|
||||
------------------------------------
|
||||
|
||||
0007fH: LD BC,03E7FH
|
||||
|
||||
Direct address 08000H. 3 references:
|
||||
------------------------------------
|
||||
|
||||
00117H: LD HL,08000H
|
||||
0039eH: LD IX,08000H
|
||||
00617H: LD HL,08000H
|
||||
|
||||
Direct address 0c000H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
0006eH: LD HL,0C000H
|
||||
|
||||
Direct address 0c001H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
0007aH: LD DE,0C001H
|
||||
|
||||
Direct address 0cf00H. 3 references:
|
||||
------------------------------------
|
||||
|
||||
000f5H: LD HL,0CF00H
|
||||
00364H: LD IX,0CF00H
|
||||
0037fH: LD HL,0CF00H
|
||||
|
||||
Direct address 0cf01H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
000baH: LD HL,0CF01H
|
||||
|
||||
Direct address 0cf07H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
00394H: LD HL,0CF07H
|
||||
|
||||
Direct address 0cf12H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
00113H: LD BC,(0CF12H)
|
||||
|
||||
Direct address 0d000H. 2 references:
|
||||
------------------------------------
|
||||
|
||||
00031H: LD HL,0D000H
|
||||
00272H: LD HL,0D000H
|
||||
|
||||
Direct address 0ffe0H. 3 references:
|
||||
------------------------------------
|
||||
|
||||
0000eH: LD SP,0FFE0H
|
||||
0036fH: LD IY,0FFE0H
|
||||
00584H: LD SP,0FFE0H
|
||||
|
||||
Direct address 0ffe7H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
003e5H: LD HL,0FFE7H
|
||||
|
||||
|
||||
Indirect address Reference (27 entries)
|
||||
---------------------------------------
|
||||
|
||||
Indirect address 0cf00H. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
000c4H: LD A,(0CF00H)
|
||||
|
||||
Indirect address 0cf14H. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
003a2H: LD HL,(0CF14H)
|
||||
|
||||
Indirect address 0cf1eH. 2 references:
|
||||
--------------------------------------
|
||||
|
||||
00369H: LD (0CF1EH),A
|
||||
0046cH: LD HL,(0CF1EH)
|
||||
|
||||
Indirect address 0cf1fH. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
0036cH: LD (0CF1FH),A
|
||||
|
||||
Indirect address 0ffe0H. 4 references:
|
||||
--------------------------------------
|
||||
|
||||
0012cH: LD (0FFE0H),HL
|
||||
0013fH: LD HL,(0FFE0H)
|
||||
0017fH: LD HL,(0FFE0H)
|
||||
00183H: LD (0FFE0H),HL
|
||||
|
||||
Indirect address 0ffe2H. 2 references:
|
||||
--------------------------------------
|
||||
|
||||
0019cH: LD (0FFE2H),HL
|
||||
0019fH: LD HL,(0FFE2H)
|
||||
|
||||
Indirect address 0ffe6H. 4 references:
|
||||
--------------------------------------
|
||||
|
||||
0005dH: LD (0FFE6H),A
|
||||
003c1H: LD A,(0FFE6H)
|
||||
00406H: LD (0FFE6H),A
|
||||
0042dH: LD (0FFE6H),A
|
||||
|
||||
Indirect address 0ffe7H. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
00421H: LD (0FFE7H),A
|
||||
|
||||
Indirect address 0ffe8H. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
00424H: LD (0FFE8H),A
|
||||
|
||||
Indirect address 0ffe9H. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
00427H: LD (0FFE9H),A
|
||||
|
||||
Indirect address 0ffeaH. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
0042aH: LD (0FFEAH),A
|
||||
|
||||
Indirect address 0ffebH. 3 references:
|
||||
--------------------------------------
|
||||
|
||||
004a8H: LD (0FFEBH),A
|
||||
00546H: LD A,(0FFEBH)
|
||||
0054aH: LD (0FFEBH),A
|
||||
|
||||
Indirect address 0ffecH. 5 references:
|
||||
--------------------------------------
|
||||
|
||||
0005aH: LD (0FFECH),A
|
||||
003c8H: LD A,(0FFECH)
|
||||
003e1H: LD A,(0FFECH)
|
||||
00480H: LD A,(0FFECH)
|
||||
005cdH: LD (0FFECH),A
|
||||
|
||||
|
||||
End of reference file for "mz2000_ipl.rom"
|
||||
|
||||
BIN
software/dis/MZ2000_IPL/mz2000_ipl.rom
Normal file
BIN
software/dis/MZ2000_IPL/mz2000_ipl.rom
Normal file
Binary file not shown.
7511
software/dis/SA-5510/SA-5510.asm
Normal file
7511
software/dis/SA-5510/SA-5510.asm
Normal file
File diff suppressed because it is too large
Load Diff
568
software/dis/SA-5510/SA-5510.ini
Normal file
568
software/dis/SA-5510/SA-5510.ini
Normal file
@@ -0,0 +1,568 @@
|
||||
----------------------------------------
|
||||
-- dZ80 configuration file
|
||||
----------------------------------------
|
||||
|
||||
----------------------------------------
|
||||
-- Disassembly control
|
||||
----------------------------------------
|
||||
|
||||
cpu="z80"
|
||||
inputfile="SA-5510.bin"
|
||||
outputfile="SA-5510.asm"
|
||||
--fileheadersize=27
|
||||
filebaseaddr=4605
|
||||
disstart=0
|
||||
disend=16946
|
||||
--disstart=0
|
||||
--disend=3584
|
||||
--quiet=0
|
||||
labelledoutput=1
|
||||
|
||||
----------------------------------------
|
||||
-- Layout
|
||||
----------------------------------------
|
||||
|
||||
labelreference=1
|
||||
addresscolumn=1
|
||||
opcodecolumn=1
|
||||
relativejumpcomment=1
|
||||
uppercase=1
|
||||
autoblanklines=1
|
||||
db="db"
|
||||
comment="; "
|
||||
radix=16
|
||||
numprefix="0"
|
||||
numsuffix="H"
|
||||
|
||||
----------------------------------------
|
||||
-- Scripts
|
||||
----------------------------------------
|
||||
|
||||
--script="scripts\\spectrum.lua"
|
||||
|
||||
----------------------------------------
|
||||
-- References
|
||||
----------------------------------------
|
||||
|
||||
referencefile="SA-5510.ref"
|
||||
inportreference=1
|
||||
outportreference=1
|
||||
addressreference=1
|
||||
indirectaddressreference=1
|
||||
limitreferences=1
|
||||
|
||||
----------------------------------------
|
||||
-- Opcode mapfile and code/data areas
|
||||
----------------------------------------
|
||||
|
||||
--opmapfile="mayhem.map"
|
||||
|
||||
-- Code Region isnt required as v2.x sets the entire region to code unless a data region overrides it.
|
||||
-- d_SetCodeRegion(4608, 2464)
|
||||
|
||||
-- Set the known data regions, either as a data region (byte), word or string. The type affects the assembly output definitions and word
|
||||
-- regions will attempt to map to an address, ie. jump tables will be setup with labels rather than constants.
|
||||
d_SetDataRegion( hex("1347"), 100) -- 0x1347
|
||||
d_SetStringRegion(hex("1347"), 28)
|
||||
d_SetStringRegion(hex("1364"), 31)
|
||||
d_SetStringRegion(hex("1384"), 5)
|
||||
d_SetStringRegion(hex("138A"), 6)
|
||||
d_SetStringRegion(hex("1391"), 3)
|
||||
d_SetStringRegion(hex("1395"), 6)
|
||||
d_SetStringRegion(hex("139C"), 6)
|
||||
d_SetDataRegion( hex("2FC2"), 30)
|
||||
d_SetStringRegion(hex("2FC2"), 6)
|
||||
d_SetStringRegion(hex("2FC9"), 8)
|
||||
d_SetStringRegion(hex("2FD2"), 10)
|
||||
d_SetStringRegion(hex("2FDD"), 2)
|
||||
d_SetStringRegion(hex("1D44"), 9)
|
||||
|
||||
-- Reserved key words.
|
||||
d_SetDataRegion( hex("15A8"), 402) -- 0x15A8 Start of tokens.
|
||||
d_SetStringRegion(hex("15A8"), 2) -- 0 - REM
|
||||
d_SetStringRegion(hex("15AB"), 3) -- 1 - DATA
|
||||
d_SetStringRegion(hex("15AF"), 0) -- 2 - undefined
|
||||
d_SetStringRegion(hex("15B0"), 0) -- 3 - undefined
|
||||
d_SetStringRegion(hex("15B1"), 3) -- 4 - READ
|
||||
d_SetStringRegion(hex("15B5"), 3) -- 5 - LIST
|
||||
d_SetStringRegion(hex("15B9"), 2) -- 6 - RUN
|
||||
d_SetStringRegion(hex("15BC"), 2) -- 7 - NEW
|
||||
d_SetStringRegion(hex("15BF"), 4) -- 8 - PRINT
|
||||
d_SetStringRegion(hex("15C4"), 2) -- 9 - LET
|
||||
d_SetStringRegion(hex("15C7"), 2) -- 10 - FOR
|
||||
d_SetStringRegion(hex("15CA"), 1) -- 11 - IF
|
||||
d_SetStringRegion(hex("15CC"), 3) -- 12 - THEN
|
||||
d_SetStringRegion(hex("15D0"), 3) -- 13 - GOTO
|
||||
d_SetStringRegion(hex("15D4"), 4) -- 14 - GOSUB
|
||||
d_SetStringRegion(hex("15D9"), 5) -- 15 - RETURN
|
||||
d_SetStringRegion(hex("15DF"), 3) -- 16 - NEXT
|
||||
d_SetStringRegion(hex("15E3"), 3) -- 17 - STOP
|
||||
d_SetStringRegion(hex("15E7"), 2) -- 18 - END
|
||||
d_SetStringRegion(hex("15EA"), 0) -- 19 - undefined
|
||||
d_SetStringRegion(hex("15EB"), 1) -- 20 - ON
|
||||
d_SetStringRegion(hex("15ED"), 3) -- 21 - LOAD
|
||||
d_SetStringRegion(hex("15F1"), 3) -- 22 - SAVE
|
||||
d_SetStringRegion(hex("15F5"), 5) -- 23 - VERIFY
|
||||
d_SetStringRegion(hex("15FB"), 3) -- 24 - POKE
|
||||
d_SetStringRegion(hex("15FF"), 2) -- 25 - DIM
|
||||
d_SetStringRegion(hex("1602"), 5) -- 26 - DEF FN
|
||||
d_SetStringRegion(hex("1608"), 4) -- 27 - INPUT
|
||||
d_SetStringRegion(hex("160D"), 6) -- 28 - RESTORE
|
||||
d_SetStringRegion(hex("1614"), 2) -- 29 - CLS
|
||||
d_SetStringRegion(hex("1617"), 4) -- 30 - MUSIC
|
||||
d_SetStringRegion(hex("161C"), 4) -- 31 - TEMPO
|
||||
d_SetStringRegion(hex("1621"), 3) -- 32 - USRN
|
||||
d_SetStringRegion(hex("1625"), 4) -- 33 - WOPEN
|
||||
d_SetStringRegion(hex("162A"), 4) -- 34 - ROPEN
|
||||
d_SetStringRegion(hex("162F"), 4) -- 35 - CLOSE
|
||||
d_SetStringRegion(hex("1634"), 2) -- 36 - MON
|
||||
d_SetStringRegion(hex("1637"), 4) -- 37 - LIMIT
|
||||
d_SetStringRegion(hex("163C"), 3) -- 38 - CONT
|
||||
d_SetStringRegion(hex("1640"), 2) -- 39 - GET
|
||||
d_SetStringRegion(hex("1643"), 3) -- 40 - INP@
|
||||
d_SetStringRegion(hex("1647"), 3) -- 41 - OUT@
|
||||
d_SetStringRegion(hex("164B"), 5) -- 42 - CURSOR
|
||||
d_SetStringRegion(hex("1651"), 2) -- 43 - SET
|
||||
d_SetStringRegion(hex("1654"), 4) -- 44 - RESET
|
||||
d_SetStringRegion(hex("1659"), 0) -- 45 - undefined
|
||||
d_SetStringRegion(hex("165A"), 0) -- 46 - undefined
|
||||
d_SetStringRegion(hex("165B"), 0) -- 47 - undefined
|
||||
d_SetStringRegion(hex("165C"), 0) -- 48 - undefined
|
||||
d_SetStringRegion(hex("165D"), 0) -- 49 - undefined
|
||||
d_SetStringRegion(hex("165E"), 0) -- 59 - undefined
|
||||
d_SetStringRegion(hex("165F"), 3) -- 51 - AUTO
|
||||
d_SetStringRegion(hex("1663"), 0) -- 52 - undefined
|
||||
d_SetStringRegion(hex("1664"), 0) -- 53 - undefined
|
||||
d_SetStringRegion(hex("1665"), 5) -- 54 - COPY/P
|
||||
d_SetStringRegion(hex("166B"), 5) -- 55 - PAGE/P
|
||||
d_SetStringRegion(hex("1671"), 0) -- 56 - undefined
|
||||
d_SetStringRegion(hex("1672"), 0) -- 57 - undefined
|
||||
d_SetStringRegion(hex("1673"), 0) -- 58 - undefined
|
||||
d_SetStringRegion(hex("1674"), 0) -- 59 - undefined
|
||||
d_SetStringRegion(hex("1675"), 0) -- 60 - undefined
|
||||
d_SetStringRegion(hex("1676"), 0) -- 61 - undefined
|
||||
d_SetStringRegion(hex("1677"), 0) -- 62 - undefined
|
||||
d_SetStringRegion(hex("1678"), 0) -- 63 - undefined
|
||||
d_SetStringRegion(hex("1679"), 0) -- 64 - undefined
|
||||
d_SetStringRegion(hex("167A"), 0) -- 65 - undefined
|
||||
d_SetStringRegion(hex("167B"), 1) -- 66 - undefined
|
||||
d_SetStringRegion(hex("167D"), 1) -- 67 - undefined
|
||||
|
||||
-- Functions
|
||||
d_SetStringRegion(hex("167F"), 1) -- >=
|
||||
d_SetStringRegion(hex("1681"), 1) -- <>
|
||||
d_SetStringRegion(hex("1683"), 1) -- =<
|
||||
d_SetStringRegion(hex("1685"), 1) -- <=
|
||||
d_SetStringRegion(hex("1687"), 1) -- <=
|
||||
d_SetStringRegion(hex("1689"), 1) -- <=
|
||||
d_SetStringRegion(hex("168B"), 0) -- undefined
|
||||
d_SetStringRegion(hex("168C"), 0) -- <=
|
||||
d_SetStringRegion(hex("168D"), 0) -- <=
|
||||
d_SetStringRegion(hex("168E"), 0) -- undefined
|
||||
d_SetStringRegion(hex("168F"), 0) -- undefined
|
||||
d_SetStringRegion(hex("1690"), 0) -- undefined
|
||||
d_SetStringRegion(hex("1691"), 0) -- undefined
|
||||
d_SetStringRegion(hex("1692"), 0) -- undefined
|
||||
d_SetStringRegion(hex("1693"), 0) -- undefined
|
||||
d_SetStringRegion(hex("1694"), 0) -- undefined
|
||||
d_SetStringRegion(hex("1695"), 0) -- undefined
|
||||
d_SetStringRegion(hex("1696"), 0) -- undefined
|
||||
d_SetStringRegion(hex("1697"), 0) -- undefined
|
||||
d_SetStringRegion(hex("1698"), 0) -- undefined
|
||||
d_SetStringRegion(hex("1699"), 0) -- undefined
|
||||
d_SetStringRegion(hex("169A"), 0) -- undefined
|
||||
d_SetStringRegion(hex("169B"), 0) -- undefined
|
||||
d_SetStringRegion(hex("169C"), 0) -- undefined
|
||||
d_SetStringRegion(hex("169D"), 0) -- undefined
|
||||
d_SetStringRegion(hex("168E"), 0) -- undefined
|
||||
d_SetStringRegion(hex("168F"), 0) -- undefined
|
||||
d_SetStringRegion(hex("16A0"), 1) -- TO
|
||||
d_SetStringRegion(hex("16A2"), 3) -- STEP
|
||||
d_SetStringRegion(hex("16A6"), 5) -- LEFT$(
|
||||
d_SetStringRegion(hex("16AC"), 6) -- RIGHT$(
|
||||
d_SetStringRegion(hex("16B3"), 4) -- MID$(
|
||||
d_SetStringRegion(hex("16B8"), 3) -- LEN(
|
||||
d_SetStringRegion(hex("16BC"), 4) -- CHR$(
|
||||
d_SetStringRegion(hex("16C1"), 4) -- STR$(
|
||||
d_SetStringRegion(hex("16C6"), 3) -- ASC(
|
||||
d_SetStringRegion(hex("16CA"), 3) -- VAL(
|
||||
d_SetStringRegion(hex("16CE"), 4) -- PEEK(
|
||||
d_SetStringRegion(hex("16D3"), 3) -- TAB(
|
||||
d_SetStringRegion(hex("16D7"), 6) -- SPACE$(
|
||||
d_SetStringRegion(hex("16DE"), 3) -- SIZE
|
||||
d_SetStringRegion(hex("16E2"), 2) -- undefined
|
||||
d_SetStringRegion(hex("16E5"), 6) -- STRING$(
|
||||
d_SetStringRegion(hex("16ED"), 0) -- undefined
|
||||
d_SetStringRegion(hex("16EE"), 10) -- CHARACTER$(
|
||||
d_SetStringRegion(hex("16F9"), 2) -- CSR
|
||||
d_SetStringRegion(hex("16FC"), 12) -- undefined
|
||||
d_SetStringRegion(hex("1709"), 3) -- RND(
|
||||
d_SetStringRegion(hex("170D"), 3) -- SIN(
|
||||
d_SetStringRegion(hex("1711"), 3) -- COS(
|
||||
d_SetStringRegion(hex("1715"), 3) -- TAN(
|
||||
d_SetStringRegion(hex("1719"), 3) -- ATN(
|
||||
d_SetStringRegion(hex("171D"), 3) -- EXP(
|
||||
d_SetStringRegion(hex("1721"), 3) -- INT(
|
||||
d_SetStringRegion(hex("1725"), 3) -- LOG(
|
||||
d_SetStringRegion(hex("1729"), 2) -- LN(
|
||||
d_SetStringRegion(hex("172C"), 3) -- ABS(
|
||||
d_SetStringRegion(hex("1730"), 3) -- SGN(
|
||||
d_SetStringRegion(hex("1734"), 3) -- SQR(
|
||||
d_SetStringRegion(hex("1738"), 2) -- End of Table
|
||||
|
||||
|
||||
d_SetDataRegion( hex("13AB"), 77) -- 0x13AB
|
||||
d_SetStringRegion(hex("4223"), 15) -- 0x4223 BASIC SA-5510
|
||||
d_SetDataRegion( hex("1D15"), 2) -- 0x1D15 Data
|
||||
d_SetDataRegion( hex("1C4C"), 1)
|
||||
d_SetDataRegion( hex("1C63"), 1) -- 0x1C63 Data
|
||||
d_SetWordRegion( hex("1BB2"), 128) -- 0x1BB2 Data
|
||||
d_SetDataRegion( hex("3400"), 3) -- 0x3400 Data
|
||||
d_SetDataRegion( hex("3404"), 1) -- 0x3404 Data
|
||||
d_SetDataRegion( hex("2355"), 1) -- 0x2355 Data
|
||||
d_SetDataRegion( hex("239F"), 1) -- 0x239f Data
|
||||
d_SetWordRegion( hex("2691"), 34)
|
||||
d_SetWordRegion( hex("26B3"), 40)
|
||||
d_SetWordRegion( hex("26DB"), 24)
|
||||
d_SetDataRegion( hex("26F3"), 6)
|
||||
d_SetDataRegion( hex("27B2"), 2) -- 0x27B2 Data
|
||||
d_SetDataRegion( hex("2884"), 1) -- 0x2885 Data
|
||||
d_SetDataRegion( hex("2A83"), 25) -- 0x2A83 Data
|
||||
--d_SetDataRegion( hex("2B3D"), 2) -- 0x2B3D Data
|
||||
--d_SetDataRegion( hex("2D1D"), 2) -- 0x2D1D Data
|
||||
|
||||
-- Function table.
|
||||
d_SetWordRegion( hex("22E1"), 18)
|
||||
|
||||
-- Function calls, CALL <Operation Byte> <Function>
|
||||
d_SetDataRegion( hex("204A"), 2)
|
||||
d_SetDataRegion( hex("12CE"), 1)
|
||||
d_SetWordRegion( hex("12CF"), 2)
|
||||
d_SetDataRegion( hex("1A78"), 1)
|
||||
d_SetWordRegion( hex("1A79"), 2)
|
||||
d_SetDataRegion( hex("1C54"), 1)
|
||||
d_SetWordRegion( hex("1C55"), 2)
|
||||
d_SetDataRegion( hex("1E23"), 1)
|
||||
d_SetWordRegion( hex("1E24"), 2)
|
||||
d_SetDataRegion( hex("20EB"), 1)
|
||||
d_SetWordRegion( hex("20EC"), 2)
|
||||
d_SetDataRegion( hex("21B3"), 1)
|
||||
d_SetWordRegion( hex("21B4"), 2)
|
||||
d_SetDataRegion( hex("287F"), 1)
|
||||
d_SetWordRegion( hex("2880"), 2)
|
||||
d_SetDataRegion( hex("2949"), 1)
|
||||
d_SetWordRegion( hex("294A"), 2)
|
||||
d_SetDataRegion( hex("29A2"), 1)
|
||||
d_SetWordRegion( hex("29A3"), 2)
|
||||
d_SetDataRegion( hex("2A3A"), 1)
|
||||
d_SetWordRegion( hex("2A3B"), 2)
|
||||
d_SetDataRegion( hex("2A4E"), 1)
|
||||
d_SetWordRegion( hex("2A4F"), 2)
|
||||
d_SetDataRegion( hex("2B10"), 1)
|
||||
d_SetWordRegion( hex("2B11"), 2)
|
||||
d_SetDataRegion( hex("2B32"), 1)
|
||||
d_SetWordRegion( hex("2B33"), 2)
|
||||
d_SetDataRegion( hex("2B6C"), 1)
|
||||
d_SetWordRegion( hex("2B6D"), 2)
|
||||
d_SetDataRegion( hex("2C05"), 1)
|
||||
d_SetWordRegion( hex("2C06"), 2)
|
||||
d_SetDataRegion( hex("2CFF"), 1)
|
||||
d_SetWordRegion( hex("2D00"), 2)
|
||||
d_SetDataRegion( hex("2D56"), 1)
|
||||
d_SetWordRegion( hex("2D57"), 2)
|
||||
d_SetDataRegion( hex("2D5C"), 1)
|
||||
d_SetWordRegion( hex("2D5D"), 2)
|
||||
d_SetDataRegion( hex("2CB2"), 1)
|
||||
d_SetWordRegion( hex("2CB3"), 2)
|
||||
d_SetDataRegion( hex("2D78"), 1)
|
||||
d_SetWordRegion( hex("2D79"), 2)
|
||||
d_SetDataRegion( hex("2D88"), 1)
|
||||
d_SetWordRegion( hex("2D89"), 2)
|
||||
d_SetDataRegion( hex("2D95"), 1)
|
||||
d_SetWordRegion( hex("2D96"), 2)
|
||||
d_SetDataRegion( hex("2DA2"), 1)
|
||||
d_SetWordRegion( hex("2DA3"), 2)
|
||||
d_SetDataRegion( hex("2DB0"), 1)
|
||||
d_SetWordRegion( hex("2DB1"), 2)
|
||||
d_SetDataRegion( hex("2E97"), 1)
|
||||
d_SetWordRegion( hex("2E98"), 2)
|
||||
d_SetDataRegion( hex("2FE7"), 1)
|
||||
d_SetWordRegion( hex("2FE8"), 2)
|
||||
d_SetDataRegion( hex("3323"), 1)
|
||||
d_SetWordRegion( hex("3324"), 2)
|
||||
|
||||
d_SetDataRegion( hex("2D74"), 1)
|
||||
|
||||
d_SetDataRegion( hex("2E33"), 32)
|
||||
d_SetDataRegion( hex("2EB0"), 3)
|
||||
d_SetDataRegion( hex("2F8C"), 2)
|
||||
d_SetDataRegion( hex("2FE8"), 2)
|
||||
d_SetDataRegion( hex("37AE"), 269)
|
||||
d_SetDataRegion( hex("3CE7"), 30)
|
||||
d_SetDataRegion( hex("3F05"), 48)
|
||||
d_SetDataRegion( hex("4041"), 35)
|
||||
d_SetDataRegion( hex("406F"), 7)
|
||||
d_SetDataRegion( hex("4121"), 56)
|
||||
|
||||
|
||||
d_SetDataRegion( hex("18BE"), 3)
|
||||
d_SetDataRegion( hex("18D7"), 3)
|
||||
d_SetDataRegion( hex("1CAA"), 2)
|
||||
d_SetWordRegion( hex("1D90"), 2)
|
||||
d_SetDataRegion( hex("2104"), 3)
|
||||
--d_SetDataRegion( hex("2221"), 3)
|
||||
d_SetDataRegion( hex("2317"), 1)
|
||||
d_SetDataRegion( hex("270F"), 3)
|
||||
d_SetWordRegion( hex("2929"), 2)
|
||||
d_SetDataRegion( hex("2A14"), 2)
|
||||
d_SetDataRegion( hex("2A2A"), 2)
|
||||
d_SetDataRegion( hex("2C8B"), 3)
|
||||
d_SetWordRegion( hex("2CDE"), 2)
|
||||
d_SetDataRegion( hex("2D10"), 2)
|
||||
d_SetWordRegion( hex("2D90"), 2)
|
||||
d_SetDataRegion( hex("30F4"), 3)
|
||||
d_SetDataRegion( hex("3BE9"), 25)
|
||||
d_SetDataRegion( hex("4118"), 3)
|
||||
|
||||
d_SetDataRegion( hex("3DED"), 5)
|
||||
d_SetDataRegion( hex("3DF2"), 5)
|
||||
d_SetDataRegion( hex("3DF7"), 5)
|
||||
d_SetDataRegion( hex("3DFC"), 5)
|
||||
|
||||
d_SetDataRegion( hex("1B42"), 1)
|
||||
d_SetDataRegion( hex("1C5A"), 1)
|
||||
d_SetDataRegion( hex("1D02"), 1)
|
||||
d_SetDataRegion( hex("1D89"), 1)
|
||||
d_SetDataRegion( hex("1F31"), 1)
|
||||
d_SetDataRegion( hex("204F"), 1)
|
||||
d_SetDataRegion( hex("208F"), 1)
|
||||
d_SetDataRegion( hex("2116"), 1)
|
||||
d_SetDataRegion( hex("220F"), 1)
|
||||
d_SetDataRegion( hex("221B"), 1)
|
||||
d_SetDataRegion( hex("221F"), 1)
|
||||
d_SetDataRegion( hex("245F"), 1)
|
||||
d_SetDataRegion( hex("24FD"), 1)
|
||||
d_SetDataRegion( hex("2715"), 1)
|
||||
d_SetDataRegion( hex("284E"), 1)
|
||||
d_SetDataRegion( hex("2855"), 1)
|
||||
d_SetDataRegion( hex("288F"), 1)
|
||||
d_SetDataRegion( hex("28C6"), 1)
|
||||
d_SetDataRegion( hex("2AB3"), 1)
|
||||
d_SetDataRegion( hex("2B75"), 1)
|
||||
d_SetDataRegion( hex("2C21"), 1)
|
||||
d_SetDataRegion( hex("2CEF"), 1)
|
||||
d_SetDataRegion( hex("2D7E"), 1)
|
||||
d_SetDataRegion( hex("2D8E"), 1)
|
||||
d_SetDataRegion( hex("2D9B"), 1)
|
||||
d_SetDataRegion( hex("2DA8"), 1)
|
||||
d_SetDataRegion( hex("2DB6"), 1)
|
||||
|
||||
|
||||
-- Create a mapping table of known Sharp I/O ports and 8 bit constants.
|
||||
--
|
||||
-- Format Addr IsAddr Label : IsAddr = 0, value is a constant, = 1, value is an address.
|
||||
d_SetByteEquate(hex("FE") , 1, "PRTC" )
|
||||
d_SetByteEquate(hex("FF") , 1, "PRTD" )
|
||||
|
||||
-- Create a mapping table of known Sharp MZ BIOS/Memory Mapped Hardware addresses which dz80
|
||||
-- can use to replace an address with the label. The EQU list will also be output at the start
|
||||
-- of the disassembly file so it can compile.
|
||||
-- Format Addr IsAddr Label : IsAddr = 0, value is a constant, = 1, value is an address.
|
||||
d_SetWordEquate(hex("0003"), 1, "GETL" )
|
||||
d_SetWordEquate(hex("0006"), 1, "LETNL" )
|
||||
d_SetWordEquate(hex("0009"), 1, "NL" )
|
||||
d_SetWordEquate(hex("000C"), 1, "PRNTS" )
|
||||
d_SetWordEquate(hex("000F"), 1, "PRNTT" )
|
||||
d_SetWordEquate(hex("0012"), 1, "PRNT" )
|
||||
d_SetWordEquate(hex("0015"), 1, "MSG" )
|
||||
d_SetWordEquate(hex("0018"), 1, "MSGX" )
|
||||
d_SetWordEquate(hex("001B"), 1, "GETKY" )
|
||||
d_SetWordEquate(hex("001E"), 1, "BRKEY" )
|
||||
d_SetWordEquate(hex("0021"), 1, "?WRI" )
|
||||
d_SetWordEquate(hex("0024"), 1, "?WRD" )
|
||||
d_SetWordEquate(hex("0027"), 1, "?RDI" )
|
||||
d_SetWordEquate(hex("002A"), 1, "?RDD" )
|
||||
d_SetWordEquate(hex("002D"), 1, "?VRFY" )
|
||||
d_SetWordEquate(hex("0030"), 1, "MELDY" )
|
||||
d_SetWordEquate(hex("0033"), 1, "?TMST" )
|
||||
d_SetWordEquate(hex("003B"), 1, "TIMRD" )
|
||||
d_SetWordEquate(hex("003E"), 1, "BELL" )
|
||||
d_SetWordEquate(hex("0041"), 1, "XTEMP" )
|
||||
d_SetWordEquate(hex("0044"), 1, "MSTA" )
|
||||
d_SetWordEquate(hex("0047"), 1, "MSTP" )
|
||||
d_SetWordEquate(hex("0000"), 1, "MONIT" )
|
||||
d_SetWordEquate(hex("0089"), 1, "SS" )
|
||||
d_SetWordEquate(hex("0095"), 1, "ST1" )
|
||||
d_SetWordEquate(hex("0410"), 1, "HLHEX" )
|
||||
d_SetWordEquate(hex("041F"), 1, "_2HEX" )
|
||||
d_SetWordEquate(hex("074D"), 1, "?MODE" )
|
||||
d_SetWordEquate(hex("08CA"), 1, "?KEY" )
|
||||
d_SetWordEquate(hex("096C"), 1, "PRNT3" )
|
||||
d_SetWordEquate(hex("0BB9"), 1, "?ADCN" )
|
||||
d_SetWordEquate(hex("0BCE"), 1, "?DACN" )
|
||||
d_SetWordEquate(hex("0DB5"), 1, "?DSP" )
|
||||
d_SetWordEquate(hex("0DA6"), 1, "?BLNK" )
|
||||
d_SetWordEquate(hex("0DDC"), 1, "?DPCT" )
|
||||
d_SetWordEquate(hex("03BA"), 1, "PRTHL" )
|
||||
d_SetWordEquate(hex("03C3"), 1, "PRTHX" )
|
||||
d_SetWordEquate(hex("03DA"), 1, "ASC" )
|
||||
d_SetWordEquate(hex("03F9"), 1, "HEX" )
|
||||
d_SetWordEquate(hex("0DDC"), 1, "DPCT" )
|
||||
d_SetWordEquate(hex("0DA7"), 1, "DLY12" )
|
||||
d_SetWordEquate(hex("0DAA"), 1, "DLY12A" )
|
||||
d_SetWordEquate(hex("0EE6"), 1, "?RSTR1" )
|
||||
d_SetWordEquate(hex("06A3"), 1, "MOTOR" )
|
||||
d_SetWordEquate(hex("071A"), 1, "CKSUM" )
|
||||
d_SetWordEquate(hex("077A"), 1, "GAP" )
|
||||
d_SetWordEquate(hex("0485"), 1, "WTAPE" )
|
||||
d_SetWordEquate(hex("0700"), 1, "MSTOP" )
|
||||
d_SetWordEquate(hex("11FD"), 1, "TAPECOPY" )
|
||||
d_SetWordEquate(hex("1200"), 1, "COLDSTRT" )
|
||||
d_SetWordEquate(hex("1250"), 1, "WARMSTRTMON")
|
||||
d_SetWordEquate(hex("15A8"), 1, "CMDWORDTBL" )
|
||||
d_SetWordEquate(hex("1BB2"), 1, "CMDJMPTBL" )
|
||||
d_SetWordEquate(hex("2E33"), 1, "CMTBUF" )
|
||||
d_SetWordEquate(hex("2E34"), 1, "CMTFNAME" )
|
||||
|
||||
d_SetWordEquate(hex("1C3C"), 1, "CMDREMDATA" )
|
||||
d_SetWordEquate(hex("13AB"), 1, "SYNTAXERR" )
|
||||
d_SetWordEquate(hex("2D12"), 1, "CMDREAD" )
|
||||
d_SetWordEquate(hex("1C4D"), 1, "CMDLIST" )
|
||||
d_SetWordEquate(hex("1E91"), 1, "CMDRUN" )
|
||||
d_SetWordEquate(hex("1C42"), 1, "CMDNEW" )
|
||||
d_SetWordEquate(hex("2B0D"), 1, "CMDPRINT" )
|
||||
d_SetWordEquate(hex("1D6A"), 1, "CMDLET" )
|
||||
d_SetWordEquate(hex("1F2B"), 1, "CMDFOR" )
|
||||
d_SetWordEquate(hex("21AD"), 1, "CMDIF" )
|
||||
d_SetWordEquate(hex("13AB"), 1, "CMDTHEN" )
|
||||
d_SetWordEquate(hex("1EA6"), 1, "CMDGOTO" )
|
||||
d_SetWordEquate(hex("1EC7"), 1, "CMDGOSUB" )
|
||||
d_SetWordEquate(hex("1EF8"), 1, "CMDRETURN" )
|
||||
d_SetWordEquate(hex("1FC0"), 1, "CMDNEXT" )
|
||||
d_SetWordEquate(hex("1D2C"), 1, "CMDSTOP" )
|
||||
d_SetWordEquate(hex("1D15"), 1, "CMDEND" )
|
||||
d_SetWordEquate(hex("203E"), 1, "CMDON" )
|
||||
d_SetWordEquate(hex("2D75"), 1, "CMDLOAD" )
|
||||
d_SetWordEquate(hex("2D82"), 1, "CMDSAVE" )
|
||||
d_SetWordEquate(hex("2EB3"), 1, "CMDVERIFY" )
|
||||
d_SetWordEquate(hex("2191"), 1, "CMDPOKE" )
|
||||
d_SetWordEquate(hex("2080"), 1, "CMDDIM" )
|
||||
d_SetWordEquate(hex("2201"), 1, "CMDDEFFN" )
|
||||
d_SetWordEquate(hex("2BFF"), 1, "CMDINPUT" )
|
||||
d_SetWordEquate(hex("1D4D"), 1, "CMDRESTORE" )
|
||||
d_SetWordEquate(hex("21A6"), 1, "CMDCLS" )
|
||||
d_SetWordEquate(hex("2269"), 1, "CMDMUSIC" )
|
||||
d_SetWordEquate(hex("2282"), 1, "CMDTEMPO" )
|
||||
d_SetWordEquate(hex("2942"), 1, "CMDUSRN" )
|
||||
d_SetWordEquate(hex("2D9F"), 1, "CMDWOPEN" )
|
||||
d_SetWordEquate(hex("2D92"), 1, "CMDROPEN" )
|
||||
d_SetWordEquate(hex("2DAD"), 1, "CMDCLOSE" )
|
||||
d_SetWordEquate(hex("28B6"), 1, "CMDMON" )
|
||||
d_SetWordEquate(hex("2967"), 1, "CMDLIMIT" )
|
||||
d_SetWordEquate(hex("29CE"), 1, "CMDCONT" )
|
||||
d_SetWordEquate(hex("2902"), 1, "CMDGET" )
|
||||
d_SetWordEquate(hex("29FE"), 1, "CMDINP" )
|
||||
d_SetWordEquate(hex("2A1C"), 1, "CMDOUT" )
|
||||
d_SetWordEquate(hex("28B9"), 1, "CMDCURSOR" )
|
||||
d_SetWordEquate(hex("2AA6"), 1, "CMDSET" )
|
||||
d_SetWordEquate(hex("2AAA"), 1, "CMDRESET" )
|
||||
d_SetWordEquate(hex("2A2F"), 1, "CMDAUTO" )
|
||||
d_SetWordEquate(hex("33AB"), 1, "CMDCOPY" )
|
||||
d_SetWordEquate(hex("32D4"), 1, "CMDPAGE" )
|
||||
|
||||
d_SetWordEquate(hex("13AE"), 1, "OVFLERR" )
|
||||
d_SetWordEquate(hex("13B1"), 1, "ILDATERR" )
|
||||
d_SetWordEquate(hex("13B4"), 1, "DATMISERR" )
|
||||
d_SetWordEquate(hex("13B7"), 1, "STRLENERR" )
|
||||
d_SetWordEquate(hex("13BA"), 1, "MEMERR" )
|
||||
d_SetWordEquate(hex("13C0"), 1, "LINELENERR" )
|
||||
d_SetWordEquate(hex("13C3"), 1, "GOSUBERR" )
|
||||
d_SetWordEquate(hex("13C6"), 1, "FORNEXTERR" )
|
||||
d_SetWordEquate(hex("13C9"), 1, "FUNCERR" )
|
||||
d_SetWordEquate(hex("13CC"), 1, "NEXTFORERR" )
|
||||
d_SetWordEquate(hex("13CF"), 1, "RETGOSBERR" )
|
||||
d_SetWordEquate(hex("13D2"), 1, "UNDEFFNERR" )
|
||||
d_SetWordEquate(hex("13D5"), 1, "LINEERR" )
|
||||
d_SetWordEquate(hex("13D8"), 1, "CONTERR" )
|
||||
d_SetWordEquate(hex("13DB"), 1, "BADWRERR" )
|
||||
d_SetWordEquate(hex("13DE"), 1, "CMDSTMTERR" )
|
||||
d_SetWordEquate(hex("13E1"), 1, "READDATAERR")
|
||||
d_SetWordEquate(hex("13E4"), 1, "OPENERR" )
|
||||
d_SetWordEquate(hex("13E7"), 1, "UNKNWNERR" )
|
||||
d_SetWordEquate(hex("13EA"), 1, "OUTFILEERR" )
|
||||
d_SetWordEquate(hex("13ED"), 1, "PRTNRDYERR" )
|
||||
d_SetWordEquate(hex("13F0"), 1, "PRTHWERR" )
|
||||
d_SetWordEquate(hex("13F3"), 1, "PRTPAPERERR")
|
||||
d_SetWordEquate(hex("13F6"), 1, "CHKSUMERR" )
|
||||
|
||||
d_SetWordEquate(hex("1347"), 1, "TITLEMSG" )
|
||||
d_SetWordEquate(hex("1364"), 1, "COPYRMSG" )
|
||||
d_SetWordEquate(hex("1384"), 1, "READYMSG" )
|
||||
d_SetWordEquate(hex("138A"), 1, "ERRORMSG" )
|
||||
d_SetWordEquate(hex("1391"), 1, "INMSG" )
|
||||
d_SetWordEquate(hex("1395"), 1, "BREAKMSG" )
|
||||
d_SetWordEquate(hex("139C"), 1, "BYTESMSG" )
|
||||
d_SetWordEquate(hex("13A3"), 1, "ERRCODE" )
|
||||
|
||||
d_SetWordEquate(hex("1332"), 1, "MSGNL" )
|
||||
d_SetWordEquate(hex("167B"), 1, "UNUSEDTBL1" )
|
||||
d_SetWordEquate(hex("167D"), 1, "UNUSEDTBL2" )
|
||||
d_SetWordEquate(hex("124E"), 1, "WARMSTRT" )
|
||||
d_SetWordEquate(hex("167F"), 1, "OPERATORTBL")
|
||||
d_SetWordEquate(hex("17FC"), 1, "STRTONUM" )
|
||||
d_SetWordEquate(hex("1E88"), 1, "GETNUM" )
|
||||
d_SetWordEquate(hex("173F"), 1, "SKIPSPACE" )
|
||||
d_SetWordEquate(hex("173E"), 1, "INCSKIPSPCE")
|
||||
d_SetWordEquate(hex("177B"), 1, "EXECHL" )
|
||||
d_SetWordEquate(hex("1795"), 1, "EXECNOTCHR" )
|
||||
d_SetWordEquate(hex("17A3"), 1, "MATCHCHR" )
|
||||
d_SetWordEquate(hex("490D"), 0, "LINEBUFR" )
|
||||
|
||||
|
||||
d_SetComment( hex("1795"), "Scan for character after command" )
|
||||
d_SetComment( hex("1779"), "Get address after call and jump to it via a RET command." )
|
||||
d_SetComment( hex("2E1D"), "Compare loaded filename against name given by user." )
|
||||
d_SetComment( hex("2B0D"), "Check to see if a stream, ie. /T = Tape is given. The 02FH below is / and the function after is called if it doesnt match /." )
|
||||
d_SetComment( hex("1250"), "Sharp defined BASIC restart location from Monitor." )
|
||||
|
||||
-- Known Sharp Constants.
|
||||
d_SetWordEquate(hex("10F0"), 0, "ATRB" ) -- ATTRIBUTE
|
||||
d_SetWordEquate(hex("10F1"), 0, "NAME" ) -- FILE NAME
|
||||
d_SetWordEquate(hex("1102"), 0, "SIZE" ) -- BYTESIZE
|
||||
d_SetWordEquate(hex("1104"), 0, "DTADR" ) -- DATA ADDRESS
|
||||
d_SetWordEquate(hex("1106"), 0, "EXADR" ) -- EXECUTION ADDRESS
|
||||
d_SetWordEquate(hex("1108"), 0, "COMNT" ) -- COMMENT
|
||||
d_SetWordEquate(hex("1164"), 0, "SWPW" ) -- SWEEP WORK
|
||||
d_SetWordEquate(hex("116E"), 0, "KDATW" ) -- KEY WORK
|
||||
d_SetWordEquate(hex("1170"), 0, "KANAF" ) -- KANA FLAG (01=GRAPHIC MODE)
|
||||
d_SetWordEquate(hex("1171"), 0, "DSPXY" ) -- DISPLAY COORDINATES
|
||||
d_SetWordEquate(hex("1173"), 0, "MANG" ) -- COLUMN MANAGEMENT
|
||||
d_SetWordEquate(hex("1179"), 0, "MANGE" ) -- COLUMN MANAGEMENT END
|
||||
d_SetWordEquate(hex("117A"), 0, "PBIAS" ) -- PAGE BIAS
|
||||
d_SetWordEquate(hex("117B"), 0, "ROLTOP" ) -- ROLL TOP BIAS
|
||||
d_SetWordEquate(hex("117C"), 0, "MGPNT" ) -- COLUMN MANAG. POINTER
|
||||
d_SetWordEquate(hex("117D"), 0, "PAGETP" ) -- PAGE TOP
|
||||
d_SetWordEquate(hex("117F"), 0, "ROLEND" ) -- ROLL END
|
||||
d_SetWordEquate(hex("118E"), 0, "FLASH" ) -- FLASHING DATA
|
||||
d_SetWordEquate(hex("118F"), 0, "SFTLK" ) -- SHIFT LOCK
|
||||
d_SetWordEquate(hex("1190"), 0, "REVFLG" ) -- REVERSE FLAG
|
||||
d_SetWordEquate(hex("1191"), 0, "SPAGE" ) -- PAGE CHANGE
|
||||
d_SetWordEquate(hex("1192"), 0, "FLSDT" ) -- CURSOR DATA
|
||||
d_SetWordEquate(hex("1193"), 0, "STRGF" ) -- STRING FLAG
|
||||
d_SetWordEquate(hex("1194"), 0, "DPRNT" ) -- TAB COUNTER
|
||||
d_SetWordEquate(hex("1195"), 0, "TMCNT" ) -- TAPE MARK COUNTER
|
||||
d_SetWordEquate(hex("1197"), 0, "SUMDT" ) -- CHECK SUM DATA
|
||||
d_SetWordEquate(hex("1199"), 0, "CSMDT" ) -- FOR COMPARE SUM DATA
|
||||
d_SetWordEquate(hex("119B"), 0, "AMPM" ) -- AMPM DATA
|
||||
d_SetWordEquate(hex("119C"), 0, "TIMFG" ) -- TIME FLAG
|
||||
d_SetWordEquate(hex("119D"), 0, "SWRK" ) -- KEY SOUND FLAG
|
||||
d_SetWordEquate(hex("119E"), 0, "TEMPW" ) -- TEMPO WORK
|
||||
d_SetWordEquate(hex("119F"), 0, "ONTYO" ) -- ONTYO WORK
|
||||
d_SetWordEquate(hex("11A0"), 0, "OCTV" ) -- OCTAVE WORK
|
||||
d_SetWordEquate(hex("11A1"), 0, "RATIO" ) -- ONPU RATIO
|
||||
d_SetWordEquate(hex("11A3"), 0, "BUFER" ) -- GET LINE BUFFER
|
||||
|
||||
|
||||
----------------------------------------
|
||||
-- End of configuration file
|
||||
----------------------------------------
|
||||
2643
software/dis/SA-5510/SA-5510.ref
Normal file
2643
software/dis/SA-5510/SA-5510.ref
Normal file
File diff suppressed because it is too large
Load Diff
1
software/dis/SA-5510/dz80.ini
Symbolic link
1
software/dis/SA-5510/dz80.ini
Symbolic link
@@ -0,0 +1 @@
|
||||
SA-5510.ini
|
||||
1894
software/dis/XPATCH/XPATCH-5510.asm
Normal file
1894
software/dis/XPATCH/XPATCH-5510.asm
Normal file
File diff suppressed because it is too large
Load Diff
875
software/dis/XPATCH/XPATCH-5510.ref
Normal file
875
software/dis/XPATCH/XPATCH-5510.ref
Normal file
@@ -0,0 +1,875 @@
|
||||
dZ80 2.1 Reference file from the disassembly of "XPATCH-5510.bin".
|
||||
|
||||
Direct address Reference (127 entries)
|
||||
--------------------------------------
|
||||
|
||||
Direct address 00000H. 3 references:
|
||||
------------------------------------
|
||||
|
||||
05098H: LD DE,00000H
|
||||
05696H: LD BC,00000H
|
||||
05a94H: LD HL,00000H
|
||||
|
||||
Direct address 00002H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05729H: LD BC,00002H
|
||||
|
||||
Direct address 00003H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
056f4H: LD BC,00003H
|
||||
|
||||
Direct address 0000aH. 2 references:
|
||||
------------------------------------
|
||||
|
||||
050d8H: LD DE,0000AH
|
||||
050e5H: LD DE,0000AH
|
||||
|
||||
Direct address 00011H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05b06H: LD BC,00011H
|
||||
|
||||
Direct address 00016H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05a83H: LD BC,00016H
|
||||
|
||||
Direct address 0001cH. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05a69H: LD BC,0001CH
|
||||
|
||||
Direct address 0005bH. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05b45H: LD BC,0005BH
|
||||
|
||||
Direct address 00080H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
0515fH: LD BC,00080H
|
||||
|
||||
Direct address 000f8H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05b4dH: LD BC,000F8H
|
||||
|
||||
Direct address 00100H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05167H: LD BC,00100H
|
||||
|
||||
Direct address 00200H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05c8fH: LD BC,00200H
|
||||
|
||||
Direct address ATRB. 1 references:
|
||||
----------------------------------
|
||||
|
||||
05b5eH: LD HL,010F0H
|
||||
|
||||
Direct address SIZE. 3 references:
|
||||
----------------------------------
|
||||
|
||||
05bbdH: LD BC,(01102H)
|
||||
05c08H: LD BC,(01102H)
|
||||
05c72H: LD BC,(01102H)
|
||||
|
||||
Direct address DTADR. 2 references:
|
||||
-----------------------------------
|
||||
|
||||
05bc9H: LD (01104H),DE
|
||||
05befH: LD DE,(01104H)
|
||||
|
||||
Direct address BUFER. 6 references:
|
||||
-----------------------------------
|
||||
|
||||
05386H: LD DE,011A3H
|
||||
053e6H: LD DE,011A3H
|
||||
054b0H: LD DE,011A3H
|
||||
054fbH: LD DE,011A3H
|
||||
05569H: LD DE,011A3H
|
||||
055ecH: LD DE,011A3H
|
||||
|
||||
Direct address 011ccH. 2 references:
|
||||
------------------------------------
|
||||
|
||||
053afH: LD DE,011CCH
|
||||
0552eH: LD HL,011CCH
|
||||
|
||||
Direct address 01211H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
055abH: LD DE,01211H
|
||||
|
||||
Direct address 01414H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05c92H: LD DE,01414H
|
||||
|
||||
Direct address 015a8H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
0584eH: LD HL,015A8H
|
||||
|
||||
Direct address 0165eH. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05a7aH: LD DE,0165EH
|
||||
|
||||
Direct address 01b35H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
0506dH: LD BC,01B35H
|
||||
|
||||
Direct address 01c16H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05a66H: LD DE,01C16H
|
||||
|
||||
Direct address 02035H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
058b6H: LD SP,02035H
|
||||
|
||||
Direct address 02305H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05a80H: LD DE,02305H
|
||||
|
||||
Direct address 02a2fH. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05a06H: CPL
|
||||
|
||||
Direct address 02f6cH. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05aafH: LD HL,02F6CH
|
||||
|
||||
Direct address 032d4H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05a0eH: CALL NC,06D32H
|
||||
|
||||
Direct address 03302H. 2 references:
|
||||
------------------------------------
|
||||
|
||||
05a8eH: LD HL,03302H
|
||||
05b42H: LD DE,03302H
|
||||
|
||||
Direct address 0330bH. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05abaH: LD HL,0330BH
|
||||
|
||||
Direct address 03311H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05a9dH: LD HL,03311H
|
||||
|
||||
Direct address 03338H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05a88H: LD HL,03338H
|
||||
|
||||
Direct address 033abH. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05a0cH: XOR E
|
||||
|
||||
Direct address 04224H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05b03H: LD DE,04224H
|
||||
|
||||
Direct address 04806H. 2 references:
|
||||
------------------------------------
|
||||
|
||||
05a12H: LD B,048H
|
||||
05b4aH: LD DE,04806H
|
||||
|
||||
Direct address 0488eH. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05a16H: ADC A,(HL)
|
||||
|
||||
Direct address 048c1H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05aa3H: LD HL,048C1H
|
||||
|
||||
Direct address LINEBUFR. 7 references:
|
||||
--------------------------------------
|
||||
|
||||
05378H: LD DE,0490DH
|
||||
0539fH: LD DE,0490DH
|
||||
05427H: LD DE,0490DH
|
||||
054d7H: LD HL,0490DH
|
||||
05501H: LD HL,0490DH
|
||||
0555cH: LD DE,0490DH
|
||||
057b3H: LD DE,0490DH
|
||||
|
||||
Direct address 0490fH. 1 references:
|
||||
------------------------------------
|
||||
|
||||
053e9H: LD HL,0490FH
|
||||
|
||||
Direct address 04a0eH. 2 references:
|
||||
------------------------------------
|
||||
|
||||
053d6H: LD DE,04A0EH
|
||||
059acH: LD HL,04A0EH
|
||||
|
||||
Direct address 04e84H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
0574fH: LD IX,04E84H
|
||||
|
||||
Direct address 04e86H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
056cbH: LD HL,04E86H
|
||||
|
||||
Direct address 0505cH. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05248H: LD DE,0505CH
|
||||
|
||||
Direct address 05063H. 7 references:
|
||||
------------------------------------
|
||||
|
||||
0509bH: LD (05063H),DE
|
||||
050afH: LD (05063H),DE
|
||||
050c4H: LD (05063H),DE
|
||||
050efH: LD BC,(05063H)
|
||||
051a6H: LD BC,(05063H)
|
||||
0527aH: LD DE,(05063H)
|
||||
0591cH: LD BC,(05063H)
|
||||
|
||||
Direct address 05065H. 5 references:
|
||||
------------------------------------
|
||||
|
||||
050a1H: LD (05065H),DE
|
||||
050baH: LD (05065H),DE
|
||||
050c8H: LD (05065H),DE
|
||||
05118H: LD BC,(05065H)
|
||||
05926H: LD BC,(05065H)
|
||||
|
||||
Direct address 05067H. 3 references:
|
||||
------------------------------------
|
||||
|
||||
050dbH: LD (05067H),DE
|
||||
051adH: LD BC,(05067H)
|
||||
0528aH: LD DE,(05067H)
|
||||
|
||||
Direct address 05069H. 2 references:
|
||||
------------------------------------
|
||||
|
||||
050e8H: LD (05069H),DE
|
||||
0529eH: LD DE,(05069H)
|
||||
|
||||
Direct address 0506dH. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05a10H: LD L,L
|
||||
|
||||
Direct address 0507dH. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05077H: LD DE,0507DH
|
||||
|
||||
Direct address 05089H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
0512dH: LD DE,05089H
|
||||
|
||||
Direct address 05255H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05216H: LD DE,05255H
|
||||
|
||||
Direct address 05257H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05231H: LD DE,05257H
|
||||
|
||||
Direct address 0525cH. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05221H: LD DE,0525CH
|
||||
|
||||
Direct address 052f0H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05a14H: RET P
|
||||
|
||||
Direct address 05363H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05a18H: LD H,E
|
||||
|
||||
Direct address 05446H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05392H: LD DE,05446H
|
||||
|
||||
Direct address 05453H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
054a5H: LD DE,05453H
|
||||
|
||||
Direct address 05469H. 2 references:
|
||||
------------------------------------
|
||||
|
||||
054c2H: LD BC,(05469H)
|
||||
05531H: LD DE,(05469H)
|
||||
|
||||
Direct address 0548eH. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05a1aH: ADC A,(HL)
|
||||
|
||||
Direct address 05499H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05565H: LD BC,05499H
|
||||
|
||||
Direct address 055abH. 1 references:
|
||||
------------------------------------
|
||||
|
||||
0558aH: LD DE,055ABH
|
||||
|
||||
Direct address 055b3H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
054e7H: LD DE,055B3H
|
||||
|
||||
Direct address 055c5H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05a1cH: PUSH BC
|
||||
|
||||
Direct address 055f8H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
055dcH: LD DE,055F8H
|
||||
|
||||
Direct address 05614H. 2 references:
|
||||
------------------------------------
|
||||
|
||||
056a1H: LD (05614H),DE
|
||||
056d3H: LD DE,(05614H)
|
||||
|
||||
Direct address 05616H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05a1eH: LD D,056H
|
||||
|
||||
Direct address 05807H. 2 references:
|
||||
------------------------------------
|
||||
|
||||
05744H: LD DE,05807H
|
||||
05772H: LD HL,05807H
|
||||
|
||||
Direct address 05820H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
0576bH: LD HL,05820H
|
||||
|
||||
Direct address 05838H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05acbH: LD HL,05838H
|
||||
|
||||
Direct address 05849H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05ac2H: LD HL,05849H
|
||||
|
||||
Direct address 0585dH. 2 references:
|
||||
------------------------------------
|
||||
|
||||
05840H: LD DE,0585DH
|
||||
05857H: LD HL,0585DH
|
||||
|
||||
Direct address 05899H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05b39H: LD HL,05899H
|
||||
|
||||
Direct address 058a5H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
0589fH: LD DE,058A5H
|
||||
|
||||
Direct address 058b7H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05af4H: LD HL,058B7H
|
||||
|
||||
Direct address 058e0H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05adeH: LD HL,058E0H
|
||||
|
||||
Direct address 058ebH. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05a04H: EX DE,HL
|
||||
|
||||
Direct address 05907H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05a08H: RLCA
|
||||
|
||||
Direct address 0590eH. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05a0aH: LD C,059H
|
||||
|
||||
Direct address 059c7H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05969H: LD DE,059C7H
|
||||
|
||||
Direct address 05a04H. 2 references:
|
||||
------------------------------------
|
||||
|
||||
05a63H: LD HL,05A04H
|
||||
05b0bH: LD HL,05A04H
|
||||
|
||||
Direct address 05a20H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05a72H: LD DE,05A20H
|
||||
|
||||
Direct address 05a3cH. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05a6eH: LD HL,05A3CH
|
||||
|
||||
Direct address 05a52H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05b00H: LD HL,05A52H
|
||||
|
||||
Direct address 05a61H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05af8H: LD HL,05A61H
|
||||
|
||||
Direct address 05b55H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05b3fH: LD HL,05B55H
|
||||
|
||||
Direct address 0d753H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05c6fH: LD DE,0D753H
|
||||
|
||||
Direct address 0e548H. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05bb9H: LD DE,0E548H
|
||||
|
||||
Direct address 0ffffH. 1 references:
|
||||
------------------------------------
|
||||
|
||||
05bb3H: LD HL,0FFFFH
|
||||
|
||||
|
||||
Indirect address Reference (120 entries)
|
||||
----------------------------------------
|
||||
|
||||
Indirect address DTADR. 2 references:
|
||||
-------------------------------------
|
||||
|
||||
05bd9H: LD HL,(01104H)
|
||||
05c76H: LD HL,(01104H)
|
||||
|
||||
Indirect address DSPXY. 2 references:
|
||||
-------------------------------------
|
||||
|
||||
0521bH: LD (01171H),A
|
||||
05228H: LD (01171H),A
|
||||
|
||||
Indirect address DPRNT. 1 references:
|
||||
-------------------------------------
|
||||
|
||||
0539bH: LD A,(01194H)
|
||||
|
||||
Indirect address 01201H. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
05b33H: LD (01201H),HL
|
||||
|
||||
Indirect address 01225H. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
05b3cH: LD (01225H),HL
|
||||
|
||||
Indirect address 01492H. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
05aceH: LD (01492H),A
|
||||
|
||||
Indirect address 01493H. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
05ad1H: LD (01493H),HL
|
||||
|
||||
Indirect address 0153eH. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
05ac5H: LD (0153EH),A
|
||||
|
||||
Indirect address 0153fH. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
05ac8H: LD (0153FH),HL
|
||||
|
||||
Indirect address 018b4H. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
05b11H: LD (018B4H),HL
|
||||
|
||||
Indirect address 01958H. 6 references:
|
||||
--------------------------------------
|
||||
|
||||
05153H: LD HL,(01958H)
|
||||
052bbH: LD HL,(01958H)
|
||||
053bbH: LD HL,(01958H)
|
||||
05935H: LD HL,(01958H)
|
||||
0598cH: LD HL,(01958H)
|
||||
05b0eH: LD (01958H),HL
|
||||
|
||||
Indirect address 01ac8H. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
05b14H: LD (01AC8H),HL
|
||||
|
||||
Indirect address 01ae2H. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
05b17H: LD (01AE2H),HL
|
||||
|
||||
Indirect address 01b14H. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
05b1aH: LD (01B14H),HL
|
||||
|
||||
Indirect address 01b1cH. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
05b1dH: LD (01B1CH),HL
|
||||
|
||||
Indirect address 01c16H. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
05aeaH: LD (01C16H),A
|
||||
|
||||
Indirect address 01c17H. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
05aefH: LD (01C17H),A
|
||||
|
||||
Indirect address 01c7dH. 2 references:
|
||||
--------------------------------------
|
||||
|
||||
05b7cH: LD (01C7DH),A
|
||||
05b84H: LD (01C7DH),A
|
||||
|
||||
Indirect address 01c7eH. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
05b20H: LD (01C7EH),HL
|
||||
|
||||
Indirect address 01ccdH. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
05a91H: LD (01CCDH),HL
|
||||
|
||||
Indirect address 01ccfH. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
05a97H: LD (01CCFH),HL
|
||||
|
||||
Indirect address 01cd1H. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
05a9aH: LD (01CD1H),HL
|
||||
|
||||
Indirect address 01ec2H. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
05b23H: LD (01EC2H),HL
|
||||
|
||||
Indirect address 022c9H. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
05a8bH: LD (022C9H),HL
|
||||
|
||||
Indirect address 028f5H. 2 references:
|
||||
--------------------------------------
|
||||
|
||||
05b6cH: LD (028F5H),A
|
||||
05b74H: LD (028F5H),A
|
||||
|
||||
Indirect address 02b11H. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
05aa0H: LD (02B11H),HL
|
||||
|
||||
Indirect address 02d44H. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
05b26H: LD (02D44H),HL
|
||||
|
||||
Indirect address 02f19H. 2 references:
|
||||
--------------------------------------
|
||||
|
||||
05c9aH: LD (02F19H),A
|
||||
05ca2H: LD (02F19H),A
|
||||
|
||||
Indirect address 02f24H. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
05b29H: LD (02F24H),HL
|
||||
|
||||
Indirect address 0303cH. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
05b2cH: LD (0303CH),HL
|
||||
|
||||
Indirect address 03042H. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
05b2fH: LD (03042H),HL
|
||||
|
||||
Indirect address 0307bH. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
05aa6H: LD (0307BH),HL
|
||||
|
||||
Indirect address 03140H. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
05ab7H: LD (03140H),A
|
||||
|
||||
Indirect address 03141H. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
05abdH: LD (03141H),HL
|
||||
|
||||
Indirect address 0315bH. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
05ab2H: LD (0315BH),HL
|
||||
|
||||
Indirect address 0318cH. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
05aa9H: LD (0318CH),HL
|
||||
|
||||
Indirect address 03199H. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
05aacH: LD (03199H),HL
|
||||
|
||||
Indirect address 031adH. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
05adbH: LD (031ADH),A
|
||||
|
||||
Indirect address 031aeH. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
05ae1H: LD (031AEH),HL
|
||||
|
||||
Indirect address 0322eH. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
05ad4H: LD A,(0322EH)
|
||||
|
||||
Indirect address 041ecH. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
05afdH: LD (041ECH),A
|
||||
|
||||
Indirect address 041ffH. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
05b36H: LD (041FFH),HL
|
||||
|
||||
Indirect address 0430dH. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
058c3H: LD A,(0430DH)
|
||||
|
||||
Indirect address 04a0eH. 5 references:
|
||||
--------------------------------------
|
||||
|
||||
053ceH: LD HL,(04A0EH)
|
||||
054f2H: LD HL,(04A0EH)
|
||||
0557bH: LD HL,(04A0EH)
|
||||
05582H: LD (04A0EH),HL
|
||||
055e4H: LD HL,(04A0EH)
|
||||
|
||||
Indirect address 04a10H. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
05543H: LD HL,(04A10H)
|
||||
|
||||
Indirect address 04ab3H. 3 references:
|
||||
--------------------------------------
|
||||
|
||||
052f3H: LD HL,(04AB3H)
|
||||
0562eH: LD HL,(04AB3H)
|
||||
05c1fH: LD HL,(04AB3H)
|
||||
|
||||
Indirect address 04ab5H. 3 references:
|
||||
--------------------------------------
|
||||
|
||||
0530eH: LD HL,(04AB5H)
|
||||
05647H: LD HL,(04AB5H)
|
||||
05c14H: LD HL,(04AB5H)
|
||||
|
||||
Indirect address 04e4eH. 2 references:
|
||||
--------------------------------------
|
||||
|
||||
0519fH: LD (04E4EH),HL
|
||||
0532eH: LD (04E4EH),HL
|
||||
|
||||
Indirect address 04e94H. 2 references:
|
||||
--------------------------------------
|
||||
|
||||
05175H: LD HL,(04E94H)
|
||||
05179H: LD (04E94H),HL
|
||||
|
||||
Indirect address 0504eH. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
0536dH: LD A,(0504EH)
|
||||
|
||||
Indirect address 05051H. 2 references:
|
||||
--------------------------------------
|
||||
|
||||
050ecH: LD (05051H),HL
|
||||
05901H: LD (05051H),HL
|
||||
|
||||
Indirect address 05063H. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
0595bH: LD HL,(05063H)
|
||||
|
||||
Indirect address 05065H. 4 references:
|
||||
--------------------------------------
|
||||
|
||||
050f3H: LD HL,(05065H)
|
||||
051b8H: LD HL,(05065H)
|
||||
05272H: LD HL,(05065H)
|
||||
05954H: LD HL,(05065H)
|
||||
|
||||
Indirect address 05067H. 2 references:
|
||||
--------------------------------------
|
||||
|
||||
0510aH: LD HL,(05067H)
|
||||
0594aH: LD HL,(05067H)
|
||||
|
||||
Indirect address 05069H. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
051c6H: LD HL,(05069H)
|
||||
|
||||
Indirect address 0506bH. 2 references:
|
||||
--------------------------------------
|
||||
|
||||
05149H: LD (0506BH),HL
|
||||
05943H: LD HL,(0506BH)
|
||||
|
||||
Indirect address 05465H. 6 references:
|
||||
--------------------------------------
|
||||
|
||||
05364H: LD (05465H),A
|
||||
0538bH: LD A,(05465H)
|
||||
05432H: LD A,(05465H)
|
||||
05490H: LD (05465H),A
|
||||
05553H: LD A,(05465H)
|
||||
055c7H: LD (05465H),A
|
||||
|
||||
Indirect address 05466H. 6 references:
|
||||
--------------------------------------
|
||||
|
||||
0548aH: LD (05466H),A
|
||||
0549fH: LD A,(05466H)
|
||||
055d6H: LD A,(05466H)
|
||||
0590fH: LD (05466H),A
|
||||
05963H: LD A,(05466H)
|
||||
05978H: LD (05466H),A
|
||||
|
||||
Indirect address 05467H. 6 references:
|
||||
--------------------------------------
|
||||
|
||||
05383H: LD (05467H),A
|
||||
053b7H: LD A,(05467H)
|
||||
054b3H: LD A,(05467H)
|
||||
054f5H: LD A,(05467H)
|
||||
05574H: LD A,(05467H)
|
||||
055efH: LD A,(05467H)
|
||||
|
||||
Indirect address 05468H. 4 references:
|
||||
--------------------------------------
|
||||
|
||||
053b2H: LD (05468H),A
|
||||
054c9H: LD A,(05468H)
|
||||
05535H: LD A,(05468H)
|
||||
0556fH: LD A,(05468H)
|
||||
|
||||
Indirect address 05469H. 3 references:
|
||||
--------------------------------------
|
||||
|
||||
05404H: LD (05469H),HL
|
||||
0556cH: LD HL,(05469H)
|
||||
05598H: LD A,(05469H)
|
||||
|
||||
Indirect address 0546bH. 4 references:
|
||||
--------------------------------------
|
||||
|
||||
05424H: LD (0546BH),HL
|
||||
054adH: LD HL,(0546BH)
|
||||
054bfH: LD HL,(0546BH)
|
||||
0551eH: LD HL,(0546BH)
|
||||
|
||||
Indirect address 05611H. 5 references:
|
||||
--------------------------------------
|
||||
|
||||
05617H: LD (05611H),A
|
||||
05628H: LD (05611H),A
|
||||
057e3H: LD A,(05611H)
|
||||
057f2H: LD A,(05611H)
|
||||
057ffH: LD A,(05611H)
|
||||
|
||||
Indirect address 05612H. 2 references:
|
||||
--------------------------------------
|
||||
|
||||
056a5H: LD (05612H),HL
|
||||
05736H: LD HL,(05612H)
|
||||
|
||||
Indirect address 05614H. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
056faH: LD HL,(05614H)
|
||||
|
||||
Indirect address 058e0H. 1 references:
|
||||
--------------------------------------
|
||||
|
||||
058fdH: LD (058E0H),A
|
||||
|
||||
|
||||
End of reference file for "XPATCH-5510.bin"
|
||||
|
||||
330
software/dis/XPATCH/XPATCH.ini
Normal file
330
software/dis/XPATCH/XPATCH.ini
Normal file
@@ -0,0 +1,330 @@
|
||||
----------------------------------------
|
||||
-- dZ80 configuration file
|
||||
----------------------------------------
|
||||
|
||||
----------------------------------------
|
||||
-- Disassembly control
|
||||
----------------------------------------
|
||||
|
||||
cpu="z80"
|
||||
inputfile="XPATCH-5510.bin"
|
||||
outputfile="XPATCH-5510.asm"
|
||||
--fileheadersize=27
|
||||
filebaseaddr=20572
|
||||
disstart=0
|
||||
disend=23724
|
||||
--disstart=0
|
||||
--disend=3584
|
||||
--quiet=0
|
||||
labelledoutput=1
|
||||
|
||||
----------------------------------------
|
||||
-- Layout
|
||||
----------------------------------------
|
||||
|
||||
labelreference=1
|
||||
addresscolumn=1
|
||||
opcodecolumn=1
|
||||
relativejumpcomment=1
|
||||
uppercase=1
|
||||
autoblanklines=1
|
||||
db="db"
|
||||
comment="; "
|
||||
radix=16
|
||||
numprefix="0"
|
||||
numsuffix="H"
|
||||
|
||||
----------------------------------------
|
||||
-- Scripts
|
||||
----------------------------------------
|
||||
|
||||
--script="scripts\\spectrum.lua"
|
||||
|
||||
----------------------------------------
|
||||
-- References
|
||||
----------------------------------------
|
||||
|
||||
referencefile="XPATCH-5510.ref"
|
||||
inportreference=1
|
||||
outportreference=1
|
||||
addressreference=1
|
||||
indirectaddressreference=1
|
||||
limitreferences=1
|
||||
|
||||
----------------------------------------
|
||||
-- Opcode mapfile and code/data areas
|
||||
----------------------------------------
|
||||
|
||||
--opmapfile="mayhem.map"
|
||||
|
||||
-- Code Region isnt required as v2.x sets the entire region to code unless a data region overrides it.
|
||||
d_SetCodeRegion(20572, 3152)
|
||||
|
||||
-- Set the known data regions, either as a data region (byte), word or string. The type affects the assembly output definitions and word
|
||||
-- regions will attempt to map to an address, ie. jump tables will be setup with labels rather than constants.
|
||||
d_SetDataRegion( hex("507D"), 27)
|
||||
d_SetStringRegion( hex("507D"), 11)
|
||||
d_SetStringRegion( hex("5089"), 15)
|
||||
d_SetDataRegion( hex("5255"), 23)
|
||||
d_SetStringRegion( hex("5257"), 4)
|
||||
d_SetStringRegion( hex("525C"), 15)
|
||||
|
||||
d_SetDataRegion( hex("5446"), 31)
|
||||
d_SetStringRegion( hex("5446"), 12)
|
||||
d_SetStringRegion( hex("5453"), 17)
|
||||
d_SetDataRegion( hex("5465"), 8)
|
||||
d_SetStringRegion( hex("55B3"), 18)
|
||||
d_SetStringRegion( hex("55F8"), 25)
|
||||
|
||||
d_SetDataRegion( hex("5807"), 49)
|
||||
d_SetStringRegion( hex("5807"), 23)
|
||||
--d_SetStringRegion( hex("581F"), 5)
|
||||
d_SetStringRegion( hex("5827"), 5)
|
||||
d_SetStringRegion( hex("582F"), 5)
|
||||
|
||||
d_SetDataRegion( hex("585D"), 45)
|
||||
d_SetStringRegion( hex("585D"), 4)
|
||||
d_SetStringRegion( hex("5862"), 5)
|
||||
d_SetStringRegion( hex("5868"), 7)
|
||||
d_SetStringRegion( hex("5870"), 5)
|
||||
d_SetStringRegion( hex("5876"), 3)
|
||||
d_SetStringRegion( hex("587A"), 5)
|
||||
d_SetStringRegion( hex("5880"), 3)
|
||||
d_SetStringRegion( hex("5884"), 3)
|
||||
|
||||
--d_SetStringRegion( hex("585D"), 4)
|
||||
--d_SetDataRegion( hex("58A5"), 59)
|
||||
--d_SetStringRegion( hex("58A5"), 17)
|
||||
--d_SetStringRegion( hex("58B7"), 40)
|
||||
|
||||
d_SetDataRegion( hex("59C7"), 25)
|
||||
d_SetStringRegion( hex("59C7"), 24)
|
||||
|
||||
d_SetDataRegion( hex("5A04"), 56)
|
||||
d_SetWordRegion( hex("5A04"), 28)
|
||||
|
||||
-- Reserved key words.
|
||||
d_SetDataRegion( hex("5A20"), 28)
|
||||
d_SetStringRegion( hex("5A20"), 3) -- LINE
|
||||
d_SetStringRegion( hex("5A24"), 3) -- AUTO
|
||||
d_SetStringRegion( hex("5A28"), 2) -- CLR
|
||||
d_SetStringRegion( hex("5A2B"), 3) -- MOVE
|
||||
d_SetStringRegion( hex("5A2F"), 5) -- COPY/P
|
||||
d_SetStringRegion( hex("5A35"), 5) -- PAGE/P
|
||||
|
||||
d_SetDataRegion( hex("5A52"), 17)
|
||||
d_SetStringRegion( hex("5A52"), 15)
|
||||
|
||||
-- Create a mapping table of known Sharp I/O ports and 8 bit constants.
|
||||
--
|
||||
-- Format Addr IsAddr Label : IsAddr = 0, value is a constant, = 1, value is an address.
|
||||
d_SetByteEquate(hex("FE") , 1, "PRTC" )
|
||||
d_SetByteEquate(hex("FF") , 1, "PRTD" )
|
||||
|
||||
-- Create a mapping table of known Sharp MZ BIOS/Memory Mapped Hardware addresses which dz80
|
||||
-- can use to replace an address with the label. The EQU list will also be output at the start
|
||||
-- of the disassembly file so it can compile.
|
||||
-- Format Addr IsAddr Label : IsAddr = 0, value is a constant, = 1, value is an address.
|
||||
d_SetWordEquate(hex("0003"), 1, "GETL" )
|
||||
d_SetWordEquate(hex("0006"), 1, "LETNL" )
|
||||
d_SetWordEquate(hex("0009"), 1, "NL" )
|
||||
d_SetWordEquate(hex("000C"), 1, "PRNTS" )
|
||||
d_SetWordEquate(hex("000F"), 1, "PRNTT" )
|
||||
d_SetWordEquate(hex("0012"), 1, "PRNT" )
|
||||
d_SetWordEquate(hex("0015"), 1, "MSG" )
|
||||
d_SetWordEquate(hex("0018"), 1, "MSGX" )
|
||||
d_SetWordEquate(hex("001B"), 1, "GETKY" )
|
||||
d_SetWordEquate(hex("001E"), 1, "BRKEY" )
|
||||
d_SetWordEquate(hex("0021"), 1, "?WRI" )
|
||||
d_SetWordEquate(hex("0024"), 1, "?WRD" )
|
||||
d_SetWordEquate(hex("0027"), 1, "?RDI" )
|
||||
d_SetWordEquate(hex("002A"), 1, "?RDD" )
|
||||
d_SetWordEquate(hex("002D"), 1, "?VRFY" )
|
||||
d_SetWordEquate(hex("0030"), 1, "MELDY" )
|
||||
d_SetWordEquate(hex("0033"), 1, "?TMST" )
|
||||
d_SetWordEquate(hex("003B"), 1, "TIMRD" )
|
||||
d_SetWordEquate(hex("003E"), 1, "BELL" )
|
||||
d_SetWordEquate(hex("0041"), 1, "XTEMP" )
|
||||
d_SetWordEquate(hex("0044"), 1, "MSTA" )
|
||||
d_SetWordEquate(hex("0047"), 1, "MSTP" )
|
||||
d_SetWordEquate(hex("0000"), 1, "MONIT" )
|
||||
d_SetWordEquate(hex("0089"), 1, "SS" )
|
||||
d_SetWordEquate(hex("0095"), 1, "ST1" )
|
||||
d_SetWordEquate(hex("0410"), 1, "HLHEX" )
|
||||
d_SetWordEquate(hex("041F"), 1, "_2HEX" )
|
||||
d_SetWordEquate(hex("074D"), 1, "?MODE" )
|
||||
d_SetWordEquate(hex("08CA"), 1, "?KEY" )
|
||||
d_SetWordEquate(hex("096C"), 1, "PRNT3" )
|
||||
d_SetWordEquate(hex("0BB9"), 1, "?ADCN" )
|
||||
d_SetWordEquate(hex("0BCE"), 1, "?DACN" )
|
||||
d_SetWordEquate(hex("0DB5"), 1, "?DSP" )
|
||||
d_SetWordEquate(hex("0DA6"), 1, "?BLNK" )
|
||||
d_SetWordEquate(hex("0DDC"), 1, "?DPCT" )
|
||||
d_SetWordEquate(hex("03BA"), 1, "PRTHL" )
|
||||
d_SetWordEquate(hex("03C3"), 1, "PRTHX" )
|
||||
d_SetWordEquate(hex("03DA"), 1, "ASC" )
|
||||
d_SetWordEquate(hex("03F9"), 1, "HEX" )
|
||||
d_SetWordEquate(hex("0DDC"), 1, "DPCT" )
|
||||
d_SetWordEquate(hex("0DA7"), 1, "DLY12" )
|
||||
d_SetWordEquate(hex("0DAA"), 1, "DLY12A" )
|
||||
d_SetWordEquate(hex("0EE6"), 1, "?RSTR1" )
|
||||
d_SetWordEquate(hex("06A3"), 1, "MOTOR" )
|
||||
d_SetWordEquate(hex("071A"), 1, "CKSUM" )
|
||||
d_SetWordEquate(hex("077A"), 1, "GAP" )
|
||||
d_SetWordEquate(hex("0485"), 1, "WTAPE" )
|
||||
d_SetWordEquate(hex("0700"), 1, "MSTOP" )
|
||||
d_SetWordEquate(hex("11FD"), 1, "TAPECOPY" )
|
||||
d_SetWordEquate(hex("1200"), 1, "COLDSTRT" )
|
||||
d_SetWordEquate(hex("1250"), 1, "WARMSTRTMON")
|
||||
d_SetWordEquate(hex("15A8"), 1, "CMDWORDTBL" )
|
||||
d_SetWordEquate(hex("1BB2"), 1, "CMDJMPTBL" )
|
||||
d_SetWordEquate(hex("2E33"), 1, "CMTBUF" )
|
||||
d_SetWordEquate(hex("2E34"), 1, "CMTFNAME" )
|
||||
|
||||
-- Known BASIC SA-5510 labels/addresses.
|
||||
d_SetWordEquate(hex("1C3C"), 1, "CMDREMDATA" )
|
||||
d_SetWordEquate(hex("13AB"), 1, "SYNTAXERR" )
|
||||
d_SetWordEquate(hex("2D12"), 1, "CMDREAD" )
|
||||
d_SetWordEquate(hex("1C4D"), 1, "CMDLIST" )
|
||||
d_SetWordEquate(hex("1E91"), 1, "CMDRUN" )
|
||||
d_SetWordEquate(hex("1C42"), 1, "CMDNEW" )
|
||||
d_SetWordEquate(hex("2B0D"), 1, "CMDPRINT" )
|
||||
d_SetWordEquate(hex("1D6A"), 1, "CMDLET" )
|
||||
d_SetWordEquate(hex("1F2B"), 1, "CMDFOR" )
|
||||
d_SetWordEquate(hex("21AD"), 1, "CMDIF" )
|
||||
d_SetWordEquate(hex("13AB"), 1, "CMDTHEN" )
|
||||
d_SetWordEquate(hex("1EA6"), 1, "CMDGOTO" )
|
||||
d_SetWordEquate(hex("1EC7"), 1, "CMDGOSUB" )
|
||||
d_SetWordEquate(hex("1EF8"), 1, "CMDRETURN" )
|
||||
d_SetWordEquate(hex("1FC0"), 1, "CMDNEXT" )
|
||||
d_SetWordEquate(hex("1D2C"), 1, "CMDSTOP" )
|
||||
d_SetWordEquate(hex("1D15"), 1, "CMDEND" )
|
||||
d_SetWordEquate(hex("203E"), 1, "CMDON" )
|
||||
d_SetWordEquate(hex("2D75"), 1, "CMDLOAD" )
|
||||
d_SetWordEquate(hex("2D82"), 1, "CMDSAVE" )
|
||||
d_SetWordEquate(hex("2EB3"), 1, "CMDVERIFY" )
|
||||
d_SetWordEquate(hex("2191"), 1, "CMDPOKE" )
|
||||
d_SetWordEquate(hex("2080"), 1, "CMDDIM" )
|
||||
d_SetWordEquate(hex("2201"), 1, "CMDDEFFN" )
|
||||
d_SetWordEquate(hex("2BFF"), 1, "CMDINPUT" )
|
||||
d_SetWordEquate(hex("1D4D"), 1, "CMDRESTORE" )
|
||||
d_SetWordEquate(hex("21A6"), 1, "CMDCLS" )
|
||||
d_SetWordEquate(hex("2269"), 1, "CMDMUSIC" )
|
||||
d_SetWordEquate(hex("2282"), 1, "CMDTEMPO" )
|
||||
d_SetWordEquate(hex("2942"), 1, "CMDUSRN" )
|
||||
d_SetWordEquate(hex("2D9F"), 1, "CMDWOPEN" )
|
||||
d_SetWordEquate(hex("2D92"), 1, "CMDROPEN" )
|
||||
d_SetWordEquate(hex("2DAD"), 1, "CMDCLOSE" )
|
||||
d_SetWordEquate(hex("28B6"), 1, "CMDMON" )
|
||||
d_SetWordEquate(hex("2967"), 1, "CMDLIMIT" )
|
||||
d_SetWordEquate(hex("29CE"), 1, "CMDCONT" )
|
||||
d_SetWordEquate(hex("2902"), 1, "CMDGET" )
|
||||
d_SetWordEquate(hex("29FE"), 1, "CMDINP" )
|
||||
d_SetWordEquate(hex("2A1C"), 1, "CMDOUT" )
|
||||
d_SetWordEquate(hex("28B9"), 1, "CMDCURSOR" )
|
||||
d_SetWordEquate(hex("2AA6"), 1, "CMDSET" )
|
||||
d_SetWordEquate(hex("2AAA"), 1, "CMDRESET" )
|
||||
d_SetWordEquate(hex("2A2F"), 1, "CMDAUTO" )
|
||||
d_SetWordEquate(hex("33AB"), 1, "CMDCOPY" )
|
||||
d_SetWordEquate(hex("32D4"), 1, "CMDPAGE" )
|
||||
|
||||
d_SetWordEquate(hex("13AE"), 1, "OVFLERR" )
|
||||
d_SetWordEquate(hex("13B1"), 1, "ILDATERR" )
|
||||
d_SetWordEquate(hex("13B4"), 1, "DATMISERR" )
|
||||
d_SetWordEquate(hex("13B7"), 1, "STRLENERR" )
|
||||
d_SetWordEquate(hex("13BA"), 1, "MEMERR" )
|
||||
d_SetWordEquate(hex("13C0"), 1, "LINELENERR" )
|
||||
d_SetWordEquate(hex("13C3"), 1, "GOSUBERR" )
|
||||
d_SetWordEquate(hex("13C6"), 1, "FORNEXTERR" )
|
||||
d_SetWordEquate(hex("13C9"), 1, "FUNCERR" )
|
||||
d_SetWordEquate(hex("13CC"), 1, "NEXTFORERR" )
|
||||
d_SetWordEquate(hex("13CF"), 1, "RETGOSBERR" )
|
||||
d_SetWordEquate(hex("13D2"), 1, "UNDEFFNERR" )
|
||||
d_SetWordEquate(hex("13D5"), 1, "LINEERR" )
|
||||
d_SetWordEquate(hex("13D8"), 1, "CONTERR" )
|
||||
d_SetWordEquate(hex("13DB"), 1, "BADWRERR" )
|
||||
d_SetWordEquate(hex("13DE"), 1, "CMDSTMTERR" )
|
||||
d_SetWordEquate(hex("13E1"), 1, "READDATAERR")
|
||||
d_SetWordEquate(hex("13E4"), 1, "OPENERR" )
|
||||
d_SetWordEquate(hex("13E7"), 1, "UNKNWNERR" )
|
||||
d_SetWordEquate(hex("13EA"), 1, "OUTFILEERR" )
|
||||
d_SetWordEquate(hex("13ED"), 1, "PRTNRDYERR" )
|
||||
d_SetWordEquate(hex("13F0"), 1, "PRTHWERR" )
|
||||
d_SetWordEquate(hex("13F3"), 1, "PRTPAPERERR")
|
||||
d_SetWordEquate(hex("13F6"), 1, "CHKSUMERR" )
|
||||
|
||||
d_SetWordEquate(hex("1347"), 1, "TITLEMSG" )
|
||||
d_SetWordEquate(hex("1364"), 1, "COPYRMSG" )
|
||||
d_SetWordEquate(hex("1384"), 1, "READYMSG" )
|
||||
d_SetWordEquate(hex("138A"), 1, "ERRORMSG" )
|
||||
d_SetWordEquate(hex("1391"), 1, "INMSG" )
|
||||
d_SetWordEquate(hex("1395"), 1, "BREAKMSG" )
|
||||
d_SetWordEquate(hex("139C"), 1, "BYTESMSG" )
|
||||
d_SetWordEquate(hex("13A3"), 1, "ERRCODE" )
|
||||
|
||||
d_SetWordEquate(hex("1332"), 1, "MSGNL" )
|
||||
d_SetWordEquate(hex("167B"), 1, "UNUSEDTBL1" )
|
||||
d_SetWordEquate(hex("167D"), 1, "UNUSEDTBL2" )
|
||||
d_SetWordEquate(hex("124E"), 1, "WARMSTRT" )
|
||||
d_SetWordEquate(hex("167F"), 1, "OPERATORTBL")
|
||||
d_SetWordEquate(hex("17FC"), 1, "STRTONUM" )
|
||||
d_SetWordEquate(hex("1E88"), 1, "GETNUM" )
|
||||
d_SetWordEquate(hex("173F"), 1, "SKIPSPACE" )
|
||||
d_SetWordEquate(hex("173E"), 1, "INCSKIPSPCE")
|
||||
d_SetWordEquate(hex("177B"), 1, "EXECHL" )
|
||||
d_SetWordEquate(hex("1795"), 1, "EXECNOTCHR" )
|
||||
d_SetWordEquate(hex("17A3"), 1, "MATCHCHR" )
|
||||
d_SetWordEquate(hex("490D"), 0, "LINEBUFR" )
|
||||
|
||||
-- XPATCH labels/addresses.
|
||||
d_SetWordEquate(hex("5A63"), 1, "XPINIT" )
|
||||
d_SetWordEquate(hex("5B55"), 1, "RELOC3302" )
|
||||
d_SetWordEquate(hex("5BB0"), 1, "RELOC4806" )
|
||||
|
||||
-- Comments to be added at fixed addresses.
|
||||
d_SetComment( hex("1250"), "Sharp defined BASIC restart location from Monitor." )
|
||||
d_SetComment( hex("5B55"), "Relocated to 0x3302 for 0x5B bytes." )
|
||||
d_SetComment( hex("5BB0"), "Relocated to 0x4806 for 0xF8 bytes." )
|
||||
d_SetComment( hex("5CA8"), "End of Relocated code." )
|
||||
|
||||
-- Known Sharp Constants.
|
||||
d_SetWordEquate(hex("10F0"), 0, "ATRB" ) -- ATTRIBUTE
|
||||
d_SetWordEquate(hex("10F1"), 0, "NAME" ) -- FILE NAME
|
||||
d_SetWordEquate(hex("1102"), 0, "SIZE" ) -- BYTESIZE
|
||||
d_SetWordEquate(hex("1104"), 0, "DTADR" ) -- DATA ADDRESS
|
||||
d_SetWordEquate(hex("1106"), 0, "EXADR" ) -- EXECUTION ADDRESS
|
||||
d_SetWordEquate(hex("1108"), 0, "COMNT" ) -- COMMENT
|
||||
d_SetWordEquate(hex("1164"), 0, "SWPW" ) -- SWEEP WORK
|
||||
d_SetWordEquate(hex("116E"), 0, "KDATW" ) -- KEY WORK
|
||||
d_SetWordEquate(hex("1170"), 0, "KANAF" ) -- KANA FLAG (01=GRAPHIC MODE)
|
||||
d_SetWordEquate(hex("1171"), 0, "DSPXY" ) -- DISPLAY COORDINATES
|
||||
d_SetWordEquate(hex("1173"), 0, "MANG" ) -- COLUMN MANAGEMENT
|
||||
d_SetWordEquate(hex("1179"), 0, "MANGE" ) -- COLUMN MANAGEMENT END
|
||||
d_SetWordEquate(hex("117A"), 0, "PBIAS" ) -- PAGE BIAS
|
||||
d_SetWordEquate(hex("117B"), 0, "ROLTOP" ) -- ROLL TOP BIAS
|
||||
d_SetWordEquate(hex("117C"), 0, "MGPNT" ) -- COLUMN MANAG. POINTER
|
||||
d_SetWordEquate(hex("117D"), 0, "PAGETP" ) -- PAGE TOP
|
||||
d_SetWordEquate(hex("117F"), 0, "ROLEND" ) -- ROLL END
|
||||
d_SetWordEquate(hex("118E"), 0, "FLASH" ) -- FLASHING DATA
|
||||
d_SetWordEquate(hex("118F"), 0, "SFTLK" ) -- SHIFT LOCK
|
||||
d_SetWordEquate(hex("1190"), 0, "REVFLG" ) -- REVERSE FLAG
|
||||
d_SetWordEquate(hex("1191"), 0, "SPAGE" ) -- PAGE CHANGE
|
||||
d_SetWordEquate(hex("1192"), 0, "FLSDT" ) -- CURSOR DATA
|
||||
d_SetWordEquate(hex("1193"), 0, "STRGF" ) -- STRING FLAG
|
||||
d_SetWordEquate(hex("1194"), 0, "DPRNT" ) -- TAB COUNTER
|
||||
d_SetWordEquate(hex("1195"), 0, "TMCNT" ) -- TAPE MARK COUNTER
|
||||
d_SetWordEquate(hex("1197"), 0, "SUMDT" ) -- CHECK SUM DATA
|
||||
d_SetWordEquate(hex("1199"), 0, "CSMDT" ) -- FOR COMPARE SUM DATA
|
||||
d_SetWordEquate(hex("119B"), 0, "AMPM" ) -- AMPM DATA
|
||||
d_SetWordEquate(hex("119C"), 0, "TIMFG" ) -- TIME FLAG
|
||||
d_SetWordEquate(hex("119D"), 0, "SWRK" ) -- KEY SOUND FLAG
|
||||
d_SetWordEquate(hex("119E"), 0, "TEMPW" ) -- TEMPO WORK
|
||||
d_SetWordEquate(hex("119F"), 0, "ONTYO" ) -- ONTYO WORK
|
||||
d_SetWordEquate(hex("11A0"), 0, "OCTV" ) -- OCTAVE WORK
|
||||
d_SetWordEquate(hex("11A1"), 0, "RATIO" ) -- ONPU RATIO
|
||||
d_SetWordEquate(hex("11A3"), 0, "BUFER" ) -- GET LINE BUFFER
|
||||
|
||||
|
||||
----------------------------------------
|
||||
-- End of configuration file
|
||||
----------------------------------------
|
||||
BIN
software/dis/XPATCH/XPATCH_5510_V2.2.MZF
Normal file
BIN
software/dis/XPATCH/XPATCH_5510_V2.2.MZF
Normal file
Binary file not shown.
1
software/dis/XPATCH/dz80.ini
Symbolic link
1
software/dis/XPATCH/dz80.ini
Symbolic link
@@ -0,0 +1 @@
|
||||
XPATCH.ini
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
software/roms/mz2000_ipl.rom
Normal file
BIN
software/roms/mz2000_ipl.rom
Normal file
Binary file not shown.
BIN
software/roms/mz80afi.rom
Normal file
BIN
software/roms/mz80afi.rom
Normal file
Binary file not shown.
BIN
software/roms/sa1510.orig
Normal file
BIN
software/roms/sa1510.orig
Normal file
Binary file not shown.
@@ -38,7 +38,7 @@ INCDIR=${ROOTDIR}/software/asm/include
|
||||
ROMDIR=${ROOTDIR}/software/roms # Compiled or source ROM files.
|
||||
HDRDIR=${ROOTDIR}/software/hdr # MZF headers directory.
|
||||
MZFDIR=${ROOTDIR}/software/MZF/Common # MZF Format source files.
|
||||
CPMVERSIONS="MZ700_80C:0 MZ80A_80C:1 MZ80A_STD:2"
|
||||
CPMVERSIONS="mz700_80c:0 mz80a_80c:1 mz80a_std:2"
|
||||
|
||||
# As the tranZPUter project has eveolved different variants of CP/M are needed, so this loop along with the CPMVERSIONS string builds the versions as needed.
|
||||
for ver in ${CPMVERSIONS}
|
||||
@@ -70,6 +70,6 @@ do
|
||||
|
||||
# Manual tinkering to produce the loadable MZF file...
|
||||
#
|
||||
cat ${ROMDIR}/cpm22.bin ${ROMDIR}/cbios.bin > ${ROMDIR}/CPM223_${FILEEXT}.BIN
|
||||
cat ${HDRDIR}/cpm22_${FILEEXT}.HDR ${ROMDIR}/CPM223_${FILEEXT}.BIN > ${MZFDIR}/CPM223_${FILEEXT}.MZF
|
||||
cat ${ROMDIR}/cpm22.bin ${ROMDIR}/cbios.bin > ${ROMDIR}/cpm223_${FILEEXT}.bin
|
||||
cat ${HDRDIR}/cpm22_${FILEEXT}.hdr ${ROMDIR}/cpm223_${FILEEXT}.bin > ${MZFDIR}/cpm223_${FILEEXT}.mzf
|
||||
done
|
||||
|
||||
@@ -34,9 +34,10 @@ ROOTDIR=../../tranZPUter
|
||||
TOOLDIR=${ROOTDIR}/software/tools
|
||||
JARDIR=${ROOTDIR}/software/tools
|
||||
ASM=glass-0.5.jar
|
||||
BUILDROMLIST="MZ800_1Z_013B MZ800_9Z_504M MZ800_IOCS MZ80AFI monitor_SA1510 monitor_80c_SA1510 monitor_1Z-013A monitor_80c_1Z-013A monitor_1Z-013A-KM monitor_80c_1Z-013A-KM MZ80B_IPL"
|
||||
BUILDROMLIST="mz2000_ipl mz800_1z_013b mz800_9z_504m mz800_iocs mz80afi monitor_sa1510 monitor_80c_sa1510 monitor_1z-013a monitor_80c_1z-013a monitor_1z-013a-km monitor_80c_1z-013a-km mz80b_ipl"
|
||||
#BUILDMZFLIST="hi-ramcheck sharpmz-test"
|
||||
BUILDMZFLIST="5Z009-1B SA-5510_TZFS MSBASIC_MZ80A MSBASIC_MZ700 MSBASIC_TZ40 MSBASIC_TZ80 sharpmz-test"
|
||||
#BUILDMZFLIST="basic_sp-5025 5z009-1b sa-5510_tzfs msbasic_mz80a msbasic_mz700 msbasic_tz40 msbasic_tz80 sharpmz-test"
|
||||
BUILDMZFLIST="5z009-1b sa-5510_tzfs msbasic_mz80a msbasic_mz700 msbasic_tz40 msbasic_tz80 sharpmz-test"
|
||||
ASMDIR=${ROOTDIR}/software/asm
|
||||
ASMTMPDIR=${ROOTDIR}/software/tmp
|
||||
INCDIR=${ROOTDIR}/software/asm/include
|
||||
@@ -54,20 +55,20 @@ do
|
||||
OBJNAME=${f}.obj
|
||||
SYMNAME=${f}.sym
|
||||
ROMNAME=${f}.rom
|
||||
MZFNAME=${f}.MZF
|
||||
MZFNAME=${f}.mzf
|
||||
|
||||
# Special handling for the 4 version of MS BASIC.
|
||||
if [[ ${SRCNAME} = "MSBASIC_MZ80A" ]]; then
|
||||
ASMNAME="MSBASIC.asm"
|
||||
if [[ ${SRCNAME} = "msbasic_mz80a" ]]; then
|
||||
ASMNAME="msbasic.asm"
|
||||
echo "BUILD_VERSION EQU 0" > ${INCDIR}/MSBASIC_BuildVersion.asm
|
||||
elif [[ ${SRCNAME} = "MSBASIC_MZ700" ]]; then
|
||||
ASMNAME="MSBASIC.asm"
|
||||
elif [[ ${SRCNAME} = "msbasic_mz700" ]]; then
|
||||
ASMNAME="msbasic.asm"
|
||||
echo "BUILD_VERSION EQU 1" > ${INCDIR}/MSBASIC_BuildVersion.asm
|
||||
elif [[ ${SRCNAME} = "MSBASIC_TZ40" ]]; then
|
||||
ASMNAME="MSBASIC.asm"
|
||||
elif [[ ${SRCNAME} = "msbasic_tz40" ]]; then
|
||||
ASMNAME="msbasic.asm"
|
||||
echo "BUILD_VERSION EQU 2" > ${INCDIR}/MSBASIC_BuildVersion.asm
|
||||
elif [[ ${SRCNAME} = "MSBASIC_TZ80" ]]; then
|
||||
ASMNAME="MSBASIC.asm"
|
||||
elif [[ ${SRCNAME} = "msbasic_tz80" ]]; then
|
||||
ASMNAME="msbasic.asm"
|
||||
echo "BUILD_VERSION EQU 3" > ${INCDIR}/MSBASIC_BuildVersion.asm
|
||||
fi
|
||||
|
||||
@@ -104,4 +105,4 @@ do
|
||||
done
|
||||
|
||||
# Manual tinkering to build the MZ800 Rom.
|
||||
cat ${ROMDIR}/MZ800_1Z_013B.rom ${ROMDIR}/MZ800_CGROM.ORI ${ROMDIR}/MZ800_9Z_504M.rom ${ROMDIR}/MZ800_IOCS.rom > ${ROMDIR}/MZ800_IPL.rom
|
||||
cat ${ROMDIR}/mz800_1z_013b.rom ${ROMDIR}/mz800_cgrom.ori ${ROMDIR}/mz800_9z_504m.rom ${ROMDIR}/mz800_iocs.rom > ${ROMDIR}/mz800_ipl.rom
|
||||
|
||||
@@ -65,8 +65,8 @@ do
|
||||
# Uncomment if your not using my modified version 0.5.1 which fixes the bug
|
||||
# echo -n -e '\xff' >> ${ROMDIR}/${f}.rom
|
||||
else
|
||||
echo "Copy ${ASMDIR}/${f}.obj to ${MZFDIR}/${f}.MZF"
|
||||
cp ${ASMTMPDIR}/${f}.obj ${MZFDIR}/${f}.MZF
|
||||
echo "Copy ${ASMDIR}/${f}.obj to ${MZFDIR}/${f}.mzf"
|
||||
cp ${ASMTMPDIR}/${f}.obj ${MZFDIR}/${f}.mzf
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
@@ -197,14 +197,14 @@ done
|
||||
|
||||
# Manually copy required files.
|
||||
cp ${rootdir}/${softwaredir}/roms/tzfs.rom $media/TZFS/;
|
||||
cp ${rootdir}/${softwaredir}/roms/monitor_SA1510.rom $media/TZFS/SA1510.rom;
|
||||
cp ${rootdir}/${softwaredir}/roms/monitor_80c_SA1510.rom $media/TZFS/SA1510-8.rom;
|
||||
cp ${rootdir}/${softwaredir}/roms/monitor_1Z-013A.rom $media/TZFS/1Z-013A.rom;
|
||||
cp ${rootdir}/${softwaredir}/roms/monitor_80c_1Z-013A.rom $media/TZFS/1Z-013A-8.rom;
|
||||
cp ${rootdir}/${softwaredir}/roms/monitor_1Z-013A-KM.rom $media/TZFS/1Z-013A-KM.rom;
|
||||
cp ${rootdir}/${softwaredir}/roms/monitor_80c_1Z-013A-KM.rom $media/TZFS/1Z-013A-KM-8.rom;
|
||||
cp ${rootdir}/${softwaredir}/roms/MZ80B_IPL.rom $media/TZFS/MZ80B_IPL.rom;
|
||||
cp ${rootdir}/${softwaredir}/roms/MZ800_* $media/TZFS/;
|
||||
cp ${rootdir}/${softwaredir}/roms/monitor_sa1510.rom $media/TZFS/sa1510.rom;
|
||||
cp ${rootdir}/${softwaredir}/roms/monitor_80c_sa1510.rom $media/TZFS/sa1510-8.rom;
|
||||
cp ${rootdir}/${softwaredir}/roms/monitor_1z-013a.rom $media/TZFS/1z-013a.rom;
|
||||
cp ${rootdir}/${softwaredir}/roms/monitor_80c_1z-013a.rom $media/TZFS/1z-013a-8.rom;
|
||||
cp ${rootdir}/${softwaredir}/roms/monitor_1z-013a-km.rom $media/TZFS/1z-013a-km.rom;
|
||||
cp ${rootdir}/${softwaredir}/roms/monitor_80c_1z-013a-km.rom $media/TZFS/1z-013a-km-8.rom;
|
||||
cp ${rootdir}/${softwaredir}/roms/mz80b_ipl.rom $media/TZFS/mz80b_ipl.rom;
|
||||
cp ${rootdir}/${softwaredir}/roms/mz800_* $media/TZFS/;
|
||||
cp ${rootdir}/${softwaredir}/roms/cpm22.bin $media/CPM/;
|
||||
cp ${rootdir}/${softwaredir}/CPM/SDC16M/RAW/* $media/CPM/;
|
||||
cp ${rootdir}/${softwaredir}/MZF/Common/* $media/MZF/;
|
||||
|
||||
Binary file not shown.
BIN
software/tools/dz80_v20
Executable file
BIN
software/tools/dz80_v20
Executable file
Binary file not shown.
@@ -36,7 +36,7 @@
|
||||
# remove it fro the lists.
|
||||
#BUILDCPMLIST="cpm22"
|
||||
#SOURCEDIRS="CPM_RFS_[1] CPM[0-9][0-9]_* CPM_MC_5 CPM_MC_C? CPM_MC_D? CPM_MC_E? CPM_MC_F? CPM[0-9][0-9]_MZ800*"
|
||||
SOURCEDIRS="CPM_RFS_[1-2] CPM[0-9][0-9]_* CPM_MC_5 CPM_MC_C? CPM_MC_D? CPM_MC_E? CPM_MC_F? CPM[0-9][0-9]_MZ800*"
|
||||
SOURCEDIRS="cpm_rfs_[1-2] CPM[0-9][0-9]_* CPM_MC_5 CPM_MC_C? CPM_MC_D? CPM_MC_E? CPM_MC_F? CPM[0-9][0-9]_MZ800*"
|
||||
|
||||
ROOTDIR=`realpath ../../tranZPUter`
|
||||
CPM_PATH=${ROOTDIR}/software/CPM
|
||||
@@ -187,15 +187,15 @@ do
|
||||
CPMIMAGE="${DISKSDIR}/${f}.RAW"
|
||||
else
|
||||
CPMIMAGE=""
|
||||
echo "ALERT! ALERT! Couldnt find CPM image:${f}.RAW, not creating MZF file!"
|
||||
echo "ALERT! ALERT! Couldnt find CPM image:${f}.raw, not creating MZF file!"
|
||||
fi
|
||||
|
||||
if [ "${CPMIMAGE}" != "" ]; then
|
||||
# Building is just a matter of concatenating together the heaader and the rom image.
|
||||
cat "${HDRDIR}/${f}.HDR" "${CPMIMAGE}" > "${MZFDIR}/${f}.MZF"
|
||||
cat "${HDRDIR}/${f}.hdr" "${CPMIMAGE}" > "${MZFDIR}/${f}.mzf"
|
||||
|
||||
# Place the name of the file into the MZF list so that we create an MZF format binary from this image.
|
||||
(cd ${MZFDIR}; ls -l ${f}.MZF ${f}.mzf 2>/dev/null | sed 's/ / /g' | sed 's/ / /g' | cut -d' ' -f5,9- >> /tmp/filelist 2>/dev/null)
|
||||
(cd ${MZFDIR}; ls -l ${f}.mzf ${f}.mzf 2>/dev/null | sed 's/ / /g' | sed 's/ / /g' | cut -d' ' -f5,9- >> /tmp/filelist 2>/dev/null)
|
||||
fi
|
||||
done
|
||||
|
||||
|
||||
Reference in New Issue
Block a user