home *** CD-ROM | disk | FTP | other *** search
/ norge.freeshell.org (192.94.73.8) / 192.94.73.8.tar / 192.94.73.8 / pub / computers / cpm / alphatronic / PASCALZ4.ZIP / D3 / DSKFIL.SRC < prev    next >
Text File  |  1999-04-05  |  1KB  |  66 lines

  1. ;SUBROUTINES TO SELECT A DEVICE AND .DELETE A FILE
  2. ;
  3.     NAME DSKFIL
  4.     ENTRY .SELDSK,.DELETE,.POPHDB,.PUSHBD
  5.     INCLUDE DEFLT.SRC
  6. ;
  7. ;
  8. ;SELECT DISK TELLS CP/M TO USE THE DEVICE SPECIFIED BY THE DEVICE NAME
  9. ;ENTRY IN THE FILE DESCRIPTOR POINTED TO BY HL.  REGISTERS A AND F ARE TRASHED.
  10. .SELDSK    CALL    .PUSHBD        ;SAVE ALL REGISTERS EXCEPT A
  11. ;SET DMA ADDRESS TO 80H FOR CP/M'S INTERNAL OPERATIONS.
  12.     PUSH    H
  13.     LXI    D,80H        ; SYSTEM'S DMA AREA.
  14.     MVI    C,26        ; CP/M CODE TO SET DMA ADDRESS.
  15.     CPM        
  16.     POP    H
  17.     LXI    D,DEVNUM
  18.     DAD    D        ; ADDRESS OF DEVICE NUMBER NOW IN HL
  19.     MOV    E,M
  20.     MVI    C,14        ; CP/M CODE FOR SELECT DISK.
  21.     CPM        
  22.     JMPR    .POPHDB
  23.  
  24. ;.DELETE REMOVES THE FILE (FROM THE DIRECTORY) WHICH IS SPECIFIED BY THE
  25. ;FILE DESCRIPTOR POINTED TO BY HL.
  26. .DELETE    CALL    .PUSHBD        ;SAVE ALL REGISTERS EXCEPT A
  27.     PUSH    PSW
  28.     CALL    .SELDSK        ; SELECT THE PROPER DRIVE.
  29.     XCHG
  30.     MVI    C,19        ; CP/M CODE FOR .DELETE FILE ENTRY
  31.     CPM        
  32.     POP    PSW
  33.  
  34. .POPHDB    POP    H
  35.     POP    D
  36.     POP    B
  37.     EXX
  38.     EXAF
  39.     POP    PSW
  40.     EXAF
  41.     POP    Y
  42.     POP    X
  43.     POP    H
  44.     POP    D
  45.     POP    B
  46.     RET
  47. ;
  48. .PUSHBD    EXX
  49.     POP    D        ;SAVE RETURN ADDRESS
  50.     EXX
  51.     PUSH    B        ;SAVE ALL REGISTERS EXCEPT A
  52.     PUSH    D
  53.     PUSH    H
  54.     PUSH    X
  55.     PUSH    Y
  56.     EXAF
  57.     PUSH    PSW
  58.     EXAF
  59.     EXX
  60.     PUSH    B
  61.     PUSH    D
  62.     PUSH    H
  63.     PUSH    D        ;RETURN ADDRESS
  64.     EXX
  65.     RET
  66.