mirror of
https://github.com/dschmenk/apple2pi.git
synced 2024-11-28 09:49:27 +00:00
Apple II source
Build with Merlin 8 on ProDOS
This commit is contained in:
parent
ebe1a042fb
commit
3a3d5efe3f
208
src/A2PI.S
Normal file
208
src/A2PI.S
Normal file
@ -0,0 +1,208 @@
|
|||||||
|
1 COUT EQU $FDED
|
||||||
|
2 WAIT EQU $FCA8
|
||||||
|
3 KEYBD EQU $C000
|
||||||
|
4 KBCLR EQU $C010
|
||||||
|
5 PTR EQU $06
|
||||||
|
6 PTRL EQU $06
|
||||||
|
7 PTRH EQU $07
|
||||||
|
8 MOUROM EQU $300
|
||||||
|
9 SSCROM EQU $301
|
||||||
|
10 MOUSLOT EQU $302
|
||||||
|
11 SSCSLOT EQU $303
|
||||||
|
12 MOUINDEX EQU $304
|
||||||
|
13 ORG $1000
|
||||||
|
14 ENTRY LDA #$C1
|
||||||
|
15 STA PTRH
|
||||||
|
16 LDA #$00
|
||||||
|
17 STA PTRL
|
||||||
|
18 STA MOUROM
|
||||||
|
19 STA SSCROM
|
||||||
|
20 STA MOUSLOT
|
||||||
|
21 STA SSCSLOT
|
||||||
|
22 STA MOUINDEX
|
||||||
|
23 *
|
||||||
|
24 * SEARCH SLOTS FOR MOUSE AND SUPERSERIAL CARDS
|
||||||
|
25 *
|
||||||
|
26 IDCARD LDY #$05
|
||||||
|
27 LDA (PTR),Y
|
||||||
|
28 CMP #$38 ; PASCAL ID BYTE
|
||||||
|
29 BNE NEXTCARD
|
||||||
|
30 LDY #$07
|
||||||
|
31 LDA (PTR),Y
|
||||||
|
32 CMP #$18
|
||||||
|
33 BNE NEXTCARD ; PASCAL ID BYTE
|
||||||
|
34 ISMOU LDY #$0C
|
||||||
|
35 LDA (PTR),Y
|
||||||
|
36 CMP #$20
|
||||||
|
37 BNE ISSSC
|
||||||
|
38 LDY #$FB
|
||||||
|
39 LDA (PTR),Y
|
||||||
|
40 CMP #$D6
|
||||||
|
41 BNE ISSSC
|
||||||
|
42 LDA PTRH
|
||||||
|
43 STA MOUROM
|
||||||
|
44 AND #$07
|
||||||
|
45 STA MOUINDEX
|
||||||
|
46 ASL
|
||||||
|
47 ASL
|
||||||
|
48 ASL
|
||||||
|
49 ASL
|
||||||
|
50 STA MOUSLOT
|
||||||
|
51 BNE NEXTCARD
|
||||||
|
52 ISSSC LDY #$0C
|
||||||
|
53 LDA (PTR),Y
|
||||||
|
54 CMP #$31
|
||||||
|
55 BNE NEXTCARD
|
||||||
|
56 LDA PTRH
|
||||||
|
57 STA SSCROM
|
||||||
|
58 ASL
|
||||||
|
59 ASL
|
||||||
|
60 ASL
|
||||||
|
61 ASL
|
||||||
|
62 STA SSCSLOT
|
||||||
|
63 NEXTCARD INC PTRH
|
||||||
|
64 LDA PTRH
|
||||||
|
65 CMP #$C8
|
||||||
|
66 BNE IDCARD
|
||||||
|
67 *
|
||||||
|
68 * INIT MOUSE
|
||||||
|
69 *
|
||||||
|
70 INITMOU LDY MOUINDEX
|
||||||
|
71 BEQ INITSSC
|
||||||
|
72 LDY #$19 ; INIT MOUSE
|
||||||
|
73 JSR CALLMOU
|
||||||
|
74 LDY #$12 ; SET MOUSE
|
||||||
|
75 LDA #$01 ; TRANSPARENT MODE
|
||||||
|
76 JSR CALLMOU
|
||||||
|
77 LDA #$00
|
||||||
|
78 STA $478
|
||||||
|
79 STA $4F8
|
||||||
|
80 LDA #$C0
|
||||||
|
81 STA $578
|
||||||
|
82 LDA #$3F
|
||||||
|
83 STA $5F8
|
||||||
|
84 LDY #$17 ; CLAMP MOUSE
|
||||||
|
85 LDA #$00 ; X AXIS
|
||||||
|
86 JSR CALLMOU
|
||||||
|
87 LDY #$17 ; CLAMP MOUSE
|
||||||
|
88 LDA #$01 ; YAXIS
|
||||||
|
89 JSR CALLMOU
|
||||||
|
90 *
|
||||||
|
91 * INIT SSC CARD FOR 115K BAUD
|
||||||
|
92 *
|
||||||
|
93 INITSSC LDY SSCSLOT
|
||||||
|
94 BNE SETSSC
|
||||||
|
95 JMP EXIT
|
||||||
|
96 SETSSC LDA #$0B
|
||||||
|
97 STA $C08A,Y
|
||||||
|
98 LDA #$10
|
||||||
|
99 STA $C08B,Y ; 115K
|
||||||
|
100 *
|
||||||
|
101 * SYNCHRONIZE WITH PI
|
||||||
|
102 *
|
||||||
|
103 SYNC LDA #$80
|
||||||
|
104 STA $C088,Y
|
||||||
|
105 ORA #'.'
|
||||||
|
106 JSR COUT
|
||||||
|
107 LDA #$FF
|
||||||
|
108 JSR WAIT
|
||||||
|
109 LDA KEYBD
|
||||||
|
110 BMI EXIT
|
||||||
|
111 LDY SSCSLOT
|
||||||
|
112 LDA $C089,Y
|
||||||
|
113 AND #$08
|
||||||
|
114 BEQ SYNC
|
||||||
|
115 LDA $C088,Y
|
||||||
|
116 CMP #$81
|
||||||
|
117 BNE SYNC
|
||||||
|
118 *
|
||||||
|
119 * CHECK INPUT STATE FOR CHANGE
|
||||||
|
120 *
|
||||||
|
121 EVENTLP LDX KEYBD
|
||||||
|
122 BMI SENDKEY
|
||||||
|
123 DEC WAITMOU
|
||||||
|
124 BNE EVENTLP
|
||||||
|
125 CHKMOU LDY #$14 ; READ MOUSE
|
||||||
|
126 JSR CALLMOU
|
||||||
|
127 BCS EVENTLP
|
||||||
|
128 LDY MOUINDEX
|
||||||
|
129 LDA $478,Y
|
||||||
|
130 STA MOUXSTAT
|
||||||
|
131 LDA $4F8,Y
|
||||||
|
132 STA MOUYSTAT
|
||||||
|
133 LDY #$15 ; CLEAR MOUSE
|
||||||
|
134 JSR CALLMOU
|
||||||
|
135 LDA MOUXSTAT
|
||||||
|
136 ORA MOUYSTAT
|
||||||
|
137 BNE SENDMOU
|
||||||
|
138 CHKBTTN LDY MOUINDEX
|
||||||
|
139 LDA $778,Y
|
||||||
|
140 AND #$80
|
||||||
|
141 CMP BTTNSTAT
|
||||||
|
142 BEQ EVENTLP
|
||||||
|
143 JMP SENDBTTN
|
||||||
|
144 SENDKEY STX KBCLR
|
||||||
|
145 LDY SSCSLOT
|
||||||
|
146 LDA #$82 ; KBEVENT CODE
|
||||||
|
147 JSR SENDACC
|
||||||
|
148 JSR SENDMOD
|
||||||
|
149 TXA
|
||||||
|
150 JSR SENDACC
|
||||||
|
151 CPX #$9B ; ESC KEY
|
||||||
|
152 BNE EVENTLP
|
||||||
|
153 LDA $C062
|
||||||
|
154 BPL EVENTLP
|
||||||
|
155 EXIT LDA KBCLR
|
||||||
|
156 LDY #$12 ; SET MOUSE
|
||||||
|
157 LDA #$00 ; DISABLE MOUSE
|
||||||
|
158 JMP CALLMOU
|
||||||
|
159 SENDMOU LDY SSCSLOT
|
||||||
|
160 LDA #$84
|
||||||
|
161 JSR SENDACC
|
||||||
|
162 LDA MOUXSTAT
|
||||||
|
163 JSR SENDACC
|
||||||
|
164 LDA MOUYSTAT
|
||||||
|
165 JSR SENDACC
|
||||||
|
166 JMP CHKBTTN
|
||||||
|
167 SENDBTTN STA BTTNSTAT
|
||||||
|
168 LDY SSCSLOT
|
||||||
|
169 LDA #$86
|
||||||
|
170 JSR SENDACC
|
||||||
|
171 JSR SENDMOD
|
||||||
|
172 LDA BTTNSTAT
|
||||||
|
173 JSR SENDACC
|
||||||
|
174 JMP EVENTLP
|
||||||
|
175 SENDMOD LDA $C062
|
||||||
|
176 ASL
|
||||||
|
177 LDA $C061
|
||||||
|
178 ROR
|
||||||
|
179 AND #$C0
|
||||||
|
180 SENDACC STA $C088,Y
|
||||||
|
181 SENDWT LDA #$10
|
||||||
|
182 AND $C089,Y
|
||||||
|
183 BEQ SENDWT
|
||||||
|
184 RTS
|
||||||
|
185 CALLMOU LDX MOUROM
|
||||||
|
186 BEQ EXITMOU
|
||||||
|
187 STX PTRH
|
||||||
|
188 PHA
|
||||||
|
189 LDA #$00
|
||||||
|
190 STA PTRL
|
||||||
|
191 LDA (PTR),Y
|
||||||
|
192 STA PTRL
|
||||||
|
193 LDX MOUROM
|
||||||
|
194 LDY MOUSLOT
|
||||||
|
195 PLA
|
||||||
|
196 PHP
|
||||||
|
197 SEI
|
||||||
|
198 JSR IJMP
|
||||||
|
199 PLP
|
||||||
|
200 CLC
|
||||||
|
201 RTS
|
||||||
|
202 EXITMOU SEC
|
||||||
|
203 RTS
|
||||||
|
204 IJMP JMP (PTR)
|
||||||
|
205 MOUXSTAT DB 0
|
||||||
|
206 MOUYSTAT DB 0
|
||||||
|
207 BTTNSTAT DB 0
|
||||||
|
208 WAITMOU DB 0
|
Loading…
Reference in New Issue
Block a user