Frequency change and MZ700 mode additions

This commit is contained in:
Philip Smart
2020-06-10 21:50:39 +01:00
parent 7a4cdadce9
commit b85227bae0
19 changed files with 4665 additions and 346 deletions

Binary file not shown.

3303
software/asm/1Z-013A.asm Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -8,7 +8,7 @@
; on Thursday, 06 of February 2020 at 01:38 PM
;
i ; Bring in additional resources.
INCLUDE "RFS_Definitions.asm"
INCLUDE "TZFS_Definitions.asm"
INCLUDE "Macros.asm"

897
software/asm/MZ80B_IPL.asm Normal file
View 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

View File

@@ -312,10 +312,15 @@ TZSVC_CMD_ERASEFILE: EQU 08H ; Servi
TZSVC_CMD_CHANGEDIR: EQU 09H ; Service command to change the active directory on the SD card.
TZSVC_CMD_LOAD40BIOS: EQU 20H ; Service command requesting that the 40 column version of the SA1510 BIOS is loaded.
TZSVC_CMD_LOAD80BIOS: EQU 21H ; Service command requesting that the 80 column version of the SA1510 BIOS is loaded.
TZSVC_CMD_LOAD700BIOS40:EQU 22H ; Service command requesting that the MZ700 1Z-013A 40 column BIOS is loaded.
TZSVC_CMD_LOAD700BIOS80:EQU 23H ; Service command requesting that the MZ700 1Z-013A 80 column patched BIOS is loaded.
TZSVC_CMD_LOADBDOS: EQU 30H ; Service command to reload CPM BDOS+CCP.
TZSVC_CMD_ADDSDDRIVE: EQU 31H ; Service command to attach a CPM disk to a drive number.
TZSVC_CMD_READSDDRIVE: EQU 32H ; Service command to read an attached SD file as a CPM disk drive.
TZSVC_CMD_WRITESDDRIVE: EQU 33H ; Service command to write to a CPM disk drive which is an attached SD file.
TZSVC_CMD_CPU_BASEFREQ EQU 40H ; Service command to switch to the mainboard frequency.
TZSVC_CMD_CPU_ALTFREQ EQU 41H ; Service command to switch to the alternate frequency provided by the K64F.
TZSVC_CMD_CPU_CHGFREQ EQU 42H ; Service command to set the alternate frequency in hertz.
TZSVC_STATUS_OK: EQU 000H ; Flag to indicate the K64F processing completed successfully.
TZSVC_STATUS_REQUEST: EQU 0FEH ; Flag to indicate the Z80 has made a request to the K64F.
TZSVC_STATUS_PROCESSING:EQU 0FFH ; Flag to indicate the K64F is processing a command.

View File

@@ -355,12 +355,13 @@ TZSVCWAITCOUNT: EQU 65535 ; Wait
TZSVCCMD: DS virtual 1 ; Service command.
TZSVCRESULT: DS virtual 1 ; Service command result.
TZSVCDIRSEC: DS virtual 1 ; Storage for the directory sector number.
TZSVC_FILE_SEC: EQU TZSVC_DIR_SEC ; Union of the file and directory sector as only one can be used at a time.
TZSVC_FILE_SEC: EQU TZSVCDIRSEC ; Union of the file and directory sector as only one can be used at a time.
TZSVC_TRACK_NO: DS virtual 2 ; Storage for the virtual drive track number.
TZSVC_SECTOR_NO: DS virtual 2 ; Storage for the virtual drive sector number.
TZSVC_FILE_NO: DS virtual 1 ; File number to be opened in a file service command.
TZSVC_LOADADDR: DS virtual 2 ; Dynamic load address for rom/images.
TZSVC_LOADSIZE: DS virtual 2 ; Size of image to load.
TZSVC_CPU_FREQ: EQU TZSVC_LOADADDR ; Union of the load address and the cpu frequency change value, only one can be used at a time.
TZSVC_DIRNAME: DS virtual TZSVCDIRSZ ; Service directory/file name.
TZSVC_FILENAME: DS virtual TZSVCFILESZ ; Filename to be opened/created.
TZSVCWILDC: DS virtual TZSVCWILDSZ ; Directory wildcard for file pattern matching.
@@ -377,10 +378,15 @@ TZSVC_CMD_ERASEFILE: EQU 08H ; Servi
TZSVC_CMD_CHANGEDIR: EQU 09H ; Service command to change the active directory on the SD card.
TZSVC_CMD_LOAD40BIOS: EQU 20H ; Service command requesting that the 40 column version of the SA1510 BIOS is loaded.
TZSVC_CMD_LOAD80BIOS: EQU 21H ; Service command requesting that the 80 column version of the SA1510 BIOS is loaded.
TZSVC_CMD_LOAD700BIOS40:EQU 22H ; Service command requesting that the MZ700 1Z-013A 40 column BIOS is loaded.
TZSVC_CMD_LOAD700BIOS80:EQU 23H ; Service command requesting that the MZ700 1Z-013A 80 column patched BIOS is loaded.
TZSVC_CMD_LOADBDOS: EQU 30H ; Service command to reload CPM BDOS+CCP.
TZSVC_CMD_ADDSDDRIVE: EQU 31H ; Service command to attach a CPM disk to a drive number.
TZSVC_CMD_READSDDRIVE: EQU 32H ; Service command to read an attached SD file as a CPM disk drive.
TZSVC_CMD_WRITESDDRIVE: EQU 33H ; Service command to write to a CPM disk drive which is an attached SD file.
TZSVC_CMD_CPU_BASEFREQ EQU 40H ; Service command to switch to the mainboard frequency.
TZSVC_CMD_CPU_ALTFREQ EQU 41H ; Service command to switch to the alternate frequency provided by the K64F.
TZSVC_CMD_CPU_CHGFREQ EQU 42H ; Service command to set the alternate frequency in hertz.
TZSVC_STATUS_OK: EQU 000H ; Flag to indicate the K64F processing completed successfully.
TZSVC_STATUS_REQUEST: EQU 0FEH ; Flag to indicate the Z80 has made a request to the K64F.
TZSVC_STATUS_PROCESSING:EQU 0FFH ; Flag to indicate the K64F is processing a command.

View File

@@ -427,13 +427,13 @@ ConvertStringToNumber: IF USE_CNVSTRTONUM = 1
JR Z,@Char ;Yes, so its a character
CP '"' ;Does string start with '"' ?
JR Z,@Char ;Yes, so its a character
;; CALL IsCharNumeric ;Is first character '0' to '9' ?
;; JR NC,@Failure ;No, so invalid number
; CALL IsCharNumeric ;Is first character '0' to '9' ?
; JR NC,@Failure ;No, so invalid number
; CALL IsCharHex ;Is first character hexadecimal ?
; JR NC,@Failure ;No, so invalid hex character
CP '0' ;Is first character '0' ?
JR NZ,@HexNext ;No, so default to hexadecimal
; JR NZ,@DecNext ;No, so default to decimal
; JR NZ,@HexNext ;No, so default to hexadecimal
JR NZ,@DecNext ;No, so default to decimal
INC DE ;Point to next character in string
LD A,(DE) ;Get character from string
CALL ConvertCharToUCase

View 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"

View 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"

View File

@@ -1966,307 +1966,344 @@ DACN1: OR A
LD A,L
JR DACN2
KTBL: DB 022H
DB 021H
DB 017H
DB 011H
DB 001H
DB 0C7H
DB 000H
DB 01AH
DB 024H
DB 023H
DB 012H
DB 005H
DB 004H
DB 013H
DB 018H
DB 003H
DB 026H
DB 025H
DB 019H
DB 014H
DB 007H
DB 006H
DB 016H
DB 002H
DB 028H
DB 027H
DB 009H
DB 015H
DB 00AH
DB 008H
DB 00EH
DB 000H
DB 020H
DB 029H
DB 010H
DB 00FH
DB 00CH
DB 00BH
DB 02FH
DB 00DH
DB 0BEH
DB 02AH
DB 052H
DB 055H
DB 04FH
DB 02CH
DB 02DH
DB 02EH
DB 0C5H
DB 059H
DB 0C3H
DB 0C2H
DB 0CDH
DB 054H
DB 000H
DB 049H
DB 028H
DB 027H
DB 025H
DB 024H
DB 022H
DB 021H
DB 0E7H
DB 020H
DB 06AH
DB 029H
DB 02AH
DB 026H
DB 000H
DB 023H
DB 000H
DB 02EH
KTBL: ;S0 00 - 07 ;
DB 022H ; 2
DB 021H ; 1
DB 017H ; W
DB 011H ; Q
DB 001H ; A
DB 0C7H ; DEL
DB 000H ; NULL
DB 01AH ; Z
;S1 08 - 0F ;
DB 024H ; 4
DB 023H ; 3
DB 012H ; R
DB 005H ; E
DB 004H ; D
DB 013H ; S
DB 018H ; X
DB 003H ; C
;S2 10 - 17 ;
DB 026H ; 6
DB 025H ; 5
DB 019H ; Y
DB 014H ; T
DB 007H ; G
DB 006H ; F
DB 016H ; V
DB 002H ; B
;S3 18 - 1F ;
DB 028H ; 8
DB 027H ; 7
DB 009H ; I
DB 015H ; U
DB 00AH ; J
DB 008H ; H
DB 00EH ; N
DB 000H ; SPACE
;S4 20 - 27 ;
DB 020H ; 0
DB 029H ; 9
DB 010H ; P
DB 00FH ; O
DB 00CH ; L
DB 00BH ; K
DB 02FH ; ,
DB 00DH ; M
;S5 28 - 2F ;
DB 0BEH ; ^
DB 02AH ; -
DB 052H ; [
DB 055H ; @
DB 04FH ; :
DB 02CH ; ;
DB 02DH ; /
DB 02EH ; .
;S6 30 - 37 ;
DB 0C5H ; HOME
DB 059H ; \
DB 0C3H ; CURSOR RIGHT
DB 0C2H ; CURSOR UP
DB 0CDH ; CR
DB 054H ; ]
DB 000H ; NULL
DB 049H ; ?
;S7 38 - 3F ;
DB 028H ; 8
DB 027H ; 7
DB 025H ; 5
DB 024H ; 4
DB 022H ; 2
DB 021H ; 1
DB 0E7H ; 00
DB 020H ; 0
; S8 ;
DB 06AH ; *
DB 029H ; 9
DB 02AH ; -
DB 026H ; 6
DB 000H ; NULL
DB 023H ; 3
DB 000H ; NULL
DB 02EH ; ,
KTBLS: DB 062H
DB 061H
DB 097H
DB 091H
DB 081H
DB 0C8H
DB 000H
DB 09AH
DB 064H
DB 063H
DB 092H
DB 085H
DB 084H
DB 093H
DB 098H
DB 083H
DB 066H
DB 065H
DB 099H
DB 094H
DB 087H
DB 086H
DB 096H
DB 082H
DB 068H
DB 067H
DB 089H
DB 095H
DB 08AH
DB 088H
DB 08EH
DB 000H
DB 0BFH
DB 069H
DB 090H
DB 08FH
DB 08CH
DB 08BH
DB 051H
DB 08DH
DB 0A5H
DB 02BH
DB 0BCH
DB 0A4H
DB 06BH
DB 06AH
DB 045H
DB 057H
DB 0C6H
DB 080H
DB 0C4H
DB 0C1H
DB 0CDH
DB 040H
DB 000H
DB 050H
KTBLS: ;S0 00 - 07 ;
DB 062H ; "
DB 061H ; !
DB 097H ; w
DB 091H ; q
DB 081H ; a
DB 0C8H ; INSERT
DB 000H ; NULL
DB 09AH ; z
;S1 08 - 0F ;
DB 064H ; $
DB 063H ; #
DB 092H ; r
DB 085H ; e
DB 084H ; d
DB 093H ; s
DB 098H ; x
DB 083H ; c
;S2 10 - 17 ;
DB 066H ; &
DB 065H ; %
DB 099H ; y
DB 094H ; t
DB 087H ; g
DB 086H ; f
DB 096H ; v
DB 082H ; b
;S3 18 - 1F ;
DB 068H ; (
DB 067H ; '
DB 089H ; i
DB 095H ; u
DB 08AH ; j
DB 088H ; h
DB 08EH ; n
DB 000H ; SPACE
;S4 20 - 27 ;
DB 0BFH ; _
DB 069H ; )
DB 090H ; p
DB 08FH ; o
DB 08CH ; l
DB 08BH ; k
DB 051H ; <
DB 08DH ; m
;S5 28 - 2F ;
DB 0A5H ; ~
DB 02BH ; =
DB 0BCH ; (
DB 0A4H ; '
DB 06BH ; #
DB 06AH ; +
DB 045H ; <-
DB 057H ; >
;S6 30 - 37 ;
DB 0C6H ; CLR
DB 080H ; |
DB 0C4H ; CURSOR LEFT
DB 0C1H ; CURSOR DOWN
DB 0CDH ; CR
DB 040H ; )
DB 000H ; NULL
DB 050H ; UP^
;
KTBLG: ;S0 00 - 07 ;
DB 03EH ; #2
DB 037H ; #1
DB 038H ; #W
DB 03CH ; #Q
DB 053H ; #A
DB 0C7H ; #DEL
DB 000H ; #NULL
DB 076H ; #Z
;S1 08 - 0F ;
DB 07BH ; #4
DB 07FH ; #3
DB 030H ; #R
DB 034H ; #E
DB 047H ; #D
DB 044H ; #S
DB 06DH ; #X
DB 0DEH ; #C
;S2 10 - 17 ;
DB 05EH ; #6
DB 03AH ; #5
DB 075H ; #Y
DB 071H ; #T
DB 04BH ; #G
DB 04AH ; #F
DB 0DAH ; #V
DB 06FH ; #B
;S3 18 - 1F ;
DB 0BDH ; #8
DB 01FH ; #7
DB 07DH ; #I
DB 079H ; #U
DB 05CH ; #J
DB 072H ; #H
DB 032H ; #N
DB 000H ; SPACE
;S4 20 - 27 ;
DB 09CH ; #0
DB 0A1H ; #9
DB 0D6H ; #P
DB 0B0H ; #O
DB 0B4H ; #L
DB 05BH ; #K
DB 060H ; #,
DB 01CH ; #M
;S5 28 - 2F ;
DB 09EH ; #^
DB 0D2H ; #-
DB 0D8H ; #[
DB 0B2H ; #@
DB 0B6H ; ##:
DB 042H ; #;
DB 0DBH ; #/
DB 0B8H ; #.
;S6 30 - 37 ;
DB 0C5H ; HOME
DB 0D4H ; #\
DB 0C3H ; CURSOR RIGHT
DB 0C2H ; CURSOR UP
DB 0CDH ; CR
DB 04EH ; #J
DB 000H ; NULL
DB 0BAH ; #?
;
KTBLGS: ;S0 00 - 07 ;
DB 036H ; ?2
DB 03FH ; ?1
DB 078H ; ?W
DB 07CH ; ?Q
DB 046H ; ?A
DB 0C8H ; INST
DB 000H ; NULL
DB 077H ; ?Z
;S1 08 - 0F ;
DB 03BH ; ?4
DB 07EH ; ?3
DB 070H ; ?R
DB 074H ; ?E
DB 048H ; ?D
DB 041H ; ?S
DB 0DDH ; ?X
DB 0D9H ; C
;S2 10 - 17 ;
DB 01EH ; ?6
DB 07AH ; ?5
DB 035H ; ?Y
DB 031H ; ?T
DB 04CH ; ?G
DB 043H ; ?F
DB 0A6H ; ?V
DB 06EH ; ?B
;S3 18 - 1F ;
DB 0A2H ; ?8
DB 05FH ; ?7
DB 03DH ; ?I
DB 039H ; ?U
DB 05DH ; ?J
DB 073H ; ?H
DB 033H ; ?N
DB 000H ; SPACE
;S4 20 - 27 ;
DB 09DH ; ?0
DB 0A3H ; ?9
DB 0B1H ; ?P
DB 0D5H ; ?O
DB 056H ; ?L
DB 06CH ; ?K
DB 0D0H ; ?,
DB 01DH ; ?M
;S5 28 - 2F ;
DB 09FH ; ?^
DB 0D1H ; ?-
DB 0B3H ; ?[
DB 0D7H ; ?@
DB 04DH ; ?:
DB 0B5H ; ?;
DB 01BH ; ?/
DB 0B9H ; ?.
;S6 30 - 37 ;
DB 0C6H ; CLR
DB 0D3H ; ?\
DB 0C4H ; CURSOR RIGHT
DB 0C1H ; CURSOR UP
DB 0CDH ; CR
DB 0B7H ; ?J
DB 000H ; NULL
DB 0BBH ; ??
;
KTBLC: ;S0 00 - 07 ;
DB 0F0H ; CODE 80H=NOT KEY
DB 0F0H ;
DB 0E2H ; CTRL + W
DB 0C1H ; CTRL + Q
DB 0E0H ; CTRL + A SHIFT LOCK
DB 0F0H ;
DB 000H ;
DB 0E5H ; CTRL + Z
;S1 08 - 0F ;
DB 0F0H ;
DB 0F0H ;
DB 0C2H ; CTRL + R
DB 0CFH ; CTRL + E ROLL DOWN
DB 0CEH ; CTRL + D ROLL UP
DB 0C3H ; CTRL + S
DB 0E3H ; CTRL + X
DB 0F3H ; CTRL + C
;S2 10 - 17 ;
DB 0F0H ;
DB 0F0H ;
DB 0E4H ; CTRL + Y
DB 0C4H ; CTRL + T
DB 0F7H ; CTRL + G
DB 0F6H ; CTRL + F
DB 0C6H ; CTRL + V CLR
DB 0F2H ; CTRL + B
;S3 18 - 1F ;
DB 0F0H ;
DB 0F0H ;
DB 0F9H ; CTRL + I
DB 0C5H ; CTRL + U HOME
DB 0FAH ; CTRL + J
DB 0F8H ; CTRL + H
DB 0FEH ; CTRL + N
DB 0F0H ;
;S4 20 - 27 ;
DB 0F0H ;
DB 0F0H ;
DB 0E1H ; CTRL + P
DB 0FFH ; CTRL + O
DB 0FCH ; CTRL + L
DB 0FBH ; CTRL + K
DB 0F0H ;
DB 0FDH ; CTRL + M
;S5 28 - 2F ;
DB 0EFH ; CTRL + ^
DB 0F4H ; CTRL + -
DB 0E6H ; CTRL + [
DB 0CCH ; CTRL + @ REVERSE
DB 0F0H ;
DB 0F0H ;
DB 0F0H ;
DB 0F0H ;
;S6 30 - 37 ;
DB 0F0H ;
DB 0EBH ; CTRL + \
DB 0F0H ;
DB 0F0H ;
DB 0F0H ;
DB 0EEH ; CTRL + ]
DB 0F0H ;
KTBLG: DB 03EH
DB 037H
DB 038H
DB 03CH
DB 053H
DB 0C7H
DB 000H
DB 076H
DB 07BH
DB 07FH
DB 030H
DB 034H
DB 047H
DB 044H
DB 06DH
DB 0DEH
DB 05EH
DB 03AH
DB 075H
DB 071H
DB 04BH
DB 04AH
DB 0DAH
DB 06FH
DB 0BDH
DB 01FH
DB 07DH
DB 079H
DB 05CH
DB 072H
DB 032H
DB 000H
DB 09CH
DB 0A1H
DB 0D6H
DB 0B0H
DB 0B4H
DB 05BH
DB 060H
DB 01CH
DB 09EH
DB 0D2H
DB 0D8H
DB 0B2H
DB 0B6H
DB 042H
DB 0DBH
DB 0B8H
DB 0C5H
DB 0D4H
DB 0C3H
DB 0C2H
DB 0CDH
DB 04EH
DB 000H
DB 0BAH
KTBLGS: DB 036H
DB 03FH
DB 078H
DB 07CH
DB 046H
DB 0C8H
DB 000H
DB 077H
DB 03BH
DB 07EH
DB 070H
DB 074H
DB 048H
DB 041H
DB 0DDH
DB 0D9H
DB 01EH
DB 07AH
DB 035H
DB 031H
DB 04CH
DB 043H
DB 0A6H
DB 06EH
DB 0A2H
DB 05FH
DB 03DH
DB 039H
DB 05DH
DB 073H
DB 033H
DB 000H
DB 09DH
DB 0A3H
DB 0B1H
DB 0D5H
DB 056H
DB 06CH
DB 0D0H
DB 01DH
DB 09FH
DB 0D1H
DB 0B3H
DB 0D7H
DB 04DH
DB 0B5H
DB 01BH
DB 0B9H
DB 0C6H
DB 0D3H
DB 0C4H
DB 0C1H
DB 0CDH
DB 0B7H
DB 000H
DB 0BBH
KTBLC: DB 0F0H
DB 0F0H
DB 0E2H
DB 0C1H
DB 0E0H
DB 0F0H
DB 000H
DB 0E5H
DB 0F0H
DB 0F0H
DB 0C2H
DB 0CFH
DB 0CEH
DB 0C3H
DB 0E3H
DB 0F3H
DB 0F0H
DB 0F0H
DB 0E4H
DB 0C4H
DB 0F7H
DB 0F6H
DB 0C6H
DB 0F2H
DB 0F0H
DB 0F0H
DB 0F9H
DB 0C5H
DB 0FAH
DB 0F8H
DB 0FEH
DB 0F0H
DB 0F0H
DB 0F0H
DB 0E1H
DB 0FFH
DB 0FCH
DB 0FBH
DB 0F0H
DB 0FDH
DB 0EFH
DB 0F4H
DB 0E6H
DB 0CCH
DB 0F0H
DB 0F0H
DB 0F0H
DB 0F0H
DB 0F0H
DB 0EBH
DB 0F0H
DB 0F0H
DB 0F0H
DB 0EEH
DB 0F0H
?BRK: LD A,0F0H
?BRK: LD A,0F0H
LD (KEYPA),A
NOP
LD A,(KEYPB)
@@ -2468,7 +2505,7 @@ SCROL2: RES 3,H
LD (HL),A
INC HL
DJNZ SCROL2
LD A,(PBIAS) ; PBIAS is the offest for hardware scroll.
LD A,(PBIAS) ; PBIAS is the offest for hardare scroll.
LD L,A
LD H,SCLBASE ; Hardware scroll region, E2<xx>
LD A,(HL)

View File

@@ -196,6 +196,12 @@ CMDTABLE: DB 000H | 000H | 000H | 001H ; Bit 2
DB 000H | 000H | 000H | 001H
DB '8' ; 80 Char screen mode.
DW SETMODE80
DB 000H | 000H | 000H | 004H
DB "7008" ; Switch to 80 column MZ700 mode.
DW SETMODE7008
DB 000H | 000H | 000H | 003H
DB "700" ; Switch to 40 column MZ700 mode.
DW SETMODE700
DB 000H | 000H | 000H | 005H
DB "BASIC" ; Load and run BASIC SA-5510.
DW LOADBASIC
@@ -214,6 +220,9 @@ CMDTABLE: DB 000H | 000H | 000H | 001H ; Bit 2
DB 000H | 000H | 000H | 002H
DB "EC" ; Erase file.
DW ERASESD
DB 000H | 000H | 000H | 004H
DB "FREQ" ; Set or change the CPU frequency.
DW SETFREQ
DB 000H | 000H | 000H | 001H
DB 'F' ; RFS Floppy boot code.
DW FLOPPY
@@ -518,6 +527,48 @@ SETMODE80: LD A, 128
LD A,TZSVC_CMD_LOAD80BIOS ; Request the I/O processor loads the SA1510 80column BIOS into memory.
JR SETBIOS
SETMODE700: LD A, 0
LD (DSPCTL), A
LD (SCRNMODE),A ; 0 = 40char mode on reset.
;
LD A,TZSVC_CMD_LOAD700BIOS40 ; Request the I/O processor loads the MZ700 1Z-013A 40column BIOS into memory.
JR SETBIOS
SETMODE7008:LD A, 128
LD (DSPCTL), A
LD A,1
LD (SCRNMODE),A
LD A,TZSVC_CMD_LOAD700BIOS80 ; Request the I/O processor loads the SA1510 80column BIOS into memory.
JR SETBIOS
; Method to enable/disable the alternate CPU frequency and change it's values.
;
SETFREQ: CALL ConvertStringToNumber ; Convert the input into 0 (disable) or frequency in KHz.
JR NZ,BADNUMERR
LD (TZSVC_CPU_FREQ),HL ; Set the required frequency in the service structure.
LD A,H
CP L
JR NZ,SETFREQ1
LD A, TZSVC_CMD_CPU_BASEFREQ ; Switch to the base frequency.
JR SETFREQ2
SETFREQ1: LD A, TZSVC_CMD_CPU_ALTFREQ ; Switch to the base frequency.
SETFREQ2: CALL SVC_CMD
OR A
JR NZ,SETFREQERR
LD A,H
CP L
RET Z ; If we are disabling the alternate cpu frequency (ie. = 0) exit.
LD A, TZSVC_CMD_CPU_CHGFREQ ; Switch to the base frequency.
CALL SVC_CMD
OR A
JR NZ,SETFREQERR
RET
;
SETFREQERR: LD DE,MSGFREQERR
JR BADNUM2
BADNUMERR: LD DE,MSGBADNUM
BADNUM2: CALL ?PRINTMSG
RET
;
; Memory correction
@@ -1450,6 +1501,7 @@ PRTDIR4: OR A
RET
; Method to request a sector full of directory entries from the I/O processor.
;
; Inputs:

View File

@@ -343,13 +343,17 @@ HELP: ;CALL NL
; Help text. Use of lower case, due to Sharp's non standard character set, is not easy, you have to manually code each byte
; hence using upper case.
HELPSCR: DB "4 - 40 col mode.", 00DH
HELPSCR: ; "--------- 40 column width -------------"
DB "4 - 40 col mode.", 00DH
DB "8 - 80 col mode.", 00DH
DB "700 - Select MZ-700 Mode.", 00DH
DB "7008 - Select MZ-700 80 col Mode.", 00DH
DB "B - toggle keyboard bell.", 00DH
DB "C[b] - clear memory $1200-$D000.", 00DH
DB "DXXXX[YYYY] - dump mem XXXX to YYYY.", 00DH
DB "EC[fn]- erase file, fn=No or Filename", 00DH
DB "F[x] - boot fd drive x.", 00DH
DB "FREQ[n]-set CPU to nKHz, 0 for default.", 00DH
DB "H - this help screen.", 00DH
DB "IC[wc]- SD dir listing, wc=wildcard.", 00DH
DB "JXXXX - jump to location XXXX.", 00DH
@@ -379,45 +383,46 @@ HELPSCR: DB "4 - 40 col mode.", 00DH
; Message table
;
;-------------------------------------------------------------------------------
MSGSON: DB "+ TZFS v1.0 **" ,00DH, 000H ; Version 1.0-> first split from RFS v2.0
MSGNOTFND: DB "Not Found", 00DH, 000H
MSGBADCMD: DB "???", 00DH, 000H
MSGSDRERR: DB "SD Read error, Sec:",0FBH, 000H
MSGSVFAIL: DB "Save failed.", 00DH, 000H
MSGERAFAIL: DB "Erase failed.", 00DH, 000H
MSGCDFAIL: DB "Directory invalid.", 00DH, 000H
MSGERASEDIR:DB "Deleted dir entry:",0FBH, 000H
MSGCMTDATA: DB "Load:",0FEH,",Exec:",0FFH, ",Size:",0FBH, 00DH, 000H
MSGNOTBIN: DB "Not binary", 00DH, 000H
MSGLOAD: DB 00DH, "Loading ",'"',0FAH,'"', 00DH, 000H
MSGSAVE: DB 00DH, "Filename: ", 000H
MSGE1: DB 00DH, "Check sum error!", 00DH, 000H ; Check sum error.
MSGCMTWRITE:DB 00DH, "Writing ", '"',0FAH,'"', 00DH, 000H
MSGOK: DB 00DH, "OK!", 00DH, 000H
MSGSAVEOK: DB "Tape image saved.", 00DH, 000H
MSGBOOTDRV: DB 00DH, "Floppy boot drive ?", 000H
MSGLOADERR: DB 00DH, "Disk loading error", 00DH, 000H
MSGIPLLOAD: DB 00DH, "Disk loading ", 000H
MSGDSKNOTMST:DB 00DH, "This is not a boot disk",00Dh, 000H
MSGINITM: DB "Init memory", 00DH, 000H
MSGREAD4HEX:DB "Bad hex number", 00DH, 000H
MSGT2SDERR: DB "Copy from Tape to SD Failed", 00DH, 000H
MSGSD2TERR: DB "Copy from SD to Tape Failed", 00DH, 000H
MSGT2SDOK: DB "Success, Tape to SD done.", 00DH, 000H
MSGSD2TOK: DB "Success, SD to Tape done.", 00DH, 000H
MSGFAILBIOS:DB "Failed to load alternate BIOS!",00DH, 000H
MSGSON: DB "+ TZFS v1.0 **", 00DH, 000H ; Version 1.0-> first split from RFS v2.0
MSGNOTFND: DB "Not Found", 00DH, 000H
MSGBADCMD: DB "???", 00DH, 000H
MSGSDRERR: DB "SD Read error, Sec:",0FBH, 000H
MSGSVFAIL: DB "Save failed.", 00DH, 000H
MSGERAFAIL: DB "Erase failed.", 00DH, 000H
MSGCDFAIL: DB "Directory invalid.", 00DH, 000H
MSGERASEDIR:DB "Deleted dir entry:",0FBH, 000H
MSGCMTDATA: DB "Load:",0FEH,",Exec:",0FFH, ",Size:", 0FBH, 00DH, 000H
MSGNOTBIN: DB "Not binary", 00DH, 000H
MSGLOAD: DB 00DH, "Loading ",'"',0FAH,'"', 00DH, 000H
MSGSAVE: DB 00DH, "Filename: ", 000H
MSGE1: DB 00DH, "Check sum error!", 00DH, 000H ; Check sum error.
MSGCMTWRITE:DB 00DH, "Writing ", '"',0FAH,'"', 00DH, 000H
MSGOK: DB 00DH, "OK!", 00DH, 000H
MSGSAVEOK: DB "Tape image saved.", 00DH, 000H
MSGBOOTDRV: DB 00DH, "Floppy boot drive ?", 000H
MSGLOADERR: DB 00DH, "Disk loading error", 00DH, 000H
MSGIPLLOAD: DB 00DH, "Disk loading ", 000H
MSGDSKNOTMST:DB 00DH, "This is not a boot disk", 00Dh, 000H
MSGINITM: DB "Init memory", 00DH, 000H
MSGREAD4HEX:DB "Bad hex number", 00DH, 000H
MSGT2SDERR: DB "Copy from Tape to SD Failed", 00DH, 000H
MSGSD2TERR: DB "Copy from SD to Tape Failed", 00DH, 000H
MSGT2SDOK: DB "Success, Tape to SD done.", 00DH, 000H
MSGSD2TOK: DB "Success, SD to Tape done.", 00DH, 000H
MSGFAILBIOS:DB "Failed to load alternate BIOS!", 00DH, 000H
MSGFREQERR: DB "Error, failed to change frequency!". 00DH, 000H
MSGBADNUM: DB "Error, bad number supplied!", 00DH, 000H
;
OKCHECK: DB ", CHECK: ", 00Dh, 000H
OKMSG: DB " OK.", 00Dh, 000H
OKCHECK: DB ", CHECK: ", 00Dh, 000H
OKMSG: DB " OK.", 00Dh, 000H
DONEMSG: DB 11h
DB "RAM TEST COMPLETE.", 00Dh, 000H
BITMSG: DB " BIT: ", 00Dh, 000H
BANKMSG: DB " BANK: ", 00Dh, 000H
MSG_TIMERTST:DB "8253 TIMER TEST", 00Dh, 000H
MSG_TIMERVAL:DB "READ VALUE 1: ", 00Dh, 000H
MSG_TIMERVAL2:DB "READ VALUE 2: ", 00Dh, 000H
MSG_TIMERVAL3:DB "READ DONE.", 00Dh, 000H
DB "RAM TEST COMPLETE.", 00Dh, 000H
BITMSG: DB " BIT: ", 00Dh, 000H
BANKMSG: DB " BANK: ", 00Dh, 000H
MSG_TIMERTST:DB "8253 TIMER TEST", 00Dh, 000H
MSG_TIMERVAL:DB "READ VALUE 1: ", 00Dh, 000H
MSG_TIMERVAL2:DB "READ VALUE 2: ", 00Dh, 000H
MSG_TIMERVAL3:DB "READ DONE.", 00Dh, 000H
SVCRESPERR: DB "I/O Response Error, time out!",00DH, 000H
SVCIOERR: DB "I/O Error, time out!", 00DH, 000H

BIN
software/roms/MZ80B_IPL.rom Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -31,8 +31,8 @@
ROOTDIR=../../tranZPUter
TOOLDIR=${ROOTDIR}/software/tools
JARDIR=${ROOTDIR}/software/tools
ASM=glass.jar
BUILDROMLIST="monitor_80c_SA1510 MZ80AFI monitor_SA1510 monitor_80c_SA1510"
ASM=glass-0.5.jar
BUILDROMLIST="MZ80AFI monitor_SA1510 monitor_80c_SA1510 monitor_1Z-013A monitor_80c_1Z-013A MZ80B_IPL"
#BUILDMZFLIST="hi-ramcheck sharpmz-test"
BUILDMZFLIST="sharpmz-test"
ASMDIR=${ROOTDIR}/software/asm