;PROGRAM SURVEY3.ASM ;ASSEMBLE WITH DRI 'MAC' MACRO ASSEMBLER ;PROGRAM PRINTS SYSTEM SURVEY ON CRT/PRINTER ;DISASSEMBLED AND CONVERTED 21 NOV 84 RHP ORG 00100H BDOS EQU 00005H BDOS1 EQU 00006H Y0007 EQU 00007H Y050F EQU 0050FH Y0511 EQU 00511H Y0513 EQU 00513H Y0515 EQU 00515H Y0516 EQU 00516H Y0517 EQU 00517H Y0518 EQU 00518H X1121 EQU 01121H X2FC3 EQU 02FC3H YE1A0 EQU 0E1A0H MACLIB Z80 LD HL,00000H ADD HL,SP LD (Y050F),HL LD SP,0055AH CALL PRINT DB 009H, 009H, 009H DB '*** SYSTEM SURVEY ***' DB 00DH, 00AH, 00DH, 08AH LD HL,00008H LD C,018H PUSH HL CALL BDOS POP HL A0133: RRA JP NC,A0247 PUSH AF PUSH HL CALL PRINT DB 'Drive' DB 0A0H LD A,041H ADD A,H LD E,A CALL PCONS CALL PRINT LD A,(YE1A0) PUSH HL LD E,H LD C,00EH CALL BDOS LD C,01BH CALL BDOS LD L,A LD H,B PUSH HL LD C,00CH CALL BDOS LD A,L OR A JP NZ,A017E LD HL,(BDOS1) LD L,03CH LD A,(HL) LD (Y0517),A INC HL INC HL LD L,(HL) LD H,000H LD (Y0518),HL LD B,020H JP A01B0 A017E: LD A,03FH LD (D04EF),A LD C,01FH CALL BDOS INC HL INC HL LD A,(HL) LD (Y0517),A INC HL INC HL INC HL LD A,(HL) INC HL LD H,(HL) LD L,A LD (Y0518),HL INC HL LD B,003H A019B: LD A,H OR A RRA LD H,A LD A,L RRA LD L,A DEC B JP NZ,A019B LD B,L LD A,(Y0518) AND 003H JP Z,A01B0 INC B A01B0: POP HL LD DE,00000H A01B4: LD C,008H LD A,(HL) A01B7: RRA JP NC,A01BC INC DE A01BC: DEC C JP NZ,A01B7 INC HL DEC B JP NZ,A01B4 CALL A04CC PUSH HL CALL A0485 CALL PRINT DB 'K bytes in' DB 0A0H LD DE,D04EF LD C,011H CALL BDOS LD HL,00000H A01E5: CP 0FFH JP Z,A0208 ADD A,A ADD A,A ADD A,A ADD A,A ADD A,A ADD A,080H LD E,A LD D,000H LD A,(DE) CP 0E5H JP Z,A01FB INC HL A01FB: LD DE,D04EF LD C,012H PUSH HL CALL BDOS POP HL JP A01E5 A0208: CALL A0485 CALL PRINT DB ' files with' DB 0A0H LD HL,(Y0518) EX DE,HL INC DE CALL A04CC EX DE,HL POP HL LD A,H CPL LD H,A LD A,L CPL LD L,A INC HL ADD HL,DE CALL A0485 CALL PRINT DB 'K bytes remaining' DB 00DH DB 08AH POP HL POP AF A0247: INC H DEC L JP NZ,A0133 CALL PRINT DB 00DH, 00AH DB 'MEMORY MAP:', 00DH, 00AH DB '0', 009H, '8', 009H, '16', 009H, '24', 009H, '32' DB 009H, '40', 009H, '48', 009H, '56', 009H, '64' DB 00DH, 00AH DB 07CH, 009H, 07CH, 009H, 07CH, 009H, 07CH, 009H DB 07CH, 009H, 07CH, 009H, 07CH, 009H, 07CH, 009H, 07CH DB 00DH, 00AH CALL NC,X1121 DEC B LD (HL),0FFH INC HL LD (HL),003H LD B,004H A0296: INC HL LD (HL),000H DEC B JP NZ,A0296 LD HL,T0400 LD C,03FH A02A2: LD DE,T0400 XOR A LD (Y0515),A LD (Y0516),A A02AC: LD A,(HL) LD B,A CPL LD (HL),A SUB (HL) LD (HL),B JP NZ,A02C3 PUSH HL LD HL,00511H INC (HL) JP NZ,A02BF INC HL INC (HL) A02BF: POP HL JP A02E4 A02C3: LD (Y0515),A LD A,0FFH SUB B JP NZ,A02D6 LD A,(Y0516) AND A JP Z,A02E4 JP A02D9 A02D6: LD (Y0516),A A02D9: PUSH HL LD HL,00513H INC (HL) JP NZ,A02E3 INC HL INC (HL) A02E3: POP HL A02E4: INC HL DEC DE XOR A OR D OR E JP NZ,A02AC PUSH BC PUSH HL LD A,(Y0515) AND A JP NZ,A031D LD A,(Y0007) DEC H CP H JP C,A0304 CALL PRINT CALL NC,X2FC3 INC BC A0304: ADD A,014H JP NC,A030B LD A,0FFH A030B: CP H JP C,A0316 CALL PRINT JP X2FC3 ;>> No execution path to here << INC BC A0316: CALL PRINT CALL X2FC3 INC BC A031D: LD A,(Y0516) AND A JP Z,A032B CALL PRINT JP NC,X2FC3 INC BC A032B: CALL PRINT AND B POP HL POP BC DEC C JP NZ,A02A2 CALL PRINT DB 00DH, 00AH, 00DH, 00AH DB 'T=TPA' DB 009H DB 'C=CPM' DB 009H DB 'M=Unassigned Memory' DB 009H DB 'R=ROM or Bad Memory' DB 00DH, 00AH, 00DH, 08AH LD HL,(Y0511) PUSH HL CALL A0485 CALL PRINT DB ' Bytes RAM' DB 009H, 089H LD HL,(Y0513) PUSH HL CALL A0485 CALL PRINT DB ' Bytes ROM' DB 009H, 089H LD HL,(BDOS1) CALL A0485 CALL PRINT DB ' Bytes in TPA' DB 00DH, 08AH POP DE POP HL ADD HL,DE PUSH HL LD DE,00000H LD A,H CPL LD H,A LD A,L CPL LD L,A ADD HL,DE CALL A0485 CALL PRINT DB ' Bytes Empty ' DB 089H POP HL CALL A0485 CALL PRINT DB ' Total Active Bytes' DB 00DH, 00AH, 00DH, 00AH DB 'ACTIVE ' T0400: DB 'I/O PORTS' DB 00DH, 08AH LD HL,01000H A040E: DEC HL LD A,H OR L JP NZ,A040E LD HL,00000H LD DE,00009H A041A: LD A,D CP 09FH JP Z,A042A LD (D0424),A IN A,(000H) ;D0424 IS THE LOCATION (000H) HERE CP 0FFH JP Z,A045F A042A: LD A,D PUSH DE PUSH HL JP A0447 A0430: PUSH AF RRCA RRCA RRCA RRCA CALL A0439 POP AF A0439: AND 00FH ADD A,090H DAA ADC A,040H DAA LD E,A LD C,002H JP BDOS A0447: CALL A0430 POP HL POP DE INC HL DEC E JP NZ,A045B LD E,009H CALL PRINT DEC C ADC A,D JP A045F A045B: CALL PRINT ADC A,C A045F: INC D JP NZ,A041A CALL PRINT DEC C ADC A,D CALL A0485 CALL PRINT DB ' Ports active' DB 00DH, 08AH LD HL,(Y050F) LD SP,HL RET ; SUBROUTINES A0485: PUSH BC PUSH DE PUSH HL LD BC,0FFF6H LD DE,0FFFFH A048E: ADD HL,BC INC DE JP C,A048E LD BC,0000AH ADD HL,BC EX DE,HL LD A,H OR L CALL NZ,A0485 LD A,E ADD A,030H LD E,A LD C,002H LD E,A CALL BDOS POP HL POP DE POP BC RET PRINT: EX (SP),HL PUSH DE A04B1: LD A,(HL) LD D,A AND 07FH LD E,A PUSH HL PUSH DE CALL PCONS POP DE POP HL INC HL LD A,080H AND D JP P,A04B1 POP DE EX (SP),HL RET PCONS: LD C,002H JP BDOS A04CC: LD A,(Y0517) CP 003H JP NZ,A04D8 LD L,E A04D5: LD H,000H RET A04D8: CP 002H JP NZ,A04E5 LD A,E RRCA AND 07FH LD L,A JP A04D5 A04E5: SUB 003H LD B,A EX DE,HL A04E9: ADD HL,HL DEC B JP NZ,A04E9 RET D04EF: NOP END