|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 6528 (0x1980) Types: TextFile Names: »COPIFIL.ASM«
└─⟦72577d508⟧ Bits:30003297 Diverse BIOS typer til RC703 └─ ⟦this⟧ »COPIFIL.ASM«
; ; ; .Z80 ; ;====================================================== ; PROGRAMMET 'COPIFIL' KOPIER EN NAVNGIVEN FIL PÅ EN I ; NAVNGIVEN DISC TIL EN NY NAVNGIVEN FIL PÅ EN NAVN- I ; GIVEN DISC. I ; I ;====================================================== ; ; ; ; PROGRAMMØR : PETER HEINRICH ; TASTEOPERØR: LEIF BERTELSEN ; DATO : 19.03.85 ; ; ASEG ORG 103H ; START: CALL INIT ; SÆT DMA TIL BUFFER FLYT FIL- ; NAVNE TIL FCB'ER OG FEJLUDSKRIFT. CALL OPENIND ; OPEN SKRIVFIL. JP Z,FEJL1 ; OPEN OK ? NEJ : FEJL1 ; CALL OPENUD ; OPEN SKRIVEFIL. JP Z,OPRETFIL ; OPEN OK ? NEJ OPRET DEN. ; CALL SVAR ; JA MÅ DEN SLETTES ? JP NZ,SLUT ; NEJ : SLUT. CALL SLETFIL ; JA : SLET FILEN. ; OPRETFIL:CALL OPRET ; MAKE SKRIVEFIL. JP Z,FEJL2 ; MAKE OK ? NEJ : FEJL2. ; IGEN: CALL LAES ; LÆS EN SECTOR (128 BYTES). JP NZ,EOF ; EOF MØDT ? JA EOF. ; ;======================================================= ; BEHANDLING AF DET LÆSTE OG DANNELSEN AF EN POST I ; TIL UDDATAFILEN I ; I ;======================================================= ; CALL SKRIV ; SKRIV EN SECTOR (128 BYTES). JP NZ,FEJL3 ; GIK DET GODT ? NEJ FEJL3. JP IGEN ; NY SECTOR. ; EOF: LD C,CLOSE ; CLOSE LÆSEFILEN. LD DE,FCBIND ; CALL 5 ; LD C,CLOSE ; CLOSE SKRIVEFILEN. LD DE,FCBUD ; CALL 5 ; ; SLUT: JP 0 ; AFSLUT PROGRAMMET. ; INIT: LD C,DMA ; LD DE,BUFFER ; DMA:= BUFFER. CALL 5 ; ; LD BC,16 ; FLYT FILNAVNET FRA LD HL,5CH ; KOMANDOLINIEN TIL LD DE,FCBUD ; FCB. LDIR ; ; LD BC,16 ; FLYT FILNAVNET FRA LD DE,FCBIND ; KOMANDOLINIEN TIL LDIR ; FCB. ; LD BC,11 ; FLYT FILNAVN FRA LD HL,5CH+1 ; KOMADOLINIEN TIL LD DE,TXT+10 ; FEJLUDSKRIVFT. LDIR ; RET ; ; OPENIND: LD C,OPEN ; LD DE,FCBIND ; OPEN INDPUT FILEN. CALL 5 ; CP -1 ; RET ; GIK OPEN GODT? SÆT S-BITTEN. ; OPENUD: LD C,OPEN ; LD DE,FCBUD ; OPEN UDDATAFIL CALL 5 ; CP -1 ; GIK OPEN GODT? SÆT S-BITTEN. RET ; ; SVAR: LD C,CONOUT ; SKRIV LEDETEKST PÅ SKÆRMEN. LD DE,TXT ; CALL 5 ; FILEN FINDES. MÅ DEN SLETTES. LD C,CONIN ; LD DE,SVARBUF ; SVAR J/N. CALL 5 ; ; LD A,(SVARBUF+2) ; LD A MED J/N. CP 'J' ; RET ; ; SLETFIL: LD C,DELETE ; LD DE,FCBUD ; SLET UDDATAFILEN. CALL 5 ; RET ; ; OPRET: LD C,MAKE ; LD DE,FCBUD ; OPRET UDDATAFILEN. CALL 5 ; CP -1 ; GIK MAKE GODT? SÆT Z-BITTEN. RET ; LAES: LD C,READ ; INDLÆS EN SEKTOR. LD DE,FCBIND ; CALL 5 ; CP 0 ; MØDTE VI EOF? SÆT Z-BITTEN. RET ; ; SKRIV: LD C,WRITE ; UDSKRIV EN SEKTOR. LD DE,FCBUD ; CALL 5 ; CP 0 ; DISKETTE FULD? SÆT Z-BITTEN. RET ; ; FEJL1: LD C,CONOUT ; LD DE,FEJL11 ; FILEN FINDES IKKE. CALL 5 ; JP -0 ; ; FEJL2: LD C,CONOUT ; LD DE,FEJL22 ; FILEN KAN IKKE OPRETTES. CALL 5 ; JP EOF ; ; FEJL3: LD C,CONOUT ; LD DE,FEJL33 ; DISKETTEN ER FULD. CALL 5 ; JP EOF ; ; ;**************************************************************** ;* * ;* D A T A D E L E N ! * ;* * ;**************************************************************** ; ; FCBIND: DS 33,0 ; INDDATAFILEN. ; FCBUD: DS 33,0 ; UDDATAFILEN. ; SVARBUF: DB 1 ; DS 1 ; SVAR PÅ SLETNING AF FILEN. DS 1 ; ; TXT: DB 12,6,2+32,2+32,'FILEN ' DS 14,0 DB ' FINDES. MÅ DEN SLETTES : (J/N) ? $' ; FEJL11: DB 6,2+32,2+32,'FILEN FINDES IKKE ! $' ; FEJL22: DB 6,2+32,2+32,'FILEN KAN IKKE OPRETTES ! $' ; FEJL33: DB 6,2+32,2+32,'IKKE PLADS PÅ DISKETTEN ! $' ; BUFFER: DS 128,' ' ; BUFFER AREAL TIL FILER. ; CONOUT EQU 9 ; CONIN EQU 10 ; OPEN EQU 15 ; CLOSE EQU 16 ; DELETE EQU 19 ; READ EQU 20 ; WRITE EQU 21 ; MAKE EQU 22 ; DMA EQU 26 ; ; ; END START «eof»