Initial commit
This commit is contained in:
BIN
software/asm/.sharpmz-test.asm.swo
Normal file
BIN
software/asm/.sharpmz-test.asm.swo
Normal file
Binary file not shown.
3281
software/asm/1Z-013A.asm
Normal file
3281
software/asm/1Z-013A.asm
Normal file
File diff suppressed because it is too large
Load Diff
3274
software/asm/1Z-013A_80c.asm
Normal file
3274
software/asm/1Z-013A_80c.asm
Normal file
File diff suppressed because it is too large
Load Diff
897
software/asm/IPL.asm
Normal file
897
software/asm/IPL.asm
Normal file
@@ -0,0 +1,897 @@
|
||||
ORG 0000H
|
||||
;****************************************************************
|
||||
;
|
||||
; Personal Computer
|
||||
; MZ-80B
|
||||
;
|
||||
; Initial Program Loader
|
||||
;****************************************************************
|
||||
;
|
||||
JR START
|
||||
;
|
||||
; NST RESET
|
||||
;
|
||||
NST: LD A,03H
|
||||
OUT (PPICTL),A ;Set PC1 NST=1
|
||||
;
|
||||
START: LD A,82H ;8255 A=OUT B=IN C=OUT
|
||||
OUT (PPICTL),A
|
||||
LD A,0FH ;PIO A=OUT
|
||||
OUT (PIOCTLA),A
|
||||
LD A,0CFH ;PIO B=IN
|
||||
OUT (PIOCTLB),A
|
||||
LD A,0FFH
|
||||
OUT (PIOCTLB),A
|
||||
LD A,58H ;BST=1 NST=0 OPEN=1 WRITE=1
|
||||
OUT (PPIC),A
|
||||
LD A,12H
|
||||
OUT (PPIA),A
|
||||
XOR A
|
||||
OUT (GRPHCTL),A ;Set Graphics VRAM to default, input to GRPH I, no output.
|
||||
LD SP,0FFE0H
|
||||
LD HL,0D000H
|
||||
LD A,0B3H
|
||||
OUT (PIOA),A
|
||||
CLEAR: LD (HL),00H ;DISPLAY CLEAR
|
||||
INC HL
|
||||
LD A,H
|
||||
OR L
|
||||
JR NZ,CLEAR
|
||||
LD A,13H
|
||||
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.
|
||||
;
|
||||
KEYS1: LD B,14H ;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 (0D9H),A
|
||||
CALL DLY80U
|
||||
IN A,(0D9H)
|
||||
CP B
|
||||
RET
|
||||
;
|
||||
; ;
|
||||
; CMT CONTROL ;
|
||||
; ;
|
||||
;
|
||||
CMT: CALL MSTOP
|
||||
CALL DEL6
|
||||
CALL KYEMES
|
||||
CALL ?RDI
|
||||
JR C,ST1
|
||||
CALL LDMSG
|
||||
LD HL,NAME
|
||||
LD E,010H
|
||||
LD C,010H
|
||||
CALL DISP2
|
||||
LD A,(ATRB)
|
||||
CP 01H
|
||||
JR NZ,MISMCH
|
||||
CALL ?RDD
|
||||
ST1: PUSH AF
|
||||
CALL DEL6
|
||||
CALL REW
|
||||
POP AF
|
||||
JP C,TRYAG
|
||||
JP NST
|
||||
;
|
||||
MISMCH: LD HL,MES16
|
||||
LD E,0AH
|
||||
LD C,0FH
|
||||
CALL DISP
|
||||
CALL MSTOP
|
||||
SCF
|
||||
JR ST1
|
||||
;
|
||||
;READ INFORMATION
|
||||
; CF=1:ERROR
|
||||
RDINF:
|
||||
?RDI: DI
|
||||
LD D,04H
|
||||
LD BC,0080H
|
||||
LD HL,IBUFE
|
||||
RD1: CALL MOTOR
|
||||
JR C,STPEIR
|
||||
CALL TMARK
|
||||
JR C,STPEIR
|
||||
CALL RTAPE
|
||||
JR C,STPEIR
|
||||
RET2S: BIT 3,D
|
||||
JR Z,EIRTN
|
||||
STPEIR: CALL MSTOP
|
||||
EIRTN: EI
|
||||
RET
|
||||
;
|
||||
;
|
||||
;READ DATA
|
||||
RDDAT:
|
||||
?RDD: DI
|
||||
LD D,08H
|
||||
LD BC,(SIZE)
|
||||
LD HL,8000H
|
||||
JR RD1
|
||||
;
|
||||
;
|
||||
;READ TAPE
|
||||
; BC=SIZE
|
||||
; DE=LOAD ADDRSS
|
||||
RTAPE: PUSH DE
|
||||
PUSH BC
|
||||
PUSH HL
|
||||
LD H,02H
|
||||
RTP2: CALL SPDIN
|
||||
JR C,TRTN1 ;BREAK
|
||||
JR Z,RTP2
|
||||
LD D,H
|
||||
LD HL,0000H
|
||||
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
|
||||
EDGE: IN A,(PPIB)
|
||||
CPL
|
||||
RLCA
|
||||
RET C ;BREAK
|
||||
RLCA
|
||||
JR NC,EDGE ;WAIT ON LOW
|
||||
EDGE1: IN A,(PPIB)
|
||||
CPL
|
||||
RLCA
|
||||
RET C ;BREAK
|
||||
RLCA
|
||||
JR C,EDGE1 ;WAIT ON HIGH
|
||||
RET
|
||||
; 1 BYTE READ
|
||||
; DATA=A
|
||||
; SUMDT STORE
|
||||
RBYTE: PUSH HL
|
||||
LD HL,0800H ; 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,1414H
|
||||
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
|
||||
;READ 1 BIT
|
||||
SPDIN: CALL EDGE ;WAIT ON HIGH
|
||||
RET C ;BREAK
|
||||
|
||||
CALL DLY2
|
||||
IN A,(PPIB) ;READ BIT
|
||||
AND 40H
|
||||
RET
|
||||
;
|
||||
;
|
||||
;MOTOR ON
|
||||
MOTOR: PUSH DE
|
||||
PUSH BC
|
||||
PUSH HL
|
||||
IN A,(PPIB)
|
||||
AND 20H
|
||||
JR Z,MOTRD
|
||||
LD HL,MES6
|
||||
LD E,0AH
|
||||
LD C,0EH
|
||||
CALL DISP
|
||||
CALL OPEN
|
||||
MOT1: IN A,(PIOB)
|
||||
CPL
|
||||
RLCA
|
||||
JR C,MOTR
|
||||
IN A,(PPIB)
|
||||
AND 20H
|
||||
JR NZ,MOT1
|
||||
CALL KYEMES
|
||||
CALL DEL1M
|
||||
MOTRD: CALL PLAY
|
||||
MOTR: POP HL
|
||||
POP BC
|
||||
POP DE
|
||||
RET
|
||||
;
|
||||
;
|
||||
;MOTOR STOP
|
||||
MSTOP: LD A,0DH
|
||||
OUT (PPICTL),A ;Set PC6 - READ MODE
|
||||
LD A,1AH
|
||||
OUT (PPIA),A
|
||||
CALL DEL6
|
||||
JR BLK3
|
||||
;EJECT
|
||||
OPEN: LD A,08H ;Reset PC4 - EJECT activate
|
||||
OUT (PPICTL),A
|
||||
CALL DEL6
|
||||
LD A,09H
|
||||
OUT (PPICTL),A ;Set PC4 - Deactivate EJECT
|
||||
RET
|
||||
;
|
||||
;
|
||||
KYEMES: LD HL,MES3
|
||||
LD E,04H
|
||||
LD C,1CH
|
||||
CALL DISP
|
||||
RET
|
||||
;
|
||||
;PLAY
|
||||
PLAY: CALL FR
|
||||
CALL DEL6
|
||||
LD A,16H
|
||||
OUT (PPIA),A
|
||||
JR BLK3
|
||||
BLK1: CALL DEL6
|
||||
CALL BLK3
|
||||
LD A,13H
|
||||
BLK2: OUT (PPIA),A
|
||||
BLK3: LD A,12H
|
||||
OUT (PPIA),A
|
||||
RET
|
||||
;
|
||||
;
|
||||
FR: LD A,12H
|
||||
FR1: OUT (PPIA),A
|
||||
CALL DEL6
|
||||
LD A,0BH
|
||||
OUT (PPICTL),A ;Set PC5
|
||||
CALL DEL6
|
||||
LD A,0AH
|
||||
OUT (PPICTL),A ;Reset PC5
|
||||
RET
|
||||
|
||||
RRW: LD A,010H
|
||||
JR FR1
|
||||
;REWIND
|
||||
REW: CALL RRW
|
||||
JR BLK1
|
||||
;
|
||||
;TIMING DEL
|
||||
DM1: PUSH AF
|
||||
L0211: XOR A
|
||||
L0212: DEC A
|
||||
JR NZ,L0212
|
||||
DEC BC
|
||||
LD A,B
|
||||
OR C
|
||||
JR NZ,L0211
|
||||
POP AF
|
||||
POP BC
|
||||
RET
|
||||
|
||||
DEL6: PUSH BC
|
||||
LD BC,00E9H ;233D
|
||||
JR DM1
|
||||
DEL1M: PUSH BC
|
||||
LD BC,060FH ;1551D
|
||||
JR DM1
|
||||
;
|
||||
;TAPE DELAY TIMING
|
||||
;
|
||||
;
|
||||
DLY2: LD A,31H
|
||||
L022B: DEC A
|
||||
JP NZ,L022B
|
||||
RET
|
||||
;
|
||||
;
|
||||
;
|
||||
;
|
||||
;
|
||||
LDMSG: LD HL,MES1
|
||||
LD E,00H
|
||||
LD C,0EH
|
||||
JR DISP
|
||||
;
|
||||
DISP2: LD A,93H
|
||||
OUT (PIOA),A
|
||||
JR DISP1
|
||||
;
|
||||
BOOTER: LD HL,MES8
|
||||
LD E,0AH
|
||||
LD C,0DH
|
||||
;
|
||||
DISP: LD A,93H
|
||||
OUT (PIOA),A
|
||||
EXX
|
||||
LD HL,0D000H
|
||||
DISP3: LD (HL),00H
|
||||
INC HL
|
||||
LD A,H
|
||||
OR L
|
||||
JR NZ,DISP3
|
||||
EXX
|
||||
DISP1: XOR A
|
||||
LD B,A
|
||||
LD D,0D0H
|
||||
LDIR
|
||||
LD A,13H
|
||||
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 diskette"
|
||||
MES12: DB "C:Cassette tape"
|
||||
MES13: DB "Drive No? (1-4)"
|
||||
MES14: DB "This diskette 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,IBADR1
|
||||
XOR A
|
||||
LD (0CF1EH),A
|
||||
LD (0CF1FH),A
|
||||
LD IY,0FFE0H
|
||||
LD HL,0100H
|
||||
LD (IY+2),L
|
||||
LD (IY+3),H
|
||||
CALL BREAD ;INFORMATION INPUT
|
||||
LD HL,0CF00H ;MASTER CHECK
|
||||
LD DE,IPLMC
|
||||
LD B,06H
|
||||
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,0AH
|
||||
CALL DISP2
|
||||
LD IX,IBADR2
|
||||
LD HL,(0CF14H)
|
||||
LD (IY+2),L
|
||||
LD (IY+3),H
|
||||
CALL BREAD
|
||||
CALL MOFF
|
||||
JP NST
|
||||
;
|
||||
;
|
||||
NODISK: LD HL,MES9
|
||||
LD E,0AH
|
||||
LD C,0DH
|
||||
CALL DISP
|
||||
JP ERR1
|
||||
;
|
||||
; READY CHECK
|
||||
;
|
||||
READY: LD A,(MTFG)
|
||||
RRCA
|
||||
CALL NC,MTON
|
||||
LD A,(DRINO) ;DRIVE NO GET
|
||||
OR 84H
|
||||
OUT (DM),A ;DRIVE SELECT MOTON
|
||||
XOR A
|
||||
CALL DLY60M
|
||||
LD HL,0000H
|
||||
REDY0: DEC HL
|
||||
LD A,H
|
||||
OR L
|
||||
JR Z,NODISK
|
||||
IN A,(CR) ;STATUS GET
|
||||
CPL
|
||||
RLCA
|
||||
JR C,REDY0
|
||||
LD A,(DRINO)
|
||||
LD C,A
|
||||
LD HL,CLBF0
|
||||
LD B,00H
|
||||
ADD HL,BC
|
||||
BIT 0,(HL)
|
||||
RET NZ
|
||||
CALL RCLB
|
||||
SET 0,(HL)
|
||||
RET
|
||||
;
|
||||
; MOTOR ON
|
||||
;
|
||||
MTON: LD A,80H
|
||||
OUT (DM),A
|
||||
LD B,0AH ;1SEC DELAY
|
||||
MTD1: LD HL,3C19H
|
||||
MTD2: DEC HL
|
||||
LD A,L
|
||||
OR H
|
||||
JR NZ,MTD2
|
||||
DJNZ MTD1
|
||||
LD A,01H
|
||||
LD (MTFG),A
|
||||
RET
|
||||
;
|
||||
;SEEK TREATMENT
|
||||
;
|
||||
SEEK: LD A,1BH
|
||||
CPL
|
||||
OUT (CR),A
|
||||
CALL BUSY
|
||||
CALL DLY60M
|
||||
IN A,(CR)
|
||||
CPL
|
||||
AND 99H
|
||||
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,0BH
|
||||
CPL
|
||||
OUT (CR),A
|
||||
CALL BUSY
|
||||
CALL DLY60M
|
||||
IN A,(CR)
|
||||
CPL
|
||||
AND 85H
|
||||
XOR 04H
|
||||
POP HL
|
||||
RET Z
|
||||
JP ERR
|
||||
;
|
||||
;BUSY AND WAIT
|
||||
;
|
||||
BUSY: PUSH DE
|
||||
PUSH HL
|
||||
CALL DLY80U
|
||||
LD E,07H
|
||||
BUSY2: LD HL,0000H
|
||||
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,00H
|
||||
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+4),H
|
||||
LD (IY+5),L
|
||||
DCHK: LD A,(DRINO)
|
||||
CP 04H
|
||||
JR NC,DTCK1
|
||||
LD A,(IY+4)
|
||||
CP 46H ;70D
|
||||
JR NC,DTCK1
|
||||
LD A,(IY+5)
|
||||
OR A
|
||||
JR Z,DTCK1
|
||||
CP 11H ;17D
|
||||
JR NC,DTCK1
|
||||
LD A,(IY+2)
|
||||
OR (IY+3)
|
||||
RET NZ
|
||||
DTCK1: JP ERR
|
||||
;
|
||||
;SEQUENTIAL READ
|
||||
;
|
||||
BREAD: DI
|
||||
CALL CONVRT
|
||||
LD A,0AH
|
||||
LD (RETRY),A
|
||||
READ1: CALL READY
|
||||
LD D,(IY+3)
|
||||
LD A,(IY+2)
|
||||
OR A
|
||||
JR Z,RE0
|
||||
INC D
|
||||
RE0: LD A,(IY+5)
|
||||
LD (IY+1),A
|
||||
LD A,(IY+4)
|
||||
LD (IY+0),A
|
||||
PUSH IX
|
||||
POP HL
|
||||
RE8: SRL A
|
||||
CPL
|
||||
OUT (DR),A
|
||||
JR NC,RE1
|
||||
LD A,01H
|
||||
JR RE2
|
||||
RE1: LD A,00H
|
||||
RE2: CPL
|
||||
OUT (HS),A
|
||||
CALL SEEK
|
||||
JR NZ,REE
|
||||
LD C,0DBH
|
||||
LD A,(IY+0)
|
||||
SRL A
|
||||
CPL
|
||||
OUT (TR),A
|
||||
LD A,(IY+1)
|
||||
CPL
|
||||
OUT (SCR),A
|
||||
EXX
|
||||
LD HL,RE3
|
||||
PUSH HL
|
||||
EXX
|
||||
LD A,94H
|
||||
CPL
|
||||
OUT (CR),A
|
||||
CALL WAIT
|
||||
RE6: LD B,00H
|
||||
RE4: IN A,(CR)
|
||||
RRCA
|
||||
RET C
|
||||
RRCA
|
||||
JR C,RE4
|
||||
INI
|
||||
JR NZ,RE4
|
||||
INC (IY+1)
|
||||
LD A,(IY+1)
|
||||
CP 11H ;17D
|
||||
JR Z,RETS
|
||||
DEC D
|
||||
JR NZ,RE6
|
||||
JR RE5
|
||||
RETS: DEC D
|
||||
RE5: LD A,0D8H ;FORCE INTERRUPT
|
||||
CPL
|
||||
OUT (CR),A
|
||||
CALL BUSY
|
||||
RE3: IN A,(CR)
|
||||
CPL
|
||||
AND 0FFH
|
||||
JR NZ,REE
|
||||
EXX
|
||||
POP HL
|
||||
EXX
|
||||
LD A,(IY+1)
|
||||
CP 11H ;17D
|
||||
JR NZ,REX
|
||||
LD A,01H
|
||||
LD (IY+1),A
|
||||
INC (IY+0)
|
||||
REX: LD A,D
|
||||
OR A
|
||||
JR NZ,RE7
|
||||
LD A,80H
|
||||
OUT (DM),A
|
||||
RET
|
||||
RE7: LD A,(IY+0)
|
||||
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,08H
|
||||
WAIT2: LD HL,0000H
|
||||
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,07H
|
||||
LD C,1BH ;27D
|
||||
CALL DISP
|
||||
JR ERR1
|
||||
;
|
||||
; ;
|
||||
; ERRROR OR BREAK ;
|
||||
; ;
|
||||
;
|
||||
ERR: CALL BOOTER
|
||||
ERR1: CALL MOFF
|
||||
TRYAG2: LD SP,0FFE0H
|
||||
;
|
||||
;TRYAG
|
||||
;
|
||||
TRYAG: CALL FDCC
|
||||
JR NZ,TRYAG3
|
||||
LD HL,MES10
|
||||
LD E,5AH
|
||||
LD C,0CH ;12D
|
||||
CALL DISP2
|
||||
LD E,0ABH
|
||||
LD C,11H ;17D
|
||||
CALL DISP2
|
||||
LD E,0D3H
|
||||
LD C,0FH ;15D
|
||||
CALL DISP2
|
||||
TRYAG1: CALL KEYS1
|
||||
BIT 3,A
|
||||
JP Z,CMT
|
||||
BIT 6,A
|
||||
JR Z,DNO
|
||||
JR TRYAG1
|
||||
DNO: LD HL,MES13 ;DRIVE NO SELECT
|
||||
LD E,0AH
|
||||
LD C,0FH
|
||||
CALL DISP
|
||||
DNO10: LD D,12H
|
||||
CALL DNO0
|
||||
JR NC,DNO3
|
||||
LD D,18H
|
||||
CALL DNO0
|
||||
JR NC,DNO3
|
||||
JR DNO10
|
||||
DNO3: LD A,B
|
||||
LD (DRINO),A
|
||||
JP FD
|
||||
;
|
||||
TRYAG3: LD HL,MES15
|
||||
LD E,54H
|
||||
LD C,1DH ;29D
|
||||
CALL DISP2
|
||||
TRYAG4: LD B,06H
|
||||
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,00H
|
||||
LD C,04H
|
||||
RRCA
|
||||
DNO1: RRCA
|
||||
RET NC
|
||||
INC B
|
||||
DEC C
|
||||
JR NZ,DNO1
|
||||
RET
|
||||
;
|
||||
; TIME DELAY (1M &60M &80U )
|
||||
;
|
||||
DLY80U: PUSH DE
|
||||
LD DE,000DH ;13D
|
||||
JP DLYT
|
||||
DLY1M: PUSH DE
|
||||
LD DE,0082H ;130D
|
||||
JP DLYT
|
||||
DLY60M: PUSH DE
|
||||
LD DE,1A2CH ;6700D
|
||||
DLYT: DEC DE
|
||||
LD A,E
|
||||
OR D
|
||||
JR NZ,DLYT
|
||||
POP DE
|
||||
RET
|
||||
;
|
||||
;
|
||||
; ;
|
||||
; INTRAM EXROM ;
|
||||
; ;
|
||||
;
|
||||
EXROMT: LD HL,8000H
|
||||
LD IX,EROM1
|
||||
JR SEROMA
|
||||
EROM1: IN A,(0F9H)
|
||||
CP 00H
|
||||
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,04H
|
||||
SEROMD: DEC D
|
||||
JR NZ,SEROMD
|
||||
JP (IX)
|
||||
|
||||
;----------------------------------------------------------
|
||||
; Variables/Work area
|
||||
;----------------------------------------------------------
|
||||
|
||||
IBUFE: EQU 0CF00H
|
||||
ATRB: EQU 0CF00H
|
||||
NAME: EQU 0CF01H
|
||||
SIZE: EQU 0CF12H
|
||||
DTADR: EQU 0CF14H
|
||||
SUMDT: EQU 0FFE0H
|
||||
TMCNT: EQU 0FFE2H
|
||||
;
|
||||
;
|
||||
;INPUT BUFFER ADDRESS
|
||||
;
|
||||
IBADR1: EQU 0CF00H
|
||||
IBADR2: EQU 8000H
|
||||
;
|
||||
; SUBROUTINE WORK
|
||||
;
|
||||
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
|
||||
|
||||
;
|
||||
;
|
||||
;
|
||||
;
|
||||
;
|
||||
; MFM MINIFLOPPY CONTROL
|
||||
;
|
||||
;
|
||||
;
|
||||
; CASE OF DISK INITIALIZE
|
||||
; DRIVE NO=DRINO (0-3)
|
||||
;
|
||||
; CASE OF SEQUENTIAL READ
|
||||
; DRIVE NO=DRINO (0-3)
|
||||
; BYTE SIZE =IY+2,3
|
||||
; ADDRESS =IX+0,1
|
||||
; NEXT TRACK =IY+0
|
||||
; NEXT SECTOR =IY+1
|
||||
; START TRACK =IY+4
|
||||
; START SECTOR =IY+5
|
||||
;
|
||||
;
|
||||
; I/O PORT ADDRESS
|
||||
;
|
||||
CR: EQU 0D8H ;STATUS/COMMAND PORT
|
||||
TR: EQU 0D9H ;TRACK REG PORT
|
||||
SCR: EQU 0DAH ;SECTOR REG PORT
|
||||
DR: EQU 0DBH ;DATA REG PORT
|
||||
DM: EQU 0DCH ;MOTOR/DRIVE PORT
|
||||
HS: EQU 0DDH ;HEAD SIDE SELECT PORT
|
||||
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
|
||||
BIN
software/asm/IPL.obj
Normal file
BIN
software/asm/IPL.obj
Normal file
Binary file not shown.
140
software/asm/IPL.sym
Normal file
140
software/asm/IPL.sym
Normal file
@@ -0,0 +1,140 @@
|
||||
?RDD: equ 0CFH
|
||||
?RDI: equ 0AEH
|
||||
BLK1: equ 1E5H
|
||||
BLK2: equ 1EDH
|
||||
BLK3: equ 1EFH
|
||||
BOOTER: equ 23FH
|
||||
BREAD: equ 47AH
|
||||
BUSY: equ 421H
|
||||
BUSY0: equ 42BH
|
||||
BUSY1: equ 439H
|
||||
BUSY2: equ 428H
|
||||
CLEAR: equ 2BH
|
||||
CMT: equ 6BH
|
||||
CONVRT: equ 43FH
|
||||
DCHK: equ 458H
|
||||
DEL1M: equ 223H
|
||||
DEL6: equ 21DH
|
||||
DISP: equ 246H
|
||||
DISP1: equ 256H
|
||||
DISP2: equ 239H
|
||||
DISP3: equ 24EH
|
||||
DLY1M: equ 5DDH
|
||||
DLY2: equ 229H
|
||||
DLY60M: equ 5E4H
|
||||
DLY80U: equ 5D6H
|
||||
DLYT: equ 5E8H
|
||||
DM1: equ 210H
|
||||
DNO: equ 58AH
|
||||
DNO0: equ 5C1H
|
||||
DNO1: equ 5CFH
|
||||
DNO10: equ 594H
|
||||
DNO3: equ 5A4H
|
||||
DTCK1: equ 477H
|
||||
EDGE: equ 121H
|
||||
EDGE1: equ 129H
|
||||
EIRTN: equ 0CDH
|
||||
ERMT1: equ 603H
|
||||
EROM1: equ 5F8H
|
||||
EROM2: equ 605H
|
||||
ERR: equ 556H
|
||||
ERR1: equ 559H
|
||||
EXROMT: equ 5EFH
|
||||
FD: equ 33CH
|
||||
FDCC: equ 5FH
|
||||
FR: equ 1F4H
|
||||
FR1: equ 1F6H
|
||||
IPLMC: equ 335H
|
||||
KEYIN: equ 3DH
|
||||
KEYS: equ 4DH
|
||||
KEYS1: equ 4BH
|
||||
KYEMES: equ 1CEH
|
||||
L0211: equ 211H
|
||||
L0212: equ 212H
|
||||
L022B: equ 22BH
|
||||
LDMSG: equ 230H
|
||||
MCHECK: equ 35FH
|
||||
MES1: equ 261H
|
||||
MES10: equ 2B3H
|
||||
MES11: equ 2BFH
|
||||
MES12: equ 2D0H
|
||||
MES13: equ 2DFH
|
||||
MES14: equ 2EEH
|
||||
MES15: equ 309H
|
||||
MES16: equ 326H
|
||||
MES3: equ 26FH
|
||||
MES6: equ 28BH
|
||||
MES8: equ 299H
|
||||
MES9: equ 2A6H
|
||||
MISMCH: equ 9EH
|
||||
MOFF: equ 3F3H
|
||||
MOT1: equ 19CH
|
||||
MOTOR: equ 186H
|
||||
MOTR: equ 1B1H
|
||||
MOTRD: equ 1AEH
|
||||
MSTOP: equ 1B5H
|
||||
MTD1: equ 3D2H
|
||||
MTD2: equ 3D5H
|
||||
MTON: equ 3CCH
|
||||
NKIN: equ 57H
|
||||
NMASTE: equ 54AH
|
||||
NODISK: equ 38CH
|
||||
NST: equ 2H
|
||||
OPEN: equ 1C2H
|
||||
PLAY: equ 1D9H
|
||||
RBY1: equ 136H
|
||||
RBY2: equ 147H
|
||||
RBY3: equ 150H
|
||||
RBYTE: equ 132H
|
||||
RCLB: equ 409H
|
||||
RD1: equ 0B7H
|
||||
RDDAT: equ 0CFH
|
||||
RDINF: equ 0AEH
|
||||
RE0: equ 490H
|
||||
RE1: equ 4AAH
|
||||
RE2: equ 4ACH
|
||||
RE3: equ 4F7H
|
||||
RE4: equ 4D4H
|
||||
RE5: equ 4EFH
|
||||
RE6: equ 4D2H
|
||||
RE7: equ 519H
|
||||
RE8: equ 49FH
|
||||
READ1: equ 483H
|
||||
READY: equ 399H
|
||||
REDY0: equ 3AEH
|
||||
REE: equ 51EH
|
||||
RET2S: equ 0C6H
|
||||
RETS: equ 4EEH
|
||||
REW: equ 20BH
|
||||
REX: equ 510H
|
||||
RRW: equ 207H
|
||||
RTAPE: equ 0DBH
|
||||
RTP2: equ 0E0H
|
||||
RTP3: equ 0F2H
|
||||
RTP5: equ 113H
|
||||
RTP6: equ 119H
|
||||
SEEK: equ 3E2H
|
||||
SEROMA: equ 612H
|
||||
SEROMD: equ 61AH
|
||||
SPDIN: equ 17AH
|
||||
ST1: equ 90H
|
||||
START: equ 6H
|
||||
STPEIR: equ 0CAH
|
||||
TM0: equ 15BH
|
||||
TM1: equ 15EH
|
||||
TM2: equ 161H
|
||||
TM3: equ 16BH
|
||||
TMARK: equ 152H
|
||||
TRANS: equ 448H
|
||||
TRANS1: equ 44FH
|
||||
TRTN1: equ 11DH
|
||||
TRYAG: equ 55FH
|
||||
TRYAG1: equ 57CH
|
||||
TRYAG2: equ 55CH
|
||||
TRYAG3: equ 5ABH
|
||||
TRYAG4: equ 5B5H
|
||||
TRYAG5: equ 5B7H
|
||||
WAIT: equ 52DH
|
||||
WAIT0: equ 537H
|
||||
WAIT1: equ 545H
|
||||
WAIT2: equ 534H
|
||||
5170
software/asm/MZ700.LST
Normal file
5170
software/asm/MZ700.LST
Normal file
File diff suppressed because it is too large
Load Diff
241
software/asm/hi-ramcheck.asm
Normal file
241
software/asm/hi-ramcheck.asm
Normal file
@@ -0,0 +1,241 @@
|
||||
|
||||
KEYPC: EQU 0E002h
|
||||
KEYPF: EQU 0E003h
|
||||
CSTR: EQU 0E002h
|
||||
CSTPT: EQU 0E003h
|
||||
CONT0: EQU 0E004h
|
||||
CONT1: EQU 0E005h
|
||||
CONT2: EQU 0E006h
|
||||
CONTF: EQU 0E007h
|
||||
SUNDG: EQU 0E008h
|
||||
TEMP: EQU 0E008h
|
||||
LETNL: EQU 0006h
|
||||
NL: EQU 0009h
|
||||
PRNTS: EQU 000Ch
|
||||
PRNT: EQU 0012h
|
||||
MSG: EQU 0015h
|
||||
MSGX: EQU 0018h
|
||||
MONIT: EQU 0086h
|
||||
ST1: EQU 0095h
|
||||
PRTHL: EQU 03BAh
|
||||
PRTHX: EQU 03C3h
|
||||
DPCT: EQU 0DDCh
|
||||
?BRK: EQU 0D11h
|
||||
?RSTR1: EQU 0EE6h
|
||||
GRAMSTART: EQU 0C000h
|
||||
GRAMEND: EQU 0FFFFh
|
||||
TPSTART: EQU 10F0h
|
||||
MEMSTART: EQU 1200h
|
||||
MSTART: EQU 0BE00h
|
||||
|
||||
ORG TPSTART
|
||||
|
||||
SPV:
|
||||
IBUFE: ; TAPE BUFFER (128 BYTES)
|
||||
;ATRB: DS virtual 1 ; ATTRIBUTE
|
||||
ATRB: DB 01h ; Code Type, 01 = Machine Code.
|
||||
;NAME: DS virtual 17 ; FILE NAME
|
||||
NAME: DB "TAPE CHECK V1.0", 0Dh, 00h ; Title/Name (17 bytes).
|
||||
;SIZE: DS virtual 2 ; BYTESIZE
|
||||
SIZE: DW MEND - MSTART ; Size of program.
|
||||
;DTADR: DS virtual 2 ; DATA ADDRESS
|
||||
DTADR: DW MSTART ; Load address of program.
|
||||
;EXADR: DS virtual 2 ; EXECUTION ADDRESS
|
||||
EXADR: DW MSTART ; Exec address of program.
|
||||
COMNT: DS 104 ; COMMENT
|
||||
KANAF: DS virtual 1 ; KANA FLAG (01=GRAPHIC MODE)
|
||||
DSPXY: DS virtual 2 ; DISPLAY COORDINATES
|
||||
MANG: DS virtual 27 ; COLUMN MANAGEMENT
|
||||
FLASH: DS virtual 1 ; FLASHING DATA
|
||||
FLPST: DS virtual 2 ; FLASHING POSITION
|
||||
FLSST: DS virtual 1 ; FLASHING STATUS
|
||||
FLSDT: DS virtual 1 ; CURSOR DATA
|
||||
STRGF: DS virtual 1 ; STRING FLAG
|
||||
DPRNT: DS virtual 1 ; TAB COUNTER
|
||||
TMCNT: DS virtual 2 ; TAPE MARK COUNTER
|
||||
SUMDT: DS virtual 2 ; CHECK SUM DATA
|
||||
CSMDT: DS virtual 2 ; FOR COMPARE SUM DATA
|
||||
AMPM: DS virtual 1 ; AMPM DATA
|
||||
TIMFG: DS virtual 1 ; TIME FLAG
|
||||
SWRK: DS virtual 1 ; KEY SOUND FLAG
|
||||
TEMPW: DS virtual 1 ; TEMPO WORK
|
||||
ONTYO: DS virtual 1 ; ONTYO WORK
|
||||
OCTV: DS virtual 1 ; OCTAVE WORK
|
||||
RATIO: DS virtual 2 ; ONPU RATIO
|
||||
BUFER: DS virtual 81 ; GET LINE BUFFER
|
||||
|
||||
ORG MSTART
|
||||
|
||||
START: LD A,0FFh ; Set Red filter.
|
||||
OUT (0EBh),A
|
||||
LD A,000h ; Set Green filter.
|
||||
OUT (0ECh),A
|
||||
LD A,000h ; Set Blue filter.
|
||||
OUT (0EDh),A
|
||||
LD A,000h
|
||||
CALL GRAMINIT
|
||||
LD A,005h
|
||||
CALL GRAMINIT
|
||||
LD A,00Ah
|
||||
CALL GRAMINIT
|
||||
LD A, 0CCh ; Set graphics mode to Indirect Page write.
|
||||
OUT (0EAh),A
|
||||
LD HL,0DE00h
|
||||
LD (GRPHPOS),HL
|
||||
JR SIGNON
|
||||
|
||||
|
||||
GRAMINIT: LD HL,GRAMSTART
|
||||
LD BC,GRAMEND - GRAMSTART
|
||||
GRAM0: OUT (0EAh),A
|
||||
OUT (0E8h),A
|
||||
GRAM1: LD A,000h
|
||||
LD (HL),A
|
||||
INC HL
|
||||
DEC BC
|
||||
LD A,B
|
||||
OR C
|
||||
JR NZ,GRAM1
|
||||
OUT (0E9h),A
|
||||
RET
|
||||
|
||||
|
||||
SIGNON: CALL LETNL
|
||||
LD DE,TITLE
|
||||
CALL MSG
|
||||
CALL LETNL
|
||||
LD B,240 ; Number of loops
|
||||
LOOP: LD HL,MEMSTART ; Start of checked memory,
|
||||
LD D,0BEh ; End memory check BE00
|
||||
LOOP1: LD A,000h
|
||||
CP L
|
||||
JR NZ,LOOP1b
|
||||
CALL PRTHL ; Print HL as 4digit hex.
|
||||
LD A,0C4h ; Move cursor left.
|
||||
LD E,004h ; 4 times.
|
||||
LOOP1a: CALL DPCT
|
||||
DEC E
|
||||
JR NZ,LOOP1a
|
||||
LOOP1b: INC HL
|
||||
LD A,H
|
||||
CP D ; Have we reached end of memory.
|
||||
JR Z,LOOP3 ; Yes, exit.
|
||||
LD A,(HL) ; Read memory location under test, ie. 0.
|
||||
CPL ; Subtract, ie. FF - A, ie FF - 0 = FF.
|
||||
LD (HL),A ; Write it back, ie. FF.
|
||||
SUB (HL) ; Subtract written memory value from A, ie. should be 0.
|
||||
JR NZ,LOOP2 ; Not zero, we have an error.
|
||||
LD A,(HL) ; Reread memory location, ie. FF
|
||||
CPL ; Subtract FF - FF
|
||||
LD (HL),A ; Write 0
|
||||
SUB (HL) ; Subtract 0
|
||||
JR Z,LOOP1 ; Loop if the same, ie. 0
|
||||
LOOP2: LD A,16h
|
||||
CALL PRNT ; Print A
|
||||
CALL PRTHX ; Print HL as 4 digit hex.
|
||||
CALL PRNTS ; Print space.
|
||||
XOR A
|
||||
LD (HL),A
|
||||
LD A,(HL) ; Get into A the failing bits.
|
||||
CALL PRTHX ; Print A as 2 digit hex.
|
||||
CALL PRNTS ; Print space.
|
||||
LD A,0FFh ; Repeat but first load FF into memory
|
||||
LD (HL),A
|
||||
LD A,(HL)
|
||||
CALL PRTHX ; Print A as 2 digit hex.
|
||||
NOP
|
||||
JR LOOP4
|
||||
|
||||
LOOP3: CALL PRTHL
|
||||
LD DE,OKCHECK
|
||||
CALL MSG ; Print check message in DE
|
||||
LD A,B ; Print loop count.
|
||||
CALL PRTHX
|
||||
LD DE,OKMSG
|
||||
CALL MSG ; Print ok message in DE
|
||||
CALL NL
|
||||
LD HL,(GRPHPOS) ; Get position of graphics progress line.
|
||||
OUT (0E8h),A ; Enable graphics memory.
|
||||
LD A,0FFh
|
||||
LD (HL),A
|
||||
OUT (0E9h),A ; Disable graphics memory.
|
||||
INC HL
|
||||
LD (GRPHPOS),HL
|
||||
DEC B
|
||||
JR NZ,LOOP
|
||||
LD DE,DONEMSG
|
||||
CALL MSG ; Print check message in DE
|
||||
JP MONIT
|
||||
|
||||
LOOP4: LD B,09h
|
||||
CALL PRNTS ; Print space.
|
||||
XOR A ; Zero A
|
||||
SCF ; Set Carry
|
||||
LOOP5: PUSH AF ; Store A and Flags
|
||||
LD (HL),A ; Store 0 to bad location.
|
||||
LD A,(HL) ; Read back
|
||||
CALL PRTHX ; Print A as 2 digit hex.
|
||||
CALL PRNTS ; Print space
|
||||
POP AF ; Get back A (ie. 0 + C)
|
||||
RLA ; Rotate left A. Bit LSB becomes Carry (ie. 1 first instance), Carry becomes MSB
|
||||
DJNZ LOOP5 ; Loop if not zero, ie. print out all bit locations written and read to memory to locate bad bit.
|
||||
XOR A ; Zero A, clears flags.
|
||||
LD A,80h
|
||||
LD B,08h
|
||||
LOOP6: PUSH AF ; Repeat above but AND memory location with original A (ie. 80)
|
||||
LD C,A ; Basically walk through all the bits to find which one is stuck.
|
||||
LD (HL),A
|
||||
LD A,(HL)
|
||||
AND C
|
||||
NOP
|
||||
JR Z,LOOP8 ; If zero then print out the bit number
|
||||
NOP
|
||||
NOP
|
||||
LD A,C
|
||||
CPL
|
||||
LD (HL),A
|
||||
LD A,(HL)
|
||||
AND C
|
||||
JR NZ,LOOP8 ; As above, if the compliment doesnt yield zero, print out the bit number.
|
||||
LOOP7: POP AF
|
||||
RRCA
|
||||
NOP
|
||||
DJNZ LOOP6
|
||||
JP MONIT
|
||||
|
||||
LOOP8: CALL LETNL ; New line.
|
||||
LD DE,BITMSG ; BIT message
|
||||
CALL MSG ; Print message in DE
|
||||
LD A,B
|
||||
DEC A
|
||||
CALL PRTHX ; Print A as 2 digit hex, ie. BIT number.
|
||||
CALL LETNL ; New line
|
||||
LD DE,BANKMSG ; BANK message
|
||||
CALL MSG ; Print message in DE
|
||||
LD A,H
|
||||
CP 50h ; 'P'
|
||||
JR NC,LOOP9 ; Work out bank number, 1, 2 or 3.
|
||||
LD A,01h
|
||||
JR LOOP11
|
||||
|
||||
LOOP9: CP 90h
|
||||
JR NC,LOOP10
|
||||
LD A,02h
|
||||
JR LOOP11
|
||||
|
||||
LOOP10: LD A,03h
|
||||
LOOP11: CALL PRTHX ; Print A as 2 digit hex, ie. BANK number.
|
||||
JR LOOP7
|
||||
|
||||
OKCHECK: DB ", CHECK: ", 0Dh
|
||||
OKMSG: DB " OK.", 0Dh
|
||||
DONEMSG: DB 11h
|
||||
DB "RAM TEST COMPLETE.", 0Dh
|
||||
|
||||
BITMSG: DB " BIT: ", 0Dh
|
||||
BANKMSG: DB " BANK: ", 0Dh
|
||||
|
||||
TITLE: DB "SHARPMZ RAM TEST (C) P. SMART 2018", 0Dh, 00h
|
||||
GRPHPOS: DB 00h, 00h
|
||||
|
||||
MEND:
|
||||
BIN
software/asm/hi-ramcheck.obj
Normal file
BIN
software/asm/hi-ramcheck.obj
Normal file
Binary file not shown.
55
software/asm/hi-ramcheck.sym
Normal file
55
software/asm/hi-ramcheck.sym
Normal file
@@ -0,0 +1,55 @@
|
||||
AMPM: equ 119BH
|
||||
ATRB: equ 10F0H
|
||||
BANKMSG: equ 0BF4DH
|
||||
BITMSG: equ 0BF45H
|
||||
BUFER: equ 11A3H
|
||||
COMNT: equ 1108H
|
||||
CSMDT: equ 1199H
|
||||
DONEMSG: equ 0BF31H
|
||||
DPRNT: equ 1194H
|
||||
DSPXY: equ 1171H
|
||||
DTADR: equ 1104H
|
||||
EXADR: equ 1106H
|
||||
FLASH: equ 118EH
|
||||
FLPST: equ 118FH
|
||||
FLSDT: equ 1192H
|
||||
FLSST: equ 1191H
|
||||
GRAM0: equ 0BE2DH
|
||||
GRAM1: equ 0BE31H
|
||||
GRAMINIT: equ 0BE27H
|
||||
GRPHPOS: equ 0BF79H
|
||||
IBUFE: equ 10F0H
|
||||
KANAF: equ 1170H
|
||||
LOOP: equ 0BE4BH
|
||||
LOOP1: equ 0BE50H
|
||||
LOOP10: equ 0BF1BH
|
||||
LOOP11: equ 0BF1DH
|
||||
LOOP1a: equ 0BE5CH
|
||||
LOOP1b: equ 0BE62H
|
||||
LOOP2: equ 0BE73H
|
||||
LOOP3: equ 0BE91H
|
||||
LOOP4: equ 0BEC1H
|
||||
LOOP5: equ 0BEC8H
|
||||
LOOP6: equ 0BEDAH
|
||||
LOOP7: equ 0BEEBH
|
||||
LOOP8: equ 0BEF3H
|
||||
LOOP9: equ 0BF13H
|
||||
MANG: equ 1173H
|
||||
MEND: equ 0BF7BH
|
||||
NAME: equ 10F1H
|
||||
OCTV: equ 11A0H
|
||||
OKCHECK: equ 0BF22H
|
||||
OKMSG: equ 0BF2CH
|
||||
ONTYO: equ 119FH
|
||||
RATIO: equ 11A1H
|
||||
SIGNON: equ 0BE3DH
|
||||
SIZE: equ 1102H
|
||||
SPV: equ 10F0H
|
||||
START: equ 0BE00H
|
||||
STRGF: equ 1193H
|
||||
SUMDT: equ 1197H
|
||||
SWRK: equ 119DH
|
||||
TEMPW: equ 119EH
|
||||
TIMFG: equ 119CH
|
||||
TITLE: equ 0BF55H
|
||||
TMCNT: equ 1195H
|
||||
7
software/asm/monitor_1Z-013A.asm
Normal file
7
software/asm/monitor_1Z-013A.asm
Normal file
@@ -0,0 +1,7 @@
|
||||
; Configurable parameters.
|
||||
COLW: EQU 40 ; Width of the display screen (ie. columns).
|
||||
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"
|
||||
BIN
software/asm/monitor_1Z-013A.obj
Normal file
BIN
software/asm/monitor_1Z-013A.obj
Normal file
Binary file not shown.
382
software/asm/monitor_1Z-013A.sym
Normal file
382
software/asm/monitor_1Z-013A.sym
Normal file
@@ -0,0 +1,382 @@
|
||||
ALPH1: equ 0EE2H
|
||||
ALPHA: equ 0EE1H
|
||||
AMPM: equ 119BH
|
||||
ASC: equ 3DAH
|
||||
ATBL: equ 0A92H
|
||||
ATRB: equ 10F0H
|
||||
AUTO3: equ 7EDH
|
||||
BELL: equ 3EH
|
||||
BGETL: equ 12FH
|
||||
BRKEY: equ 1EH
|
||||
BUFER: equ 11A3H
|
||||
CKS1: equ 720H
|
||||
CKS2: equ 72FH
|
||||
CKS3: equ 733H
|
||||
CKSUM: equ 71AH
|
||||
CLEAR: equ 9D8H
|
||||
CLEAR1: equ 9DAH
|
||||
CLRS: equ 0E3AH
|
||||
CMY0: equ 5BH
|
||||
COMNT: equ 1108H
|
||||
CR: equ 0E5AH
|
||||
CR1: equ 0E6AH
|
||||
CSMDT: equ 1199H
|
||||
CTBL: equ 0EAAH
|
||||
CURS1: equ 0DFFH
|
||||
CURS2: equ 0E16H
|
||||
CURS3: equ 0DFFH
|
||||
CURS4: equ 0E23H
|
||||
CURS5: equ 0E02H
|
||||
CURSD: equ 0DF8H
|
||||
CURSL: equ 0E25H
|
||||
CURSR: equ 0E0DH
|
||||
CURSU: equ 0E05H
|
||||
CURSU1: equ 0E0BH
|
||||
DACN1: equ 0BE3H
|
||||
DACN2: equ 0BDFH
|
||||
DACN3: equ 0BE0H
|
||||
DEL: equ 0EF8H
|
||||
DEL1: equ 0F0EH
|
||||
DEL2: equ 0F1CH
|
||||
DLY1: equ 759H
|
||||
DLY12: equ 996H
|
||||
DLY2: equ 760H
|
||||
DLY3: equ 0A4AH
|
||||
DLY4: equ 9A9H
|
||||
DMCP: equ 6BH
|
||||
DPRNT: equ 1194H
|
||||
DSP01: equ 0DB9H
|
||||
DSP04: equ 0DD0H
|
||||
DSPXY: equ 1171H
|
||||
DSWEP: equ 830H
|
||||
DTADR: equ 1104H
|
||||
DUM1: equ 0D88H
|
||||
DUM2: equ 0D3EH
|
||||
DUM3: equ 0D37H
|
||||
DUMP: equ 0D29H
|
||||
EDG1: equ 607H
|
||||
EDG2: equ 613H
|
||||
EDGE: equ 601H
|
||||
EXADR: equ 1106H
|
||||
FD: equ 0FFH
|
||||
FD1: equ 106H
|
||||
FD2: equ 102H
|
||||
FLAS1: equ 97BH
|
||||
FLAS2: equ 9EFH
|
||||
FLASH: equ 118EH
|
||||
FLKEY: equ 57EH
|
||||
FLPST: equ 118FH
|
||||
FLSDT: equ 1192H
|
||||
FLSST: equ 1191H
|
||||
GAP: equ 77AH
|
||||
GAP1: equ 78EH
|
||||
GAP2: equ 796H
|
||||
GAP3: equ 79CH
|
||||
GAPCK: equ 0FE2H
|
||||
GAPCK1: equ 0FEBH
|
||||
GAPCK2: equ 0FEDH
|
||||
GAPCK3: equ 0FFDH
|
||||
GETKY: equ 1BH
|
||||
GETL: equ 3H
|
||||
GETL1: equ 7EAH
|
||||
GETL2: equ 818H
|
||||
GETL3: equ 85BH
|
||||
GETL5: equ 81DH
|
||||
GETL6: equ 865H
|
||||
GETLA: equ 82BH
|
||||
GETLB: equ 863H
|
||||
GETLC: equ 822H
|
||||
GETLR: equ 87EH
|
||||
GETLU: equ 876H
|
||||
GETLZ: equ 86CH
|
||||
GOTO: equ 0F3H
|
||||
GRSTAS: equ 0DD4H
|
||||
HEX: equ 3F9H
|
||||
HEXIY: equ 13DH
|
||||
HEXJ: equ 3E5H
|
||||
HLHEX: equ 410H
|
||||
HOME: equ 0E4DH
|
||||
IBUFE: equ 10F0H
|
||||
INST: equ 0F38H
|
||||
INST2: equ 0ECAH
|
||||
KANA: equ 0EEEH
|
||||
KANAF: equ 1170H
|
||||
KSL1: equ 9B7H
|
||||
KSL2: equ 9BCH
|
||||
KTBL: equ 0BEAH
|
||||
KTBLC: equ 0CAAH
|
||||
KTBLG: equ 0CE9H
|
||||
KTBLGS: equ 0C6AH
|
||||
KTBLS: equ 0C2AH
|
||||
L010F: equ 10FH
|
||||
L01F5: equ 1F5H
|
||||
L0207: equ 207H
|
||||
L0220: equ 220H
|
||||
L0239: equ 239H
|
||||
L023F: equ 23FH
|
||||
L0255: equ 255H
|
||||
L025A: equ 25AH
|
||||
L02D5: equ 2D5H
|
||||
L02DB: equ 2DBH
|
||||
L0363: equ 363H
|
||||
L0378: equ 378H
|
||||
L041D: equ 41DH
|
||||
L0434: equ 434H
|
||||
L047D: equ 47DH
|
||||
L04C2: equ 4C2H
|
||||
L04C4: equ 4C4H
|
||||
L0563: equ 563H
|
||||
L060E: equ 60EH
|
||||
L061A: equ 61AH
|
||||
L066C: equ 66CH
|
||||
L06AD: equ 6ADH
|
||||
L06B4: equ 6B4H
|
||||
L071C: equ 71CH
|
||||
L0725: equ 725H
|
||||
L0737: equ 737H
|
||||
L0739: equ 739H
|
||||
L075B: equ 75BH
|
||||
L0762: equ 762H
|
||||
L08F7: equ 8F7H
|
||||
L092C: equ 92CH
|
||||
L0968: equ 968H
|
||||
L0999: equ 999H
|
||||
L09AB: equ 9ABH
|
||||
L0A89: equ 0A89H
|
||||
L0BA0: equ 0BA0H
|
||||
L0BB1: equ 0BB1H
|
||||
L0D36: equ 0D36H
|
||||
L0D51: equ 0D51H
|
||||
L0D78: equ 0D78H
|
||||
L0D7A: equ 0D7AH
|
||||
L0D85: equ 0D85H
|
||||
L0DA7: equ 0DA7H
|
||||
L0DAD: equ 0DADH
|
||||
L0DE0: equ 0DE0H
|
||||
L0E2D: equ 0E2DH
|
||||
L0F17: equ 0F17H
|
||||
L0F33: equ 0F33H
|
||||
L0F42: equ 0F42H
|
||||
L0F4D: equ 0F4DH
|
||||
L2HEX: equ 41FH
|
||||
LETNL: equ 6H
|
||||
LLPT: equ 470H
|
||||
LOA0: equ 116H
|
||||
LOAD: equ 111H
|
||||
LONG: equ 0A1AH
|
||||
LPRNT: equ 18FH
|
||||
MANG: equ 1173H
|
||||
MCOR: equ 7A8H
|
||||
MCR1: equ 7ABH
|
||||
MCR2: equ 7D4H
|
||||
MCR3: equ 7D7H
|
||||
MELDY: equ 30H
|
||||
MLD1: equ 1D1H
|
||||
MLD2: equ 205H
|
||||
MLD3: equ 20DH
|
||||
MLD4: equ 211H
|
||||
MLD5: equ 214H
|
||||
MLDS1: equ 2C4H
|
||||
MLDSP: equ 2BEH
|
||||
MLDST: equ 2ABH
|
||||
MNTBL: equ 284H
|
||||
MONIT: equ 0H
|
||||
MOT1: equ 6A4H
|
||||
MOT2: equ 6ABH
|
||||
MOT4: equ 6B9H
|
||||
MOT5: equ 6D8H
|
||||
MOT7: equ 6B7H
|
||||
MOT8: equ 6D0H
|
||||
MOT9: equ 6D7H
|
||||
MOTOR: equ 69FH
|
||||
MSG: equ 15H
|
||||
MSG1: equ 896H
|
||||
MSGE1: equ 147H
|
||||
MSGN1: equ 3FBH
|
||||
MSGN2: equ 3FDH
|
||||
MSGN3: equ 402H
|
||||
MSGN7: equ 467H
|
||||
MSGOK: equ 942H
|
||||
MSGQ2: equ 9A0H
|
||||
MSGQ3: equ 6E7H
|
||||
MSGSV: equ 98BH
|
||||
MSGX: equ 18H
|
||||
MSGX1: equ 8A4H
|
||||
MSGX2: equ 8A7H
|
||||
MST1: equ 705H
|
||||
MST3: equ 717H
|
||||
MSTA: equ 44H
|
||||
MSTOP: equ 700H
|
||||
MSTP: equ 47H
|
||||
MTBL: equ 26CH
|
||||
NAME: equ 10F1H
|
||||
NBRK: equ 8B8H
|
||||
NCLR08: equ 9D4H
|
||||
NCLR8: equ 9D5H
|
||||
NL: equ 9H
|
||||
NLPHL: equ 5FAH
|
||||
NOADD: equ 3E2H
|
||||
OCTV: equ 11A0H
|
||||
ONP1: equ 21FH
|
||||
ONP2: equ 22CH
|
||||
ONP3: equ 265H
|
||||
ONPU: equ 21CH
|
||||
ONTYO: equ 119FH
|
||||
OPTBL: equ 29CH
|
||||
P4DE: equ 2A6H
|
||||
PEN: equ 18BH
|
||||
PLOT: equ 184H
|
||||
PLPT: equ 176H
|
||||
PMANG: equ 2F3H
|
||||
PMSG: equ 1A5H
|
||||
PMSG1: equ 1A8H
|
||||
PPLPT: equ 17BH
|
||||
PRNT: equ 12H
|
||||
PRNT2: equ 967H
|
||||
PRNT3: equ 96CH
|
||||
PRNT4: equ 96FH
|
||||
PRNT5: equ 959H
|
||||
PRNTS: equ 0CH
|
||||
PRNTT: equ 0FH
|
||||
PRTHL: equ 3BAH
|
||||
PRTHX: equ 3C3H
|
||||
PTEST: equ 155H
|
||||
PTRN: equ 180H
|
||||
PTST0: equ 15AH
|
||||
PTST1: equ 170H
|
||||
QADCN: equ 0BB9H
|
||||
QBEL: equ 577H
|
||||
QBELD: equ 352H
|
||||
QBLNK: equ 0DA6H
|
||||
QBRK: equ 0A32H
|
||||
QBRK1: equ 0A48H
|
||||
QBRK2: equ 980H
|
||||
QBRK3: equ 986H
|
||||
QCLER: equ 0FD8H
|
||||
QCLRFF: equ 0FDBH
|
||||
QDACN: equ 0BCEH
|
||||
QDINT: equ 0FDDH
|
||||
QDPCT: equ 0DDCH
|
||||
QDSP: equ 0DB5H
|
||||
QER: equ 107H
|
||||
QFLAS: equ 9FFH
|
||||
QFLS: equ 9E3H
|
||||
QGET: equ 8BDH
|
||||
QGETL: equ 7E6H
|
||||
QKEY: equ 8CAH
|
||||
QKY1: equ 8D6H
|
||||
QKY2: equ 8DAH
|
||||
QKY5: equ 8FAH
|
||||
QKY55: equ 8FBH
|
||||
QKYGRP: equ 8FEH
|
||||
QKYGRS: equ 909H
|
||||
QKYSM: equ 8B3H
|
||||
QLOAD: equ 5F0H
|
||||
QLTNL: equ 90EH
|
||||
QMLDY: equ 1C7H
|
||||
QMODE: equ 73EH
|
||||
QMSG: equ 893H
|
||||
QMSGX: equ 8A1H
|
||||
QNL: equ 918H
|
||||
QPNT1: equ 0FB4H
|
||||
QPNT2: equ 0FBFH
|
||||
QPONT: equ 0FB1H
|
||||
QPRNT: equ 935H
|
||||
QPRT: equ 946H
|
||||
QPRTS: equ 920H
|
||||
QPRTT: equ 924H
|
||||
QQKEY: equ 9B3H
|
||||
QRDD: equ 4F8H
|
||||
QRDI: equ 4D8H
|
||||
QRSTR: equ 0EE5H
|
||||
QRSTR1: equ 0EE6H
|
||||
QSAVE: equ 0B92H
|
||||
QSWEP: equ 0A50H
|
||||
QTEMP: equ 2E5H
|
||||
QTMR1: equ 375H
|
||||
QTMR2: equ 37FH
|
||||
QTMRD: equ 358H
|
||||
QTMS1: equ 331H
|
||||
QTMS2: equ 344H
|
||||
QTMST: equ 308H
|
||||
QVRFY: equ 588H
|
||||
QWRD: equ 475H
|
||||
QWRI: equ 436H
|
||||
RATIO: equ 11A1H
|
||||
RBY1: equ 630H
|
||||
RBY2: equ 649H
|
||||
RBY3: equ 654H
|
||||
RBYTE: equ 624H
|
||||
RD1: equ 4E6H
|
||||
RDA: equ 1B6H
|
||||
RDDAT: equ 2AH
|
||||
RDINF: equ 27H
|
||||
RET1: equ 4D2H
|
||||
RET2: equ 554H
|
||||
RET3: equ 69BH
|
||||
RTAPE: equ 50EH
|
||||
RTP1: equ 513H
|
||||
RTP2: equ 519H
|
||||
RTP3: equ 532H
|
||||
RTP4: equ 554H
|
||||
RTP5: equ 565H
|
||||
RTP6: equ 572H
|
||||
RTP7: equ 56EH
|
||||
RTP8: equ 553H
|
||||
RTP9: equ 574H
|
||||
RYTHM: equ 2C8H
|
||||
SAV1: equ 0F8EH
|
||||
SAVE: equ 0F5EH
|
||||
SCROL: equ 0E6DH
|
||||
SG: equ 0F7H
|
||||
SHORT: equ 0A01H
|
||||
SIZE: equ 1102H
|
||||
SLPT: equ 3D5H
|
||||
SPHEX: equ 3B1H
|
||||
SPV: equ 10F0H
|
||||
SS: equ 0A2H
|
||||
ST0: equ 70H
|
||||
ST1: equ 0ADH
|
||||
ST2: equ 0BBH
|
||||
START: equ 4AH
|
||||
STRGF: equ 1193H
|
||||
SUMDT: equ 1197H
|
||||
SV0: equ 0BA2H
|
||||
SV1: equ 0BB5H
|
||||
SWEP0: equ 0A66H
|
||||
SWEP01: equ 0A64H
|
||||
SWEP2: equ 0A7FH
|
||||
SWEP3: equ 0A77H
|
||||
SWEP6: equ 0A5FH
|
||||
SWEP9: equ 0A73H
|
||||
SWRK: equ 119DH
|
||||
TEMPW: equ 119EH
|
||||
TIMFG: equ 119CH
|
||||
TIMIN: equ 38DH
|
||||
TIMRD: equ 3BH
|
||||
TIMST: equ 33H
|
||||
TM1: equ 675H
|
||||
TM2: equ 678H
|
||||
TM3: equ 688H
|
||||
TM4: equ 69BH
|
||||
TMARK: equ 65BH
|
||||
TMCNT: equ 1195H
|
||||
TVF1: equ 5B2H
|
||||
TVF2: equ 5B8H
|
||||
TVF3: equ 5CCH
|
||||
TVRFY: equ 5ADH
|
||||
VERFY: equ 2DH
|
||||
VRFY: equ 0FCBH
|
||||
VRNS: equ 0BC5H
|
||||
WBY1: equ 76DH
|
||||
WBYTE: equ 767H
|
||||
WRDAT: equ 24H
|
||||
WRI1: equ 444H
|
||||
WRI2: equ 45EH
|
||||
WRI3: equ 464H
|
||||
WRINF: equ 21H
|
||||
WTAP1: equ 494H
|
||||
WTAP2: equ 4A5H
|
||||
WTAP3: equ 4D2H
|
||||
WTAPE: equ 48AH
|
||||
XTEMP: equ 41H
|
||||
7
software/asm/monitor_80c_1Z-013A.asm
Normal file
7
software/asm/monitor_80c_1Z-013A.asm
Normal file
@@ -0,0 +1,7 @@
|
||||
; Configurable parameters.
|
||||
COLW: EQU 80 ; Width of the display screen (ie. columns).
|
||||
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"
|
||||
BIN
software/asm/monitor_80c_1Z-013A.obj
Normal file
BIN
software/asm/monitor_80c_1Z-013A.obj
Normal file
Binary file not shown.
382
software/asm/monitor_80c_1Z-013A.sym
Normal file
382
software/asm/monitor_80c_1Z-013A.sym
Normal file
@@ -0,0 +1,382 @@
|
||||
ALPH1: equ 0EE2H
|
||||
ALPHA: equ 0EE1H
|
||||
AMPM: equ 119BH
|
||||
ASC: equ 3DAH
|
||||
ATBL: equ 0A92H
|
||||
ATRB: equ 10F0H
|
||||
AUTO3: equ 7EDH
|
||||
BELL: equ 3EH
|
||||
BGETL: equ 12FH
|
||||
BRKEY: equ 1EH
|
||||
BUFER: equ 11A3H
|
||||
CKS1: equ 720H
|
||||
CKS2: equ 72FH
|
||||
CKS3: equ 733H
|
||||
CKSUM: equ 71AH
|
||||
CLEAR: equ 9D8H
|
||||
CLEAR1: equ 9DAH
|
||||
CLRS: equ 0E3AH
|
||||
CMY0: equ 5BH
|
||||
COMNT: equ 1108H
|
||||
CR: equ 0E5AH
|
||||
CR1: equ 0E6AH
|
||||
CSMDT: equ 1199H
|
||||
CTBL: equ 0EAAH
|
||||
CURS1: equ 0DFFH
|
||||
CURS2: equ 0E16H
|
||||
CURS3: equ 0DFFH
|
||||
CURS4: equ 0E23H
|
||||
CURS5: equ 0E02H
|
||||
CURSD: equ 0DF8H
|
||||
CURSL: equ 0E25H
|
||||
CURSR: equ 0E0DH
|
||||
CURSU: equ 0E05H
|
||||
CURSU1: equ 0E0BH
|
||||
DACN1: equ 0BE3H
|
||||
DACN2: equ 0BDFH
|
||||
DACN3: equ 0BE0H
|
||||
DEL: equ 0EF8H
|
||||
DEL1: equ 0F0EH
|
||||
DEL2: equ 0F1CH
|
||||
DLY1: equ 759H
|
||||
DLY12: equ 996H
|
||||
DLY2: equ 760H
|
||||
DLY3: equ 0A4AH
|
||||
DLY4: equ 9A9H
|
||||
DMCP: equ 6BH
|
||||
DPRNT: equ 1194H
|
||||
DSP01: equ 0DB9H
|
||||
DSP04: equ 0DD0H
|
||||
DSPXY: equ 1171H
|
||||
DSWEP: equ 830H
|
||||
DTADR: equ 1104H
|
||||
DUM1: equ 0D88H
|
||||
DUM2: equ 0D3EH
|
||||
DUM3: equ 0D37H
|
||||
DUMP: equ 0D29H
|
||||
EDG1: equ 607H
|
||||
EDG2: equ 613H
|
||||
EDGE: equ 601H
|
||||
EXADR: equ 1106H
|
||||
FD: equ 0FFH
|
||||
FD1: equ 106H
|
||||
FD2: equ 102H
|
||||
FLAS1: equ 97BH
|
||||
FLAS2: equ 9EFH
|
||||
FLASH: equ 118EH
|
||||
FLKEY: equ 57EH
|
||||
FLPST: equ 118FH
|
||||
FLSDT: equ 1192H
|
||||
FLSST: equ 1191H
|
||||
GAP: equ 77AH
|
||||
GAP1: equ 78EH
|
||||
GAP2: equ 796H
|
||||
GAP3: equ 79CH
|
||||
GAPCK: equ 0FE2H
|
||||
GAPCK1: equ 0FEBH
|
||||
GAPCK2: equ 0FEDH
|
||||
GAPCK3: equ 0FFDH
|
||||
GETKY: equ 1BH
|
||||
GETL: equ 3H
|
||||
GETL1: equ 7EAH
|
||||
GETL2: equ 818H
|
||||
GETL3: equ 85BH
|
||||
GETL5: equ 81DH
|
||||
GETL6: equ 865H
|
||||
GETLA: equ 82BH
|
||||
GETLB: equ 863H
|
||||
GETLC: equ 822H
|
||||
GETLR: equ 87EH
|
||||
GETLU: equ 876H
|
||||
GETLZ: equ 86CH
|
||||
GOTO: equ 0F3H
|
||||
GRSTAS: equ 0DD4H
|
||||
HEX: equ 3F9H
|
||||
HEXIY: equ 13DH
|
||||
HEXJ: equ 3E5H
|
||||
HLHEX: equ 410H
|
||||
HOME: equ 0E4DH
|
||||
IBUFE: equ 10F0H
|
||||
INST: equ 0F38H
|
||||
INST2: equ 0ECAH
|
||||
KANA: equ 0EEEH
|
||||
KANAF: equ 1170H
|
||||
KSL1: equ 9B7H
|
||||
KSL2: equ 9BCH
|
||||
KTBL: equ 0BEAH
|
||||
KTBLC: equ 0CAAH
|
||||
KTBLG: equ 0CE9H
|
||||
KTBLGS: equ 0C6AH
|
||||
KTBLS: equ 0C2AH
|
||||
L010F: equ 10FH
|
||||
L01F5: equ 1F5H
|
||||
L0207: equ 207H
|
||||
L0220: equ 220H
|
||||
L0239: equ 239H
|
||||
L023F: equ 23FH
|
||||
L0255: equ 255H
|
||||
L025A: equ 25AH
|
||||
L02D5: equ 2D5H
|
||||
L02DB: equ 2DBH
|
||||
L0363: equ 363H
|
||||
L0378: equ 378H
|
||||
L041D: equ 41DH
|
||||
L0434: equ 434H
|
||||
L047D: equ 47DH
|
||||
L04C2: equ 4C2H
|
||||
L04C4: equ 4C4H
|
||||
L0563: equ 563H
|
||||
L060E: equ 60EH
|
||||
L061A: equ 61AH
|
||||
L066C: equ 66CH
|
||||
L06AD: equ 6ADH
|
||||
L06B4: equ 6B4H
|
||||
L071C: equ 71CH
|
||||
L0725: equ 725H
|
||||
L0737: equ 737H
|
||||
L0739: equ 739H
|
||||
L075B: equ 75BH
|
||||
L0762: equ 762H
|
||||
L08F7: equ 8F7H
|
||||
L092C: equ 92CH
|
||||
L0968: equ 968H
|
||||
L0999: equ 999H
|
||||
L09AB: equ 9ABH
|
||||
L0A89: equ 0A89H
|
||||
L0BA0: equ 0BA0H
|
||||
L0BB1: equ 0BB1H
|
||||
L0D36: equ 0D36H
|
||||
L0D51: equ 0D51H
|
||||
L0D78: equ 0D78H
|
||||
L0D7A: equ 0D7AH
|
||||
L0D85: equ 0D85H
|
||||
L0DA7: equ 0DA7H
|
||||
L0DAD: equ 0DADH
|
||||
L0DE0: equ 0DE0H
|
||||
L0E2D: equ 0E2DH
|
||||
L0F17: equ 0F17H
|
||||
L0F33: equ 0F33H
|
||||
L0F42: equ 0F42H
|
||||
L0F4D: equ 0F4DH
|
||||
L2HEX: equ 41FH
|
||||
LETNL: equ 6H
|
||||
LLPT: equ 470H
|
||||
LOA0: equ 116H
|
||||
LOAD: equ 111H
|
||||
LONG: equ 0A1AH
|
||||
LPRNT: equ 18FH
|
||||
MANG: equ 1173H
|
||||
MCOR: equ 7A8H
|
||||
MCR1: equ 7ABH
|
||||
MCR2: equ 7D4H
|
||||
MCR3: equ 7D7H
|
||||
MELDY: equ 30H
|
||||
MLD1: equ 1D1H
|
||||
MLD2: equ 205H
|
||||
MLD3: equ 20DH
|
||||
MLD4: equ 211H
|
||||
MLD5: equ 214H
|
||||
MLDS1: equ 2C4H
|
||||
MLDSP: equ 2BEH
|
||||
MLDST: equ 2ABH
|
||||
MNTBL: equ 284H
|
||||
MONIT: equ 0H
|
||||
MOT1: equ 6A4H
|
||||
MOT2: equ 6ABH
|
||||
MOT4: equ 6B9H
|
||||
MOT5: equ 6D8H
|
||||
MOT7: equ 6B7H
|
||||
MOT8: equ 6D0H
|
||||
MOT9: equ 6D7H
|
||||
MOTOR: equ 69FH
|
||||
MSG: equ 15H
|
||||
MSG1: equ 896H
|
||||
MSGE1: equ 147H
|
||||
MSGN1: equ 3FBH
|
||||
MSGN2: equ 3FDH
|
||||
MSGN3: equ 402H
|
||||
MSGN7: equ 467H
|
||||
MSGOK: equ 942H
|
||||
MSGQ2: equ 9A0H
|
||||
MSGQ3: equ 6E7H
|
||||
MSGSV: equ 98BH
|
||||
MSGX: equ 18H
|
||||
MSGX1: equ 8A4H
|
||||
MSGX2: equ 8A7H
|
||||
MST1: equ 705H
|
||||
MST3: equ 717H
|
||||
MSTA: equ 44H
|
||||
MSTOP: equ 700H
|
||||
MSTP: equ 47H
|
||||
MTBL: equ 26CH
|
||||
NAME: equ 10F1H
|
||||
NBRK: equ 8B8H
|
||||
NCLR08: equ 9D4H
|
||||
NCLR8: equ 9D5H
|
||||
NL: equ 9H
|
||||
NLPHL: equ 5FAH
|
||||
NOADD: equ 3E2H
|
||||
OCTV: equ 11A0H
|
||||
ONP1: equ 21FH
|
||||
ONP2: equ 22CH
|
||||
ONP3: equ 265H
|
||||
ONPU: equ 21CH
|
||||
ONTYO: equ 119FH
|
||||
OPTBL: equ 29CH
|
||||
P4DE: equ 2A6H
|
||||
PEN: equ 18BH
|
||||
PLOT: equ 184H
|
||||
PLPT: equ 176H
|
||||
PMANG: equ 2F3H
|
||||
PMSG: equ 1A5H
|
||||
PMSG1: equ 1A8H
|
||||
PPLPT: equ 17BH
|
||||
PRNT: equ 12H
|
||||
PRNT2: equ 967H
|
||||
PRNT3: equ 96CH
|
||||
PRNT4: equ 96FH
|
||||
PRNT5: equ 959H
|
||||
PRNTS: equ 0CH
|
||||
PRNTT: equ 0FH
|
||||
PRTHL: equ 3BAH
|
||||
PRTHX: equ 3C3H
|
||||
PTEST: equ 155H
|
||||
PTRN: equ 180H
|
||||
PTST0: equ 15AH
|
||||
PTST1: equ 170H
|
||||
QADCN: equ 0BB9H
|
||||
QBEL: equ 577H
|
||||
QBELD: equ 352H
|
||||
QBLNK: equ 0DA6H
|
||||
QBRK: equ 0A32H
|
||||
QBRK1: equ 0A48H
|
||||
QBRK2: equ 980H
|
||||
QBRK3: equ 986H
|
||||
QCLER: equ 0FD8H
|
||||
QCLRFF: equ 0FDBH
|
||||
QDACN: equ 0BCEH
|
||||
QDINT: equ 0FDDH
|
||||
QDPCT: equ 0DDCH
|
||||
QDSP: equ 0DB5H
|
||||
QER: equ 107H
|
||||
QFLAS: equ 9FFH
|
||||
QFLS: equ 9E3H
|
||||
QGET: equ 8BDH
|
||||
QGETL: equ 7E6H
|
||||
QKEY: equ 8CAH
|
||||
QKY1: equ 8D6H
|
||||
QKY2: equ 8DAH
|
||||
QKY5: equ 8FAH
|
||||
QKY55: equ 8FBH
|
||||
QKYGRP: equ 8FEH
|
||||
QKYGRS: equ 909H
|
||||
QKYSM: equ 8B3H
|
||||
QLOAD: equ 5F0H
|
||||
QLTNL: equ 90EH
|
||||
QMLDY: equ 1C7H
|
||||
QMODE: equ 73EH
|
||||
QMSG: equ 893H
|
||||
QMSGX: equ 8A1H
|
||||
QNL: equ 918H
|
||||
QPNT1: equ 0FB4H
|
||||
QPNT2: equ 0FBFH
|
||||
QPONT: equ 0FB1H
|
||||
QPRNT: equ 935H
|
||||
QPRT: equ 946H
|
||||
QPRTS: equ 920H
|
||||
QPRTT: equ 924H
|
||||
QQKEY: equ 9B3H
|
||||
QRDD: equ 4F8H
|
||||
QRDI: equ 4D8H
|
||||
QRSTR: equ 0EE5H
|
||||
QRSTR1: equ 0EE6H
|
||||
QSAVE: equ 0B92H
|
||||
QSWEP: equ 0A50H
|
||||
QTEMP: equ 2E5H
|
||||
QTMR1: equ 375H
|
||||
QTMR2: equ 37FH
|
||||
QTMRD: equ 358H
|
||||
QTMS1: equ 331H
|
||||
QTMS2: equ 344H
|
||||
QTMST: equ 308H
|
||||
QVRFY: equ 588H
|
||||
QWRD: equ 475H
|
||||
QWRI: equ 436H
|
||||
RATIO: equ 11A1H
|
||||
RBY1: equ 630H
|
||||
RBY2: equ 649H
|
||||
RBY3: equ 654H
|
||||
RBYTE: equ 624H
|
||||
RD1: equ 4E6H
|
||||
RDA: equ 1B6H
|
||||
RDDAT: equ 2AH
|
||||
RDINF: equ 27H
|
||||
RET1: equ 4D2H
|
||||
RET2: equ 554H
|
||||
RET3: equ 69BH
|
||||
RTAPE: equ 50EH
|
||||
RTP1: equ 513H
|
||||
RTP2: equ 519H
|
||||
RTP3: equ 532H
|
||||
RTP4: equ 554H
|
||||
RTP5: equ 565H
|
||||
RTP6: equ 572H
|
||||
RTP7: equ 56EH
|
||||
RTP8: equ 553H
|
||||
RTP9: equ 574H
|
||||
RYTHM: equ 2C8H
|
||||
SAV1: equ 0F8EH
|
||||
SAVE: equ 0F5EH
|
||||
SCROL: equ 0E6DH
|
||||
SG: equ 0F7H
|
||||
SHORT: equ 0A01H
|
||||
SIZE: equ 1102H
|
||||
SLPT: equ 3D5H
|
||||
SPHEX: equ 3B1H
|
||||
SPV: equ 10F0H
|
||||
SS: equ 0A2H
|
||||
ST0: equ 70H
|
||||
ST1: equ 0ADH
|
||||
ST2: equ 0BBH
|
||||
START: equ 4AH
|
||||
STRGF: equ 1193H
|
||||
SUMDT: equ 1197H
|
||||
SV0: equ 0BA2H
|
||||
SV1: equ 0BB5H
|
||||
SWEP0: equ 0A66H
|
||||
SWEP01: equ 0A64H
|
||||
SWEP2: equ 0A7FH
|
||||
SWEP3: equ 0A77H
|
||||
SWEP6: equ 0A5FH
|
||||
SWEP9: equ 0A73H
|
||||
SWRK: equ 119DH
|
||||
TEMPW: equ 119EH
|
||||
TIMFG: equ 119CH
|
||||
TIMIN: equ 38DH
|
||||
TIMRD: equ 3BH
|
||||
TIMST: equ 33H
|
||||
TM1: equ 675H
|
||||
TM2: equ 678H
|
||||
TM3: equ 688H
|
||||
TM4: equ 69BH
|
||||
TMARK: equ 65BH
|
||||
TMCNT: equ 1195H
|
||||
TVF1: equ 5B2H
|
||||
TVF2: equ 5B8H
|
||||
TVF3: equ 5CCH
|
||||
TVRFY: equ 5ADH
|
||||
VERFY: equ 2DH
|
||||
VRFY: equ 0FCBH
|
||||
VRNS: equ 0BC5H
|
||||
WBY1: equ 76DH
|
||||
WBYTE: equ 767H
|
||||
WRDAT: equ 24H
|
||||
WRI1: equ 444H
|
||||
WRI2: equ 45EH
|
||||
WRI3: equ 464H
|
||||
WRINF: equ 21H
|
||||
WTAP1: equ 494H
|
||||
WTAP2: equ 4A5H
|
||||
WTAP3: equ 4D2H
|
||||
WTAPE: equ 48AH
|
||||
XTEMP: equ 41H
|
||||
7
software/asm/monitor_80c_SA1510.asm
Normal file
7
software/asm/monitor_80c_SA1510.asm
Normal file
@@ -0,0 +1,7 @@
|
||||
; Configurable parameters.
|
||||
COLW: EQU 80 ; Width of the display screen (ie. columns).
|
||||
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 "sa1510.asm"
|
||||
BIN
software/asm/monitor_80c_SA1510.obj
Normal file
BIN
software/asm/monitor_80c_SA1510.obj
Normal file
Binary file not shown.
394
software/asm/monitor_80c_SA1510.sym
Normal file
394
software/asm/monitor_80c_SA1510.sym
Normal file
@@ -0,0 +1,394 @@
|
||||
.CP1: equ 13AH
|
||||
.CR: equ 128H
|
||||
.CTBL: equ 168H
|
||||
.DSP03: equ 39DH
|
||||
.MANG: equ 0A2BH
|
||||
.MANG1: equ 0A4CH
|
||||
.MANG2: equ 3A6H
|
||||
.MANG3: equ 0A38H
|
||||
.MANG4: equ 0A45H
|
||||
.SCROL: equ 13DH
|
||||
?ADCN: equ 0BB9H
|
||||
?BEL: equ 2E5H
|
||||
?BELD: equ 0DB1H
|
||||
?BLNK: equ 0DA6H
|
||||
?BRK: equ 0D11H
|
||||
?CLER: equ 0FD8H
|
||||
?CLRFF: equ 0FDBH
|
||||
?DACN: equ 0BCEH
|
||||
?DINT: equ 0FDDH
|
||||
?DPCT: equ 0DDCH
|
||||
?DSP: equ 0DB5H
|
||||
?DSPA: equ 0D7CH
|
||||
?ER: equ 0CFH
|
||||
?FLAS: equ 9FFH
|
||||
?GET: equ 8B3H
|
||||
?GETL: equ 7A8H
|
||||
?KEY: equ 8CAH
|
||||
?KY1: equ 8D6H
|
||||
?KY10: equ 8EFH
|
||||
?KY11: equ 8EAH
|
||||
?KY2: equ 8F2H
|
||||
?KY3: equ 922H
|
||||
?KY4: equ 92FH
|
||||
?KY5: equ 91EH
|
||||
?KY6: equ 92AH
|
||||
?KY7: equ 93AH
|
||||
?KY9: equ 93FH
|
||||
?LOAD: equ 5F5H
|
||||
?LTNL: equ 980H
|
||||
?MLDY: equ 188H
|
||||
?MODE: equ 74DH
|
||||
?MSG: equ 893H
|
||||
?MSGX: equ 8A1H
|
||||
?NL: equ 97BH
|
||||
?PNT1: equ 0FB4H
|
||||
?PNT2: equ 0FCAH
|
||||
?PONT: equ 0FB1H
|
||||
?PRNT: equ 995H
|
||||
?PRT: equ 946H
|
||||
?PRTS: equ 993H
|
||||
?PRTT: equ 984H
|
||||
?RDD: equ 4EFH
|
||||
?RDI: equ 4CFH
|
||||
?RSTR: equ 0EE5H
|
||||
?RSTR1: equ 0EE6H
|
||||
?SAVE: equ 263H
|
||||
?SWEP: equ 0A50H
|
||||
?TEMP: equ 2ECH
|
||||
?TMR1: equ 361H
|
||||
?TMR1A: equ 364H
|
||||
?TMR2: equ 36BH
|
||||
?TMRD: equ 344H
|
||||
?TMST: equ 2FAH
|
||||
?VRFY: equ 575H
|
||||
?WRD: equ 470H
|
||||
?WRI: equ 436H
|
||||
ALPHA: equ 0EE1H
|
||||
ALPHI: equ 0EE2H
|
||||
AMPM: equ 119BH
|
||||
ASC: equ 3DAH
|
||||
ATBL: equ 0AB5H
|
||||
ATRB: equ 10F0H
|
||||
AUTCK: equ 9F1H
|
||||
AUTO2: equ 807H
|
||||
AUTO3: equ 7C4H
|
||||
AUTO5: equ 824H
|
||||
AUTOL: equ 810H
|
||||
AUTOL1: equ 812H
|
||||
BELL: equ 3EH
|
||||
BRKEY: equ 1EH
|
||||
BUFER: equ 11A3H
|
||||
CHGP1: equ 84BH
|
||||
CHGPA: equ 83EH
|
||||
CHGPK: equ 841H
|
||||
CHGPK1: equ 843H
|
||||
CLR8: equ 9E3H
|
||||
CLRS: equ 0EB3H
|
||||
CLRS1: equ 0ED1H
|
||||
COMNT: equ 1108H
|
||||
CR: equ 0F73H
|
||||
CR2: equ 0F8BH
|
||||
CR3: equ 0F99H
|
||||
CSMDT: equ 1199H
|
||||
CTBL: equ 0DFFH
|
||||
CURS1: equ 0E66H
|
||||
CURS2: equ 0E86H
|
||||
CURS3: equ 0E69H
|
||||
CURS4: equ 0E93H
|
||||
CURS5: equ 0EAAH
|
||||
CURS5A: equ 0E9FH
|
||||
CURS6: equ 0ED7H
|
||||
CURSD: equ 0E5DH
|
||||
CURSL: equ 0E95H
|
||||
CURSR: equ 0E7BH
|
||||
CURSU: equ 0E6EH
|
||||
CURSU1: equ 0E76H
|
||||
DACN1: equ 0BE3H
|
||||
DACN2: equ 0BDFH
|
||||
DACN3: equ 0BE0H
|
||||
DEL: equ 0EF2H
|
||||
DEL1: equ 0F0AH
|
||||
DEL2: equ 0F1DH
|
||||
DLY12: equ 0DA7H
|
||||
DLY12A: equ 0DAAH
|
||||
DLY3: equ 9A2H
|
||||
DMT: equ 857H
|
||||
DPCT1: equ 0DF9H
|
||||
DPRNT: equ 1194H
|
||||
DSP01: equ 0DC2H
|
||||
DSP02: equ 0D97H
|
||||
DSP04: equ 0D8DH
|
||||
DSPXY: equ 1171H
|
||||
DTADR: equ 1104H
|
||||
EDG1: equ 607H
|
||||
EDG1A: equ 60FH
|
||||
EDG2: equ 615H
|
||||
EDG3: equ 61DH
|
||||
EDGE: equ 601H
|
||||
EXADR: equ 1106H
|
||||
FD: equ 0C7H
|
||||
FD2: equ 0CAH
|
||||
FLAS1: equ 0A12H
|
||||
FLAS2: equ 0A0BH
|
||||
FLAS3: equ 0A0FH
|
||||
FLASH: equ 118EH
|
||||
FLSDT: equ 1192H
|
||||
GAPCK: equ 0FE2H
|
||||
GAPCK1: equ 0FEBH
|
||||
GAPCK2: equ 0FEDH
|
||||
GAPCK3: equ 0FFDH
|
||||
GETKY: equ 1BH
|
||||
GETL: equ 3H
|
||||
GETL0: equ 7ACH
|
||||
GETL0A: equ 7AFH
|
||||
GETL0B: equ 7B6H
|
||||
GETL0C: equ 7BEH
|
||||
GETL0D: equ 7C5H
|
||||
GETL1: equ 81AH
|
||||
GETL2: equ 803H
|
||||
GETL3: equ 85BH
|
||||
GETL5: equ 839H
|
||||
GETL6: equ 865H
|
||||
GETL6A: equ 86CH
|
||||
GETL6B: equ 878H
|
||||
GETLA: equ 886H
|
||||
GETLB: equ 863H
|
||||
GETLC: equ 84EH
|
||||
GETLD: equ 5E1H
|
||||
GETLR: equ 880H
|
||||
GOTO: equ 0BBH
|
||||
HEX: equ 3F9H
|
||||
HEX1: equ 3F2H
|
||||
HEX2: equ 3F5H
|
||||
HEXJ: equ 3E5H
|
||||
HLHEX: equ 410H
|
||||
HOM0: equ 409H
|
||||
HOM00: equ 0ED4H
|
||||
HOM1: equ 406H
|
||||
HOME: equ 3FBH
|
||||
HOOK: equ 120H
|
||||
IBUFE: equ 10F0H
|
||||
INST: equ 0F2DH
|
||||
INST1: equ 0F4FH
|
||||
INST1A: equ 0F37H
|
||||
INST2: equ 0F42H
|
||||
KANA: equ 0EEEH
|
||||
KANAF: equ 1170H
|
||||
KDATW: equ 116EH
|
||||
KTBL: equ 0BEAH
|
||||
KTBLC: equ 0CDAH
|
||||
KTBLG: equ 0C6AH
|
||||
KTBLGS: equ 0CA2H
|
||||
KTBLS: equ 0C32H
|
||||
L0270: equ 270H
|
||||
L028F: equ 28FH
|
||||
L029A: equ 29AH
|
||||
L02C4: equ 2C4H
|
||||
L02D5: equ 2D5H
|
||||
L02DB: equ 2DBH
|
||||
L0323: equ 323H
|
||||
L0336: equ 336H
|
||||
L03D5: equ 3D5H
|
||||
L041D: equ 41DH
|
||||
L041F: equ 41FH
|
||||
L0434: equ 434H
|
||||
L0444: equ 444H
|
||||
L045E: equ 45EH
|
||||
L0464: equ 464H
|
||||
L0485: equ 485H
|
||||
L048F: equ 48FH
|
||||
L049E: equ 49EH
|
||||
L04BB: equ 4BBH
|
||||
L04BD: equ 4BDH
|
||||
L04CB: equ 4CBH
|
||||
L04DD: equ 4DDH
|
||||
L0505: equ 505H
|
||||
L050A: equ 50AH
|
||||
L0510: equ 510H
|
||||
L052A: equ 52AH
|
||||
L0551: equ 551H
|
||||
L0552: equ 552H
|
||||
L0561: equ 561H
|
||||
L0563: equ 563H
|
||||
L056C: equ 56CH
|
||||
L0570: equ 570H
|
||||
L0572: equ 572H
|
||||
L06B1: equ 6B1H
|
||||
L06E7: equ 6E7H
|
||||
L06F0: equ 6F0H
|
||||
L0705: equ 705H
|
||||
L0717: equ 717H
|
||||
L071A: equ 71AH
|
||||
L0720: equ 720H
|
||||
L072F: equ 72FH
|
||||
L0733: equ 733H
|
||||
L0737: equ 737H
|
||||
L073E: equ 73EH
|
||||
L0743: equ 743H
|
||||
L0759: equ 759H
|
||||
L075B: equ 75BH
|
||||
L0760: equ 760H
|
||||
L0762: equ 762H
|
||||
L0767: equ 767H
|
||||
L076D: equ 76DH
|
||||
L077A: equ 77AH
|
||||
L078E: equ 78EH
|
||||
L0796: equ 796H
|
||||
L079C: equ 79CH
|
||||
L0917: equ 917H
|
||||
L091B: equ 91BH
|
||||
L098C: equ 98CH
|
||||
L09AB: equ 9ABH
|
||||
L09B9: equ 9B9H
|
||||
L09C7: equ 9C7H
|
||||
L09E2: equ 9E2H
|
||||
L09E8: equ 9E8H
|
||||
L0D27: equ 0D27H
|
||||
L0D2B: equ 0D2BH
|
||||
L0D37: equ 0D37H
|
||||
L0D3E: equ 0D3EH
|
||||
L0D57: equ 0D57H
|
||||
L0D80: equ 0D80H
|
||||
L0D89: equ 0D89H
|
||||
L0D90: equ 0D90H
|
||||
L0F13: equ 0F13H
|
||||
LETNL: equ 6H
|
||||
LOAD: equ 0D9H
|
||||
LOCK: equ 88BH
|
||||
M?TBL: equ 241H
|
||||
MANG: equ 1173H
|
||||
MANGE: equ 1179H
|
||||
MELDY: equ 30H
|
||||
MGP.D: equ 29DH
|
||||
MGP.I: equ 283H
|
||||
MGPNT: equ 117CH
|
||||
MLD1: equ 192H
|
||||
MLD1A: equ 1B6H
|
||||
MLD2: equ 1C6H
|
||||
MLD2A: equ 1C8H
|
||||
MLD3: equ 1CEH
|
||||
MLD4: equ 1D2H
|
||||
MLD5: equ 1D5H
|
||||
MLDSP: equ 2BEH
|
||||
MLDST: equ 2ABH
|
||||
MONIT: equ 0H
|
||||
MOT1: equ 6A8H
|
||||
MOT2: equ 6AFH
|
||||
MOT4: equ 6B9H
|
||||
MOT5: equ 6D8H
|
||||
MOT7: equ 6B7H
|
||||
MOT8: equ 6D0H
|
||||
MOT9: equ 6D7H
|
||||
MOTOR: equ 6A3H
|
||||
MSG: equ 15H
|
||||
MSG1: equ 896H
|
||||
MSG?2: equ 0F7H
|
||||
MSG?3: equ 100H
|
||||
MSG?7: equ 467H
|
||||
MSGE1: equ 118H
|
||||
MSGX: equ 18H
|
||||
MSGX1: equ 8A4H
|
||||
MSGX2: equ 8A7H
|
||||
MSG_1: equ 0D9EH
|
||||
MSG_2: equ 0DA0H
|
||||
MSG_3: equ 6F4H
|
||||
MSTA: equ 44H
|
||||
MSTOP: equ 700H
|
||||
MSTP: equ 47H
|
||||
MTBL: equ 229H
|
||||
NAME: equ 10F1H
|
||||
NL: equ 9H
|
||||
NOADD: equ 3E2H
|
||||
OCTV: equ 11A0H
|
||||
ONP1A: equ 1E1H
|
||||
ONP2: equ 1EDH
|
||||
ONP2A: equ 1FAH
|
||||
ONP2B: equ 200H
|
||||
ONP2C: equ 216H
|
||||
ONP2D: equ 21BH
|
||||
ONPU: equ 1DDH
|
||||
ONTYO: equ 119FH
|
||||
OPTBL: equ 259H
|
||||
PAGETP: equ 117DH
|
||||
PBIAS: equ 117AH
|
||||
PRNT: equ 12H
|
||||
PRNT2: equ 967H
|
||||
PRNT2A: equ 968H
|
||||
PRNT3: equ 96CH
|
||||
PRNT4: equ 96FH
|
||||
PRNT4A: equ 979H
|
||||
PRNT5: equ 955H
|
||||
PRNTS: equ 0CH
|
||||
PRNTT: equ 0FH
|
||||
PRTHL: equ 3B8H
|
||||
PRTHX: equ 3C3H
|
||||
RATIO: equ 11A1H
|
||||
RBY1: equ 630H
|
||||
RBY2: equ 649H
|
||||
RBY3: equ 654H
|
||||
RBYTE: equ 624H
|
||||
RDDAT: equ 2AH
|
||||
RDINF: equ 27H
|
||||
RET3: equ 69FH
|
||||
REV: equ 0A17H
|
||||
REV1: equ 0A25H
|
||||
REV2: equ 0A28H
|
||||
REVFLG: equ 1190H
|
||||
ROL2: equ 0F68H
|
||||
ROLD: equ 0F59H
|
||||
ROLEND: equ 117FH
|
||||
ROLTOP: equ 117BH
|
||||
ROLU: equ 0F9FH
|
||||
ROLU1: equ 0FA9H
|
||||
ROLUP: equ 5E8H
|
||||
RYTHM: equ 2C8H
|
||||
SCROL: equ 0E1FH
|
||||
SCROL1: equ 0E32H
|
||||
SCROL2: equ 0E42H
|
||||
SCROL3: equ 0E55H
|
||||
SFTLK: equ 118FH
|
||||
SG: equ 0C1H
|
||||
SIZE: equ 1102H
|
||||
SPAGE: equ 1191H
|
||||
SPV: equ 10F0H
|
||||
SS: equ 89H
|
||||
SS1: equ 8BH
|
||||
ST1: equ 95H
|
||||
ST2: equ 0A3H
|
||||
START: equ 4AH
|
||||
STRGF: equ 1193H
|
||||
STRT1: equ 69H
|
||||
SUMDT: equ 1197H
|
||||
SWEP0: equ 0A76H
|
||||
SWEP01: equ 0A74H
|
||||
SWEP11: equ 0A8EH
|
||||
SWEP2: equ 0AACH
|
||||
SWEP3: equ 0A92H
|
||||
SWEP6: equ 0A62H
|
||||
SWEP7: equ 0AA5H
|
||||
SWEP8: equ 0AA0H
|
||||
SWEP9: equ 0A8AH
|
||||
SWPW: equ 1164H
|
||||
SWRK: equ 119DH
|
||||
TEMPW: equ 119EH
|
||||
TIMFG: equ 119CH
|
||||
TIMIN: equ 379H
|
||||
TIMRD: equ 3BH
|
||||
TIMST: equ 33H
|
||||
TM0: equ 66AH
|
||||
TM1: equ 673H
|
||||
TM2: equ 676H
|
||||
TM3: equ 689H
|
||||
TM4: equ 69FH
|
||||
TMARK: equ 658H
|
||||
TMCNT: equ 1195H
|
||||
TVF1: equ 5A0H
|
||||
TVF2: equ 5A6H
|
||||
TVF3: equ 5BAH
|
||||
TVRFY: equ 59BH
|
||||
VERFY: equ 2DH
|
||||
WRDAT: equ 24H
|
||||
WRINF: equ 21H
|
||||
XTEMP: equ 41H
|
||||
_BRK: equ 0BC5H
|
||||
7
software/asm/monitor_SA1510.asm
Normal file
7
software/asm/monitor_SA1510.asm
Normal file
@@ -0,0 +1,7 @@
|
||||
; Configurable parameters.
|
||||
COLW: EQU 40 ; Width of the display screen (ie. columns).
|
||||
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 "sa1510.asm"
|
||||
BIN
software/asm/monitor_SA1510.obj
Normal file
BIN
software/asm/monitor_SA1510.obj
Normal file
Binary file not shown.
394
software/asm/monitor_SA1510.sym
Normal file
394
software/asm/monitor_SA1510.sym
Normal file
@@ -0,0 +1,394 @@
|
||||
.CP1: equ 13AH
|
||||
.CR: equ 128H
|
||||
.CTBL: equ 168H
|
||||
.DSP03: equ 39DH
|
||||
.MANG: equ 0A2BH
|
||||
.MANG1: equ 0A4CH
|
||||
.MANG2: equ 3A6H
|
||||
.MANG3: equ 0A38H
|
||||
.MANG4: equ 0A45H
|
||||
.SCROL: equ 13DH
|
||||
?ADCN: equ 0BB9H
|
||||
?BEL: equ 2E5H
|
||||
?BELD: equ 0DB1H
|
||||
?BLNK: equ 0DA6H
|
||||
?BRK: equ 0D11H
|
||||
?CLER: equ 0FD8H
|
||||
?CLRFF: equ 0FDBH
|
||||
?DACN: equ 0BCEH
|
||||
?DINT: equ 0FDDH
|
||||
?DPCT: equ 0DDCH
|
||||
?DSP: equ 0DB5H
|
||||
?DSPA: equ 0D7CH
|
||||
?ER: equ 0CFH
|
||||
?FLAS: equ 9FFH
|
||||
?GET: equ 8B3H
|
||||
?GETL: equ 7A8H
|
||||
?KEY: equ 8CAH
|
||||
?KY1: equ 8D6H
|
||||
?KY10: equ 8EFH
|
||||
?KY11: equ 8EAH
|
||||
?KY2: equ 8F2H
|
||||
?KY3: equ 922H
|
||||
?KY4: equ 92FH
|
||||
?KY5: equ 91EH
|
||||
?KY6: equ 92AH
|
||||
?KY7: equ 93AH
|
||||
?KY9: equ 93FH
|
||||
?LOAD: equ 5F5H
|
||||
?LTNL: equ 980H
|
||||
?MLDY: equ 188H
|
||||
?MODE: equ 74DH
|
||||
?MSG: equ 893H
|
||||
?MSGX: equ 8A1H
|
||||
?NL: equ 97BH
|
||||
?PNT1: equ 0FB4H
|
||||
?PNT2: equ 0FCAH
|
||||
?PONT: equ 0FB1H
|
||||
?PRNT: equ 995H
|
||||
?PRT: equ 946H
|
||||
?PRTS: equ 993H
|
||||
?PRTT: equ 984H
|
||||
?RDD: equ 4EFH
|
||||
?RDI: equ 4CFH
|
||||
?RSTR: equ 0EE5H
|
||||
?RSTR1: equ 0EE6H
|
||||
?SAVE: equ 263H
|
||||
?SWEP: equ 0A50H
|
||||
?TEMP: equ 2ECH
|
||||
?TMR1: equ 361H
|
||||
?TMR1A: equ 364H
|
||||
?TMR2: equ 36BH
|
||||
?TMRD: equ 344H
|
||||
?TMST: equ 2FAH
|
||||
?VRFY: equ 575H
|
||||
?WRD: equ 470H
|
||||
?WRI: equ 436H
|
||||
ALPHA: equ 0EE1H
|
||||
ALPHI: equ 0EE2H
|
||||
AMPM: equ 119BH
|
||||
ASC: equ 3DAH
|
||||
ATBL: equ 0AB5H
|
||||
ATRB: equ 10F0H
|
||||
AUTCK: equ 9F1H
|
||||
AUTO2: equ 807H
|
||||
AUTO3: equ 7C4H
|
||||
AUTO5: equ 824H
|
||||
AUTOL: equ 810H
|
||||
AUTOL1: equ 812H
|
||||
BELL: equ 3EH
|
||||
BRKEY: equ 1EH
|
||||
BUFER: equ 11A3H
|
||||
CHGP1: equ 84BH
|
||||
CHGPA: equ 83EH
|
||||
CHGPK: equ 841H
|
||||
CHGPK1: equ 843H
|
||||
CLR8: equ 9E3H
|
||||
CLRS: equ 0EB3H
|
||||
CLRS1: equ 0ED1H
|
||||
COMNT: equ 1108H
|
||||
CR: equ 0F73H
|
||||
CR2: equ 0F8BH
|
||||
CR3: equ 0F99H
|
||||
CSMDT: equ 1199H
|
||||
CTBL: equ 0DFFH
|
||||
CURS1: equ 0E66H
|
||||
CURS2: equ 0E86H
|
||||
CURS3: equ 0E69H
|
||||
CURS4: equ 0E93H
|
||||
CURS5: equ 0EAAH
|
||||
CURS5A: equ 0E9FH
|
||||
CURS6: equ 0ED7H
|
||||
CURSD: equ 0E5DH
|
||||
CURSL: equ 0E95H
|
||||
CURSR: equ 0E7BH
|
||||
CURSU: equ 0E6EH
|
||||
CURSU1: equ 0E76H
|
||||
DACN1: equ 0BE3H
|
||||
DACN2: equ 0BDFH
|
||||
DACN3: equ 0BE0H
|
||||
DEL: equ 0EF2H
|
||||
DEL1: equ 0F0AH
|
||||
DEL2: equ 0F1DH
|
||||
DLY12: equ 0DA7H
|
||||
DLY12A: equ 0DAAH
|
||||
DLY3: equ 9A2H
|
||||
DMT: equ 857H
|
||||
DPCT1: equ 0DF9H
|
||||
DPRNT: equ 1194H
|
||||
DSP01: equ 0DC2H
|
||||
DSP02: equ 0D97H
|
||||
DSP04: equ 0D8DH
|
||||
DSPXY: equ 1171H
|
||||
DTADR: equ 1104H
|
||||
EDG1: equ 607H
|
||||
EDG1A: equ 60FH
|
||||
EDG2: equ 615H
|
||||
EDG3: equ 61DH
|
||||
EDGE: equ 601H
|
||||
EXADR: equ 1106H
|
||||
FD: equ 0C7H
|
||||
FD2: equ 0CAH
|
||||
FLAS1: equ 0A12H
|
||||
FLAS2: equ 0A0BH
|
||||
FLAS3: equ 0A0FH
|
||||
FLASH: equ 118EH
|
||||
FLSDT: equ 1192H
|
||||
GAPCK: equ 0FE2H
|
||||
GAPCK1: equ 0FEBH
|
||||
GAPCK2: equ 0FEDH
|
||||
GAPCK3: equ 0FFDH
|
||||
GETKY: equ 1BH
|
||||
GETL: equ 3H
|
||||
GETL0: equ 7ACH
|
||||
GETL0A: equ 7AFH
|
||||
GETL0B: equ 7B6H
|
||||
GETL0C: equ 7BEH
|
||||
GETL0D: equ 7C5H
|
||||
GETL1: equ 81AH
|
||||
GETL2: equ 803H
|
||||
GETL3: equ 85BH
|
||||
GETL5: equ 839H
|
||||
GETL6: equ 865H
|
||||
GETL6A: equ 86CH
|
||||
GETL6B: equ 878H
|
||||
GETLA: equ 886H
|
||||
GETLB: equ 863H
|
||||
GETLC: equ 84EH
|
||||
GETLD: equ 5E1H
|
||||
GETLR: equ 880H
|
||||
GOTO: equ 0BBH
|
||||
HEX: equ 3F9H
|
||||
HEX1: equ 3F2H
|
||||
HEX2: equ 3F5H
|
||||
HEXJ: equ 3E5H
|
||||
HLHEX: equ 410H
|
||||
HOM0: equ 409H
|
||||
HOM00: equ 0ED4H
|
||||
HOM1: equ 406H
|
||||
HOME: equ 3FBH
|
||||
HOOK: equ 128H
|
||||
IBUFE: equ 10F0H
|
||||
INST: equ 0F2DH
|
||||
INST1: equ 0F4FH
|
||||
INST1A: equ 0F37H
|
||||
INST2: equ 0F42H
|
||||
KANA: equ 0EEEH
|
||||
KANAF: equ 1170H
|
||||
KDATW: equ 116EH
|
||||
KTBL: equ 0BEAH
|
||||
KTBLC: equ 0CDAH
|
||||
KTBLG: equ 0C6AH
|
||||
KTBLGS: equ 0CA2H
|
||||
KTBLS: equ 0C32H
|
||||
L0270: equ 270H
|
||||
L028F: equ 28FH
|
||||
L029A: equ 29AH
|
||||
L02C4: equ 2C4H
|
||||
L02D5: equ 2D5H
|
||||
L02DB: equ 2DBH
|
||||
L0323: equ 323H
|
||||
L0336: equ 336H
|
||||
L03D5: equ 3D5H
|
||||
L041D: equ 41DH
|
||||
L041F: equ 41FH
|
||||
L0434: equ 434H
|
||||
L0444: equ 444H
|
||||
L045E: equ 45EH
|
||||
L0464: equ 464H
|
||||
L0485: equ 485H
|
||||
L048F: equ 48FH
|
||||
L049E: equ 49EH
|
||||
L04BB: equ 4BBH
|
||||
L04BD: equ 4BDH
|
||||
L04CB: equ 4CBH
|
||||
L04DD: equ 4DDH
|
||||
L0505: equ 505H
|
||||
L050A: equ 50AH
|
||||
L0510: equ 510H
|
||||
L052A: equ 52AH
|
||||
L0551: equ 551H
|
||||
L0552: equ 552H
|
||||
L0561: equ 561H
|
||||
L0563: equ 563H
|
||||
L056C: equ 56CH
|
||||
L0570: equ 570H
|
||||
L0572: equ 572H
|
||||
L06B1: equ 6B1H
|
||||
L06E7: equ 6E7H
|
||||
L06F0: equ 6F0H
|
||||
L0705: equ 705H
|
||||
L0717: equ 717H
|
||||
L071A: equ 71AH
|
||||
L0720: equ 720H
|
||||
L072F: equ 72FH
|
||||
L0733: equ 733H
|
||||
L0737: equ 737H
|
||||
L073E: equ 73EH
|
||||
L0743: equ 743H
|
||||
L0759: equ 759H
|
||||
L075B: equ 75BH
|
||||
L0760: equ 760H
|
||||
L0762: equ 762H
|
||||
L0767: equ 767H
|
||||
L076D: equ 76DH
|
||||
L077A: equ 77AH
|
||||
L078E: equ 78EH
|
||||
L0796: equ 796H
|
||||
L079C: equ 79CH
|
||||
L0917: equ 917H
|
||||
L091B: equ 91BH
|
||||
L098C: equ 98CH
|
||||
L09AB: equ 9ABH
|
||||
L09B9: equ 9B9H
|
||||
L09C7: equ 9C7H
|
||||
L09E2: equ 9E2H
|
||||
L09E8: equ 9E8H
|
||||
L0D27: equ 0D27H
|
||||
L0D2B: equ 0D2BH
|
||||
L0D37: equ 0D37H
|
||||
L0D3E: equ 0D3EH
|
||||
L0D57: equ 0D57H
|
||||
L0D80: equ 0D80H
|
||||
L0D89: equ 0D89H
|
||||
L0D90: equ 0D90H
|
||||
L0F13: equ 0F13H
|
||||
LETNL: equ 6H
|
||||
LOAD: equ 0D9H
|
||||
LOCK: equ 88BH
|
||||
M?TBL: equ 241H
|
||||
MANG: equ 1173H
|
||||
MANGE: equ 1179H
|
||||
MELDY: equ 30H
|
||||
MGP.D: equ 29DH
|
||||
MGP.I: equ 283H
|
||||
MGPNT: equ 117CH
|
||||
MLD1: equ 192H
|
||||
MLD1A: equ 1B6H
|
||||
MLD2: equ 1C6H
|
||||
MLD2A: equ 1C8H
|
||||
MLD3: equ 1CEH
|
||||
MLD4: equ 1D2H
|
||||
MLD5: equ 1D5H
|
||||
MLDSP: equ 2BEH
|
||||
MLDST: equ 2ABH
|
||||
MONIT: equ 0H
|
||||
MOT1: equ 6A8H
|
||||
MOT2: equ 6AFH
|
||||
MOT4: equ 6B9H
|
||||
MOT5: equ 6D8H
|
||||
MOT7: equ 6B7H
|
||||
MOT8: equ 6D0H
|
||||
MOT9: equ 6D7H
|
||||
MOTOR: equ 6A3H
|
||||
MSG: equ 15H
|
||||
MSG1: equ 896H
|
||||
MSG?2: equ 0F7H
|
||||
MSG?3: equ 100H
|
||||
MSG?7: equ 467H
|
||||
MSGE1: equ 118H
|
||||
MSGX: equ 18H
|
||||
MSGX1: equ 8A4H
|
||||
MSGX2: equ 8A7H
|
||||
MSG_1: equ 0D9EH
|
||||
MSG_2: equ 0DA0H
|
||||
MSG_3: equ 6F4H
|
||||
MSTA: equ 44H
|
||||
MSTOP: equ 700H
|
||||
MSTP: equ 47H
|
||||
MTBL: equ 229H
|
||||
NAME: equ 10F1H
|
||||
NL: equ 9H
|
||||
NOADD: equ 3E2H
|
||||
OCTV: equ 11A0H
|
||||
ONP1A: equ 1E1H
|
||||
ONP2: equ 1EDH
|
||||
ONP2A: equ 1FAH
|
||||
ONP2B: equ 200H
|
||||
ONP2C: equ 216H
|
||||
ONP2D: equ 21BH
|
||||
ONPU: equ 1DDH
|
||||
ONTYO: equ 119FH
|
||||
OPTBL: equ 259H
|
||||
PAGETP: equ 117DH
|
||||
PBIAS: equ 117AH
|
||||
PRNT: equ 12H
|
||||
PRNT2: equ 967H
|
||||
PRNT2A: equ 968H
|
||||
PRNT3: equ 96CH
|
||||
PRNT4: equ 96FH
|
||||
PRNT4A: equ 979H
|
||||
PRNT5: equ 955H
|
||||
PRNTS: equ 0CH
|
||||
PRNTT: equ 0FH
|
||||
PRTHL: equ 3B8H
|
||||
PRTHX: equ 3C3H
|
||||
RATIO: equ 11A1H
|
||||
RBY1: equ 630H
|
||||
RBY2: equ 649H
|
||||
RBY3: equ 654H
|
||||
RBYTE: equ 624H
|
||||
RDDAT: equ 2AH
|
||||
RDINF: equ 27H
|
||||
RET3: equ 69FH
|
||||
REV: equ 0A17H
|
||||
REV1: equ 0A25H
|
||||
REV2: equ 0A28H
|
||||
REVFLG: equ 1190H
|
||||
ROL2: equ 0F68H
|
||||
ROLD: equ 0F59H
|
||||
ROLEND: equ 117FH
|
||||
ROLTOP: equ 117BH
|
||||
ROLU: equ 0F9FH
|
||||
ROLU1: equ 0FA9H
|
||||
ROLUP: equ 5E8H
|
||||
RYTHM: equ 2C8H
|
||||
SCROL: equ 0E1FH
|
||||
SCROL1: equ 0E32H
|
||||
SCROL2: equ 0E42H
|
||||
SCROL3: equ 0E55H
|
||||
SFTLK: equ 118FH
|
||||
SG: equ 0C1H
|
||||
SIZE: equ 1102H
|
||||
SPAGE: equ 1191H
|
||||
SPV: equ 10F0H
|
||||
SS: equ 89H
|
||||
SS1: equ 8BH
|
||||
ST1: equ 95H
|
||||
ST2: equ 0A3H
|
||||
START: equ 4AH
|
||||
STRGF: equ 1193H
|
||||
STRT1: equ 69H
|
||||
SUMDT: equ 1197H
|
||||
SWEP0: equ 0A76H
|
||||
SWEP01: equ 0A74H
|
||||
SWEP11: equ 0A8EH
|
||||
SWEP2: equ 0AACH
|
||||
SWEP3: equ 0A92H
|
||||
SWEP6: equ 0A62H
|
||||
SWEP7: equ 0AA5H
|
||||
SWEP8: equ 0AA0H
|
||||
SWEP9: equ 0A8AH
|
||||
SWPW: equ 1164H
|
||||
SWRK: equ 119DH
|
||||
TEMPW: equ 119EH
|
||||
TIMFG: equ 119CH
|
||||
TIMIN: equ 379H
|
||||
TIMRD: equ 3BH
|
||||
TIMST: equ 33H
|
||||
TM0: equ 66AH
|
||||
TM1: equ 673H
|
||||
TM2: equ 676H
|
||||
TM3: equ 689H
|
||||
TM4: equ 69FH
|
||||
TMARK: equ 658H
|
||||
TMCNT: equ 1195H
|
||||
TVF1: equ 5A0H
|
||||
TVF2: equ 5A6H
|
||||
TVF3: equ 5BAH
|
||||
TVRFY: equ 59BH
|
||||
VERFY: equ 2DH
|
||||
WRDAT: equ 24H
|
||||
WRINF: equ 21H
|
||||
XTEMP: equ 41H
|
||||
_BRK: equ 0BC5H
|
||||
401
software/asm/monitor_mz-1r12.asm
Normal file
401
software/asm/monitor_mz-1r12.asm
Normal file
@@ -0,0 +1,401 @@
|
||||
; V1.00
|
||||
;
|
||||
; To compile use:
|
||||
;
|
||||
; GLASS Z80 Assembler
|
||||
;
|
||||
; java -jar ../tools/glass.jar mz-1r12.asm mz-1r12.obj mz-1r12.sym
|
||||
|
||||
|
||||
|
||||
LETNL EQU 00006h
|
||||
PRNT EQU 00012h
|
||||
MSG EQU 00015h
|
||||
GETKY EQU 0001Bh
|
||||
RDINF EQU 00027h
|
||||
RDDAT EQU 0002Ah
|
||||
ST1 EQU 000ADh
|
||||
QNL EQU 00918h
|
||||
|
||||
NAME EQU 010F1h
|
||||
SIZE EQU 01102h
|
||||
DTADR EQU 01104h
|
||||
COMNT EQU 01108h
|
||||
|
||||
; Macro to align boundaries.
|
||||
ALIGN: MACRO ?boundary, ?fill
|
||||
DS ?boundary - 1 - ($ + ?boundary - 1) % ?boundary, ?fill
|
||||
ENDM
|
||||
|
||||
ORG 0E800h
|
||||
|
||||
MZ1R12:
|
||||
NOP
|
||||
LD A,016h
|
||||
CALL PRNT
|
||||
CALL LETNL
|
||||
CALL LETNL
|
||||
ST1X:
|
||||
CALL LETNL
|
||||
CALL LETNL
|
||||
LD DE,LE83B ; 'PRESS R, W OR M'
|
||||
CALL MSG
|
||||
CALL LETNL
|
||||
CALL LETNL
|
||||
LD DE,LE85B ; 'R: READ S-RAM'
|
||||
CALL MSG
|
||||
CALL LETNL
|
||||
LD DE,LE877 ; 'W: WRITE S-RAM'
|
||||
CALL MSG
|
||||
CALL LETNL
|
||||
LD DE,LE893 ; 'M: MONITOR'
|
||||
CALL MSG
|
||||
CALL LETNL
|
||||
JR LE8AB
|
||||
|
||||
|
||||
LE83B: DB " P",005h,"RESS",005h," R , W ",005h,"OR",005h," M",00Dh
|
||||
LE85B: DB " R:",005h,"READ",005h," S-RAM",00Dh
|
||||
LE877: DB " W:",005h,"WRITE",005h," S-RAM",00Dh
|
||||
LE893: DB " M:",005h,"MONITOR",005h,00Dh
|
||||
|
||||
|
||||
LE8AB:
|
||||
NOP
|
||||
CALL GETKY
|
||||
CP 'M'
|
||||
JP Z,MON
|
||||
CP 'W'
|
||||
JP Z,LE96A
|
||||
CP 'R'
|
||||
JP Z,LE8C1
|
||||
JP NZ,LE8AB
|
||||
|
||||
LE8C1:
|
||||
NOP
|
||||
LD A,016h
|
||||
CALL PRNT
|
||||
CALL LETNL
|
||||
CALL LETNL
|
||||
CALL LETNL
|
||||
LD DE,LEB1B ; 'LOADING PROGRAM FROM S-RAM'
|
||||
CALL MSG
|
||||
CALL LETNL
|
||||
CALL LETNL
|
||||
CALL CHECK
|
||||
IN A,(0F8h) ; Counter reset
|
||||
IN A,(0F9h)
|
||||
LD C,A
|
||||
IN A,(0F9h)
|
||||
LD B,A
|
||||
IN A,(0F9h)
|
||||
LD L,A
|
||||
IN A,(0F9h)
|
||||
LD H,A
|
||||
IN A,(0F9h)
|
||||
LD E,A
|
||||
IN A,(0F9h)
|
||||
LD D,A
|
||||
PUSH DE
|
||||
LD D,B
|
||||
LD E,C
|
||||
IN A,(0F9h)
|
||||
LD C,A
|
||||
IN A,(0F9h)
|
||||
LD B,A
|
||||
IN A,(0F9h)
|
||||
PUSH BC
|
||||
PUSH DE
|
||||
PUSH HL
|
||||
LD C,0F9h
|
||||
LD A,E
|
||||
OR A
|
||||
JR Z,LE90A
|
||||
LD B,A
|
||||
LE908:
|
||||
INIR
|
||||
LE90A:
|
||||
LD B,000h
|
||||
DEC D
|
||||
JP P,LE908
|
||||
POP DE ; Data adr
|
||||
POP BC ; Size
|
||||
CALL SUM
|
||||
POP DE
|
||||
OR A
|
||||
SBC HL,DE
|
||||
JR NZ,LE956
|
||||
POP HL
|
||||
JP (HL)
|
||||
|
||||
|
||||
;
|
||||
; sum check
|
||||
;
|
||||
; IN BC=Size
|
||||
; DE=Data adr
|
||||
; EXIT HL=Check sum
|
||||
;
|
||||
SUM:
|
||||
PUSH BC
|
||||
PUSH DE
|
||||
EXX
|
||||
LD HL,00000h ; HL'= Check sum clr
|
||||
LD C,008h ; C' = Loop count
|
||||
EXX
|
||||
SUMCK1:
|
||||
LD A,B ; BC = Size
|
||||
OR C
|
||||
JR Z,SUMCK2
|
||||
LD A,(DE) ; DE = Data adrs
|
||||
EXX
|
||||
LD B,C ; BC'
|
||||
SUMCK3:
|
||||
RLCA
|
||||
JR NC,LE931
|
||||
INC HL ; HL' = Check sum data
|
||||
LE931:
|
||||
DJNZ SUMCK3
|
||||
EXX
|
||||
INC DE ; DE
|
||||
DEC BC ; BC
|
||||
JP SUMCK1
|
||||
SUMCK2:
|
||||
EXX
|
||||
POP DE
|
||||
POP BC
|
||||
RET
|
||||
|
||||
|
||||
|
||||
;
|
||||
; Information's sum check
|
||||
;
|
||||
CHECK:
|
||||
IN A,(0F8h) ; Counter reset
|
||||
LD BC,00800h ; B=Byte Counter C=Sum Counter
|
||||
CK1:
|
||||
IN A,(0F9h) ; Counter=Counter+1
|
||||
PUSH BC
|
||||
LD B,008h ; Bit Counter
|
||||
CK2:
|
||||
RLCA
|
||||
JR NC,LE94B
|
||||
INC C
|
||||
LE94B:
|
||||
DJNZ CK2
|
||||
LD A,C
|
||||
POP BC
|
||||
LD C,A
|
||||
DJNZ CK1
|
||||
IN A,(0F9h)
|
||||
CP C
|
||||
RET
|
||||
|
||||
|
||||
LE956:
|
||||
LD A,016h
|
||||
CALL PRNT
|
||||
CALL LETNL
|
||||
CALL LETNL
|
||||
LD DE,LEA8F ; 'CHECK SUM ERROR'
|
||||
CALL LEA3D
|
||||
JP ST1X
|
||||
|
||||
LE96A:
|
||||
LD A,016h
|
||||
CALL PRNT
|
||||
CALL LETNL
|
||||
CALL LETNL
|
||||
CALL LETNL
|
||||
LD DE,LEAAC ; 'S-RAM PROGRAMMING'
|
||||
CALL LEA36
|
||||
LD DE,LEACB ; 'SET MASTER TAPE PLAY'
|
||||
LD A,011h
|
||||
LD HL,0D8F0h
|
||||
CALL LEA4A
|
||||
CALL LETNL
|
||||
CALL LEA39
|
||||
CALL RDINF
|
||||
PUSH AF
|
||||
PUSH BC
|
||||
LD BC,(SIZE)
|
||||
LD A,07Fh
|
||||
CP B
|
||||
JR C,LE9A8
|
||||
JR NZ,LE9A4
|
||||
LD A,0F6h
|
||||
CP C
|
||||
JR C,LE9A8
|
||||
LE9A4:
|
||||
POP BC
|
||||
POP AF
|
||||
JR LE9AD
|
||||
LE9A8:
|
||||
POP BC
|
||||
POP AF
|
||||
JP LEA74
|
||||
|
||||
LE9AD:
|
||||
LD A,000h
|
||||
LD HL,0D0F0h
|
||||
CALL LEA4A
|
||||
LD A,071h
|
||||
LD HL,0D8F0h
|
||||
CALL LEA4A
|
||||
LD A,002h
|
||||
JP C,LEA42
|
||||
CALL LETNL
|
||||
LD DE,LEAF1 ; 'FOUND : '
|
||||
CALL LEA3D
|
||||
LD DE,NAME
|
||||
PUSH DE
|
||||
RST 018h
|
||||
CALL LETNL
|
||||
LD DE,LEB06 ; 'LOADING : '
|
||||
CALL LEA3D
|
||||
POP DE
|
||||
RST 018h
|
||||
;
|
||||
; Read data block
|
||||
;
|
||||
CALL RDDAT
|
||||
JR C,LEA42
|
||||
;
|
||||
; Counter reset
|
||||
;
|
||||
IN A,(0F8h)
|
||||
;
|
||||
; Sum check for data
|
||||
;
|
||||
LD DE,(DTADR)
|
||||
LD BC,(SIZE)
|
||||
PUSH DE
|
||||
PUSH BC
|
||||
CALL SUM
|
||||
LD (COMNT),HL
|
||||
;
|
||||
; Write information (8Byte)
|
||||
;
|
||||
LD HL,SIZE
|
||||
LD BC,008FAh ; B=Byte Counter
|
||||
PUSH HL
|
||||
PUSH BC
|
||||
OTIR
|
||||
POP BC
|
||||
POP HL
|
||||
;
|
||||
; Sum check for information block
|
||||
; AccCheck sum data
|
||||
;
|
||||
PUSH DE ; DE Size
|
||||
LD D,000h ; Sum Counter
|
||||
WCK1:
|
||||
PUSH BC
|
||||
LD B,008h
|
||||
LD A,(HL)
|
||||
WCK2:
|
||||
RLCA
|
||||
JR NC,WCK3
|
||||
INC D
|
||||
WCK3:
|
||||
DJNZ WCK2
|
||||
INC HL
|
||||
POP BC
|
||||
DJNZ WCK1
|
||||
LD A,D
|
||||
POP DE
|
||||
OUT (0FAh),A
|
||||
;
|
||||
; Write data block
|
||||
;
|
||||
POP DE ; DE Size
|
||||
POP HL ; HL Data adrs
|
||||
LD A,E
|
||||
OR A
|
||||
JR Z,LEA1C
|
||||
LD B,E
|
||||
LEA1A:
|
||||
OTIR
|
||||
LEA1C:
|
||||
LD B,000h
|
||||
DEC D
|
||||
JP P,LEA1A
|
||||
LD A,016h
|
||||
CALL PRNT
|
||||
CALL LETNL
|
||||
CALL LETNL
|
||||
LD DE,LEB8C ; 'WRITING S-RAM O.K.!'
|
||||
CALL MSG
|
||||
JP ST1X
|
||||
|
||||
|
||||
LEA36:
|
||||
CALL QNL
|
||||
LEA39:
|
||||
RST 018h
|
||||
JP QNL
|
||||
|
||||
LEA3D:
|
||||
CALL QNL
|
||||
RST 018h
|
||||
RET
|
||||
|
||||
LEA42:
|
||||
CP 002h
|
||||
JP Z,LEA60
|
||||
JP LE956
|
||||
|
||||
LEA4A:
|
||||
LD B,006h
|
||||
LEA4C:
|
||||
LD (HL),A
|
||||
INC HL
|
||||
DEC B
|
||||
JR NZ,LEA4C
|
||||
RET
|
||||
|
||||
MON:
|
||||
LD A,016h
|
||||
CALL PRNT
|
||||
LD DE,LEB3E ; '** MONITOR 1Z-009A **'
|
||||
CALL MSG
|
||||
JP ST1
|
||||
|
||||
LEA60:
|
||||
LD A,016h
|
||||
CALL PRNT
|
||||
CALL LETNL
|
||||
CALL LETNL
|
||||
LD DE,LEB77 ; 'BREAK !'
|
||||
CALL MSG
|
||||
JP ST1X
|
||||
|
||||
LEA74:
|
||||
LD DE,00000h
|
||||
LD (SIZE),DE
|
||||
LD A,016h
|
||||
CALL PRNT
|
||||
CALL LETNL
|
||||
CALL LETNL
|
||||
LD DE,LEBAD ; 'FILE IS TOO LONG'
|
||||
CALL MSG
|
||||
JP ST1X
|
||||
|
||||
|
||||
LEA8F: DB " C",005h,"HECK SUM ERROR",005h,00Dh
|
||||
LEAAC: DB " S-RAM ",005h,"PROGRAMMING",005h,00Dh
|
||||
LEACB: DB " S",005h,"ET MASTER TAPE",005h," ",07Fh,"P",005h,"LAY",005h," ",00Dh
|
||||
LEAF1: DB " F",005h,"OUND",005h," : ",00Dh
|
||||
LEB06: DB " L",005h,"OADING",005h,": ",00Dh
|
||||
LEB1B: DB " L",005h,"OADING PROGRAM FROM ",005h,"S-RAM",00Dh
|
||||
LEB3E: DB "** MONITOR 1Z-009A **",00Dh
|
||||
LEB56: DB " R",005h,"EADING",005h," S-RAM O.K.!",00Dh
|
||||
LEB77: DB " B",005h,"REAK",005h," !",00Dh
|
||||
LEB8C: DB " W",005h,"RITING",005h," S-RAM O.K.!",00Dh
|
||||
LEBAD: DB " F",005h,"ILE IS TOO LONG",005h,00Dh
|
||||
|
||||
; the following is only to get the original length of 4096 bytes
|
||||
|
||||
ALIGN 0F7FFh, 0FFh
|
||||
DB 0FFh
|
||||
BIN
software/asm/monitor_mz-1r12.obj
Normal file
BIN
software/asm/monitor_mz-1r12.obj
Normal file
Binary file not shown.
49
software/asm/monitor_mz-1r12.sym
Normal file
49
software/asm/monitor_mz-1r12.sym
Normal file
@@ -0,0 +1,49 @@
|
||||
CHECK: equ 0E93DH
|
||||
CK1: equ 0E942H
|
||||
CK2: equ 0E947H
|
||||
LE83B: equ 0E83BH
|
||||
LE85B: equ 0E85BH
|
||||
LE877: equ 0E877H
|
||||
LE893: equ 0E893H
|
||||
LE8AB: equ 0E8ABH
|
||||
LE8C1: equ 0E8C1H
|
||||
LE908: equ 0E908H
|
||||
LE90A: equ 0E90AH
|
||||
LE931: equ 0E931H
|
||||
LE94B: equ 0E94BH
|
||||
LE956: equ 0E956H
|
||||
LE96A: equ 0E96AH
|
||||
LE9A4: equ 0E9A4H
|
||||
LE9A8: equ 0E9A8H
|
||||
LE9AD: equ 0E9ADH
|
||||
LEA1A: equ 0EA1AH
|
||||
LEA1C: equ 0EA1CH
|
||||
LEA36: equ 0EA36H
|
||||
LEA39: equ 0EA39H
|
||||
LEA3D: equ 0EA3DH
|
||||
LEA42: equ 0EA42H
|
||||
LEA4A: equ 0EA4AH
|
||||
LEA4C: equ 0EA4CH
|
||||
LEA60: equ 0EA60H
|
||||
LEA74: equ 0EA74H
|
||||
LEA8F: equ 0EA8FH
|
||||
LEAAC: equ 0EAACH
|
||||
LEACB: equ 0EACBH
|
||||
LEAF1: equ 0EAF1H
|
||||
LEB06: equ 0EB06H
|
||||
LEB1B: equ 0EB1BH
|
||||
LEB3E: equ 0EB3EH
|
||||
LEB56: equ 0EB56H
|
||||
LEB77: equ 0EB77H
|
||||
LEB8C: equ 0EB8CH
|
||||
LEBAD: equ 0EBADH
|
||||
MON: equ 0EA52H
|
||||
MZ1R12: equ 0E800H
|
||||
ST1X: equ 0E80CH
|
||||
SUM: equ 0E91DH
|
||||
SUMCK1: equ 0E926H
|
||||
SUMCK2: equ 0E939H
|
||||
SUMCK3: equ 0E92DH
|
||||
WCK1: equ 0EA01H
|
||||
WCK2: equ 0EA05H
|
||||
WCK3: equ 0EA09H
|
||||
1483
software/asm/mz-1e14.asm
Normal file
1483
software/asm/mz-1e14.asm
Normal file
File diff suppressed because it is too large
Load Diff
661
software/asm/mz80kfdif.asm
Normal file
661
software/asm/mz80kfdif.asm
Normal file
@@ -0,0 +1,661 @@
|
||||
;
|
||||
; MZ-80K FDC ROM
|
||||
;
|
||||
ORG F000H
|
||||
F000 00 NOP
|
||||
F001 F3 DI
|
||||
F002 AF XOR A
|
||||
F003 329C11 LD (#119C),A ;clock off
|
||||
F006 3EC3 LD A,#C3 ;JP code for error trap
|
||||
F008 320B10 LD (#100B),A
|
||||
F00B 215AF0 LD HL,#F05A ;error can't boot
|
||||
F00E 220C10 LD (#100C),HL ;error trap
|
||||
F011 11F09F LD DE,#9FF0 ;transfer 9 bytes from
|
||||
F014 2187F0 LD HL,#F087 ;ROM to RAM for use
|
||||
;
|
||||
;IBT1
|
||||
;
|
||||
F017 010900 IBT1: LD BC,#0009 ;by (IX+D) in reader
|
||||
F01A EDB0 LDIR
|
||||
F01C CD0900 CALL CRLF ;NL
|
||||
F01F 117AF0 LD DE,MESS1
|
||||
F022 CD1500 CALL MESSAGE ;msg "BOOT DRIVE ?"
|
||||
F025 11009F LD DE,BUFF2
|
||||
F028 CD0300 CALL USER ;get line
|
||||
F02B 210C00 LD HL,#000C
|
||||
F02E 19 ADD HL,DE ;skip around msg
|
||||
F02F 7E LD A,(HL) ;pickup answer to prompt
|
||||
F030 FE0D CP #0D ;CR ?
|
||||
F032 2002 JR NZ,#F036 ;Z=CR assume drive 1
|
||||
F034 3E31 LD A,#31 ;ASCII for 1
|
||||
;
|
||||
;IBT2
|
||||
;
|
||||
F036 47 IBT2: LD B,A ;save driveno
|
||||
F037 E6F0 AND #F0 ;take ASCII and convert
|
||||
F039 FE30 CP #30 ;to numeric having
|
||||
F03B 20DF JR NZ,IBT1 ;checked >1 & <=4
|
||||
F03D 78 LD A,B ;get driveno
|
||||
F03E E60F AND #0F ;mask
|
||||
F040 3D DEC A ;-1 00-03
|
||||
F041 FE04 CP #04
|
||||
F043 30D7 JR NC,IBT1 ;dud key, >=4, try again
|
||||
F045 32F09F LD (#9FF0),A ;save drive no
|
||||
F048 321110 LD (#1011),A ;save drive no
|
||||
F04B DD21F09F LD IX,#9FF0 ;IX pointer to fdc parameters at 9FF0
|
||||
;ready for disk read
|
||||
F04F CD3BF1 CALL READER ;get boot records
|
||||
F052 3A0098 LD A,(#9800) ;1st byte of input buffer of boot records
|
||||
F055 FEC3 CP #C3 ;jump cmd?
|
||||
F057 CA0098 JP Z,#9800 ;yes, execute to 9800
|
||||
;
|
||||
;IBT3
|
||||
;
|
||||
F05A 31F010 IBT3: LD SP,#10F0 ;no, reset stack
|
||||
F05D CD0900 CALL CRLF ;NL
|
||||
F060 116CF0 LD DE,MESS2 ;msg can't boot
|
||||
F063 CD1500 CALL MESSAGE
|
||||
F066 CDA7F0 CALL MOTOFF ;motor off
|
||||
F069 C38200 JP MAINLP ;warm start, ret to monitor
|
||||
;
|
||||
;MESS2
|
||||
;
|
||||
F06C 45523A43 MESS2: DB "ER:CAN'T BOOT"
|
||||
F070 414E2754
|
||||
F074 20424F4F
|
||||
F078 54
|
||||
F079 0D DB 0DH
|
||||
;
|
||||
;MESS1
|
||||
;
|
||||
F07A 424F4F54 DB "BOOT DRIVE ?"
|
||||
F07E 20445249
|
||||
F082 5645203F
|
||||
F086 0D DB 0DH
|
||||
;
|
||||
;DDATA
|
||||
;fdc parameters
|
||||
;
|
||||
F087 00 DB 00H ;drive no-1
|
||||
F088 00 DB 00H ;trk*2 remainder = head
|
||||
F089 01 DB 01H ;sector no (range: 01 - 10)
|
||||
F08A 00 DB 00H ;$80 = add 1 record to read to (F08B)
|
||||
F08B 0700 DB 07H ;07H = 07*2 = 14 sectors to read, add 1 if (F08A = $80)
|
||||
F08D 0098 DB 00H,98H ;9800H = load addr.
|
||||
F08F 00 DB 00H ;no meaning
|
||||
;
|
||||
;MOTON
|
||||
;
|
||||
F090 C5 MOTON: PUSH BC ;starts motors
|
||||
F091 01F808 LD BC,#08F8
|
||||
F094 ED78 IN A,(C) ;start motor
|
||||
F096 010000 LD BC,#0000
|
||||
;
|
||||
;WAIT1
|
||||
;
|
||||
F099 0B WAIT1: DEC BC ;wait for motor to
|
||||
F09A 00 NOP ;get up to speed
|
||||
F09B 00 NOP
|
||||
F09C 78 LD A,B
|
||||
F09D B1 OR C
|
||||
F09E 20F9 JR NZ,WAIT1
|
||||
F0A0 3E01 LD A,#01
|
||||
F0A2 320210 LD (MOTFLG),A ;01=on 00=off
|
||||
F0A5 C1 POP BC
|
||||
F0A6 C9 RET
|
||||
;
|
||||
;MOTOFF
|
||||
;
|
||||
F0A7 C5 MOTOFF: PUSH BC ;stop motors
|
||||
F0A8 CDAEF1 CALL LNGDEL ;timed wait
|
||||
F0AB 01F800 LD BC,#00F8
|
||||
F0AE ED78 IN A,(C)
|
||||
F0B0 C1 POP BC
|
||||
F0B1 C9 RET
|
||||
;
|
||||
;SKZERO
|
||||
;
|
||||
F0B2 CDBDF0 SKZERO: CALL DREADY ;seek track 0
|
||||
F0B5 AF XOR A
|
||||
F0B6 D3F9 OUT (#F9),A ;clear track reg
|
||||
F0B8 320010 LD (#1000),A
|
||||
F0BB D3FA OUT (#FA),A ;send seek zero code
|
||||
;
|
||||
;DREADY
|
||||
;
|
||||
F0BD C5 DREADY: PUSH BC
|
||||
F0BE 010000 LD BC,#0000
|
||||
;
|
||||
;DRY1
|
||||
;
|
||||
F0C1 DBF9 DRY1: IN A,(#F9) ;get DRDY, CRDY, RQM
|
||||
F0C3 E603 AND #03 ;leave DRDY, CRDY
|
||||
;
|
||||
;DRY2
|
||||
;
|
||||
F0C5 FE02 DRY2: CP #02 ;wait for DRDY & CRDY
|
||||
F0C7 2002 JR NZ,WAIT2 ;no, =03
|
||||
F0C9 C1 POP BC ;yes, =02
|
||||
F0CA C9 RET
|
||||
;
|
||||
;WAIT2
|
||||
;
|
||||
F0CB 0B WAIT2: DEC BC
|
||||
F0CC 78 LD A,B
|
||||
F0CD B1 OR C
|
||||
F0CE 20F1 JR NZ,DRY1
|
||||
F0D0 C1 POP BC
|
||||
F0D1 3E32 LD A,#32
|
||||
F0D3 320810 LD (#1008),A ;error 40 (not found)
|
||||
F0D6 C30B10 JP #100B ;error can't boot
|
||||
;
|
||||
;STATUS
|
||||
;
|
||||
F0D9 DBFA STATUS: IN A,(#FA) ;read status
|
||||
F0DB E6F0 AND #F0
|
||||
F0DD 07 RLCA
|
||||
F0DE 30F9 JR NC,STATUS ;wait for CRDY
|
||||
F0E0 E6F0 AND #F0 ;mask leave CRDY, S1, S2, S3
|
||||
F0E2 0F RRCA ;move right until S§
|
||||
F0E3 0F RRCA ;is in B0
|
||||
F0E4 0F RRCA
|
||||
F0E5 0F RRCA
|
||||
F0E6 B7 OR A ;clear flags
|
||||
F0E7 C8 RET Z ;Z=ok
|
||||
F0E8 FE0C CP #0C ;0C=drive not ready etc.
|
||||
F0EA 2004 JR NZ,STS1
|
||||
F0EC 3E32 LD A,#32 ;error code 40 (not found)
|
||||
F0EE 180A JR STS3
|
||||
;
|
||||
STS1
|
||||
;
|
||||
F0F0 FE04 STS1: CP #04 ;04=ID not found
|
||||
F0F2 2004 JR NZ,STS2
|
||||
F0F4 3E36 LD A,#36 ;error code 54 (unformat error)
|
||||
F0F6 1802 JR STS3
|
||||
;
|
||||
;STS2
|
||||
;
|
||||
F0F8 3E29 STS2: LD A,#29
|
||||
F0FA 320810 LD (#1008),A ;error code 41 disk hw error
|
||||
F0FD 37 SCF
|
||||
F0FE C9 RET
|
||||
;
|
||||
;PRMDRV
|
||||
;
|
||||
F0FF C5 PRMDRV: PUSH BC ;prime drive
|
||||
F100 E5 PUSH HL
|
||||
F101 CD90F0 CALL MOTON
|
||||
F104 DD7E00 LD A,(IX+#00) ;get drive no-1
|
||||
F107 E603 AND #03 ;form drive code
|
||||
F109 F61C OR #1C ;set TND, MOTOR, SELECT BIT
|
||||
F10B 320110 LD (#1001),A ;keep drive code
|
||||
F10E E60F AND #0F ;mask out TND
|
||||
F110 47 LD B,A
|
||||
F111 0EF8 LD C,#F8
|
||||
F113 ED60 IN H,(C) ;select drive
|
||||
F115 3E32 LD A,#32
|
||||
;
|
||||
;PRM1
|
||||
;
|
||||
F117 CDAEF1 PRM1: CALL LNGDEL ;wait for head
|
||||
F11A 3D DEC A :to load
|
||||
F11B 20FA JR NZ,PRM1
|
||||
F11D 010000 LD BC,#0000
|
||||
;
|
||||
;PRM2
|
||||
;
|
||||
F120 DBF9 PRM2: IN A,(#F9) ;get DRDY, CRDY, RQM
|
||||
F122 E607 AND #07 ;mask out RUBBISH
|
||||
F124 FE06 CP #06 ;DRDY & CRDY ?
|
||||
F126 2006 JR NZ,PRM3 ;NZ=no, keep trying
|
||||
F128 CDB2F0 CALL SKZERO
|
||||
F12B E1 POP HL
|
||||
F12C C1 POP BC
|
||||
F12D C9 RET ;correct exit
|
||||
;
|
||||
;PRM3
|
||||
;
|
||||
F12E 0B PRM3: DEC BC
|
||||
F12F 78 LD A,B
|
||||
F130 B1 OR C
|
||||
F131 20ED JR NZ,PRM2
|
||||
F133 3E32 LD A,#32
|
||||
F135 320810 LD (#1008),A ;error 40 (not found)
|
||||
F138 C30B10 JP #100B ;abort; error can't boot
|
||||
;
|
||||
;READER
|
||||
;
|
||||
F13B 3E0A READER: LD A,#0A ;no. of tries
|
||||
F13D 320710 LD (#1007),A
|
||||
;
|
||||
;RDR1
|
||||
;
|
||||
F140 CDFFF0 RDR1: CALL PRMDRV
|
||||
F143 3A0110 LD A,(#1001) ;keep drive in use
|
||||
F146 47 LD B,A
|
||||
F147 0EF8 LD C,#F8
|
||||
F149 D9 EXX ;save all regs
|
||||
F14A 0EFB LD C,#FB ;port fb??
|
||||
F14C DD5E03 LD E,(IX+#03) ;no meaning
|
||||
F14F DD5604 LD D,(IX+#04) ;get half of numbers to read (7)
|
||||
F152 CB13 RL E ;B7 to carry
|
||||
F154 CB12 RL D ;double number of sectors (14), add carry
|
||||
F156 1E03 LD E,#03 ;no meaning
|
||||
F158 DD6E05 LD L,(IX+#05) ;get loading address lo
|
||||
F15B DD6606 LD H,(IX+#06) ;hi into HL
|
||||
F15E CDBDF0 CALL DREADY
|
||||
F161 AF XOR A ;no meaning
|
||||
F162 DD7E01 LD A,(IX+#01) ;get track to read
|
||||
F165 1F RRA ;divide by 2, remainder to carry = head no.
|
||||
F166 D3F9 OUT (#F9),A ;send track to FDC
|
||||
F168 DD7E02 LD A,(IX+#02) ;sector number
|
||||
F16B 3002 JR NC,RDR2
|
||||
F16D F680 OR #80 ;odds/evens for side code
|
||||
;
|
||||
;RDR2
|
||||
;
|
||||
F16F D3F8 RDR2: OUT (#F8),A ;send sect+side
|
||||
F171 CDA6F1 CALL SHTDEL ;short delay
|
||||
F174 3E70 LD A,#70 ;seek & read code
|
||||
F176 320010 LD (#1000),A ;keep it
|
||||
F179 F3 DI
|
||||
F17A D3FA OUT (#FA),A ;send seek & read code to FDC
|
||||
;
|
||||
;RDR3
|
||||
;
|
||||
F17C 0680 RDR3: LD B,#80 ;128 bytes/sector
|
||||
;
|
||||
;RDR4
|
||||
;
|
||||
F17E DBF9 RDR4: IN A,(#F9) ;get DRDY, CRDY, RQM
|
||||
F180 A3 AND E ;mask with 03
|
||||
F181 28FB JR Z,RDR4 ;wait for either CRDY/RQM
|
||||
F183 0F RRCA ;RQM into carry
|
||||
F184 300C JR NC,RDR5 ;NC=no RQM
|
||||
F186 EDA2 INI ;get data. port FB to (HL), B=B-1
|
||||
F188 C27EF1 JP NZ,RDR4 ;do whole sector
|
||||
F18B 15 DEC D ;dec sector counter
|
||||
F18C C27CF1 JP NZ,RDR3 ;NZ=more to do
|
||||
F18F D9 EXX ;restore all regs
|
||||
F190 ED78 IN A,(C) ;send TND high
|
||||
;
|
||||
;RDR5
|
||||
;
|
||||
F192 CDD9F0 RDR5: CALL STATUS
|
||||
F195 D0 RET NC ;NC=good read
|
||||
F196 3A0710 LD A,(#1007)
|
||||
F199 3D DEC A ;A try gone
|
||||
F19A 320710 LD (#1007),A ;counter 10times
|
||||
F19D CA0B10 JP Z,#100B ;can't read at all abort
|
||||
F1A0 CDB2F0 CALL SKZERO
|
||||
F1A3 C340F1 JP RDR1
|
||||
;
|
||||
;SHTDEL
|
||||
;
|
||||
F1A6 F5 SHTDEL: PUSH AF
|
||||
F1A7 3E0A LD A,#0A
|
||||
;
|
||||
;SDY1
|
||||
;
|
||||
F1A9 3D SDY1: DEC A
|
||||
F1AA 20FD JR NZ,SDY1
|
||||
F1AC F1 POP AF
|
||||
F1AD C9 RET
|
||||
;
|
||||
;LNGDEL
|
||||
;
|
||||
F1AE F5 LNGDEL: PUSH AF ;long delay
|
||||
F1AF 3E0A LD A,#0A
|
||||
;
|
||||
;LDY1
|
||||
;
|
||||
F1B1 CDA6F1 LDY1: CALL SHTDEL
|
||||
F1B4 3D DEC A
|
||||
F1B5 20FA JR NZ,LDY1
|
||||
F1B7 F1 POP AF
|
||||
F1B8 C9 RET
|
||||
|
||||
CRLF: EQU 00009H
|
||||
MESSAGE: EQU 00015H
|
||||
BUFF2: EQU 9F00H
|
||||
USER: EQU 00003H
|
||||
MAINLP: EQU 00082H
|
||||
MOTFLG: EQU 1002H
|
||||
END
|
||||
|
||||
;
|
||||
;no meaning !!
|
||||
;
|
||||
F1B9 13 INC DE
|
||||
F1BA 1B DEC DE
|
||||
F1BB 72 LD (HL),D
|
||||
F1BC DE42 SBC A,#42
|
||||
F1BE FB EI
|
||||
F1BF 2F CPL
|
||||
F1C0 58 LD E,B
|
||||
F1C1 43 LD B,E
|
||||
F1C2 7C LD A,H
|
||||
F1C3 52 LD D,D
|
||||
F1C4 3023 JR NC,#F1E9 ; (35)
|
||||
F1C6 71 LD (HL),C
|
||||
F1C7 42 LD B,D
|
||||
F1C8 1020 DJNZ #F1EA ; (32)
|
||||
F1CA 74 LD (HL),H
|
||||
F1CB 40 LD B,B
|
||||
F1CC 43 LD B,E
|
||||
F1CD 03 INC BC
|
||||
F1CE 51 LD D,C
|
||||
F1CF 00 NOP
|
||||
F1D0 3C INC A
|
||||
F1D1 42 LD B,D
|
||||
F1D2 D8 RET C
|
||||
F1D3 60 LD H,B
|
||||
F1D4 FB EI
|
||||
F1D5 09 ADD HL,BC
|
||||
F1D6 FC402C CALL M,#2C40
|
||||
F1D9 80 ADD A,B
|
||||
F1DA 79 LD A,C
|
||||
F1DB 2A4940 LD HL,(#4049)
|
||||
F1DE 4D LD C,L
|
||||
F1DF EE3E XOR #3E
|
||||
F1E1 B2 OR D
|
||||
F1E2 1EA2 LD E,#A2
|
||||
F1E4 58 LD E,B
|
||||
F1E5 02 LD (BC),A
|
||||
F1E6 58 LD E,B
|
||||
F1E7 12 LD (DE),A
|
||||
F1E8 02 LD (BC),A
|
||||
F1E9 43 LD B,E
|
||||
F1EA 02 LD (BC),A
|
||||
F1EB 220002 LD (#0200),HL
|
||||
F1EE 2D DEC L
|
||||
F1EF 4B LD C,E
|
||||
F1F0 5A LD E,D
|
||||
F1F1 0A LD A,(BC)
|
||||
F1F2 40 LD B,B
|
||||
F1F3 4A LD C,D
|
||||
F1F4 13 INC DE
|
||||
F1F5 42 LD B,D
|
||||
F1F6 45 LD B,L
|
||||
F1F7 0A LD A,(BC)
|
||||
F1F8 5B LD E,E
|
||||
F1F9 6E LD L,(HL)
|
||||
F1FA 6A LD L,D
|
||||
F1FB 4E LD C,(HL)
|
||||
F1FC 4E LD C,(HL)
|
||||
F1FD 4E LD C,(HL)
|
||||
F1FE 5D LD E,L
|
||||
F1FF 7E LD A,(HL)
|
||||
F200 3011 JR NC,#F213 ; (17)
|
||||
F202 DD300E JR NC,#F213 ; (14)
|
||||
F205 067E LD B,#7E
|
||||
F207 FE3A CP #3A
|
||||
F209 CAC221 JP Z,#21C2
|
||||
F20C 12 LD (DE),A
|
||||
F20D 23 INC HL
|
||||
F20E 13 INC DE
|
||||
F20F 0D DEC C
|
||||
F210 C20622 JP NZ,#2206
|
||||
F213 C3C221 JP #21C2
|
||||
|
||||
F216 3AB830 LD A,(#30B8)
|
||||
F219 FEB1 CP #B1
|
||||
F21B CA4522 JP Z,#2245
|
||||
F21E 2A5030 LD HL,(#3050)
|
||||
F221 CD1E20 CALL #201E
|
||||
F224 7E LD A,(HL)
|
||||
F225 FE27 CP #27
|
||||
F227 CA5722 JP Z,#2257
|
||||
F22A 3E84 LD A,#84
|
||||
F22C 327630 LD (#3076),A
|
||||
F22F 3E02 LD A,#02
|
||||
F231 327730 LD (#3077),A
|
||||
F234 CDCA13 CALL #13CA
|
||||
F237 D24A22 JP NC,#224A
|
||||
F23A 2E00 LD L,#00
|
||||
F23C 3EB2 LD A,#B2
|
||||
F23E 32C830 LD (#30C8),A
|
||||
F241 7D LD A,L
|
||||
F242 326F30 LD (#306F),A
|
||||
F245 3E01 LD A,#01
|
||||
F247 C3C321 JP #21C3
|
||||
|
||||
F24A 3ABE30 LD A,(#30BE)
|
||||
F24D FEC5 CP #C5
|
||||
F24F C23C22 JP NZ,#223C
|
||||
F252 3EB0 LD A,#B0
|
||||
F254 C33E22 JP #223E
|
||||
|
||||
F257 23 INC HL
|
||||
F258 7E LD A,(HL)
|
||||
F259 E67F AND #7F
|
||||
F25B 6F LD L,A
|
||||
F25C C33C22 JP #223C
|
||||
|
||||
F25F 3AB830 LD A,(#30B8)
|
||||
F262 FEB1 CP #B1
|
||||
F264 CA9022 JP Z,#2290
|
||||
F267 2A5030 LD HL,(#3050)
|
||||
F26A CD1E20 CALL #201E
|
||||
F26D 3E80 LD A,#80
|
||||
F26F 327630 LD (#3076),A
|
||||
F272 3E01 LD A,#01
|
||||
F274 327730 LD (#3077),A
|
||||
F277 CDCA13 CALL #13CA
|
||||
F27A D29522 JP NC,#2295
|
||||
F27D 210000 LD HL,#0000
|
||||
F280 3E82 LD A,#82
|
||||
F282 32C830 LD (#30C8),A
|
||||
F285 226330 LD (#3063),HL
|
||||
F288 116F30 LD DE,#306F
|
||||
F28B 7C LD A,H
|
||||
F28C 12 LD (DE),A
|
||||
F28D 13 INC DE
|
||||
F28E 7D LD A,L
|
||||
F28F 12 LD (DE),A
|
||||
F290 3E02 LD A,#02
|
||||
F292 C3C321 JP #21C3
|
||||
|
||||
F295 3ABE30 LD A,(#30BE)
|
||||
F298 FEC5 CP #C5
|
||||
F29A C2A222 JP NZ,#22A2
|
||||
F29D 3EB1 LD A,#B1
|
||||
F29F C38222 JP #2282
|
||||
|
||||
F2A2 CDEA1A CALL #1AEA
|
||||
F2A5 C38222 JP #2282
|
||||
|
||||
F2A8 2A5030 LD HL,(#3050)
|
||||
F2AB CD1E20 CALL #201E
|
||||
F2AE 116F30 LD DE,#306F
|
||||
F2B1 0600 LD B,#00
|
||||
F2B3 0E04 LD C,#04
|
||||
F2B5 7E LD A,(HL)
|
||||
F2B6 23 INC HL
|
||||
F2B7 FE27 CP #27
|
||||
F2B9 C2F822 JP NZ,#22F8
|
||||
F2BC 7E LD A,(HL)
|
||||
F2BD FE27 CP #27
|
||||
F2BF C2DE22 JP NZ,#22DE
|
||||
F2C2 3AB830 LD A,(#30B8)
|
||||
F2C5 FEB1 CP #B1
|
||||
F2C7 CAD522 JP Z,#22D5
|
||||
F2CA AF XOR A
|
||||
F2CB 21C830 LD HL,#30C8
|
||||
F2CE B8 CP B
|
||||
F2CF CAD922 JP Z,#22D9
|
||||
F2D2 3EB3 LD A,#B3
|
||||
F2D4 77 LD (HL),A
|
||||
F2D5 78 LD A,B
|
||||
F2D6 C3C321 JP #21C3
|
||||
|
||||
F2D9 3EB4 LD A,#B4
|
||||
F2DB C3D422 JP #22D4
|
||||
|
||||
F2DE FE8D CP #8D
|
||||
F2E0 CAF822 JP Z,#22F8
|
||||
F2E3 FE0A CP #0A
|
||||
F2E5 CAF822 JP Z,#22F8
|
||||
F2E8 E67F AND #7F
|
||||
F2EA 12 LD (DE),A
|
||||
F2EB 23 INC HL
|
||||
F2EC 13 INC DE
|
||||
F2ED 04 INC B
|
||||
F2EE 0D DEC C
|
||||
F2EF C2BC22 JP NZ,#22BC
|
||||
F2F2 117A30 LD DE,#307A
|
||||
F2F5 C3BC22 JP #22BC
|
||||
|
||||
F2F8 3E53 LD A,#53
|
||||
F2FA CD111C CALL #1C11
|
||||
F2FD C3C222 JP #22C2
|
||||
|
||||
F300 CDE511 CALL #11E5
|
||||
F303 CD0C20 CALL #200C
|
||||
F306 FE3A CP #3A
|
||||
F308 C26423 JP NZ,#2364
|
||||
F30B 2A5030 LD HL,(#3050)
|
||||
F30E CD1E20 CALL #201E
|
||||
F311 3E80 LD A,#80
|
||||
F313 327630 LD (#3076),A
|
||||
F316 3E02 LD A,#02
|
||||
F318 327730 LD (#3077),A
|
||||
F31B CDCA13 CALL #13CA
|
||||
F31E DA2E23 JP C,#232E
|
||||
F321 3ACC30 LD A,(#30CC)
|
||||
F324 FE01 CP #01
|
||||
F326 C23123 JP NZ,#2331
|
||||
F329 3ECC LD A,#CC
|
||||
F32B CD111C CALL #1C11
|
||||
F32E 210000 LD HL,#0000
|
||||
F331 3AB830 LD A,(#30B8)
|
||||
F334 FEB1 CP #B1
|
||||
F336 CA6E23 JP Z,#236E
|
||||
F339 FEB2 CP #B2
|
||||
F33B CAC221 JP Z,#21C2
|
||||
F33E 226330 LD (#3063),HL
|
||||
F341 3EA2 LD A,#A2
|
||||
F343 32C830 LD (#30C8),A
|
||||
F346 CDB51D CALL #1DB5
|
||||
F349 06DD LD B,#DD
|
||||
F34B 30CD JR NC,#F31A ; (-51)
|
||||
F34D E5 PUSH HL
|
||||
F34E 1111DD LD DE,#DD11
|
||||
F351 300E JR NC,#F361 ; (14)
|
||||
F353 067E LD B,#7E
|
||||
F355 FE3A CP #3A
|
||||
F357 CAC221 JP Z,#21C2
|
||||
F35A 12 LD (DE),A
|
||||
F35B 23 INC HL
|
||||
F35C 13 INC DE
|
||||
F35D 0D DEC C
|
||||
F35E C25423 JP NZ,#2354
|
||||
F361 C3C221 JP #21C2
|
||||
|
||||
F364 3E4E LD A,#4E
|
||||
F366 CD111C CALL #1C11
|
||||
F369 3EB4 LD A,#B4
|
||||
F36B C3BF21 JP #21BF
|
||||
|
||||
F36E EB EX DE,HL
|
||||
F36F 2A4D31 LD HL,(#314D)
|
||||
F372 2B DEC HL
|
||||
F373 2B DEC HL
|
||||
F374 2B DEC HL
|
||||
F375 72 LD (HL),D
|
||||
F376 23 INC HL
|
||||
F377 73 LD (HL),E
|
||||
F378 23 INC HL
|
||||
F379 3680 LD (HL),#80
|
||||
F37B C3C221 JP #21C2
|
||||
|
||||
F37E CC44A0 CALL Z,#A044
|
||||
F381 41 LD B,C
|
||||
F382 AC XOR H
|
||||
F383 2842 JR Z,#F3C7 ; (66)
|
||||
F385 C3A9F1 JP #F1A9
|
||||
|
||||
F388 0A LD A,(BC)
|
||||
F389 CC44A0 CALL Z,#A044
|
||||
F38C 41 LD B,C
|
||||
F38D AC XOR H
|
||||
F38E 2844 JR Z,#F3D4 ; (68)
|
||||
F390 C5 PUSH BC
|
||||
F391 A9 XOR C
|
||||
F392 F1 POP AF
|
||||
F393 1A LD A,(DE)
|
||||
F394 CC44A0 CALL Z,#A044
|
||||
F397 2842 JR Z,#F3DB ; (66)
|
||||
F399 C3A9AC JP #ACA9
|
||||
|
||||
F39C 41 LD B,C
|
||||
F39D F1 POP AF
|
||||
F39E 02 LD (BC),A
|
||||
F39F CC44A0 CALL Z,#A044
|
||||
F3A2 2844 JR Z,#F3E8 ; (68)
|
||||
F3A4 C5 PUSH BC
|
||||
F3A5 A9 XOR C
|
||||
F3A6 AC XOR H
|
||||
F3A7 41 LD B,C
|
||||
F3A8 F1 POP AF
|
||||
F3A9 12 LD (DE),A
|
||||
F3AA CC44A0 CALL Z,#A044
|
||||
F3AD 41 LD B,C
|
||||
F3AE AC XOR H
|
||||
F3AF C9 RET
|
||||
|
||||
F3B0 F2ED57 JP P,#57ED
|
||||
F3B3 CC44A0 CALL Z,#A044
|
||||
F3B6 41 LD B,C
|
||||
F3B7 AC XOR H
|
||||
F3B8 D2F2ED JP NC,#EDF2
|
||||
F3BB 5F LD E,A
|
||||
F3BC CC44A0 CALL Z,#A044
|
||||
F3BF C9 RET
|
||||
|
||||
F3C0 AC XOR H
|
||||
F3C1 41 LD B,C
|
||||
F3C2 F2ED47 JP P,#47ED
|
||||
F3C5 CC44A0 CALL Z,#A044
|
||||
F3C8 D2AC41 JP NC,#41AC
|
||||
F3CB F2ED4F JP P,#4FED
|
||||
F3CE CC44A0 CALL Z,#A044
|
||||
F3D1 53 LD D,E
|
||||
F3D2 50 LD D,B
|
||||
F3D3 AC XOR H
|
||||
F3D4 48 LD C,B
|
||||
F3D5 CCF1F9 CALL Z,#F9F1
|
||||
F3D8 CC44A0 CALL Z,#A044
|
||||
F3DB 53 LD D,E
|
||||
F3DC 50 LD D,B
|
||||
F3DD AC XOR H
|
||||
F3DE C9 RET
|
||||
|
||||
F3DF D8 RET C
|
||||
F3E0 F2DDF9 JP P,#F9DD
|
||||
F3E3 CC44A0 CALL Z,#A044
|
||||
F3E6 53 LD D,E
|
||||
F3E7 50 LD D,B
|
||||
F3E8 AC XOR H
|
||||
F3E9 C9 RET
|
||||
|
||||
F3EA 59 LD E,C
|
||||
F3EB F2FDF9 JP P,#F9FD
|
||||
F3EE 50 LD D,B
|
||||
F3EF 55 LD D,L
|
||||
F3F0 53 LD D,E
|
||||
F3F1 48 LD C,B
|
||||
F3F2 A0 AND B
|
||||
F3F3 42 LD B,D
|
||||
F3F4 C3F1C5 JP #C5F1
|
||||
|
||||
F3F7 50 LD D,B
|
||||
F3F8 55 LD D,L
|
||||
F3F9 53 LD D,E
|
||||
F3FA 48 LD C,B
|
||||
F3FB A0 AND B
|
||||
F3FC 44 LD B,H
|
||||
F3FD C5 PUSH BC
|
||||
F3FE F1 POP AF
|
||||
F3FF D5 PUSH DE
|
||||
620
software/asm/quickdisk_mz-1e05.asm
Normal file
620
software/asm/quickdisk_mz-1e05.asm
Normal file
@@ -0,0 +1,620 @@
|
||||
; V1.10
|
||||
;
|
||||
; To compile use:
|
||||
;
|
||||
; AS80 [1.31] - Assembler for 8080/8085/Z80 microprocessor.
|
||||
;
|
||||
; Available from:
|
||||
; - http://www.falstaff.demon.co.uk/cross.html
|
||||
; - ftp://ftp.simtel.net/pub/simtelnet/msdos/crossasm/as80_131.zip
|
||||
; - and many Simtel mirrors.
|
||||
;
|
||||
; as80 -i -l -n -x2 -v -z mz-1e05.asm
|
||||
|
||||
|
||||
|
||||
|
||||
;
|
||||
;----< MFM Minifloppy control >----
|
||||
;
|
||||
;
|
||||
; Call condition
|
||||
;
|
||||
; Case of disk initialize
|
||||
; Drive N = IX+0 (0 - 3)
|
||||
;
|
||||
;
|
||||
; Case of sequential read & write
|
||||
; Drive N = IX+0 (0 - 3)
|
||||
;
|
||||
; Sector addrs = IX+1,2 (0 - $045F) H C S
|
||||
; (0 - 1119) -> 70 x 16 sectors -> 2 x 35 x 16
|
||||
; Byte size = IX+3,4
|
||||
; Address = IX+5,6
|
||||
; Next track = IX+7
|
||||
; Next sector = IX+8
|
||||
; Start track = IX+9
|
||||
; Start sector = IX+10
|
||||
;
|
||||
;
|
||||
; I/O Port address
|
||||
;
|
||||
CR EQU 0D8h ; CommandRegister
|
||||
TR EQU 0D9h ; TrackRegister
|
||||
SCR EQU 0DAh ; SeCtorRegister
|
||||
DR EQU 0DBh ; DataRegister
|
||||
DM EQU 0DCh ; DriveMotor
|
||||
HS EQU 0DDh ; HeadSelect
|
||||
|
||||
|
||||
|
||||
TIMST EQU 00033h
|
||||
|
||||
;
|
||||
; Subroutine work
|
||||
;
|
||||
BPRO EQU 0CF00h
|
||||
BUF EQU 011A3h
|
||||
BPARA EQU BPRO - 23 ; BootPARAmeter
|
||||
|
||||
|
||||
CMD EQU BPARA + 11 ; CoMmanD
|
||||
MTFG EQU CMD + 1 ; MoTorFlaG
|
||||
CLBF0 EQU MTFG + 1
|
||||
CLBF1 EQU CLBF0 + 1
|
||||
CLBF2 EQU CLBF1 + 1
|
||||
CLBF3 EQU CLBF2 + 1
|
||||
VRFCNT EQU CLBF3 + 1 ; VeRiFyCouNT
|
||||
STAFG EQU VRFCNT + 1 ; STAtusFlaG
|
||||
|
||||
; Macro to align boundaries.
|
||||
ALIGN: MACRO ?boundary, ?fill
|
||||
DS ?boundary - 1 - ($ + ?boundary - 1) % ?boundary, ?fill
|
||||
ENDM
|
||||
|
||||
;
|
||||
;
|
||||
;--------< Ercode map >--------
|
||||
;
|
||||
; 50 : Not ready
|
||||
; 41 : Data error
|
||||
; Track 80 err
|
||||
; Write protect err
|
||||
; Seek err
|
||||
; CRC err
|
||||
; Lost data
|
||||
; 54 : Unformat
|
||||
; Recode not found
|
||||
; 56 : Invalid data
|
||||
;
|
||||
;
|
||||
|
||||
|
||||
ORG 0F000h
|
||||
|
||||
|
||||
MZ_1E05:
|
||||
NOP
|
||||
LD HL,000ADh
|
||||
JR L_F007
|
||||
FDX:
|
||||
EX (SP),HL
|
||||
L_F007:
|
||||
LD (BPARA + 21),HL
|
||||
XOR A
|
||||
LD DE,0
|
||||
CALL TIMST
|
||||
CALL FDCC ; FD i/o check
|
||||
JP NZ,NOTIO
|
||||
LD DE,BPARA ; destination address
|
||||
LD HL,BOOT ; source address
|
||||
LD BC,11 ; 11 bytes
|
||||
LDIR ; copy
|
||||
SJP:
|
||||
LD IX,BPARA
|
||||
CALL BREAD ; read from drive 0, sector 0,
|
||||
;
|
||||
LD HL,BPRO ; compare this address
|
||||
LD DE,IPLMC ; with the IPL MasterCode
|
||||
LD B,7 ; this are 7 bytes : 3,'IPLPRO'
|
||||
MCHECK:
|
||||
LD C,(HL)
|
||||
LD A,(DE)
|
||||
CP C
|
||||
JP NZ,MASTE ; not equal than MasterError
|
||||
INC HL
|
||||
INC DE
|
||||
DJNZ MCHECK
|
||||
; else Master was found
|
||||
LD DE,IPLM0 ; 'IPL IS LOADING'
|
||||
RST 018h
|
||||
LD DE,BPRO + 7 ; NAME
|
||||
RST 018h
|
||||
LD HL,(BPRO + 016h) ; TARGETADDRESS from BootBlock
|
||||
LD A,H
|
||||
OR L
|
||||
JR NZ,L_F051 ; if it is != 0 than normal file
|
||||
LD HL,(BPRO + 018h) ; TARGETADDRESS from BootBlock
|
||||
LD A,H
|
||||
OR L
|
||||
JR Z,L_F057 ; if it is also 0 than ROM replace file
|
||||
L_F051:
|
||||
XOR A ; else normal file,
|
||||
LD HL,(BPRO + 018h) ; TARGETADDRESS from BootBlock
|
||||
JR L_F05C
|
||||
L_F057:
|
||||
LD A,0FFh ; target is at $0000, bankswitching is needed
|
||||
LD HL,01200h ; for now use temporary buffer at $1200
|
||||
L_F05C:
|
||||
LD (0CEFDh),A
|
||||
|
||||
LD (IX + 5),L ; set the TargetAddress
|
||||
LD (IX + 6),H
|
||||
|
||||
LD HL,(BPRO + 014h) ; BYTE SIZE from BootBlock
|
||||
LD (IX + 3),L
|
||||
LD (IX + 4),H
|
||||
|
||||
LD HL,(BPRO + 01Eh) ; START SECTOR from BootBlock
|
||||
LD (IX + 1),L
|
||||
LD (IX + 2),H
|
||||
;
|
||||
CALL BREAD
|
||||
CALL MOFF
|
||||
|
||||
LD A,(0CEFDh)
|
||||
CP 0FFh
|
||||
JR NZ,L_F093
|
||||
OUT (0E0h),A
|
||||
LD HL,01200h ; SourceAddress
|
||||
LD DE,(BPRO + 016h) ; TargetAddress
|
||||
LD BC,(BPRO + 014h) ; ByteCounter
|
||||
LDIR ; copy
|
||||
L_F093:
|
||||
LD BC,00200h ; Default code
|
||||
LD HL,(BPRO + 018h) ; TARGET/EXECUTION ADDRESS from BootBlock
|
||||
JP (HL)
|
||||
|
||||
MASTE:
|
||||
CALL MOFF
|
||||
LD DE,ERRM1 ; 'NOT MASTER'
|
||||
JR ERRTR1
|
||||
ERRTRT:
|
||||
CP 50
|
||||
NOTIO:
|
||||
LD DE,IPLM3 ; 'MAKE READY FD'
|
||||
JR Z,ERRTR1
|
||||
LD DE,ERRM0 ; 'FD:LOADING ERROR'
|
||||
ERRTR1:
|
||||
CALL 00009h
|
||||
RST 018h
|
||||
LD SP,010EEh
|
||||
LD HL,(BPARA + 21)
|
||||
EX (SP),HL
|
||||
RET
|
||||
;
|
||||
;
|
||||
; PARAMETER SETTING
|
||||
;
|
||||
IPLMC:
|
||||
DB 003h ; IPL MASTER FLAG
|
||||
DB "IPLPRO"
|
||||
|
||||
BOOT:
|
||||
DB 000h ; DRIVE NO.
|
||||
DW 00000h ; SECTOR ADDR.
|
||||
DW 00100h ; IFM BYTE SIZE
|
||||
DW BPRO ; IFM LOADING ADDR.
|
||||
DW 00000h ; IX+7,8 (track 0, sector 0)
|
||||
|
||||
|
||||
|
||||
ERRM1:
|
||||
DB "FD:NOT MASTER",00Dh
|
||||
IPLM0:
|
||||
DB "IPL IS LOADING ",00Dh
|
||||
IPLM3:
|
||||
DB "MAKE READY FD",00Dh
|
||||
ERRM0:
|
||||
DB "FD:LOADING ERROR",00Dh
|
||||
|
||||
FDCC:
|
||||
LD A,0A5h
|
||||
LD B,A
|
||||
OUT (TR),A
|
||||
CALL DLY80U
|
||||
IN A,(TR)
|
||||
CP B
|
||||
RET
|
||||
|
||||
L_F111:
|
||||
DB 000h, 000h
|
||||
;
|
||||
;
|
||||
; READY CHECK
|
||||
;
|
||||
READY:
|
||||
LD A,(MTFG)
|
||||
RRCA
|
||||
CALL NC,MTON
|
||||
LD A,(IX + 0) ; DRIVE NO SET
|
||||
OR 084h
|
||||
OUT (DM),A ; DRIVE SELECT MOTON
|
||||
XOR A
|
||||
LD (CMD),A
|
||||
CALL DLY60M
|
||||
LD HL,0
|
||||
REDY0:
|
||||
DEC HL
|
||||
LD A,H
|
||||
OR L
|
||||
JR Z,REDY1
|
||||
IN A,(CR) ; STATUS GET
|
||||
CPL
|
||||
RLCA
|
||||
JR C,REDY0
|
||||
LD C,(IX + 0)
|
||||
LD HL,CLBF0
|
||||
LD B,000h
|
||||
ADD HL,BC
|
||||
BIT 0,(HL)
|
||||
JR NZ,REDY2
|
||||
CALL RCLB
|
||||
SET 0,(HL)
|
||||
REDY2:
|
||||
RET
|
||||
|
||||
REDY1:
|
||||
LD A,032h
|
||||
JP ERJMP
|
||||
;
|
||||
;
|
||||
; MOTOR ON
|
||||
;
|
||||
MTON:
|
||||
LD A,080h
|
||||
OUT (DM),A
|
||||
LD B,16
|
||||
MTD1:
|
||||
CALL DLY60M
|
||||
DJNZ MTD1
|
||||
LD A,1
|
||||
LD (MTFG),A
|
||||
RET
|
||||
;
|
||||
;
|
||||
; SEEK TREATMENT
|
||||
;
|
||||
SEEK:
|
||||
LD A,01Bh ; 1x = SEEK,
|
||||
CALL CMDOT1 ; load head, no verify, max stepping rate
|
||||
AND 099h
|
||||
RET
|
||||
;
|
||||
;
|
||||
; MOTOR OFF
|
||||
;
|
||||
MOFF:
|
||||
PUSH AF
|
||||
CALL DLY1M ; 1000 US DELAY
|
||||
XOR A
|
||||
OUT (DM),A
|
||||
LD (CLBF0),A
|
||||
LD (CLBF1),A
|
||||
LD (CLBF2),A
|
||||
LD (CLBF3),A
|
||||
LD (MTFG),A
|
||||
POP AF
|
||||
RET
|
||||
;
|
||||
;
|
||||
; RECALIBRATION
|
||||
;
|
||||
RCLB:
|
||||
LD A,00Bh ; 0x = RESTORE (seek track 0)
|
||||
CALL CMDOT1 ; load head, no verify, max stepping rate
|
||||
AND 085h
|
||||
XOR 004h
|
||||
RET Z
|
||||
|
||||
L_F189:
|
||||
JP STERROR
|
||||
;
|
||||
;
|
||||
; COMMAND OUT ROUTINE
|
||||
;
|
||||
CMDOT1:
|
||||
LD (CMD),A
|
||||
CPL
|
||||
OUT (CR),A
|
||||
CALL BSYON
|
||||
CALL DLY60M
|
||||
IN A,(CR)
|
||||
CPL
|
||||
LD (STAFG),A
|
||||
RET
|
||||
;
|
||||
;
|
||||
; BUSY AND WAIT
|
||||
;
|
||||
BSYON:
|
||||
PUSH DE
|
||||
PUSH HL
|
||||
CALL BSY0
|
||||
BSYON2:
|
||||
LD HL,00000h
|
||||
BSYON0:
|
||||
DEC HL
|
||||
LD A,H
|
||||
OR L
|
||||
JR Z,BSYON1
|
||||
IN A,(CR)
|
||||
RRCA
|
||||
JR NC,BSYON0
|
||||
POP HL
|
||||
POP DE
|
||||
RET
|
||||
;
|
||||
BSYON1:
|
||||
DEC E
|
||||
JR NZ,BSYON2
|
||||
BSYONE:
|
||||
LD A,029h
|
||||
POP HL
|
||||
POP DE
|
||||
JP ERJMP
|
||||
;
|
||||
BSYOFF:
|
||||
PUSH DE
|
||||
PUSH HL
|
||||
CALL BSY0
|
||||
BSYOF2:
|
||||
LD HL,00000h
|
||||
BSYOF0:
|
||||
DEC HL
|
||||
LD A,H
|
||||
OR L
|
||||
JR Z,BSYOF1
|
||||
IN A,(CR) ; Status Register
|
||||
RRCA
|
||||
JR C,BSYOF0
|
||||
POP HL
|
||||
POP DE
|
||||
RET
|
||||
;
|
||||
BSYOF1:
|
||||
DEC E
|
||||
JR NZ,BSYOF2
|
||||
JR BSYONE
|
||||
;
|
||||
BSY0:
|
||||
CALL DLY80U
|
||||
LD E,007h
|
||||
RET
|
||||
;
|
||||
;
|
||||
; SEQUENTIAL READ
|
||||
;
|
||||
BREAD:
|
||||
CALL CNVRT
|
||||
CALL PARST1 ; HL = IX + 5,6 (TargetAddress)
|
||||
RE8:
|
||||
CALL SIDST
|
||||
CALL SEEK
|
||||
JP NZ,ERJMP
|
||||
CALL PARST2 ; C = DataRegister
|
||||
DI ; disable interrupts
|
||||
LD A,094h ; 9x = READ SECTOR, multiple records
|
||||
CALL CMDOT2 ; compare for side 0, 15ms delay,
|
||||
RE6: ; disable side select compare
|
||||
LD B,0 ; ByteCounter = 0, to load 256 bytes of the sector
|
||||
RE4:
|
||||
IN A,(CR)
|
||||
RRCA
|
||||
JR C,RE3
|
||||
RRCA
|
||||
JR C,RE4
|
||||
INI ; (HL) = in(C), B = B - 1 , HL = HL + 1
|
||||
JR NZ,RE4
|
||||
|
||||
INC (IX + 8) ; NextSector = NextSector + 1
|
||||
LD A,(IX + 8)
|
||||
CP 011h ; if NextSector = 17
|
||||
JR Z,L_F213 ; than end
|
||||
DEC D ; else SectorCounter = SectorCounter - 1
|
||||
JR NZ,RE6 ; if SectorCounter = 0
|
||||
JR L_F214 ; than end
|
||||
L_F213:
|
||||
DEC D
|
||||
L_F214:
|
||||
CALL INTER
|
||||
RE3:
|
||||
EI ; enable interrupts
|
||||
IN A,(CR)
|
||||
CPL
|
||||
LD (STAFG),A
|
||||
AND 0FFh
|
||||
JR NZ,STERROR
|
||||
CALL ADJ ; adjust sector and track
|
||||
JP Z,REND
|
||||
LD A,(IX + 7) ; track
|
||||
JR RE8
|
||||
REND:
|
||||
LD A,080h
|
||||
OUT (DM),A ; motor on
|
||||
RET
|
||||
;
|
||||
;
|
||||
; PARAMETER SET
|
||||
;
|
||||
;
|
||||
PARST1:
|
||||
CALL READY
|
||||
LD D,(IX + 4) ; D = bytes to read (highbyte) (256 bytes)
|
||||
LD A,(IX + 3) ; A = bytes to read (lowbyte)
|
||||
OR A ; if A = 0
|
||||
JR Z,L_F23F ; than it's ok
|
||||
INC D ; else read 256 bytes more (1 sector)
|
||||
L_F23F:
|
||||
LD A,(IX + 10) ; NextSector = StartSector
|
||||
LD (IX + 8),A
|
||||
|
||||
LD A,(IX + 9) ; NextTrack = StartTrack
|
||||
LD (IX + 7),A
|
||||
|
||||
LD L,(IX + 5) ; HL = TargetAddress
|
||||
LD H,(IX + 6)
|
||||
RET
|
||||
|
||||
;
|
||||
;
|
||||
; SIZE SEEK SET
|
||||
;
|
||||
SIDST:
|
||||
SRL A
|
||||
CPL
|
||||
OUT (DR),A
|
||||
JR NC,L_F25D ; NC than Head 0
|
||||
LD A,1 ; else Head 1
|
||||
JR L_F25E
|
||||
L_F25D:
|
||||
XOR A
|
||||
L_F25E:
|
||||
CPL
|
||||
OUT (HS),A ; set HeadSelect
|
||||
RET
|
||||
;
|
||||
;
|
||||
; TRACK & SECTOR SET
|
||||
;
|
||||
PARST2:
|
||||
LD C,DR
|
||||
LD A,(IX + 7) ; A = NextTrack
|
||||
SRL A
|
||||
CPL
|
||||
OUT (TR),A
|
||||
LD A,(IX + 8) ; A = NextSector
|
||||
CPL
|
||||
OUT (SCR),A
|
||||
RET
|
||||
;
|
||||
;
|
||||
; ADJUST SECT & TRACK
|
||||
;
|
||||
ADJ:
|
||||
LD A,(IX + 8) ; A = NextSector
|
||||
CP 17 ; if NextSector = 17
|
||||
JR NZ,L_F282 ; than the border is not reached
|
||||
LD A,001h ; else
|
||||
LD (IX + 8),A ; NextSector = 1
|
||||
INC (IX + 7) ; NextTrack = NextTrack + 1
|
||||
L_F282:
|
||||
LD A,D
|
||||
OR A
|
||||
RET
|
||||
;
|
||||
;
|
||||
; COMMAND OUT & WAIT
|
||||
;
|
||||
CMDOT2:
|
||||
LD (CMD),A
|
||||
CPL
|
||||
OUT (CR),A
|
||||
CALL BSYOFF
|
||||
RET
|
||||
;
|
||||
;
|
||||
; FORCE INTERRUPT
|
||||
;
|
||||
INTER:
|
||||
LD A,0D8h
|
||||
CPL
|
||||
OUT (CR),A
|
||||
CALL BSYON
|
||||
RET
|
||||
|
||||
;
|
||||
;
|
||||
; STATUS CHECK
|
||||
;
|
||||
STERROR:
|
||||
LD A,(CMD)
|
||||
CP 00Bh ; Restore (seek track 0)
|
||||
JR Z,ERCK1
|
||||
CP 01Bh ; Seek
|
||||
JR Z,ERCK1
|
||||
CP 0F4h ; Write track
|
||||
JR Z,ERCK1
|
||||
LD A,(STAFG)
|
||||
BIT 7,A
|
||||
JR NZ,ERRET
|
||||
BIT 6,A
|
||||
JR NZ,ERRET1
|
||||
BIT 4,A
|
||||
LD A,54
|
||||
JR NZ,ERJMP
|
||||
JR ERRET1
|
||||
ERCK1:
|
||||
LD A,(STAFG)
|
||||
BIT 7,A
|
||||
JR NZ,ERRET
|
||||
ERRET1:
|
||||
LD A,41
|
||||
JR ERJMP
|
||||
ERRET:
|
||||
LD A,50
|
||||
ERJMP:
|
||||
CALL MOFF
|
||||
JP ERRTRT
|
||||
;
|
||||
;
|
||||
; SECTOR TO TRACK & SECTOR CONVERT
|
||||
;
|
||||
CNVRT:
|
||||
LD B,0 ; TrackCounter = 0
|
||||
LD DE,16 ; 16 sectors per track
|
||||
LD L,(IX + 1) ; HL = SectorAddress
|
||||
LD H,(IX + 2)
|
||||
XOR A
|
||||
TRANS0:
|
||||
SBC HL,DE ; SectorAddress - SectorPerTrack
|
||||
JR C,TRANS1 ; if < 0 than ready
|
||||
INC B ; else TrackCounter = TrackCounter + 1
|
||||
JR TRANS0 ; next try
|
||||
|
||||
TRANS1:
|
||||
ADD HL,DE ; undo the last substraction
|
||||
LD H,B
|
||||
INC L ; adjust sector (sector is 1..16 and not 0..15)
|
||||
LD (IX + 9),H ; set StartTrack
|
||||
LD (IX + 10),L ; set StartSector
|
||||
RET
|
||||
|
||||
;
|
||||
;
|
||||
; TIME DELAY ( 1m & 60m & 80u )
|
||||
;
|
||||
DLY80U:
|
||||
PUSH DE
|
||||
LD DE,15
|
||||
JP DLYT
|
||||
|
||||
DLY1M:
|
||||
PUSH DE
|
||||
LD DE,160
|
||||
JP DLYT
|
||||
|
||||
DLY60M:
|
||||
PUSH DE
|
||||
LD DE,8230
|
||||
DLYT:
|
||||
DEC DE
|
||||
LD A,E
|
||||
OR D
|
||||
JR NZ,DLYT
|
||||
POP DE
|
||||
RET
|
||||
|
||||
|
||||
ALIGN 0FFF0h, 000h
|
||||
DB " 84.03.14 V1.0A"
|
||||
BIN
software/asm/quickdisk_mz-1e05.obj
Normal file
BIN
software/asm/quickdisk_mz-1e05.obj
Normal file
Binary file not shown.
72
software/asm/quickdisk_mz-1e05.sym
Normal file
72
software/asm/quickdisk_mz-1e05.sym
Normal file
@@ -0,0 +1,72 @@
|
||||
ADJ: equ 0F273H
|
||||
BOOT: equ 0F0BFH
|
||||
BREAD: equ 0F1DEH
|
||||
BSY0: equ 0F1D8H
|
||||
BSYOF0: equ 0F1C6H
|
||||
BSYOF1: equ 0F1D3H
|
||||
BSYOF2: equ 0F1C3H
|
||||
BSYOFF: equ 0F1BEH
|
||||
BSYON: equ 0F19FH
|
||||
BSYON0: equ 0F1A7H
|
||||
BSYON1: equ 0F1B4H
|
||||
BSYON2: equ 0F1A4H
|
||||
BSYONE: equ 0F1B7H
|
||||
CMDOT1: equ 0F18CH
|
||||
CMDOT2: equ 0F285H
|
||||
CNVRT: equ 0F2CDH
|
||||
DLY1M: equ 0F2F1H
|
||||
DLY60M: equ 0F2F8H
|
||||
DLY80U: equ 0F2EAH
|
||||
DLYT: equ 0F2FCH
|
||||
ERCK1: equ 0F2BAH
|
||||
ERJMP: equ 0F2C7H
|
||||
ERRET: equ 0F2C5H
|
||||
ERRET1: equ 0F2C1H
|
||||
ERRM0: equ 0F0F4H
|
||||
ERRM1: equ 0F0C8H
|
||||
ERRTR1: equ 0F0ACH
|
||||
ERRTRT: equ 0F0A2H
|
||||
FDCC: equ 0F105H
|
||||
FDX: equ 0F006H
|
||||
INTER: equ 0F28FH
|
||||
IPLM0: equ 0F0D6H
|
||||
IPLM3: equ 0F0E6H
|
||||
IPLMC: equ 0F0B8H
|
||||
L_F007: equ 0F007H
|
||||
L_F051: equ 0F051H
|
||||
L_F057: equ 0F057H
|
||||
L_F05C: equ 0F05CH
|
||||
L_F093: equ 0F093H
|
||||
L_F111: equ 0F111H
|
||||
L_F189: equ 0F189H
|
||||
L_F213: equ 0F213H
|
||||
L_F214: equ 0F214H
|
||||
L_F23F: equ 0F23FH
|
||||
L_F25D: equ 0F25DH
|
||||
L_F25E: equ 0F25EH
|
||||
L_F282: equ 0F282H
|
||||
MASTE: equ 0F09AH
|
||||
MCHECK: equ 0F031H
|
||||
MOFF: equ 0F167H
|
||||
MTD1: equ 0F154H
|
||||
MTON: equ 0F14EH
|
||||
MZ_1E05: equ 0F000H
|
||||
NOTIO: equ 0F0A4H
|
||||
PARST1: equ 0F232H
|
||||
PARST2: equ 0F262H
|
||||
RCLB: equ 0F17FH
|
||||
RE3: equ 0F217H
|
||||
RE4: equ 0F1F8H
|
||||
RE6: equ 0F1F6H
|
||||
RE8: equ 0F1E4H
|
||||
READY: equ 0F113H
|
||||
REDY0: equ 0F12BH
|
||||
REDY1: equ 0F149H
|
||||
REDY2: equ 0F148H
|
||||
REND: equ 0F22DH
|
||||
SEEK: equ 0F15FH
|
||||
SIDST: equ 0F252H
|
||||
SJP: equ 0F022H
|
||||
STERROR: equ 0F298H
|
||||
TRANS0: equ 0F2D9H
|
||||
TRANS1: equ 0F2E0H
|
||||
1484
software/asm/quickdisk_mz-1e14.asm
Normal file
1484
software/asm/quickdisk_mz-1e14.asm
Normal file
File diff suppressed because it is too large
Load Diff
BIN
software/asm/quickdisk_mz-1e14.obj
Normal file
BIN
software/asm/quickdisk_mz-1e14.obj
Normal file
Binary file not shown.
161
software/asm/quickdisk_mz-1e14.sym
Normal file
161
software/asm/quickdisk_mz-1e14.sym
Normal file
@@ -0,0 +1,161 @@
|
||||
..LPTX: equ 0E98EH
|
||||
.LPTX: equ 0E989H
|
||||
?ERX: equ 0E8EBH
|
||||
?ERX1: equ 0EA4CH
|
||||
BDR: equ 0EE3BH
|
||||
BGETLX: equ 0E8F8H
|
||||
BRKC: equ 0EFECH
|
||||
DIREFC: equ 0EC4CH
|
||||
DIRIOP: equ 0EC2CH
|
||||
DIRMSG: equ 0ED5DH
|
||||
DIRMTF: equ 0EC53H
|
||||
DISCLR: equ 0EB45H
|
||||
DMR: equ 0EE6FH
|
||||
DMR1: equ 0EE77H
|
||||
DSFLNA: equ 0EB7BH
|
||||
DSPATR: equ 0EC67H
|
||||
DUMPX: equ 0EA78H
|
||||
FDCK: equ 0E8DEH
|
||||
FILESH: equ 0EB6FH
|
||||
FILSCH: equ 0EBDCH
|
||||
FNEND: equ 0EECCH
|
||||
FNINP: equ 0EADCH
|
||||
GOTOX: equ 0E910H
|
||||
HDPCL: equ 0ED08H
|
||||
HEXIYX: equ 0E906H
|
||||
HPNFE: equ 0EE87H
|
||||
HPS: equ 0EE51H
|
||||
HPS1: equ 0EE84H
|
||||
IOE41: equ 0EFC0H
|
||||
IOE46: equ 0EFC3H
|
||||
IOE50: equ 0EFC6H
|
||||
IOE53: equ 0EFC9H
|
||||
IOE54: equ 0EFCCH
|
||||
IOFRS: equ 0EBD1H
|
||||
LDFNCK: equ 0EC00H
|
||||
LE800: equ 0E800H
|
||||
LE80A: equ 0E80AH
|
||||
LE868: equ 0E868H
|
||||
LE86B: equ 0E86BH
|
||||
LE871: equ 0E871H
|
||||
LE87D: equ 0E87DH
|
||||
LE941: equ 0E941H
|
||||
LE954: equ 0E954H
|
||||
LE999: equ 0E999H
|
||||
LEA5B: equ 0EA5BH
|
||||
LEA6A: equ 0EA6AH
|
||||
LEA76: equ 0EA76H
|
||||
LEA85: equ 0EA85H
|
||||
LEA86: equ 0EA86H
|
||||
LEA8D: equ 0EA8DH
|
||||
LEAA0: equ 0EAA0H
|
||||
LEAC7: equ 0EAC7H
|
||||
LEAC9: equ 0EAC9H
|
||||
LEAD3: equ 0EAD3H
|
||||
LEAD6: equ 0EAD6H
|
||||
LEAF3: equ 0EAF3H
|
||||
LEB00: equ 0EB00H
|
||||
LEB08: equ 0EB08H
|
||||
LEB0C: equ 0EB0CH
|
||||
LEB14: equ 0EB14H
|
||||
LEB1E: equ 0EB1EH
|
||||
LEB20: equ 0EB20H
|
||||
LEB22: equ 0EB22H
|
||||
LEB27: equ 0EB27H
|
||||
LEB37: equ 0EB37H
|
||||
LEB8B: equ 0EB8BH
|
||||
LEBAC: equ 0EBACH
|
||||
LEBBD: equ 0EBBDH
|
||||
LECA1: equ 0ECA1H
|
||||
LECA4: equ 0ECA4H
|
||||
LECA5: equ 0ECA5H
|
||||
LECB6: equ 0ECB6H
|
||||
LECBA: equ 0ECBAH
|
||||
LECFC: equ 0ECFCH
|
||||
LED4C: equ 0ED4CH
|
||||
LEDF3: equ 0EDF3H
|
||||
LOADX: equ 0E914H
|
||||
LPARA0: equ 0EB97H
|
||||
LPARA1: equ 0EB9AH
|
||||
LPRNTX: equ 0E9A2H
|
||||
LREDY: equ 0EEE5H
|
||||
LSINT: equ 0EED6H
|
||||
MCORX: equ 0E9D9H
|
||||
MCORX1: equ 0E9DCH
|
||||
MCRX2: equ 0EA05H
|
||||
MCRX3: equ 0EA08H
|
||||
MGHDE: equ 0ED27H
|
||||
MGNFE: equ 0ED15H
|
||||
MGNRE: equ 0ED33H
|
||||
MGUFE: equ 0ED40H
|
||||
MON: equ 0E880H
|
||||
MSGQ01: equ 0ED6EH
|
||||
MSGQ02: equ 0ED79H
|
||||
MSGQ03: equ 0ED84H
|
||||
MSGQ04: equ 0ED8FH
|
||||
MSGQ05: equ 0ED9AH
|
||||
MSGQ07: equ 0EDA5H
|
||||
MSGQ10: equ 0EDB0H
|
||||
MSGQ11: equ 0EDBBH
|
||||
MSGQ??: equ 0EDC6H
|
||||
MSGQOK: equ 0ED11H
|
||||
MSGTRM: equ 0ED14H
|
||||
MTOF: equ 0EF03H
|
||||
MTON: equ 0EEB7H
|
||||
MZ1E14: equ 0E800H
|
||||
NRCK: equ 0EFA8H
|
||||
PENX: equ 0E99EH
|
||||
PLOTX: equ 0E997H
|
||||
PMSGX: equ 0E9B8H
|
||||
PMSGX1: equ 0E9BBH
|
||||
PTESTX: equ 0E968H
|
||||
PTRNX: equ 0E993H
|
||||
PTST0X: equ 0E96DH
|
||||
PTST1X: equ 0E983H
|
||||
QBT: equ 0E835H
|
||||
QD: equ 0EC18H
|
||||
QDHPC: equ 0EE0DH
|
||||
QDIOS: equ 0E807H
|
||||
QDIOS1: equ 0EDD1H
|
||||
QDOFF: equ 0EF03H
|
||||
QDOKM: equ 0ECC8H
|
||||
QDRC: equ 0EE14H
|
||||
QDRCK: equ 0EC0CH
|
||||
QDRD: equ 0EE1AH
|
||||
QER04: equ 0EC51H
|
||||
QERMF: equ 0ECF1H
|
||||
QERTRT: equ 0ECD2H
|
||||
QL: equ 0EB5DH
|
||||
QLINF: equ 0EBEEH
|
||||
QMEIN: equ 0EDF8H
|
||||
QREDY: equ 0EE8BH
|
||||
QUICK: equ 0E8CBH
|
||||
RDATA: equ 0EFB3H
|
||||
RDATANRCK: equ 0EFA8H
|
||||
RDAX: equ 0E9C9H
|
||||
RDCR1: equ 0EF92H
|
||||
RDCR2: equ 0EF97H
|
||||
RDCRC: equ 0EF90H
|
||||
RTY: equ 0EDD6H
|
||||
RTY4: equ 0EDF6H
|
||||
SAVEX: equ 0EA0CH
|
||||
SAVX1: equ 0EA3CH
|
||||
SGX: equ 0EA6DH
|
||||
SIOLD: equ 0EFE1H
|
||||
ST1X: equ 0E884H
|
||||
ST1X1: equ 0E8DCH
|
||||
ST1X2: equ 0E986H
|
||||
ST2X: equ 0E892H
|
||||
SYNCA: equ 0EF81H
|
||||
SYNCL1: equ 0EF2EH
|
||||
SYNCL2: equ 0EF18H
|
||||
SYNCW0: equ 0EF47H
|
||||
SYNCW01: equ 0EF70H
|
||||
SYNCW1: equ 0EF59H
|
||||
SYNCW2: equ 0EF63H
|
||||
SYNCW3: equ 0EF73H
|
||||
TIMW: equ 0EFD4H
|
||||
TIMW1: equ 0EFD5H
|
||||
TIMW2: equ 0EFD7H
|
||||
TMLPL: equ 0EF31H
|
||||
VRFYX: equ 0EA5EH
|
||||
155
software/asm/ramcheck.asm
Normal file
155
software/asm/ramcheck.asm
Normal file
@@ -0,0 +1,155 @@
|
||||
|
||||
LETNL: EQU 0006h
|
||||
PRNTS: EQU 000Ch
|
||||
PRNT: EQU 0012h
|
||||
MSG: EQU 0015h
|
||||
MONIT: EQU 0086h
|
||||
PRTHL: EQU 03BAh
|
||||
PRTHX: EQU 03C3h
|
||||
DPCT: EQU 0DDCh
|
||||
MSTART: EQU 1200h
|
||||
|
||||
ORG 10F0h
|
||||
|
||||
DB 01h ; Code Type, 01 = Machine Code.
|
||||
DB "RAM TEST V1.0", 0Dh, 00h, 00h ; Title/Name (17 bytes).
|
||||
DW MSTART - START ; Size of program.
|
||||
DW START ; Load address of program.
|
||||
DW START ; Exec address of program.
|
||||
DB 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h ; Comment (104 bytes).
|
||||
DB 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
|
||||
DB 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
|
||||
DB 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
|
||||
DB 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
|
||||
DB 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
|
||||
DB 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
|
||||
|
||||
ORG 01200h
|
||||
|
||||
START: LD DE,TITLE
|
||||
CALL MSG
|
||||
CALL LETNL
|
||||
LD B, 20 ; Number of loops
|
||||
LOOP: LD HL,MSTART ; Start of checked memory,
|
||||
LD D,0CEh ; End memory check CE00
|
||||
LOOP1: LD A,000h
|
||||
CP L
|
||||
JR NZ,LOOP1b
|
||||
CALL PRTHL ; Print HL as 4digit hex.
|
||||
LD A,0C4h ; Move cursor left.
|
||||
LD E,004h ; 4 times.
|
||||
LOOP1a: CALL DPCT
|
||||
DEC E
|
||||
JR NZ,LOOP1a
|
||||
LOOP1b: INC HL
|
||||
LD A,H
|
||||
CP D ; Have we reached end of memory.
|
||||
JR Z,LOOP3 ; Yes, exit.
|
||||
LD A,(HL) ; Read memory location under test, ie. 0.
|
||||
CPL ; Subtract, ie. FF - A, ie FF - 0 = FF.
|
||||
LD (HL),A ; Write it back, ie. FF.
|
||||
SUB (HL) ; Subtract written memory value from A, ie. should be 0.
|
||||
JR NZ,LOOP2 ; Not zero, we have an error.
|
||||
LD A,(HL) ; Reread memory location, ie. FF
|
||||
CPL ; Subtract FF - FF
|
||||
LD (HL),A ; Write 0
|
||||
SUB (HL) ; Subtract 0
|
||||
JR Z,LOOP1 ; Loop if the same, ie. 0
|
||||
LOOP2: LD A,16h
|
||||
CALL PRNT ; Print A
|
||||
CALL PRTHX ; Print HL as 4 digit hex.
|
||||
CALL PRNTS ; Print space.
|
||||
XOR A
|
||||
LD (HL),A
|
||||
LD A,(HL) ; Get into A the failing bits.
|
||||
CALL PRTHX ; Print A as 2 digit hex.
|
||||
CALL PRNTS ; Print space.
|
||||
LD A,0FFh ; Repeat but first load FF into memory
|
||||
LD (HL),A
|
||||
LD A,(HL)
|
||||
CALL PRTHX ; Print A as 2 digit hex.
|
||||
NOP
|
||||
JR LOOP4
|
||||
|
||||
LOOP3: LD DE,OKCHECK
|
||||
CALL MSG ; Print check message in DE
|
||||
LD A,B ; Print loop count.
|
||||
CALL PRTHX
|
||||
LD DE,OKMSG
|
||||
CALL MSG ; Print ok message in DE
|
||||
DEC B
|
||||
JR NZ,LOOP
|
||||
LD DE,DONEMSG
|
||||
CALL MSG ; Print check message in DE
|
||||
JP MONIT
|
||||
|
||||
OKCHECK: DB 11h
|
||||
DB "CHECK: ", 0Dh
|
||||
OKMSG: DB "OK.", 0Dh
|
||||
DONEMSG: DB 11h
|
||||
DB "RAM TEST COMPLETE.", 0Dh
|
||||
|
||||
LOOP4: LD B,09h
|
||||
CALL PRNTS ; Print space.
|
||||
XOR A ; Zero A
|
||||
SCF ; Set Carry
|
||||
LOOP5: PUSH AF ; Store A and Flags
|
||||
LD (HL),A ; Store 0 to bad location.
|
||||
LD A,(HL) ; Read back
|
||||
CALL PRTHX ; Print A as 2 digit hex.
|
||||
CALL PRNTS ; Print space
|
||||
POP AF ; Get back A (ie. 0 + C)
|
||||
RLA ; Rotate left A. Bit LSB becomes Carry (ie. 1 first instance), Carry becomes MSB
|
||||
DJNZ LOOP5 ; Loop if not zero, ie. print out all bit locations written and read to memory to locate bad bit.
|
||||
XOR A ; Zero A, clears flags.
|
||||
LD A,80h
|
||||
LD B,08h
|
||||
LOOP6: PUSH AF ; Repeat above but AND memory location with original A (ie. 80)
|
||||
LD C,A ; Basically walk through all the bits to find which one is stuck.
|
||||
LD (HL),A
|
||||
LD A,(HL)
|
||||
AND C
|
||||
NOP
|
||||
JR Z,LOOP8 ; If zero then print out the bit number
|
||||
NOP
|
||||
NOP
|
||||
LD A,C
|
||||
CPL
|
||||
LD (HL),A
|
||||
LD A,(HL)
|
||||
AND C
|
||||
JR NZ,LOOP8 ; As above, if the compliment doesnt yield zero, print out the bit number.
|
||||
LOOP7: POP AF
|
||||
RRCA
|
||||
NOP
|
||||
DJNZ LOOP6
|
||||
JP MONIT
|
||||
|
||||
LOOP8: CALL LETNL ; New line.
|
||||
LD DE,BITMSG ; BIT message
|
||||
CALL MSG ; Print message in DE
|
||||
LD A,B
|
||||
DEC A
|
||||
CALL PRTHX ; Print A as 2 digit hex, ie. BIT number.
|
||||
CALL LETNL ; New line
|
||||
LD DE,BANKMSG ; BANK message
|
||||
CALL MSG ; Print message in DE
|
||||
LD A,H
|
||||
CP 50h ; 'P'
|
||||
JR NC,LOOP9 ; Work out bank number, 1, 2 or 3.
|
||||
LD A,01h
|
||||
JR LOOP11
|
||||
|
||||
LOOP9: CP 90h
|
||||
JR NC,LOOP10
|
||||
LD A,02h
|
||||
JR LOOP11
|
||||
|
||||
LOOP10: LD A,03h
|
||||
LOOP11: CALL PRTHX ; Print A as 2 digit hex, ie. BANK number.
|
||||
JR LOOP7
|
||||
|
||||
BITMSG: DB " BIT: ", 0Dh
|
||||
BANKMSG: DB " BANK: ", 0Dh
|
||||
|
||||
TITLE: DB "SHARPMZ RAM TEST (C) P. SMART 2018", 0Dh, 00h
|
||||
2788
software/asm/sa1510.asm
Normal file
2788
software/asm/sa1510.asm
Normal file
File diff suppressed because it is too large
Load Diff
1780
software/asm/sharpmz-test.asm
Normal file
1780
software/asm/sharpmz-test.asm
Normal file
File diff suppressed because it is too large
Load Diff
BIN
software/asm/sharpmz-test.obj
Normal file
BIN
software/asm/sharpmz-test.obj
Normal file
Binary file not shown.
252
software/asm/sharpmz-test.sym
Normal file
252
software/asm/sharpmz-test.sym
Normal file
@@ -0,0 +1,252 @@
|
||||
?ER: equ 0C1ACH
|
||||
?RDD: equ 0C1E5H
|
||||
?RDI: equ 0C1BAH
|
||||
?TMR1: equ 0C854H
|
||||
?TMR1A: equ 0C857H
|
||||
?TMR2: equ 0C85EH
|
||||
?TMRD: equ 0C837H
|
||||
?TMST: equ 0C71FH
|
||||
ABCD: equ 0C72BH
|
||||
AMPM: equ 119BH
|
||||
ARARA: equ 0C6EEH
|
||||
ATRB: equ 10F0H
|
||||
BANKMSG: equ 0CC53H
|
||||
BITMSG: equ 0CC4BH
|
||||
BUFER: equ 11A3H
|
||||
CDEF: equ 0C7C0H
|
||||
CKS1: equ 0C406H
|
||||
CKS2: equ 0C415H
|
||||
CKS3: equ 0C419H
|
||||
CKS4: equ 0C41DH
|
||||
CKSUM: equ 0C400H
|
||||
CLEAR1: equ 0BFB7H
|
||||
COMNT: equ 1108H
|
||||
CSMDT: equ 1199H
|
||||
DLY1: equ 0C424H
|
||||
DLY12: equ 0C43BH
|
||||
DLY12A: equ 0C43EH
|
||||
DLY1A: equ 0C426H
|
||||
DLY1S: equ 0C6F2H
|
||||
DLY2: equ 0C42BH
|
||||
DLY2A: equ 0C42DH
|
||||
DLY3: equ 0C432H
|
||||
DONEMSG: equ 0CC37H
|
||||
DPRNT: equ 1194H
|
||||
DSPXY: equ 1171H
|
||||
DTADR: equ 1104H
|
||||
EDG0: equ 0C2C9H
|
||||
EDG1: equ 0C2C1H
|
||||
EDG2: equ 0C2CFH
|
||||
EDG3: equ 0C2D7H
|
||||
EDGE: equ 0C2BBH
|
||||
EXADR: equ 1106H
|
||||
FLASH: equ 118EH
|
||||
FLPST: equ 118FH
|
||||
FLSDT: equ 1192H
|
||||
FLSST: equ 1191H
|
||||
GAP: equ 0C445H
|
||||
GAP0: equ 0C45AH
|
||||
GAP1: equ 0C461H
|
||||
GAP1A: equ 0C498H
|
||||
GAP1B: equ 0C472H
|
||||
GAP1C: equ 0C48FH
|
||||
GAP1D: equ 0C478H
|
||||
GAP2: equ 0C49FH
|
||||
GAP2A: equ 0C4DEH
|
||||
GAP2B: equ 0C4ADH
|
||||
GAP2C: equ 0C4D6H
|
||||
GAP2D: equ 0C4B6H
|
||||
GAP3: equ 0C4E6H
|
||||
GAP3A: equ 0C525H
|
||||
GAP3B: equ 0C4F4H
|
||||
GAP3C: equ 0C51DH
|
||||
GAP3D: equ 0C4FDH
|
||||
GAPCK: equ 0C537H
|
||||
GAPCK1: equ 0C549H
|
||||
GAPCK2: equ 0C54BH
|
||||
GAPCK3: equ 0C55BH
|
||||
GETL1: equ 0BFC1H
|
||||
GETL2: equ 0BFCFH
|
||||
GRAM0: equ 0BF07H
|
||||
GRAM1: equ 0BF0DH
|
||||
GRAMINIT: equ 0BF03H
|
||||
GRAMTEST: equ 0BF19H
|
||||
GRAMTEST0: equ 0BF1FH
|
||||
GRAMTEST1: equ 0BF25H
|
||||
GRAPHICS: equ 0BF36H
|
||||
GRPHIND: equ 0BF5CH
|
||||
GRPHPOS: equ 0CC5BH
|
||||
HELP: equ 0C890H
|
||||
IBUFE: equ 10F0H
|
||||
INITGRPH: equ 0BF7AH
|
||||
INITMEM: equ 0BFA8H
|
||||
KANAF: equ 1170H
|
||||
L0323: equ 0C750H
|
||||
L0324: equ 0C6F6H
|
||||
L0330: equ 0C791H
|
||||
L0336: equ 0C7C9H
|
||||
L0340: equ 0C813H
|
||||
L047D: equ 0C5D8H
|
||||
L04C2: equ 0C629H
|
||||
L04C4: equ 0C633H
|
||||
LOA0: equ 0C0CDH
|
||||
LOAD: equ 0C0C7H
|
||||
LONG: equ 0C577H
|
||||
LOOP: equ 0BFFBH
|
||||
LOOP1: equ 0C000H
|
||||
LOOP10: equ 0C0C0H
|
||||
LOOP11: equ 0C0C2H
|
||||
LOOP1a: equ 0C00CH
|
||||
LOOP1b: equ 0C012H
|
||||
LOOP2: equ 0C023H
|
||||
LOOP3: equ 0C041H
|
||||
LOOP4: equ 0C066H
|
||||
LOOP5: equ 0C06DH
|
||||
LOOP6: equ 0C07FH
|
||||
LOOP7: equ 0C090H
|
||||
LOOP8: equ 0C098H
|
||||
LOOP9: equ 0C0B8H
|
||||
MANG: equ 1173H
|
||||
MEMTEST: equ 0BFF9H
|
||||
MEND: equ 0CDDEH
|
||||
MOT1: equ 0C396H
|
||||
MOT2: equ 0C39DH
|
||||
MOT3: equ 0C39FH
|
||||
MOT4: equ 0C3A7H
|
||||
MOT5: equ 0C3CAH
|
||||
MOT7: equ 0C3A5H
|
||||
MOT8: equ 0C3BEH
|
||||
MOT9: equ 0C3C7H
|
||||
MOTOR: equ 0C384H
|
||||
MSG1: equ 0C9B7H
|
||||
MSG2: equ 0C9B9H
|
||||
MSG3: equ 0C9BFH
|
||||
MSGGAP: equ 0CB70H
|
||||
MSGN7: equ 0C9CAH
|
||||
MSGOK: equ 0C9D4H
|
||||
MSGTAPE: equ 0CBDBH
|
||||
MSG_CHKSUM_MZ1: equ 0CAF6H
|
||||
MSG_CHKSUM_MZ2: equ 0CB24H
|
||||
MSG_CHKSUM_TP1: equ 0CB0DH
|
||||
MSG_CHKSUM_TP2: equ 0CB3BH
|
||||
MSG_ERRCHKSUM: equ 0C9D8H
|
||||
MSG_ERRWRITE: equ 0C9E7H
|
||||
MSG_GAPCK: equ 0CA33H
|
||||
MSG_HELP1: equ 0C8CFH
|
||||
MSG_HELP2: equ 0C8EAH
|
||||
MSG_HELP3: equ 0C903H
|
||||
MSG_HELP4: equ 0C91AH
|
||||
MSG_HELP5: equ 0C932H
|
||||
MSG_HELP6: equ 0C94FH
|
||||
MSG_INITGR: equ 0C98DH
|
||||
MSG_INITM: equ 0C99BH
|
||||
MSG_LOADEXEC: equ 0CA6CH
|
||||
MSG_LOADFILE: equ 0CA3EH
|
||||
MSG_LOADFROM: equ 0CA55H
|
||||
MSG_LOADSIZE: equ 0CA83H
|
||||
MSG_MOTORSTP: equ 0CA16H
|
||||
MSG_MOTORTG: equ 0CA08H
|
||||
MSG_READTAPE: equ 0C9F3H
|
||||
MSG_SAVEEXEC: equ 0CAC8H
|
||||
MSG_SAVEFILE: equ 0CA9AH
|
||||
MSG_SAVEFROM: equ 0CAB1H
|
||||
MSG_SAVESIZE: equ 0CADFH
|
||||
MSG_SPC: equ 0CBD2H
|
||||
MSG_SPCS: equ 0CBBFH
|
||||
MSG_TAPEMARK: equ 0C9FEH
|
||||
MSG_TIMERTST: equ 0CBEBH
|
||||
MSG_TIMERVAL: equ 0CBFCH
|
||||
MSG_TIMERVAL2: equ 0CC0CH
|
||||
MSG_TIMERVAL3: equ 0CC1CH
|
||||
MSG_TPMARK: equ 0CA22H
|
||||
MSG_WDATA: equ 0CB62H
|
||||
MSG_WGAPL: equ 0CB9CH
|
||||
MSG_WGAPL2: equ 0CBADH
|
||||
MSG_WGAPS: equ 0CB7DH
|
||||
MSG_WGAPS2: equ 0CB8AH
|
||||
MSG_WHDR: equ 0CB52H
|
||||
MST1: equ 0C3EBH
|
||||
MST2: equ 0C3F2H
|
||||
MST3: equ 0C3FDH
|
||||
MSTOP: equ 0C3D9H
|
||||
NAME: equ 10F1H
|
||||
NDE: equ 0C719H
|
||||
OCTV: equ 11A0H
|
||||
OKCHECK: equ 0CC28H
|
||||
OKMSG: equ 0CC32H
|
||||
ONTYO: equ 119FH
|
||||
QER: equ 0C19EH
|
||||
QVRFY: equ 0C66BH
|
||||
QWRD: equ 0C5D0H
|
||||
QWRI: equ 0C59CH
|
||||
RATIO: equ 11A1H
|
||||
RBY1: equ 0C2EAH
|
||||
RBY2: equ 0C303H
|
||||
RBY3: equ 0C30EH
|
||||
RBYTE: equ 0C2DEH
|
||||
RD1: equ 0C1C8H
|
||||
RD2: equ 0C1E3H
|
||||
RDD1: equ 0C1FBH
|
||||
RDD2: equ 0C207H
|
||||
RET1: equ 0C665H
|
||||
RET2: equ 0C276H
|
||||
RET3: equ 0C366H
|
||||
RTAPE: equ 0C209H
|
||||
RTP0: equ 0C256H
|
||||
RTP1: equ 0C20EH
|
||||
RTP2: equ 0C214H
|
||||
RTP3: equ 0C22EH
|
||||
RTP4: equ 0C276H
|
||||
RTP5: equ 0C287H
|
||||
RTP6: equ 0C2B6H
|
||||
RTP7: equ 0C2B2H
|
||||
RTP8: equ 0C285H
|
||||
RTP9: equ 0C2B8H
|
||||
SAVE: equ 0C11CH
|
||||
SHORT: equ 0C55EH
|
||||
SIZE: equ 1102H
|
||||
SPCS2: equ 0C640H
|
||||
SPCS3: equ 0C653H
|
||||
SPV: equ 10F0H
|
||||
START: equ 0BF6BH
|
||||
STRGF: equ 1193H
|
||||
SUMDT: equ 1197H
|
||||
SWRK: equ 119DH
|
||||
TATRB: equ 0CC5DH
|
||||
TCOMNT: equ 0CC75H
|
||||
TDTADR: equ 0CC71H
|
||||
TEMPW: equ 119EH
|
||||
TESTBUF: equ 0CC5DH
|
||||
TESTEND: equ 0CDDEH
|
||||
TESTSTART: equ 0CCDDH
|
||||
TEXADR: equ 0CC73H
|
||||
TIMERTST: equ 0C6FFH
|
||||
TIMFG: equ 119CH
|
||||
TIMIN: equ 0C86CH
|
||||
TITLE: equ 0C96CH
|
||||
TITLE_SAVE: equ 0C9A7H
|
||||
TM0: equ 0C331H
|
||||
TM1: equ 0C33AH
|
||||
TM2: equ 0C33DH
|
||||
TM3: equ 0C350H
|
||||
TM4: equ 0C366H
|
||||
TM4A: equ 0C36AH
|
||||
TM4B: equ 0C372H
|
||||
TMARK: equ 0C312H
|
||||
TMCNT: equ 1195H
|
||||
TNAME: equ 0CC5EH
|
||||
TSIZE: equ 0CC6FH
|
||||
TVF1: equ 0C699H
|
||||
TVF2: equ 0C69FH
|
||||
TVF3: equ 0C6B3H
|
||||
TVRFY: equ 0C694H
|
||||
WBY1: equ 0C6E1H
|
||||
WBYTE: equ 0C6DBH
|
||||
WRI1: equ 0C5AAH
|
||||
WRI2: equ 0C5C7H
|
||||
WRI3: equ 0C5CDH
|
||||
WTAP1: equ 0C5F0H
|
||||
WTAP2: equ 0C601H
|
||||
WTAP3: equ 0C665H
|
||||
WTAP3A: equ 0C613H
|
||||
WTAPE: equ 0C5E6H
|
||||
BIN
software/asm/tapecheck.obj
Normal file
BIN
software/asm/tapecheck.obj
Normal file
Binary file not shown.
192
software/asm/tapecheck.sym
Normal file
192
software/asm/tapecheck.sym
Normal file
@@ -0,0 +1,192 @@
|
||||
?ER: equ 0C23BH
|
||||
?RDD: equ 0C274H
|
||||
?RDI: equ 0C249H
|
||||
AMPM: equ 119BH
|
||||
ATRB: equ 10F0H
|
||||
BANKMSG: equ 0C888H
|
||||
BITMSG: equ 0C880H
|
||||
BUFER: equ 11A3H
|
||||
CKS1: equ 0C495H
|
||||
CKS2: equ 0C4A4H
|
||||
CKS3: equ 0C4A8H
|
||||
CKS4: equ 0C4ACH
|
||||
CKSUM: equ 0C48FH
|
||||
CLEAR1: equ 0C043H
|
||||
COMNT: equ 1108H
|
||||
CSMDT: equ 1199H
|
||||
DLY1: equ 0C4B3H
|
||||
DLY12: equ 0C4CAH
|
||||
DLY12A: equ 0C4CDH
|
||||
DLY1A: equ 0C4B5H
|
||||
DLY2: equ 0C4BAH
|
||||
DLY2A: equ 0C4BCH
|
||||
DLY3: equ 0C4C1H
|
||||
DONEMSG: equ 0C86CH
|
||||
DPRNT: equ 1194H
|
||||
DSPXY: equ 1171H
|
||||
DTADR: equ 1104H
|
||||
EDG0: equ 0C358H
|
||||
EDG1: equ 0C350H
|
||||
EDG2: equ 0C35EH
|
||||
EDG3: equ 0C366H
|
||||
EDGE: equ 0C34AH
|
||||
EXADR: equ 1106H
|
||||
FLASH: equ 118EH
|
||||
FLPST: equ 118FH
|
||||
FLSDT: equ 1192H
|
||||
FLSST: equ 1191H
|
||||
GAP: equ 0C4D4H
|
||||
GAP1: equ 0C4E8H
|
||||
GAP1A: equ 0C4EBH
|
||||
GAP2: equ 0C4F0H
|
||||
GAP3: equ 0C4F6H
|
||||
GAPCK: equ 0C502H
|
||||
GAPCK1: equ 0C514H
|
||||
GAPCK2: equ 0C516H
|
||||
GAPCK3: equ 0C526H
|
||||
GETL1: equ 0C04DH
|
||||
GETL2: equ 0C05BH
|
||||
GRAM0: equ 0C07CH
|
||||
GRAM1: equ 0C080H
|
||||
GRAMINIT: equ 0C076H
|
||||
GRPHPOS: equ 0C890H
|
||||
IBUFE: equ 10F0H
|
||||
INITGRPH: equ 0C018H
|
||||
INITMEM: equ 0C03DH
|
||||
KANAF: equ 1170H
|
||||
L047D: equ 0C5A3H
|
||||
L04C2: equ 0C5E8H
|
||||
L04C4: equ 0C5EAH
|
||||
LOA0: equ 0C16BH
|
||||
LOAD: equ 0C165H
|
||||
LONG: equ 0C542H
|
||||
LOOP: equ 0C08EH
|
||||
LOOP1: equ 0C093H
|
||||
LOOP10: equ 0C15EH
|
||||
LOOP11: equ 0C160H
|
||||
LOOP1a: equ 0C09FH
|
||||
LOOP1b: equ 0C0A5H
|
||||
LOOP2: equ 0C0B6H
|
||||
LOOP3: equ 0C0D4H
|
||||
LOOP4: equ 0C104H
|
||||
LOOP5: equ 0C10BH
|
||||
LOOP6: equ 0C11DH
|
||||
LOOP7: equ 0C12EH
|
||||
LOOP8: equ 0C136H
|
||||
LOOP9: equ 0C156H
|
||||
MANG: equ 1173H
|
||||
MEMTEST: equ 0C08CH
|
||||
MEND: equ 0CA13H
|
||||
MOT1: equ 0C425H
|
||||
MOT2: equ 0C42CH
|
||||
MOT3: equ 0C42EH
|
||||
MOT4: equ 0C436H
|
||||
MOT5: equ 0C459H
|
||||
MOT7: equ 0C434H
|
||||
MOT8: equ 0C44DH
|
||||
MOT9: equ 0C456H
|
||||
MOTOR: equ 0C413H
|
||||
MSG1: equ 0C681H
|
||||
MSG2: equ 0C683H
|
||||
MSG3: equ 0C689H
|
||||
MSGN7: equ 0C694H
|
||||
MSGOK: equ 0C69EH
|
||||
MSG_CHKSUM_MZ1: equ 0C7C0H
|
||||
MSG_CHKSUM_MZ2: equ 0C7EEH
|
||||
MSG_CHKSUM_TP1: equ 0C7D7H
|
||||
MSG_CHKSUM_TP2: equ 0C805H
|
||||
MSG_ERRCHKSUM: equ 0C6A2H
|
||||
MSG_ERRWRITE: equ 0C6B1H
|
||||
MSG_GAPCK: equ 0C6FDH
|
||||
MSG_HELP: equ 0C83EH
|
||||
MSG_LOADEXEC: equ 0C736H
|
||||
MSG_LOADFILE: equ 0C708H
|
||||
MSG_LOADFROM: equ 0C71FH
|
||||
MSG_LOADSIZE: equ 0C74DH
|
||||
MSG_MOTORSTP: equ 0C6E0H
|
||||
MSG_MOTORTG: equ 0C6D2H
|
||||
MSG_READTAPE: equ 0C6BDH
|
||||
MSG_SAVEEXEC: equ 0C792H
|
||||
MSG_SAVEFILE: equ 0C764H
|
||||
MSG_SAVEFROM: equ 0C77BH
|
||||
MSG_SAVESIZE: equ 0C7A9H
|
||||
MSG_TAPEMARK: equ 0C6C8H
|
||||
MSG_TPMARK: equ 0C6ECH
|
||||
MST1: equ 0C47AH
|
||||
MST2: equ 0C481H
|
||||
MST3: equ 0C48CH
|
||||
MSTOP: equ 0C468H
|
||||
NAME: equ 10F1H
|
||||
OCTV: equ 11A0H
|
||||
OKCHECK: equ 0C85DH
|
||||
OKMSG: equ 0C867H
|
||||
ONTYO: equ 119FH
|
||||
QER: equ 0C22DH
|
||||
QVRFY: equ 0C5FEH
|
||||
QWRD: equ 0C59BH
|
||||
QWRI: equ 0C567H
|
||||
RATIO: equ 11A1H
|
||||
RBY1: equ 0C379H
|
||||
RBY2: equ 0C392H
|
||||
RBY3: equ 0C39DH
|
||||
RBYTE: equ 0C36DH
|
||||
RD1: equ 0C257H
|
||||
RD2: equ 0C272H
|
||||
RDD1: equ 0C28AH
|
||||
RDD2: equ 0C296H
|
||||
RET1: equ 0C5F8H
|
||||
RET2: equ 0C305H
|
||||
RET3: equ 0C3F5H
|
||||
RTAPE: equ 0C298H
|
||||
RTP0: equ 0C2E5H
|
||||
RTP1: equ 0C29DH
|
||||
RTP2: equ 0C2A3H
|
||||
RTP3: equ 0C2BDH
|
||||
RTP4: equ 0C305H
|
||||
RTP5: equ 0C316H
|
||||
RTP6: equ 0C345H
|
||||
RTP7: equ 0C341H
|
||||
RTP8: equ 0C314H
|
||||
RTP9: equ 0C347H
|
||||
SAVE: equ 0C1BAH
|
||||
SHORT: equ 0C529H
|
||||
SIZE: equ 1102H
|
||||
SPV: equ 10F0H
|
||||
START: equ 0C000H
|
||||
STRGF: equ 1193H
|
||||
SUMDT: equ 1197H
|
||||
SWRK: equ 119DH
|
||||
TATRB: equ 0C892H
|
||||
TCOMNT: equ 0C8AAH
|
||||
TDTADR: equ 0C8A6H
|
||||
TEMPW: equ 119EH
|
||||
TESTBUF: equ 0C892H
|
||||
TESTEND: equ 0CA13H
|
||||
TESTSTART: equ 0C912H
|
||||
TEXADR: equ 0C8A8H
|
||||
TIMFG: equ 119CH
|
||||
TITLE: equ 0C81CH
|
||||
TM0: equ 0C3C0H
|
||||
TM1: equ 0C3C9H
|
||||
TM2: equ 0C3CCH
|
||||
TM3: equ 0C3DFH
|
||||
TM4: equ 0C3F5H
|
||||
TM4A: equ 0C3F9H
|
||||
TM4B: equ 0C401H
|
||||
TMARK: equ 0C3A1H
|
||||
TMCNT: equ 1195H
|
||||
TNAME: equ 0C893H
|
||||
TSIZE: equ 0C8A4H
|
||||
TVF1: equ 0C62CH
|
||||
TVF2: equ 0C632H
|
||||
TVF3: equ 0C646H
|
||||
TVRFY: equ 0C627H
|
||||
WBY1: equ 0C674H
|
||||
WBYTE: equ 0C66EH
|
||||
WRI1: equ 0C575H
|
||||
WRI2: equ 0C592H
|
||||
WRI3: equ 0C598H
|
||||
WTAP1: equ 0C5BAH
|
||||
WTAP2: equ 0C5CBH
|
||||
WTAP3: equ 0C5F8H
|
||||
WTAPE: equ 0C5B0H
|
||||
38
software/mif/ascii_conv.mif
Normal file
38
software/mif/ascii_conv.mif
Normal file
@@ -0,0 +1,38 @@
|
||||
DEPTH = 512;
|
||||
WIDTH = 8;
|
||||
ADDRESS_RADIX = HEX;
|
||||
DATA_RADIX = HEX;
|
||||
CONTENT BEGIN
|
||||
0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 0D 00 00;
|
||||
0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00;
|
||||
0020: 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F;
|
||||
0030: 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F;
|
||||
0040: 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F;
|
||||
0050: 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F;
|
||||
0060: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20;
|
||||
0070: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20;
|
||||
0080: 7D 20 20 20 20 20 20 20 20 20 20 5E 20 20 20 20;
|
||||
0090: 20 20 65 88 7E 20 74 20 68 20 62 78 64 72 70 63;
|
||||
00a0: 71 61 7A 77 73 75 69 20 D6 6B 66 76 20 FC DF 6A;
|
||||
00b0: 6E 20 DC 6D 20 20 20 6F 6C C4 F6 E4 20 79 7B 20;
|
||||
00c0: 7C 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20;
|
||||
00d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20;
|
||||
00e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20;
|
||||
00f0: 20 20 20 20 20 20 20 20 20 20 20 A3 20 20 20 20;
|
||||
0100: 00 00 00 00 00 00 00 00 00 00 00 00 00 0D 00 00;
|
||||
0110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00;
|
||||
0120: 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F;
|
||||
0130: 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F;
|
||||
0140: 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F;
|
||||
0150: 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 8B 20;
|
||||
0160: 93 A1 9A 9F 9C 92 AA 97 98 A6 AF A9 B8 B3 B0 B7;
|
||||
0170: 9E A0 9D A4 96 A5 AB A3 98 BD A2 BE C0 80 94 20;
|
||||
0180: 20 20 20 20 20 20 20 20 8B 20 20 20 20 20 20 20;
|
||||
0190: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20;
|
||||
01a0: 20 20 20 FB 20 20 20 20 20 20 20 20 20 20 20 20;
|
||||
01b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20;
|
||||
01c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20;
|
||||
01d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20;
|
||||
01e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20;
|
||||
01f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20;
|
||||
END;
|
||||
1286
software/mif/combined_cgrom.mif
Normal file
1286
software/mif/combined_cgrom.mif
Normal file
File diff suppressed because it is too large
Load Diff
134
software/mif/combined_keymap.mif
Normal file
134
software/mif/combined_keymap.mif
Normal file
@@ -0,0 +1,134 @@
|
||||
DEPTH = 2048;
|
||||
WIDTH = 8;
|
||||
ADDRESS_RADIX = HEX;
|
||||
DATA_RADIX = HEX;
|
||||
CONTENT BEGIN
|
||||
0000: ff ff ff ff ff ff ff 86 ff 37 ff ff ff 90 93 ff;
|
||||
0010: ff ff 80 ff ff 20 00 ff ff ff 60 50 40 30 10 ff;
|
||||
0020: ff 61 70 41 21 11 01 ff ff 91 71 51 22 31 02 ff;
|
||||
0030: ff 72 62 52 42 32 12 ff ff ff 63 43 23 03 13 ff;
|
||||
0040: ff 73 53 33 24 14 04 ff ff 64 74 44 54 34 05 ff;
|
||||
0050: ff 95 45 ff 25 15 ff ff 81 85 84 55 ff 75 ff ff;
|
||||
0060: ff ff ff ff ff ff 65 ff ff 66 35 46 26 ff ff ff;
|
||||
0070: 96 87 76 56 47 36 ff 06 77 57 67 17 07 27 ff ff;
|
||||
0080: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
0090: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
00a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
00b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
00c0: ff ff ff ff ff ff ff ff ff ff 16 ff ff ff ff ff;
|
||||
00d0: ff ff ff ff ff ff ff ff ff ff 97 ff ff ff ff ff;
|
||||
00e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ef;
|
||||
00f0: ff 81 92 ff 83 ff ff ff ff ff ff ff ff ff ff ff;
|
||||
0100: ff ff ff ff ff ff ff 86 ff 37 ff ff ff 90 93 ff;
|
||||
0110: ff ff 80 ff ff 20 00 ff ff ff 60 50 40 30 10 ff;
|
||||
0120: ff 61 70 41 21 11 01 ff ff 91 71 51 22 31 02 ff;
|
||||
0130: ff 72 62 52 42 32 12 ff ff ff 63 43 23 03 13 ff;
|
||||
0140: ff 73 53 33 24 14 04 ff ff 64 74 44 54 34 05 ff;
|
||||
0150: ff 95 45 ff 25 15 ff ff 81 85 84 55 ff 75 ff ff;
|
||||
0160: ff ff ff ff ff ff 65 ff ff 66 35 46 26 ff ff ff;
|
||||
0170: 96 87 76 56 47 36 ff 06 77 57 67 17 07 27 ff ff;
|
||||
0180: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
0190: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
01a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
01b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
01c0: ff ff ff ff ff ff ff ff ff ff 16 ff ff ff ff ff;
|
||||
01d0: ff ff ff ff ff ff ff ff ff ff 97 ff ff ff ff ff;
|
||||
01e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ef;
|
||||
01f0: ff 81 92 ff 83 ff ff ff ff ff ff ff ff ff ff ff;
|
||||
0200: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
0210: ff ff 00 ff 27 14 16 ff ff ff 10 22 13 15 17 ff;
|
||||
0220: ff 20 21 23 24 27 26 ff ff 40 31 32 34 25 36 ff;
|
||||
0230: ff 41 30 42 33 35 37 ff ff ff 50 43 44 46 47 ff;
|
||||
0240: ff 51 52 45 54 57 56 ff ff 60 70 53 63 55 67 ff;
|
||||
0250: ff ff 62 ff 65 66 ff ff 11 07 73 72 64 76 ff ff;
|
||||
0260: ff ff ff ff ff ff 61 ff ff 8a ff 84 77 ff ff ff;
|
||||
0270: 12 ff 74 85 75 a7 ff ff ff 97 92 95 90 96 ff ff;
|
||||
0280: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
0290: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
02a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
02b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
02c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
02d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
02e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
02f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
0300: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
0310: ff ff 00 ff 27 14 16 ff ff ff 10 22 13 15 17 ff;
|
||||
0320: ff 20 21 23 24 27 26 ff ff 40 31 32 34 25 36 ff;
|
||||
0330: ff 41 30 42 33 35 37 ff ff ff 50 43 44 46 47 ff;
|
||||
0340: ff 51 52 45 54 57 56 ff ff 60 70 53 63 55 67 ff;
|
||||
0350: ff ff 62 ff 65 66 ff ff 11 07 73 72 64 76 ff ff;
|
||||
0360: ff ff ff ff ff ff 61 ff ff 8a ff 84 77 ff ff ff;
|
||||
0370: 12 ff 74 85 75 a7 ff ff ff 97 92 95 90 96 ff ff;
|
||||
0380: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
0390: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
03a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
03b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
03c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
03d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
03e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
03f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
0400: ff ff ff 93 95 97 96 ff ff ff ff ff 94 ff ff ff;
|
||||
0410: ff 06 80 ff a6 27 57 ff ff ff 16 25 47 21 56 ff;
|
||||
0420: ff 45 20 44 43 45 55 ff ff 64 22 42 24 26 53 ff;
|
||||
0430: ff 32 46 40 41 17 52 ff ff ff 33 36 23 51 50 ff;
|
||||
0440: ff 61 35 37 31 63 62 ff ff 60 70 34 0a 30 75 ff;
|
||||
0450: ff ff ff ff 14 65 ff ff 04 ff 00 13 ff 67 ff ff;
|
||||
0460: ff ff ff ff ff ff ff ff ff ff ff 72 ff ff ff ff;
|
||||
0470: 77 76 74 ff 73 75 87 ff ff ff ff ff ff ff ff ff;
|
||||
0480: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
0490: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
04a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
04b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
04c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
04d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
04e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
04f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
0500: ff ff ff 93 95 97 96 ff ff ff ff ff 94 ff ff ff;
|
||||
0510: ff 06 80 ff a6 27 57 ff ff ff 16 25 47 21 56 ff;
|
||||
0520: ff 45 20 44 43 45 55 ff ff 64 22 42 24 26 53 ff;
|
||||
0530: ff 32 46 40 41 17 52 ff ff ff 33 36 23 51 50 ff;
|
||||
0540: ff 61 35 37 31 63 62 ff ff 60 70 34 0a 30 75 ff;
|
||||
0550: ff ff ff ff 14 65 ff ff 04 ff 00 13 ff 67 ff ff;
|
||||
0560: ff ff ff ff ff ff ff ff ff ff ff 72 ff ff ff ff;
|
||||
0570: 77 76 74 ff 73 75 87 ff ff ff ff ff ff ff ff ff;
|
||||
0580: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
0590: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
05a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
05b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
05c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
05d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
05e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
05f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
0600: ff 10 ff 04 02 00 01 ff ff 11 07 05 03 b0 b3 ff;
|
||||
0610: ff 30 b2 ff ff 61 81 ff ff ff 72 63 41 67 82 ff;
|
||||
0620: ff 43 70 44 45 84 83 ff ff 31 66 46 64 62 85 ff;
|
||||
0630: ff 56 42 50 47 71 86 ff ff ff 55 52 65 87 90 ff;
|
||||
0640: ff 77 53 51 57 80 91 ff ff 76 40 54 93 60 94 ff;
|
||||
0650: ff 75 92 ff 95 73 ff ff b1 b2 32 96 ff a0 ff ff;
|
||||
0660: ff ff ff ff ff ff 37 ff ff 21 74 24 27 ff ff ff;
|
||||
0670: 20 15 22 25 26 12 ff ff ff 17 23 16 ff 13 ff ff;
|
||||
0680: ff ff ff 06 ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
0690: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
06a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
06b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
06c0: ff ff ff ff ff ff ff ff ff ff 14 ff ff ff ff ff;
|
||||
06d0: ff ff ff ff ff ff ff ff ff ff 32 ff ff ff ff ff;
|
||||
06e0: ff ff ff ff ff ff ff ff ff ff ff 35 ff ff ff ef;
|
||||
06f0: a2 a3 34 ff 36 33 ff ff ff ff ff ff ff ff ff ff;
|
||||
0700: ff 10 ff 04 02 00 01 ff ff 11 07 05 03 b0 b3 ff;
|
||||
0710: ff 30 b2 ff ff 61 81 ff ff ff 72 63 41 67 82 ff;
|
||||
0720: ff 43 70 44 45 84 83 ff ff 31 66 46 64 62 85 ff;
|
||||
0730: ff 56 42 50 47 71 86 ff ff ff 55 52 65 87 90 ff;
|
||||
0740: ff 77 53 51 57 80 91 ff ff 76 40 54 93 60 94 ff;
|
||||
0750: ff 75 92 ff 95 73 ff ff b1 b2 32 96 ff a0 ff ff;
|
||||
0760: ff ff ff ff ff ff 37 ff ff 21 74 24 27 ff ff ff;
|
||||
0770: 20 15 22 25 26 12 ff ff ff 17 23 16 ff 13 ff ff;
|
||||
0780: ff ff ff 06 ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
0790: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
07a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
07b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff;
|
||||
07c0: ff ff ff ff ff ff ff ff ff ff 14 ff ff ff ff ff;
|
||||
07d0: ff ff ff ff ff ff ff ff ff ff 32 ff ff ff ff ff;
|
||||
07e0: ff ff ff ff ff ff ff ff ff ff ff 35 ff ff ff ef;
|
||||
07f0: a2 a3 34 ff 36 33 ff ff ff ff ff ff ff ff ff ff;
|
||||
END;
|
||||
3718
software/mif/combined_mainmemory.mif
Normal file
3718
software/mif/combined_mainmemory.mif
Normal file
File diff suppressed because it is too large
Load Diff
8198
software/mif/combined_mrom.mif
Normal file
8198
software/mif/combined_mrom.mif
Normal file
File diff suppressed because it is too large
Load Diff
BIN
software/mzf/3-D MAZE.MZF
Normal file
BIN
software/mzf/3-D MAZE.MZF
Normal file
Binary file not shown.
BIN
software/mzf/MYMAZE.mzf
Normal file
BIN
software/mzf/MYMAZE.mzf
Normal file
Binary file not shown.
BIN
software/mzf/hi-ramcheck.mzf
Normal file
BIN
software/mzf/hi-ramcheck.mzf
Normal file
Binary file not shown.
BIN
software/mzf/ramtest.mzf
Normal file
BIN
software/mzf/ramtest.mzf
Normal file
Binary file not shown.
BIN
software/mzf/sharpmz-test.mzf
Normal file
BIN
software/mzf/sharpmz-test.mzf
Normal file
Binary file not shown.
BIN
software/mzf/tapecheck.mzf
Normal file
BIN
software/mzf/tapecheck.mzf
Normal file
Binary file not shown.
BIN
software/roms/IPL.rom
Normal file
BIN
software/roms/IPL.rom
Normal file
Binary file not shown.
BIN
software/roms/MZ700_cgrom.rom
Normal file
BIN
software/roms/MZ700_cgrom.rom
Normal file
Binary file not shown.
BIN
software/roms/MZ80B.rom
Normal file
BIN
software/roms/MZ80B.rom
Normal file
Binary file not shown.
BIN
software/roms/MZ80K_cgrom.rom
Normal file
BIN
software/roms/MZ80K_cgrom.rom
Normal file
Binary file not shown.
BIN
software/roms/MZFONT.rom
Normal file
BIN
software/roms/MZFONT.rom
Normal file
Binary file not shown.
BIN
software/roms/NEWMON.rom
Normal file
BIN
software/roms/NEWMON.rom
Normal file
Binary file not shown.
BIN
software/roms/SP1002.rom
Normal file
BIN
software/roms/SP1002.rom
Normal file
Binary file not shown.
BIN
software/roms/combined_cgrom.rom
Normal file
BIN
software/roms/combined_cgrom.rom
Normal file
Binary file not shown.
BIN
software/roms/combined_keymap.rom
Normal file
BIN
software/roms/combined_keymap.rom
Normal file
Binary file not shown.
BIN
software/roms/combined_mainmemory.rom
Normal file
BIN
software/roms/combined_mainmemory.rom
Normal file
Binary file not shown.
BIN
software/roms/combined_mrom.rom
Normal file
BIN
software/roms/combined_mrom.rom
Normal file
Binary file not shown.
1
software/roms/fdcrom.rom
Normal file
1
software/roms/fdcrom.rom
Normal file
@@ -0,0 +1 @@
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
BIN
software/roms/key_1200.rom
Normal file
BIN
software/roms/key_1200.rom
Normal file
Binary file not shown.
BIN
software/roms/key_700.rom
Normal file
BIN
software/roms/key_700.rom
Normal file
Binary file not shown.
BIN
software/roms/key_80a.rom
Normal file
BIN
software/roms/key_80a.rom
Normal file
Binary file not shown.
BIN
software/roms/key_80b.rom
Normal file
BIN
software/roms/key_80b.rom
Normal file
Binary file not shown.
BIN
software/roms/key_80c.rom
Normal file
BIN
software/roms/key_80c.rom
Normal file
Binary file not shown.
BIN
software/roms/key_80k.rom
Normal file
BIN
software/roms/key_80k.rom
Normal file
Binary file not shown.
BIN
software/roms/monitor_1Z-013A.rom
Normal file
BIN
software/roms/monitor_1Z-013A.rom
Normal file
Binary file not shown.
BIN
software/roms/monitor_80c_1Z-013A.rom
Normal file
BIN
software/roms/monitor_80c_1Z-013A.rom
Normal file
Binary file not shown.
BIN
software/roms/monitor_80c_SA1510.rom
Normal file
BIN
software/roms/monitor_80c_SA1510.rom
Normal file
Binary file not shown.
BIN
software/roms/monitor_SA1510.rom
Normal file
BIN
software/roms/monitor_SA1510.rom
Normal file
Binary file not shown.
BIN
software/roms/monitor_mz-1r12.rom
Normal file
BIN
software/roms/monitor_mz-1r12.rom
Normal file
Binary file not shown.
BIN
software/roms/mz-80acg.rom
Normal file
BIN
software/roms/mz-80acg.rom
Normal file
Binary file not shown.
BIN
software/roms/quickdisk_mz-1e05.rom
Normal file
BIN
software/roms/quickdisk_mz-1e05.rom
Normal file
Binary file not shown.
BIN
software/roms/quickdisk_mz-1e14.rom
Normal file
BIN
software/roms/quickdisk_mz-1e14.rom
Normal file
Binary file not shown.
1
software/roms/userrom.rom
Normal file
1
software/roms/userrom.rom
Normal file
@@ -0,0 +1 @@
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Reference in New Issue
Block a user