home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / MODEMS / XMODEM / XM91ZORB.ASM < prev    next >
Assembly Source File  |  2000-06-30  |  3KB  |  117 lines

  1. ; XM91ZRB.ASM -- XMODEM91 PATCH FILE FOR ZORBA BIOS AND HAYES SMARTMODEM
  2. ;
  3. ;
  4. ;
  5. ;                        HOW TO USE :
  6. ;
  7. ; 1) TO USE THE SPEED FUNCTION -- TELLS TRANSFER TIME IN MINUTES
  8. ;    AT CURRENT BAUD RATE -- SET THE MSPEED EQUATE IN THIS FILE
  9. ;    AND BYExx.ASM TO THE SAME NUMBER. SEE 'SPEED' ROUTINE IN THIS
  10. ;    FILE; THERE ARE TWO VERSIONS -- SELECT ONE.
  11. ;
  12. ; 2) SET THE EQUATES AND ASSEMBLE XMODEM91.ASM  (ASM.COM WILL DO)
  13. ;
  14. ; 3) ASSEMBLE THIS FILE (ASM.COM WILL DO)
  15. ;
  16. ; 4) PUT DDT.COM, XMODEM91.HEX, & XM91ZRB.HEX ON DRIVE A:
  17. ;
  18. ; 5) USE DDT TO OVERLAY XMODEM91.HEX WITH THIS FILE (XM91ZRB.HEX)
  19. ;
  20. ;    example:    A>DDT XMODEM91.HEX <CR>
  21. ;               -IXM91ZRB.HEX <CR>
  22. ;               -R <CR>
  23. ;               -G0 <CR>
  24. ;               A>SAVE 21 XMODEM.COM <CR>
  25. ;
  26. ;   you now have the ZORBA version of XMODEM91
  27. ;
  28. ;   NOTE: SAVE 22 IF 'TIMEON' SET TO YES
  29. ;
  30. ; * * * * * * * * * * * * * * * * * * * * * * * 
  31. ; UPDATED 05/27/84      J.E. CROWELL
  32. ; FOR XMODEM91          San Jose, CA
  33. ;
  34. ; EDITED 04/26/84       DONALD G  KRANTZ (TCOG)
  35. ;
  36. ; * * * * * * * * * * * * * * * * * * * * * * * 
  37. ;
  38. MSPORT    EQU    21H        ; status register for rs232
  39. TXRDY    EQU    1        ; bit to test for ready to send
  40. RXRDY    EQU    2        ; bit to test for received data
  41. DPORT    EQU    20H        ; data port
  42. ;
  43. FALSE    EQU    00H
  44. TRUE    EQU    0FFH
  45. ;
  46. CONOUT    EQU    0E20CH        ;console output jump vector v1.7 +
  47. ;
  48. BASE:    EQU    100H        ;start of TPA
  49. ;
  50. MSPEED:    EQU    03CH         ;patch location to agree with your version
  51. ;                ;of BYE
  52. ;
  53. ;-------------------------------------------------------------------
  54. ;
  55. ; Jump table: The jump table must be in exactly the same sequence
  56. ; as the one in XMODEM. Note the ORG of 103H - This jump table has
  57. ; no jump to BEGIN.
  58. ;
  59. ;
  60.      ORG    BASE+3    ;start after JMP BEGIN
  61. ;
  62. ;
  63. PCONOUT: JMP    CONOUT    ;CRT out vector (MUST BE JMP 0 IF NOT IMPLEM.)
  64. PMINIT:     JMP    MINIT    ;initialize whatever has to be (or do RET)
  65. PUNINIT: JMP    UNINIT    ;undo whatever MINIT did (or RET)
  66. PSENDR:     JMP    SENDR    ;send data byte on stack (POP PSW / OUT)
  67. PCAROK:     JMP    CAROK    ;test for carrier. RET Z=ok, NZ=no carrier
  68. PMDIN:     JMP    MDIN    ;receive data byte
  69. PGETCHR: JMP    MDIN    ;IN from modem data only
  70. PRCVRDY: JMP    RREADY    ;check receive ready RET Z=ready
  71. PSNDRDY: JMP    SREADY    ;check send ready RET Z=ready
  72. PSPEED:     JMP    SPEED    ;get speed factor in ACC
  73. PSPARE1: JMP    SPARE    ;3 jumps for custom routines
  74. PSPARE2: JMP    SPARE
  75. PSPARE3: JMP    SPARE
  76. ;
  77. ;-----------------------------------------------------------------------
  78. ;
  79. SPARE:                ;for later use
  80. MINIT:                ;no initialization required
  81. UNINIT:    
  82.     RET
  83. RREADY:
  84.     IN    MSPORT        ; get status
  85.     ANI    RXRDY        ; mask
  86.     SUI    RXRDY        ; z = ready
  87.     RET            ; done
  88. SREADY:
  89.     IN    MSPORT        ; get status
  90.     ANI    TXRDY        ; mask
  91.     SUI    TXRDY        ; z = ready
  92.     RET            ; done
  93. SENDR:
  94.     POP    PSW        ;load up the character from the stack
  95.     OUT    DPORT        ; send char
  96.     RET
  97. MDIN:
  98.     IN    DPORT
  99.     RET
  100. ;
  101. ; USE THE FIRST SPEED IF SETTING UP XMODEM TO AGREE WITH BYE
  102. ; ELSE, USE THE SECOND SPEED (WHICH ONLY DISPLAYS THE TIME
  103. ; AT 300 BAUD).
  104. ;
  105. SPEED:    LDA    MSPEED        ;get byte stored at MSPEED location
  106.     RET
  107. ;
  108. ;SPEED:
  109. ;    MVI    A,1        ;300 BAUD
  110. ;    RET
  111. CAROK:
  112.     IN    MSPORT
  113.     ANI    80H        ; mask dsr
  114.     XRI    80H
  115.     RET
  116.     END
  117.