home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / cpmug / cpmug047.ark / FLIP3.ASM < prev    next >
Assembly Source File  |  1984-04-29  |  2KB  |  90 lines

  1. ;    title    'FLIP - flip originate/answer mode under "bye"'
  2. ;    Originally written by Bruce Ratoff.
  3. ;
  4. ;    updated 6/2/80 to uppercase message and require exactly
  5. ;        control-c or return, ignoring all else. (BR)
  6. ;    updated 6/6/80 to work with PMMI modem and to re-ask for
  7. ;        input if invalid answer. Keith Petersen, W8SDZ.
  8. ;    updated 8/8/80 to add conditional assembly for either
  9. ;        PMMI or D C Hayes modem cards (BR)
  10. ;
  11. FALSE    EQU    0    ;BASIC LOGIC DEFINITIONS
  12. TRUE    EQU    NOT FALSE
  13. ;
  14. FASTCLK    EQU     TRUE    ;SET TRUE IF 4MHZ SYSTEM CLOCK
  15. ;
  16. PMMI    EQU    FALSE    ;SET TRUE IF PMMI MODEM
  17. DCH    EQU     TRUE    ;SET TRUE IF D C HAYES MODEM
  18. ;
  19.     IF    DCH
  20. MODCTL    EQU    92H    ;D C HAYES MODEM CONTROL PORT ADDRESS
  21.     ENDIF
  22. ;
  23.     IF    PMMI
  24. MODCTL    EQU    0C0H    ;PMMI MODEM CONTROL PORT ADDRESS
  25.     ENDIF
  26. ;
  27. BDOS    EQU    5
  28. DBUFF    EQU    80H
  29. ;
  30. PMESSG    EQU    9
  31. CHRINP    EQU    1
  32. ;
  33.     ORG    100H
  34. ;
  35. FLIP:    MVI    C,PMESSG
  36.     LXI    D,MESSG
  37.     CALL    BDOS
  38. ;
  39. FLIP1:    MVI    C,PMESSG
  40.     LXI    D,MESSG2
  41.     CALL    BDOS
  42.     MVI    C,CHRINP
  43.     CALL    BDOS
  44.     CPI    3    ;CTL-C?
  45.     JZ    0    ;YES, EXIT TO CP/M WARM BOOT
  46.     CPI    13    ;CARRIAGE RETURN?
  47.     JNZ    FLIP1    ;NO, ASK FOR ANOTHER INPUT
  48. ;
  49. ;SET MODEM FOR OFF-HOOK ORIGINATE
  50.     IF    PMMI
  51.     MVI    A,1DH
  52.     ENDIF
  53.     IF    DCH
  54.     MVI    A,87H
  55.     ENDIF
  56.     OUT    MODCTL
  57.     IF    FASTCLK
  58.     MVI    C,20    ;10 SECONDS AT 4MHZ
  59.     ENDIF
  60.     IF    NOT FASTCLK
  61.     MVI    C,10    ;10 SECOND COUNT
  62.     ENDIF
  63. ;
  64. ;DELAY LOOP - NUMBER OF SECONDS IN C REGISTER
  65. CTLP:    LXI    H,0    ;ONE SECOND DELAY LOOP
  66.     LXI    D,1
  67. ;
  68. SLO:    DAD    D    ;DONE WITH ONE SECOND LOOP?
  69.     JNC    SLO    ;NO, DO ANOTHER LOOP
  70.     DCR    C    ;ONE LESS SECOND
  71.     JNZ    CTLP    ;NOT DONE WITH COUNT
  72. ;
  73.     IF    PMMI
  74. ;SET PMMI MODEM CHIP SO IT CAN HANG UP ON LOSS OF CARRIER
  75.     MVI    A,1CH    ;SET PMMI MODEM FOR ORIGINATE
  76.     OUT    MODCTL
  77.     ENDIF
  78.     JMP    0    ;EXIT TO CP/M WARM BOOT
  79. ;
  80. MESSG:
  81.     DB    'IF YOU HIT RETURN, YOU HAVE 15 SECONDS TO SWITCH',13,10
  82.     DB    'TO ANSWER MODE OR YOU WILL LOSE THE CONNECTION.',13,10
  83.     DB    'IF YOUR MODEM INTERRUPTS THE PHONE LINE WHILE',13,10
  84.     DB    'REVERSING, YOU WILL LOSE THE CALL UNLESS YOU',13,10
  85.     DB    'PICK UP THE PHONE FIRST.',13,10,'$'
  86. ;
  87. MESSG2:    DB    13,10,'TYPE RETURN TO SWITCH, CONTROL-C TO ABORT: $'
  88. ;
  89.     END
  90.