home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / sigm / sigmv007.ark / XFER5-8.ASM < prev    next >
Assembly Source File  |  1984-04-29  |  2KB  |  139 lines

  1. ;
  2. ;NORTHSTAR TO VERSAFLOPPY FILE TRANSFER PROGRAM
  3. ;DEBUGGED AND ENHANCED BY ROD HART WA3MEZ
  4. ;    AUGUST 14, 1980
  5. ;
  6. ; TO USE, BRING UP THE NORTH STAR CP/M AS A 16K SYSTEM
  7. ; AND THE VERSAFLOPPY AS A 48K SYSTEM. BE SURE TO BOOT
  8. ; UP THE VERSAFLOPPY FIRST AND USE DDT TO BOOT UP THE
  9. ; NORTH STAR SYSTEM.
  10.  
  11. ; THESE EQUATES ARE USED BY THIS PROGRAM
  12.  
  13. VT    EQU    0BH        ;VDM-1 CLEAR SCREEN
  14. BDOS    EQU    5
  15. REBDOS    EQU    0AC06H        ;48K VERSAFLOPPY BDOS VECTOR
  16. SEBDOS    EQU    00005H        ;16K N* BDOS VECTOR
  17. DEFFCB EQU    5CH        ;DEFAULT FILE CONTROL BLOCK
  18. OPEN    EQU    15
  19. SETBUF    EQU    26
  20. DELETE    EQU    19
  21. MAKE    EQU    22
  22. READ    EQU    20
  23. WRITE    EQU    21
  24. CLOSE    EQU    16
  25. PRINT    EQU    9
  26. FCBCR    EQU    DEFFCB+32
  27. WBOOT    EQU    0
  28.  
  29.  
  30.  
  31.     ORG    100H
  32.     LXI    D,MSG5
  33.     MVI    C,PRINT
  34.     CALL    BDOS
  35. START    LXI    H,0
  36.     DAD    SP
  37.     SHLD    OLDSP
  38.     LXI    SP,STACK
  39.     MVI    B,0FH
  40.     LXI    D,6CH
  41.     LXI    H,NFCB
  42. LOOP1    LDAX    D
  43.     MOV    M,A
  44.     INX    H
  45.     INX    D
  46.     DCR    B
  47.     JNZ    LOOP1
  48.     LXI    D,DEFFCB
  49.     MVI    C,OPEN
  50.     CALL    SEBDOS
  51.     CPI    255
  52.     JNZ    OPNOK
  53.     CALL    ERROR
  54.     DB    'FILE NOT FOUND ON THE NORTH STAR DISK.$'
  55. OPNOK    LXI    D,MSG1
  56.     MVI    C,PRINT
  57.     CALL    BDOS
  58.     XRA    A
  59.     STA    FCBCR
  60.     STA    NFCB+32
  61.     LXI    D,NFCB
  62.     MVI    C,DELETE
  63.     CALL    REBDOS
  64.     LXI    D,NFCB
  65.     MVI    C,MAKE
  66.     CALL    REBDOS
  67.     JP    OKOPN
  68.     CALL    ERROR
  69.     DB    'CANNOT CREATE THE FILE ON THE VERSAFLOPPY DISK$'
  70. OKOPN    LXI    D,MSG2
  71.     MVI    C,PRINT
  72.     CALL    BDOS
  73.     CALL    READIT
  74.     CPI    0
  75.     JZ    HERE
  76.     CPI    1
  77.     JZ    DONE
  78.     CALL    ERROR
  79.     DB    'THERE WAS AN ERROR IN THE CALL TO BDOS.$'
  80. HERE    LXI    D,MSG3
  81.     MVI    C,PRINT
  82.     CALL    BDOS
  83.     CALL    WRITIT
  84.     CPI    2
  85.     JNZ    OKOPN
  86.     CALL    ERROR
  87.     DB    'THE DISK IS FULL, CANNOT WRITE ANY MORE TO IT.$'
  88. READIT    PUSH    B
  89.     PUSH    D
  90.     PUSH    H
  91.     MVI    C,SETBUF
  92.     LXI    D,0080H
  93.     CALL    SEBDOS
  94.     MVI    C,READ
  95.     LXI    D,DEFFCB
  96.     CALL    SEBDOS
  97.     POP    H
  98.     POP    D
  99.     POP    B
  100.     RET
  101. WRITIT    PUSH    B
  102.     PUSH    D
  103.     PUSH    H
  104.     MVI    C,SETBUF
  105.     LXI    D,0080H
  106.     CALL    REBDOS
  107.     MVI    C,WRITE
  108.     LXI    D,NFCB
  109.     CALL    REBDOS
  110.     POP    H
  111.     POP    D
  112.     POP    B
  113.     RET
  114. DONE    LXI    D,MSG4
  115.     MVI    C,PRINT
  116.     CALL    BDOS
  117.     MVI    C,CLOSE
  118.     LXI    D,NFCB
  119.     CALL    REBDOS
  120.     JMP    WBOOT
  121. ERROR    POP    D
  122.     MVI    C,PRINT
  123.     CALL    BDOS
  124.     JMP    WBOOT
  125. NFCB    DS    35
  126. OLDSP    DS    2
  127. MSG1    DB    'THE OPENING OF FILES WAS OK'
  128.     DB    0AH,0DH,'$'
  129. MSG2    DB    'READING A SECTOR FROM NORTH STAR DISK'
  130.     DB    0AH,0DH,'$'
  131. MSG3    DB    'WRITING A SECTOR TO VERSAFLOPPY DISK'
  132.     DB    0AH,0DH,'$'
  133. MSG4    DB    'CLOSING THE FILES NOW'
  134.     DB    0AH,0DH,'$'
  135. MSG5    DB    VT,0AH,0DH,'16K NORTH STAR TO 48K VERSAFLOPPY CP/M TRANSFER PROGRAM'
  136.     DB    0AH,0DH,'$'
  137. STACK    EQU    $+100
  138.     END
  139.