home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
CPM
/
RCPM
/
ZMD150.LBR
/
ZMAP.ZZ0
/
ZMAP.Z80
Wrap
Text File
|
2000-06-30
|
5KB
|
268 lines
;
TITLE ZMAP.Z80 - 09/29/88 - ZMD System MAP Utility
; Copyrighted (c) 1988
; Robert W. Kramer III
PAGE
;- -;
; Update History ;
; ;
; Date Release Comments ;
; -------- ------- ---------------------------------------------- ;
; ;
; 09/29/88 v1.50 - Initial release ;
;- -;
;-------------------------------------------------------------------------;
; EXTERNAL Declarations: |
;-------------------------------------------------------------------------;
EXTRN EXIT,ILPRTB,OLDDRV,OLDUSR,PRINTV,RECAR1,STACK,TYPE
EXTRN KIND,CATADR,SHONM4,WHLCHK,DECOUT
;
;-------------------------------------------------------------------------;
; Program Starts Here |
;-------------------------------------------------------------------------;
.Z80
ASEG
ORG 100H ; Program starts
JP BEGIN ; Jump around configuration table
INCLUDE ZMDHDR.Z80 ; Include the ZMD header overlay
.REQUEST ZMDSUBS ; Include the ZMD subroutines
;
;
; Save CP/M stack, initialize new one for this program
;
BEGIN: LD (STACK),SP ; Save return address to CCP
LD SP,STACK ; Initialize new one for this program
;
; Save current drive/user
;
LD A,255 ; Get current user
CALL RECAR1
LD (OLDUSR),A ; Store it
LD C,CURDRV ; Get current drive
CALL BDOS
LD (OLDDRV),A ; Store it
;
;
; Display program name and version
;
BEGIN1: LD HL,MAPNAM ; Point to name of this program
CALL PRINTV ; Display it
LD A,(ASKAREA)
OR A
JP Z,NOTDEF ; Upload areas not enabled, Abort
CALL WHLCHK
JP Z,BEGIN2
LD A,1
LD (SPECIAL),A
BEGIN2: CALL HBORD
LD A,'A'
LD (KIND),A
LD A,(MAXTYP)
RRA
PUSH AF
LD A,(MAXTYP)
SUB A,'A'
RRA
LD C,A
POP AF
JP NC,NOTODD
LD A,1
LD (ISODD),A
NOTODD: INC C
LD A,'A'
ADD A,C
LD C,A ; C contains letter of 2nd column descriptors
LD A,(MAXTYP)
SUB A,'@'
LD B,A ; B contains binary number of descriptors
LD DE,DESTBL ; DE contains address to 26 byte table
LD A,C
EX AF,AF'
LD A,'A' ; Initialize first entry
SETLP: LD (DE),A
INC DE
INC A
EX AF,AF'
DJNZ SETLP
LD A,0
LD (DE),A ; Stuff terminator for display routines
;
; Main program loop
;
LOOP: LD A,(COLM)
OR A
JP NZ,DOCOL2
CALL ILPRTB
DB ' | ',0
JP ATEND
DOCOL2: CALL ILPRTB
DB ' || ',0
ATEND: CALL SHOWFD
CALL SHOWDU
LD A,(COLM)
OR A
JP Z,ATEND1
CALL ILPRTB
DB ' |'
DB CR,LF,0
XOR A
JP ATEND2
ATEND1: LD A,1
ATEND2: LD (COLM),A
LD HL,(TBLSAV)
INC HL
LD (TBLSAV),HL
LD A,(HL)
LD (KIND),A
OR A
JP NZ,LOOP
LD A,(ISODD)
OR A
JP Z,ISDN1
ISDONE: CALL ILPRTB
DB ' || ',0
LD A,(SPECIAL)
OR A
JP Z,IS1
CALL ILPRTB
DB ' ',0
IS1: CALL ILPRTB
DB ' |',CR,LF,0
ISDN1: CALL HBORD
CALL ILPRTB
DB CR,LF
DB ' Use FOR/NEW to view recent upload description/log listings.'
DB 0
JP EXIT
;
;
SHOWDU: LD A,(KIND)
SUB 'A'
RLA
RLA
LD D,0
LD E,A
LD IY,TYPTBL
ADD IY,DE
LD A,(IY)
CALL TYPE
LD A,(IY+1)
CALL SHODU1
CALL ILPRTB
DB ' ',0
LD A,(SPECIAL)
OR A
RET Z
LD A,(IY+2)
CALL TYPE
LD A,(IY+3)
SHODU1: CP 10
PUSH AF
LD H,0
LD L,A
CALL DECOUT
CALL ILPRTB
DB ':',0
POP AF
RET C
CALL ILPRTB
DB ' ',0
RET
;
;
SHOWFD: CALL CATADR
INC DE
INC DE
LD B,23
SHOFD1: LD A,(DE)
CALL TYPE
INC DE
DJNZ SHOFD1
CALL ILPRTB
DB ' ',0
RET
;
; Show horizontal border for top and bottom
;
HBORD: CALL ILPRTB
DB ' ================================================================',0
LD A,(SPECIAL)
OR A
JP Z,HBORD1
CALL ILPRTB
DB '==========',0
HBORD1: CALL ILPRTB
DB CR,LF,0
RET
NOTDEF: CALL ILPRTB
DB CR,LF
DB 'ZMD Upload Routing feature not enabled, ',0
LD HL,MAPNAM
CALL SHONM4
CALL ILPRTB
DB 'aborting...',0
JP EXIT
;
; These next are dummy routines to satisfy ZMDSUBS external requests.
; They do nothing, but leave them alone.
;
DONE:: JP EXIT ; Exit routine can take care of us
TIME:: RET
TBLSAV: DW DESTBL
DESTBL: DB 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
ISODD: DB 0
COUNT: DB 0
COLM: DB 0
SPECIAL:DB 0
END