;-------------------------------------------------------------------------------------------------------- ;- ;- Name: tzfs_mondef.asm ;- Created: September 2019 ;- Author(s): Philip Smart ;- Description: Sharp MZ series tzfs (tranZPUter Filing System). ;- This assembly language program is a branch from the original RFS written for the ;- MZ80A_RFS upgrade board. It is adapted to work within the similar yet different ;- environment of the tranZPUter SW which has a large RAM capacity (512K) and an ;- I/O processor in the K64F/ZPU. ;- ;- This file contains the SA-1510/1Z-013A monitor specific definitions. ;- ;- Credits: ;- Copyright: (c) 2018-2023 Philip Smart ;- ;- History: May 2020 - Branch taken from RFS v2.0 and adapted for the tranZPUter SW. ;- July 2020 - Updates to accommodate v2.1 of the tranZPUter board. ;- Feb 2023 - TZFS now running on FusionX. Small changes to ensure compatibility. ;- ;-------------------------------------------------------------------------------------------------------- ;- This source file is free software: you can redistribute it and-or modify ;- it under the terms of the GNU General Public License as published ;- by the Free Software Foundation, either version 3 of the License, or ;- (at your option) any later version. ;- ;- This source file is distributed in the hope that it will be useful, ;- but WITHOUT ANY WARRANTY; without even the implied warranty of ;- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;- GNU General Public License for more details. ;- ;- You should have received a copy of the GNU General Public License ;- along with this program. If not, see . ;-------------------------------------------------------------------------------------------------------- ;------------------------------------------------------- ; Function entry points in the standard SA-1510 Monitor. ;------------------------------------------------------- GETL: EQU 00003h LETNL: EQU 00006h NL: EQU 00009h PRNTS: EQU 0000Ch PRNT: EQU 00012h MSG: EQU 00015h MSGX: EQU 00018h GETKY EQU 0001Bh BRKEY EQU 0001Eh ?WRI EQU 00021h ?WRD EQU 00024h ?RDI EQU 00027h ?RDD EQU 0002Ah ?VRFY EQU 0002Dh MELDY EQU 00030h ?TMST EQU 00033h MONIT: EQU 00000h ;SS: EQU 00089h ;ST1: EQU 00095h HLHEX EQU 00410h _2HEX EQU 0041Fh ;?MODE: EQU 0074DH ;?KEY EQU 008CAh PRNT3 EQU 0096Ch ?ADCN EQU 00BB9h ?DACN EQU 00BCEh ?DSP: EQU 00DB5H ?BLNK EQU 00DA6h ?DPCT EQU 00DDCh PRTHL: EQU 003BAh PRTHX: EQU 003C3h HEX: EQU 003F9h DPCT: EQU 00DDCh ;DLY12: EQU 00DA7h ;DLY12A: EQU 00DAAh ?RSTR1: EQU 00EE6h ;MOTOR: EQU 006A3H CKSUM: EQU 0071AH GAP: EQU 0077AH ;WTAPE: EQU 00485H MSTOP: EQU 00700H ; ROM location differences between the MZ80A and MZ-700. IF BUILD_MZ80A > 0 SS: EQU 00089h ST1: EQU 00095h WTAPE: EQU 00485H MOTOR: EQU 006A3H ?MODE: EQU 0074DH ?KEY EQU 008CAh DLY12: EQU 00DA7h DLY12A: EQU 00DAAh ELSE SS: EQU 000A2H ST1: EQU 000ADH WTAPE: EQU 0048AH MOTOR: EQU 0069FH ?MODE: EQU 0073EH ?KEY EQU 009B3H DLY12: EQU 00996H ENDIF ;----------------------------------------------- ; SA-1510 MONITOR WORK AREA (MZ80A) ;----------------------------------------------- STACK: EQU 010F0H ; ORG STACK ; SPV: IBUFE: ; TAPE BUFFER (128 BYTES) ATRB: DS virtual 1 ; ATTRIBUTE NAME: DS virtual FNSIZE ; FILE NAME SIZE: DS virtual 2 ; BYTESIZE DTADR: DS virtual 2 ; DATA ADDRESS EXADR: DS virtual 2 ; EXECUTION ADDRESS COMNT: DS virtual 92 ; COMMENT SWPW: DS virtual 10 ; SWEEP WORK KDATW: DS virtual 2 ; KEY WORK KANAF: DS virtual 1 ; KANA FLAG (01=GRAPHIC MODE) DSPXY: DS virtual 2 ; DISPLAY COORDINATES MANG: DS virtual 6 ; COLUMN MANAGEMENT MANGE: DS virtual 1 ; COLUMN MANAGEMENT END PBIAS: DS virtual 1 ; PAGE BIAS ROLTOP: DS virtual 1 ; ROLL TOP BIAS MGPNT: DS virtual 1 ; COLUMN MANAG. POINTER PAGETP: DS virtual 2 ; PAGE TOP ROLEND: DS virtual 1 ; ROLL END DS virtual 14 ; BIAS FLASH: DS virtual 1 ; FLASHING DATA SFTLK: DS virtual 1 ; SHIFT LOCK REVFLG: DS virtual 1 ; REVERSE FLAG SPAGE: DS virtual 1 ; PAGE CHANGE 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 ; Quickdisk work area ;QDPA EQU 01130h ; QD code 1 ;QDPB EQU 01131h ; QD code 2 ;QDPC EQU 01132h ; QD header startaddress ;QDPE EQU 01134h ; QD header length ;QDCPA EQU 0113Bh ; QD error flag ;HDPT EQU 0113Ch ; QD new headpoint possition ;HDPT0 EQU 0113Dh ; QD actual headpoint possition ;FNUPS EQU 0113Eh ;FNUPF EQU 01140h ;FNA EQU 01141h ; File Number A (actual file number) ;FNB EQU 01142h ; File Number B (next file number) ;MTF EQU 01143h ; QD motor flag ;RTYF EQU 01144h ;SYNCF EQU 01146h ; SyncFlags ;RETSP EQU 01147h ;BUFER EQU 011A3h ;QDIRBF EQU 0CD90h ;SPV: ;IBUFE: ; TAPE BUFFER (128 BYTES) ;ATRB: DS virtual 1 ; Code Type, 01 = Machine Code. ;NAME: DS virtual 17 ; Title/Name (17 bytes). ;SIZE: DS virtual 2 ; Size of program. ;DTADR: DS virtual 2 ; Load address of program. ;EXADR: DS virtual 2 ; Exec address of program. ;COMNT: DS virtual 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