PN COMM-IF 1.3 ; ; ÄNDERUNGEN FÜR FUNKAMATEUER ; NACH 'END' ENTHALTEN ! ; ; * LOAD-CURSOR ; * PORT #0 ; * KUCKUCK ; ; AADR: EQU 01BH EADR: EQU 01DH SADR: EQU 023H PANF: EQU 0E0H PEND: EQU 0E2H PGO: EQU 0E4H TYP: EQU 0ECH APUFF: EQU 00100H AKP: EQU 0FFBEH HLOAD: EQU 0FFF1H HSAVE: EQU 0FFF4H ; PFL: EQU 052H PDR: EQU 050H ; ORG 0E000H BEGIN: JMP START JMP LORUF JMP SARUF JMP DIR JMP ORDER JMP ORDHL JMP FSTAT JMP PRCH JMP INIT ; JMP OTALK JMP UTALK JMP OLIST JMP ULIST JMP OPEN JMP CLOSE JMP IECS JMP IECL ; DIV: DB 8 OWRI: DB 1 PRFL: DB 0 ; START: CALL INIT MAIN: RST 020H DB 2,12,13 DB ' ' DB 'Z1013 - ' DB 'Disk Mon' DB 'itor 1.3' DB 13,' ' DB '********' DB '********' DB '********' DB '**',13,13 DB 13 DB ' L/l . ' DB 'Laden von' DB ' Diskette' DB 13,13 DB ' S/s . ' DB 'Saven auf' DB ' Diskette' DB 13,13 DB ' K ... ' DB 'Kopieren ' DB 'Kass ==>' DB ' Disk' DB 13,13 DB ' C ... ' DB 'Kopieren ' DB 'Disk ==>' DB ' Disk' DB 13,13 DB ' D ... ' DB 'Directory' DB 13,13 DB ' B ... ' DB 'Befehl an' DB ' Floppy' DB 13,13 DB ' P ... ' DB 'Befehl an' DB ' Drucker' DB 13,13 DB ' W ... ' DB 'Floppy ' DB 'waehlen ' DB 0A8H LD A,(DIV) RST 020H DB 6 RST 020H DB 2,')' DB 08DH TAST: RST 020H DB 2 DB 13,13 DB ' Wahl' DB ': > <',8 DB 088H RST 020H DB 1 CMP 3 JRNZ DM2-# RST 020H DB 2,08CH RST 038H DM2: PUSH AF RST 020H DB 0 RST 020H DB 2 DB '<',13,08DH POP AF LD HL,TAST PUSH HL CMP 'L' JPZ LOAD CMP 'l' JPZ LONS CMP 'S' JPZ SAVE CMP 's' JPZ SVKP CMP 'B' JPZ ORDER CMP 'K' JPZ KZDC CMP 'D' JPZ DIRP CMP 'C' JPZ DUAL CMP 'W' JPZ NDA CMP 'P' JPZ PRCH POP HL JMP MAIN ; DI2: RST 020H DB 2,13,08DH NDA: RST 020H DB 2 DB 'Neue Adr' DB 'esse (8 ' DB '.. B):' DB 0A0H RST 020H DB 1 PUSH AF RST 020H DB 0 POP AF CMP '8' JRC DI2-# CMP 'C' JRNC DI2-# SUB 030H CMP 10 JRC WOK-# SUB 7 CMP 10 JRC DI2-# WOK: LD (DIV),A RET KZDC: LD HL,APUFF LD (AADR),HL LD A,04EH LD IY,0 CALL HLOAD LD A,(4) CMP 3 RZ LD HL,(02BH) PAR2: DEC HL LD A,0EBH CMP H JRNC COPY-# LD A,M CMP 0D3H JRNZ PAR2-# LD DE,043H SBC HL,DE EX DE,HL CALL SCAN JR CO2-# COPY: RST 020H DB 2,13,13 DB 'ORIGINAL' DB 0ADH CALL GTADR CO2: LD HL,APUFF LD (AADR),HL DUSA: RST 020H DB 2,13 DB 'Zieldisk ' DB 'einlegen' DB 13,08DH RST 020H DB 1 JR SHD2-# DUAL: LD HL,APUFF LD (AADR),HL CALL LONA LD A,(FANZ) OR A RZ LD A,(4) CMP 3 RZ LD HL,(APRO) LD (PANF),HL LD HL,(EPRO) LD (PEND),HL JR DUSA-# SARUF: CMP ':' JRNZ FRNM-# SVKP: CALL GADR JR SHD2-# FRNM: CALL AKP JR SHD2-# SAVE: LD IY,0 LD A,0 CALL GASC SHD2: LD HL,0F0H LD BC,15 CALL STG2 CALL STYP SAV2: LD HL,SPAC PUSH HL XOR A LD (SPAC+16),A LD C,061H CALL OPEN CALL OLIST LD C,0 LD HL,PANF CALL IECS JRNZ FERR-# CALL IECS RST 020H DB 2 DB 'SAVING' DB 0A0H POP HL CALL PNAM SCF CCF LD HL,(PEND) LD DE,(PANF) SBC HL,DE LD DE,(AADR) PUSH DE ADD HL,DE EX DE,HL POP HL CALL PAE SNXT: LD A,H SUB D JRC SN2-# JRNZ SBRK-# LD A,L SUB E JRZ SN2-# JRNC SBRK-# SN2: LD C,0 CALL IECS JRNZ FERR-# LD A,L OR A JRNZ SNXT-# CALL GAD RST 020H DB 4 CMP 3 JRNZ SNXT-# SBRK: DEC HL CALL GAD LD HL,PGO LD C,0 CALL IECS LD C,040H CALL IECS FBS: RST 020H DB 2,08DH FBS2: CALL ULIST LD C,061H JMP CLOSE FERR: RST 020H DB 2,08DH CALL FSTAT CALL FBS2 POP HL LD A,(PRFL) CMP 063H RNZ LD A,(OWRI) OR A RZ RST 020H DB 2 DB 'SCRATCHING' DB 0A0H CALL PNAM RST 020H DB 2,08DH LD HL,SDEL LD C,06FH CALL OPEN CALL CLOSE JMP SAV2 GASC: CALL GTADR JMP AKP STYP: LD HL,SPAC+13 GSE: DEC HL LD A,M CMP 021H JRC GSE-# INC HL LD M,'.' INC HL LD A,(TYP) LD M,A INC HL LD M,0 RET GTADR: RST 020H DB 2 DB 'Adressen:' DB 0A0H RST 020H DB 16 LD DE,(016H) SCAN: RST 020H DB 3 LD (PANF),HL RST 020H DB 3 LD (PEND),HL RST 020H DB 3 LD (PGO),HL GADR: LD HL,(PANF) LD (AADR),HL LD HL,(PEND) LD (EADR),HL LD HL,(PGO) LD (SADR),HL RET ; ;LFL: BIT 0 =1:kein Start ; BIT 1 =1:neue Aadr. ; BIT 2 =1:Aadr. fragen ; LORUF: LD B,0 PUSH IY POP HL LD A,L CMP 32 JRZ STLK-# SET 0,B STLK: LD HL,(AADR) LD A,H OR L JRZ LON-# SET 1,B LON: LD A,B JR LOS-# LONS: LD A,4 JR LOS-# LONA: LD A,2 JR LOS-# LOKS: LD A,1 JR LOS-# LOAD: XOR A LOS: LD (LFL),A CALL DIR LD A,(FANZ) OR A RZ LD HL,(02BH) LD (PUFF),HL LD DE,0FF85H CALL KPOS FAZK: RST 020H DB 1 CMP 3 JRNZ NCB-# FLBR: LD HL,(PUFF) LD (02BH),HL RET NCB: CMP 13 JRZ PFOU-# LD DE,020H CMP 10 JRZ AZK-# LD DE,0FFE0H CMP 11 JRNZ FAZK-# AZK: CALL KPOS JR FAZK-# KPOS: LD HL,(02BH) ADD HL,DE LD (02BH),HL RET PFOU: LD B,20 LD DE,SPAC FCNF: LD A,M CMP '"' JRZ FCP-# LD (DE),A INC HL INC DE DJNZ FCNF-# LD A,3 LD (4),A JR FLBR-# FCP: XOR A LD (DE),A LD B,20 LD A,' ' SPFN: INC DE LD (DE),A DJNZ SPFN-# CALL FLBR LD HL,SPAC PUSH HL RST 020H DB 2 DB 'SEARCHING' DB ' FOR' DB 0A0H CALL PNAM POP HL PUSH HL LD C,060H CALL OPEN CALL OTALK CALL LADR POP BC JPNZ LERR PUSH BC LD (PANF),HL LD A,(LFL) BIT 1,A JRNZ LDM3-# LD (AADR),HL LDM3: POP HL LD DE,0F0H LD BC,16 LDIR EX DE,HL LD B,16 STP: DEC HL LD A,M OR A JRZ FFT-# DJNZ STP-# JR LB4-# FFT: DEC HL LD B,M DEC HL LD A,M CMP '.' JRZ LB3-# LB4: LD B,'?' LB3: LD A,B NABK: LD (TYP),A CALL TCUT LD A,(LFL) BIT 2,A JRZ NAF-# LD HL,PANF+1 RST 020H DB 13 RST 020H DB 2 DB 'Neue Aadr' DB ':',0A0H RST 020H DB 16 LD DE,(016H) RST 020H DB 3 LD A,H OR L JRZ NAF-# LD (AADR),HL NAF: LD HL,(AADR) RST 020H DB 2 DB 'LOADING' DB 08DH CALL PAE LNXT: CALL IECL JRNZ LBRK-# LD A,L OR A JRNZ LNXT-# CALL GAD RST 020H DB 4 CMP 3 JRNZ LNXT-# INC HL INC HL LBRK: CMP 040H JRZ LBR3-# LD A,'?' LD (TYP),A LBR3: DEC HL DEC HL LBR2: DEC HL PUSH AF PUSH HL CALL GAD POP HL INC HL LD A,M LD (PGO),A INC HL LD A,M LD (PGO+1),A DEC HL DEC HL SCF CCF PUSH HL LD DE,(AADR) SBC HL,DE LD DE,(PANF) LD (APRO),DE ADD HL,DE LD (EPRO),HL POP HL LD (PEND),HL LD HL,(AADR) LD (PANF),HL POP AF CMP 040H JRNZ LB2-# LD A,(LFL) OR A JRNZ LB2-# LD A,(TYP) CMP '?' JRZ FLGO-# CMP 'C' JRNZ LB2-# STLM: LD HL,(PGO) LD A,H OR A JRZ LB2-# PUSH HL JR LB2-# LERR: RST 020H DB 2,08DH CALL FSTAT LB2: RST 020H DB 2,08DH CALL UTALK LD C,060H JMP CLOSE FLGO: RST 020H DB 2 DB ' START ' DB '(Y)/N:' DB 0A0H RST 020H DB 1 LD HL,(02BH) LD M,A CMP 'Y' JRNZ LB2-# LD A,'C' LD (TYP),A JR STLM-# TCUT: LD HL,000FEH LD B,15 TSN: DEC HL LD A,M CMP '.' JRZ TFN-# DJNZ TSN-# RET TFN: INC HL INC HL LD A,M CMP 021H RNC DEC HL DEC HL DELT: LD M,32 INC HL LD A,H OR A JRZ DELT-# RET PAE: RST 020H DB 7 RST 020H DB 2,0ADH RST 020H DB 7 RET PNAM: LD A,M OR A JRZ NCR-# RST 020H DB 0 INC HL JR PNAM-# NCR: RST 020H DB 2,08DH RET GAD: RST 020H DB 2 DB 8,8,8,088H RST 020H DB 7 RET DIRP: RST 020H DB 2 DB 'Printer' DB ' (J)/N ?' DB 08DH RST 020H DB 1 LD (PRFL),A CMP 'J' CAZ PNL JR SD2-# DIR: XOR A LD (PRFL),A SD2: XOR A LD (FANZ),A LD HL,TDIR LD C,060H CALL OPEN CALL OTALK PUSH BC LD B,7 LD HL,SPAC IGN: CALL IECL JRNZ DNR-# DJNZ IGN-# RST 020H DB 2,13 DB 'DISK:' DB 0A0H NZEI: CALL IECIN OR A JRZ EZEI-# NZ2: RST 020H DB 0 JR NZEI-# EZEI: RST 020H DB 2,08DH CALL PRDI RST 020H DB 4 LD HL,FANZ OR A JRNZ DE2-# INC M CALL IECIN CALL IECIN BIT 6,B JRNZ DEND-# CALL LADR CALL PDEZ KORR: CALL IECIN CMP ' ' JRNZ NZ2-# JR KORR-# DNR: CALL FSTAT DEND: LD HL,FANZ LD A,M OR A JRZ DE3-# DEC M DEC M DE2: LD L,M LD H,0 CALL PDEZ RST 020H DB 2 DB 'Files ' DB 'listed.' DB 08DH CALL PRDI DE3: POP BC CALL CLOSE RST 020H DB 2,08DH RET PRDI: LD A,(PRFL) CMP 'J' RNZ LD HL,(02BH) LD DE,32 SBC HL,DE LD B,32 PRL: CALL POUT DJNZ PRL-# PNL: LD A,10 CALL PAO LD A,13 JMP PAO TDIR: DB '$',0 ORDER: RST 020H DB 2 DB 'BEFEHL:' DB 0A0H CALL STRG ORDG: LD C,06FH CALL OPEN CALL FSTAT JMP CLOSE ORDHL: CALL STG1 JR ORDG-# FSTAT: PUSH HL PUSH DE PUSH BC PUSH AF RST 020H DB 2,08DH LD HL,(02BH) LD DE,32 SBC HL,DE LD (02BH),HL LD (PUFF),HL LD C,06FH CALL OTALK NEZ: CALL IECIN RST 020H DB 0 CMP 13 JRNZ NEZ-# CALL UTALK LD DE,(PUFF) RST 020H DB 3 LD A,L LD (PRFL),A POP AF POP BC POP DE POP HL RET PRCH: RST 020H DB 2 DB 'BEFEHL:' DB 0A0H LD HL,(02BH) LD (PUFF),HL PCHL: RST 020H DB 1 CMP 3 RZ CMP 13 JRZ PEXE-# CMP 01BH JRZ DCOD-# CMP 8 JRNZ NCOD-# LD HL,(02BH) LD DE,(PUFF) SBC HL,DE JRZ PCHL-# RST 020H DB 2,8 DB 32,088H JR PCHL-# NCOD: CMP 32 JRC PCHL-# CWR: RST 020H DB 0 JR PCHL-# DCOD: RST 020H DB 1 LD HL,(02BH) LD M,A LD A,9 JR CWR-# PEXE: LD HL,(02BH) LD DE,(PUFF) SBC HL,DE LD B,L EX DE,HL INC B PON: CALL POUT DJNZ PON-# CALL PNL RST 020H DB 2,08DH RET POUT: LD A,M INC HL PAO: OUT PDR POU2: IN PFL BIT 0,A JRNZ POU2-# RET STRG: RST 020H DB 16 LD HL,(016H) STG1: LD BC,40 STG2: LD DE,SPAC LDIR EX DE,HL STE: DEC HL LD A,M CMP 021H JRC STE-# INC HL LD M,0 LD HL,SPAC RET LADR: PUSH BC CALL IECIN LD L,A CALL IECIN LD H,A LD A,B OR A POP BC RET PDEZ: PUSH HL PUSH DE PUSH BC PUSH AF LD D,0 LD BC,100 CALL ZST LD C,10 CALL ZST LD C,1 CALL ZST RST 020H DB 2,0A0H POP AF POP BC POP DE POP HL RET ZST: XOR A NSC: INC A SBC HL,BC JRNC NSC-# ADD HL,BC ADD 02FH CMP '0' JRZ PSP-# LD D,1 JR ZGET-# PSP: DEC C JRZ ZGET-# LD E,A LD A,D OR A LD A,E JRNZ ZGET-# LD A,' ' ZGET: RST 020H DB 0 RET ERRM: PUSH AF LD A,B CMP 040H JRZ NMSG-# OR A CANZ MESG NMSG: POP AF RET MESG: LD A,B CMP 040H JRZ EDAT-# CMP 080H JRZ DNP-# DEC A JRZ OERR-# DEC A JRZ IERR-# OKM: RST 020H DB 2 DB 13 DB 'OK.' DB 08DH RET EDAT: RST 020H DB 2 DB 13 DB 'End of Datas' DB 08DH RET OERR: RST 020H DB 2 DB 13 DB 'Error: OUTPUT' DB 08DH JR ENT-# IERR: RST 020H DB 2 DB 13 DB 'Error: INPUT' DB 08DH JR ENT-# DNP: RST 020H DB 2 DB 13 DB 'Device not' DB ' present' DB 08DH ENT: LD SP,0B0H JMP TAST INIT: LD A,0FFH OUT PFL+1 LD A,0C7H OUT PFL+1 OUT PFL LD A,00FH OUT PDR+1 RET TALK: LD B,040H JR OTL-# LIST: LD B,020H OTL: LD A,(DIV) AND 00FH OR B AATN: PUSH AF IN PFL RES 5,A OUT PFL SET 3,A OUT PFL POP AF AT2: PUSH AF IN PFL SET 4,A OUT PFL RES 5,A OUT PFL LD B,239 LD C,0 WM1: DJNZ WM1-# POP AF IECO: LD B,C LD C,A IN PFL RES 5,A OUT PFL IN PFL BIT 7,A JRNZ DNPS-# RES 4,A OUT PFL BIT 6,B JRZ WLB-# WG1: IN PFL BIT 7,A JRZ WG1-# WG2: IN PFL BIT 7,A JRNZ WG2-# WLB: IN PFL BIT 7,A JRZ WLB-# SET 4,A OUT PFL LD B,8 DONX: IN PFL BIT 7,A JRZ TOMS-# BIT 0,C JRNZ DOH-# DOL: SET 5,A JR DOO-# DOH: JRZ DOH-# RES 5,A DOO: PUSH BC LD B,2 TKO2: DJNZ TKO2-# LD A,A OUT PFL RES 4,A OUT PFL POP BC RRC C RES 5,A SET 4,A OUT PFL DJNZ DONX-# LD B,59 FO3: IN PFL BIT 7,A JRZ EOS-# DJNZ FO3-# TOMS: LD B,1 JR ULS2-# EOS: LD B,0 RET DNPS: LD B,080H JR ULS2-# SEKL: CALL AT2 IN PFL RES 3,A OUT PFL RET SEKT: CALL AT2 IN PFL SET 5,A OUT PFL RES 3,A OUT PFL RES 4,A OUT PFL WCL: IN PFL BIT 6,A JRNZ WCL-# RET UTALK: IN PFL SET 4,A OUT PFL SET 3,A OUT PFL LD A,05FH JR UTLS-# ULIST: LD A,03FH UTLS: CALL AATN ULS2: IN PFL RES 3,A OUT PFL ULS3: EX (SP),HL EX (SP),HL BIT 2,M IN PFL RES 4,A OUT PFL RES 5,A OUT PFL RET IECIN: IN PFL RES 4,A OUT PFL FI0: IN PFL BIT 6,A JRZ FI0-# LD C,0 EOI: LD B,50 RES 5,A OUT PFL FI1: IN PFL BIT 6,A JRZ DISC-# DJNZ FI1-# LD B,2 LD A,C OR A RNZ IN PFL SET 5,A OUT PFL RES 4,A OUT PFL LD C,040H JR EOI-# DISC: LD A,C PUSH AF LD B,8 DINX: IN PFL BIT 6,A JRZ DINX-# SCF BIT 7,A JRNZ DIH-# CCF DIH: RR C WI1: IN PFL BIT 6,A JRNZ WI1-# DJNZ DINX-# SET 5,A OUT PFL POP AF PUSH AF CMP 040H CAZ ULS3 POP AF LD B,A LD A,C RET IECS: PUSH BC LD A,M CALL IECO LD A,B INC HL POP BC OR A RET IECL: PUSH BC CALL IECIN LD M,A LD A,B INC HL POP BC OR A RET OTALK: PUSH AF PUSH BC CALL TALK CALL ERRM POP BC PUSH BC LD A,C CALL SEKT CALL ERRM POP BC POP AF RET OLIST: PUSH AF PUSH BC CALL LIST CALL ERRM POP BC PUSH BC LD A,C CALL SEKL CALL ERRM POP BC POP AF RET CLOSE: PUSH AF PUSH BC LD A,C AND 0EFH OR 0E0H LD C,A CALL OLIST CALL ULIST CALL ERRM POP BC POP AF RET OPEN: PUSH AF PUSH BC LD A,C OR 0F0H LD C,A CALL OLIST NZFN: LD A,M OR A JRZ FNSE-# CALL IECS JR NZFN-# FNSE: CALL ULIST CALL ERRM POP BC POP AF RET FANZ: DB 0 LFL: DB 0 PUFF: DA 0 APRO: DA 0 EPRO: DA 0 SDEL: DB 'S:' SPAC: DB 0 END ; END ; PN COMM-IF ; ; ** FA-Version (1.3) ** ; ; copyright 1991 Dirk Ambras ; ; MAIN: RST 020H DB 2,12,13 DB 'Disk Mon' DB 'itor 1.F' DB ' (c)' DB 027H,'91' DB ' DiAmANT' DB 13,13,13 ; ; ; LOS: LD (LFL),A CALL DIR LD A,(FANZ) OR A RZ LD HL,(02BH) LD (PUFF),HL LD DE,0FF84H CALL KPOS FAZK: LD A,M PUSH AF LD M,'>' RST 020H DB 1 POP BC LD M,B CMP 3 JRNZ NCB-# FLBR: LD HL,(PUFF) LD (02BH),HL RET NCB: CMP 13 JRZ PFOU-# LD DE,020H CMP 10 JRZ AZK-# LD DE,0FFE0H CMP 11 JRNZ FAZK-# AZK: CALL KPOS JR FAZK-# KPOS: LD HL,(02BH) ADD HL,DE LD (02BH),HL RET PFOU: LD B,20 LD DE,SPAC INC HL ;