|
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: 1280 (0x500) Types: TextFile Names: »DSKFIL.SRC«
└─⟦c9df7130d⟧ Bits:30005915 Pascal MT+ Release 5.2 (Jet-80) └─ ⟦this⟧ »DSKFIL.SRC«
;SUBROUTINES TO SELECT A DEVICE AND DELETE A FILE ; NAME DSKFIL ENTRY SELDSK,DELETE,POPHDB,PUSHBD INCLUDE DEFLT.SRC ; ; ;SELECT DISK TELLS CP/M TO USE THE DEVICE SPECIFIED BY THE DEVICE NAME ;ENTRY IN THE FILE DESCRIPTOR POINTED TO BY HL. REGISTERS A AND F ARE TRASHED. SELDSK CALL PUSHBD ;SAVE ALL REGISTERS EXCEPT A ;SET DMA ADDRESS TO 80H FOR CP/M'S INTERNAL OPERATIONS. PUSH H LXI D,80H ; SYSTEM'S DMA AREA. MVI C,26 ; CP/M CODE TO SET DMA ADDRESS. CALL CPM POP H LXI D,DEVNUM DAD D ; ADDRESS OF DEVICE NUMBER NOW IN HL MOV E,M MVI C,14 ; CP/M CODE FOR SELECT DISK. CALL CPM JMPR POPHDB ;DELETE REMOVES THE FILE (FROM THE DIRECTORY) WHICH IS SPECIFIED BY THE ;FILE DESCRIPTOR POINTED TO BY HL. DELETE CALL PUSHBD ;SAVE ALL REGISTERS EXCEPT A PUSH PSW CALL SELDSK ; SELECT THE PROPER DRIVE. XCHG MVI C,19 ; CP/M CODE FOR DELETE FILE ENTRY CALL CPM POP PSW POPHDB POP H POP D POP B EXX EXAF POP PSW EXAF POP Y POP X POP H POP D POP B RET ; PUSHBD EXX POP D ;SAVE RETURN ADDRESS EXX PUSH B ;SAVE ALL REGISTERS EXCEPT A PUSH D PUSH H PUSH X PUSH Y EXAF PUSH PSW EXAF EXX PUSH B PUSH D PUSH H PUSH D ;RETURN ADDRESS EXX RET «eof»