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 / MEX / ATRPAT.MEX < prev    next >
Text File  |  2000-06-30  |  3KB  |  87 lines

  1. ; Mex patches for ATR8000 with MDM7 overlay
  2. ; These patches allow MEX to test the atr's
  3. ; Parelell port status - Select a baud rate
  4. ; Automatically from MEX's PHONE library.
  5. ;
  6. ; To install, use DDT and overlay the .HEX files over MEX.
  7. ;
  8. ;
  9. ; Ex. DDT MEX112.COM
  10. ;     -IMXO-ATR1.HEX
  11. ;     -R
  12. ;     -IMXO-SM13.HEX
  13. ;     -R
  14. ;     -S0D11
  15. ;     -94 D5(<- YOU TYPE D5)
  16. ;     -46 1D(<- YOU TYPE 1D) - - - You just installed the printer!
  17. ;     -G0
  18. ;
  19. ; DDT Will return to the logged drive at which time type SAVE 95 ATRMEX.COM
  20. ; at cp/m's comand prompt.
  21. ;
  22. ;
  23. ;          My thanks to the author of M7ATR
  24. ;
  25. ;                       also
  26. ;
  27. ;            to Ron Fowler author of MEX
  28. ;
  29. ;
  30. ;                      PATCHES
  31. ;         Authored by Rich Gortatowsky  [72376,2153]
  32. ;
  33. ;                     (12/22/84)
  34. ;
  35.        .Z80
  36.        ORG     01D5H         ;Place printer status routine in LOGON
  37.                              ;as MEX does'nt use that area.
  38. PSTAT: IN      A,(20H)       ;Get printer status
  39.        RLCA                  ;If busy = 0BFH.. Carry set on busy
  40.        JR      NC,PRED       ;If 3FH, printers ready
  41.        LD      A,00H         ;A REAL busy code back to MEX.
  42.        RET
  43. PRED:  LD      A,0FFH        ;A REAL ready status back to MEX.
  44. ;
  45. ; This next routine allows for auto-baud selection from the PHONE command
  46. ; This has only been tested in MEX112.COM, Mex passes a value from 0 to 9
  47. ; to the routine in the A register, 0 corresponding to 110 baud and 9
  48. ; corresponding to 19.2k baud.
  49. ;
  50. ; * HOW CONVIENIENT! considering the ATR's SETCMD: routine uses these   *
  51. ; *                       same values!                                  *
  52. ;
  53. NBAUD: ORG     06ADH         ;Right after physical modem ovly
  54.        PUSH    HL
  55.        PUSH    DE            ;Save all regs.
  56.        PUSH    BC
  57.        LD      HL,03F0H      ;Time values for CTC (baud values)
  58.        PUSH    AF            ;Save the Baud select value passed from MEX
  59.        ADD     A,L           ;Add to get offset to baud rate.
  60.        LD      L,A           ;Store back to L.
  61.        LD      B,(HL)        ;B now contains the Baud value
  62.        LD      HL,06AAH      ;Parity values? HA! CTC init bytes!
  63.        LD      A,(0683H)     ;Index from SETCMD.
  64.        ADD     A,L           ;Must keep parity (?) the same
  65.        LD      L,A           ;HL now points to it.
  66.        LD      C,(HL)        ;C contains ctc control.
  67.        POP     AF            ;Get Baud select value (from MEX)
  68.        CP      06H           ;greater than 1200 bps?
  69.        JR      NC,GRTR       ;If > 1200
  70.        SET     5,C           ;Pre-scale of 256, not 16.
  71. GRTR:  LD      (02BAH),BC    ;Set up parameter for use by COMINIT
  72.        LD      (0398H),A     ;Set SETCMD:'s counter.
  73.        LD      (0107H),A     ;Set MSPEED in modem ovly (MEX looks at it).
  74.        CALL    02BCH         ;Call COMINIT, will init CTC.
  75.        POP     BC
  76.        POP     DE            ;Restore regs (DE used by COMINIT)
  77.        POP     HL
  78.        RET                   ;All DONE!
  79.  
  80. ;
  81. ;
  82. ;
  83.        ORG     0107H         ;Newbaud vector.
  84.        DW      NBAUD
  85. ;
  86.        END
  87.