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 / SIMTEL / CPMUG / CPMUG091.ARK / HIA.MAC < prev    next >
Text File  |  1984-04-29  |  1KB  |  73 lines

  1.     TITLE PLOT SUBROUTINES
  2.     SUBTTL JAN. 27, 1982
  3.     PUBLIC  PRINT, SETTIM, PENUP, PENDN
  4. ;
  5. ;    Written by Victor De Pinto
  6. ;
  7. PUNF    EQU    4    ;WRITE PUNCH FUNCTION
  8. DOS    EQU    5    ;CPM ENTRY
  9. ;
  10.     DSEG
  11. ;
  12. TIMC:    DW    16    ;STEP TIMING CONSTANT
  13. ;
  14.     CSEG
  15. ;
  16. ;SET TIME DELAY CONSTANT
  17. ;USE  CALL SETTIM (C)
  18. ;
  19. SETTIM:    MOV    A,M    ;ADDRESS OF CONST. IS IN HL
  20.     STA    TIMC
  21.     INX    H
  22.     MOV    A,M
  23.     STA    TIMC+1
  24.     RET
  25. ;
  26. ;PEN DOWN
  27. ;DROPS THE PLOTTER PEN.
  28. ;
  29. PENDN:    MVI    E,'z'    ;PEN DOWN CHARACTER IN E
  30.     MVI    C,PUNF    ;FUNC. CODE IN REG C
  31.     CALL    DOS    ;PRINT    TO PLOTTER
  32.     LXI    B,500    ;50 MILLISECOND DELAY
  33.     CALL    TIMER
  34.     RET
  35. ;
  36. ;PEN UP
  37. ;LIFTS THE PLOTTER PEN.
  38. ;
  39. PENUP:    MVI    E,'y'    ;PEN UP CHARACTER IN REG E
  40.     MVI    C,PUNF    ;FUNCTION CODE
  41.     CALL    DOS    ;PRINT TO PLOTTER
  42.     LXI    B,500    ;50 MILLISECOND DELAY
  43.     CALL    TIMER
  44.     RET
  45. ;
  46. ;TIMER
  47. ;USED FOR PEN AND STEPPER SETTLE TIME.
  48. ;THIS ROUTINE DELAYS 0.1 MILLISECOND TIMES THE NUMBER IN BC ON ENTRY
  49. ;
  50. TIMER:    PUSH    B
  51.     MVI    C,10    ;THIS SHOULD BE 10 FOR 2 MHZ, 23 FOR 4 MHZ
  52. TIME1:    DCR    C
  53.     JNZ    TIME1
  54.     POP    B
  55.     DCX    B
  56.     MOV    A,B
  57.     ORA    C
  58.     JNZ    TIMER
  59.     RET
  60. ;
  61. ;OUTPUT CHARACTER TO THE PLOTTER
  62. ;
  63. PRINT:    MOV    E,M    ;PUT CHAR IN REG. E
  64.     MVI    C,PUNF    ;FUNCTION CODE IN REG C
  65.     CALL    DOS
  66.     LHLD    TIMC    ;DELAY BETWEEN STEPS
  67.     PUSH    H    ; GET TIMER IN BC
  68.     POP    B
  69.     CALL    TIMER
  70.     RET
  71. ;
  72.     END
  73.