51b49812f61f8be0acaa9a4790537fd7bf5bbba3
[h316.git] / lib / hachti / src / pl$u.asm
1 * (PL$U) REV 1.0 LOW LEVEL INCREMENTAL PLOTTER DRIVER
2 *
3 *
4 * PROGRAM TITLE: PL$U (PL$U, PL$D, PL$L, PL$R, PL$PU, PL$PD,
5 * PL$UR,PL$UL,PL$DR,PL$DL)
6 *
7 * LOW LEVEL PEN PLOTTER ROUTINES
8 *
9 * REVISIONS:
10 * 1.0 (2007-05-27)
11 * 1.1 (2007-11-08) - ADDED PEN POSITION TRACKING
12 * TO PL$PU AND PL$PD
13 *
14 * AUTHOR:
15 *
16 * PHILIPP HACHTMANN
17 *
18 *
19 * PURPOSE:
20 *
21 * LOW LEVEL PEN PLOTTER DRIVER ROUTINES PROVIDING HARDWARE
22 * ABSTRACTION BY PROVIDING SIMPLE ROUTINES FOR PEN MOVEMENT.
23 *
24 *
25 * STORAGE:
26 *
27 * 100 (OCTAL)
28 * 64 (DECIMAL)
29 *
30 *
31 * USAGE:
32 *
33 * CALL PL$U - STEP UP
34 * CALL PL$D - STEP DOWN
35 * CALL PL$L - STEP LEFT
36 * CALL PL$R - STEP RIGHT
37 * CALL PL$PU - RAISE PEN
38 * CALL PL$PD - LOWER PEN
39 *
40 * CALL PL$UR - STEP UP+RIGHT
41 * CALL PL$UL - STEP UP+LEFT
42 * CALL PL$DR - STEP DOWN+RIGHT
43 * CALL PL$DL - STEP DOWN+LEFT
44 *
45 *
46 *
47 ********************************************************************************
48 *
49 *
50 PADR EQU '40 PORT ADDRESS OF THE PLOTTER INTERFACE
51 *
52 *
53 SUBR PL$U,UP
54 SUBR PL$D,DOWN
55 SUBR PL$R,RGHT
56 SUBR PL$L,LEFT
57 SUBR PL$PU,PENU
58 SUBR PL$PD,PEND
59 SUBR PL$UR,UR
60 SUBR PL$UL,UL
61 SUBR PL$DR,DR
62 SUBR PL$DL,DL
63 *
64 *
65 REL THIS IS A RELOCATEABLE OBJECT
66 ORG '0
67 *
68 *
69 OUT DAC ** DO THE MOVEMENT
70 OTA PADR
71 JMP *-1
72 *
73 * LDA =-1
74 * STA CNT
75 * LDA =-1000
76 * LLL AOA
77 * SZE
78 * JMP LLL
79 * IRS CNT
80 * JMP LLL
81 *
82 JMP* OUT
83 *
84 * CNT DAC **
85 *
86 UP DAC **
87 LDA CUP
88 JST OUT
89 JMP* UP
90 *
91 *
92 DOWN DAC **
93 LDA CDWN
94 JST OUT
95 JMP* DOWN
96 *
97 *
98 RGHT DAC **
99 LDA CRGT
100 JST OUT
101 JMP* RGHT
102 *
103 *
104 LEFT DAC **
105 LDA CLFT
106 JST OUT
107 JMP* LEFT
108 *
109 *
110 PENU DAC **
111 LDA PEN
112 SNZ
113 JMP* PENU
114 CRA
115 STA PEN
116 LDA CPNU
117 JST OUT
118 JMP* PENU
119 CPNU OCT '20
120 *
121 *
122 PEND DAC **
123 LDA PEN
124 SZE
125 JMP* PEND
126 LDA CPND
127 JST OUT
128 IRS PEN
129 JMP* PEND
130 CPND OCT '40
131 *
132 *
133 UL DAC **
134 LDA CUP
135 ADD CLFT
136 JST OUT
137 JMP* UL
138 *
139 *
140 UR DAC **
141 LDA CUP
142 ADD CRGT
143 JST OUT
144 JMP* UR
145 CUP OCT '1
146 *
147 *
148 DL DAC **
149 LDA CDWN
150 ADD CLFT
151 JST OUT
152 JMP* DL
153 CLFT OCT '4
154 *
155 *
156 DR DAC **
157 LDA CDWN
158 ADD CRGT
159 JST OUT
160 JMP* DR
161 CRGT OCT '10
162 CDWN OCT '2
163 *
164 *
165 * CONSTANTS
166 *
167 PEN DEC 0 PEN STATE: 1=DOWN
168 *
169 END