Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.sys.apple2.programmer > #1168
| From | D Finnigan <dog_cow@macgui.com> |
|---|---|
| Newsgroups | comp.sys.apple2.programmer |
| Subject | Source Code for Multitasking Mouse Draw Demo v1.1 |
| Date | 2014-02-25 21:01 +0000 |
| Organization | bbs-scene usenet news |
| Message-ID | <dog_cow-multitasking-sourcev1.1-24feb14@macgui.com> (permalink) |
| References | <dog_cow-1393361871@macgui.com> |
For the benefit of all Apple II users, the source code is hereby
surrendered into the public domain. I claim no copyright on the source code.
Assembler used is Merlin.
1 KBD EQU $C000
2 KBDSTRB EQU $C010
3 SPKR EQU $C030
4 PRBYTE EQU $FDDA
5 PRNTAX EQU $F941
6 DOSWARM EQU $3D0
7 IRQLOC EQU $3FE
8 COUT EQU $FDED
9 VBLINT EQU $09
10 MOUIDLOC1 EQU $05
11 MOUIDLOC2 EQU $07
12 MOUIDLOC3 EQU $0B
13 MOUIDLOC4 EQU $0C
14 MOUIDLOC5 EQU $FB
15 MOUID1 EQU $38
16 MOUID2 EQU $18
17 MOUID3 EQU $01
18 MOUID4 EQU $20
19 MOUID5 EQU $D6
20 BASEADDR EQU $06 ; 2-BYTES FOR INDEXED ADDRESSING
21 MSLOT EQU $08
22 CTR EQU $09 ; IRQ COUNTER
23 ACT EQU $19 ; ACTIVE PROCESS
24 MAXP EQU $06
25 MOUXPOS EQU $1A ; 2 BYTES FOR MOUSE X-POSITION
26 MOUYPOS EQU $1C
27 MOUSTAT EQU $1E
28 CLRTOP EQU $F836
29 SETCOL EQU $F864
30 PLOT EQU $F800
31 SCRN EQU $F871
32 GR EQU $C050
33 MIX EQU $C053
34 RED EQU $01
35 BLUE EQU $02
36 BLACK EQU $00
37 WHITE EQU $0F
38 *
8000: A9 9B 39 LDA #$9B
8002: 20 ED FD 40 JSR COUT
8005: A9 91 41 LDA #$91 ; KILL 80-COLS FIRMWARE
8007: 20 ED FD 42 JSR COUT
800A: A9 14 43 LDA #$14
800C: 85 22 44 STA $22 ; TOP OF TEXT WINDOW
800E: 85 25 45 STA $25
46 *
8010: A9 00 47 FINDMOUSE LDA #$00
8012: 85 06 48 STA BASEADDR
8014: A9 C8 49 LDA #$C8
8016: 85 07 50 STA BASEADDR+1
8018: A2 08 51 LDX #$08
801A: CA 52 :LOOP1 DEX
801B: F0 42 53 BEQ :NOMOUSE
801D: C6 07 54 DEC BASEADDR+1
801F: A0 05 55 LDY #MOUIDLOC1
8021: B1 06 56 LDA (BASEADDR),Y
8023: C9 38 57 CMP #MOUID1
8025: D0 F3 58 BNE :LOOP1
8027: A0 07 59 LDY #MOUIDLOC2
===== Page 2 =====
8029: B1 06 60 LDA (BASEADDR),Y
802B: C9 18 61 CMP #MOUID2
802D: D0 EB 62 BNE :LOOP1
802F: A0 0B 63 LDY #MOUIDLOC3
8031: B1 06 64 LDA (BASEADDR),Y
8033: C9 01 65 CMP #MOUID3
8035: D0 E3 66 BNE :LOOP1
8037: A0 0C 67 LDY #MOUIDLOC4
8039: B1 06 68 LDA (BASEADDR),Y
803B: C9 20 69 CMP #MOUID4
803D: D0 DB 70 BNE :LOOP1
803F: A0 FB 71 LDY #MOUIDLOC5
8041: B1 06 72 LDA (BASEADDR),Y
8043: C9 D6 73 CMP #MOUID5
8045: D0 D3 74 BNE :LOOP1
8047: 8A 75 TXA
8048: 0A 76 ASL
8049: 0A 77 ASL
804A: 0A 78 ASL
804B: 0A 79 ASL
804C: 85 08 80 STA MSLOT
804E: A9 8D 81 LDA #$8D
8050: 20 ED FD 82 JSR COUT
8053: 8A 83 TXA
8054: 20 DA FD 84 JSR PRBYTE
8057: A9 8D 85 LDA #$8D
8059: 20 ED FD 86 JSR COUT
805C: 4C 7C 80 87 JMP CREATEALL
805F: A0 00 88 :NOMOUSE LDY #$00
8061: B9 71 80 89 :LOOP LDA NOMOUMSG,Y
8064: F0 08 90 BEQ :DONE
8066: 09 80 91 ORA #$80
8068: 20 ED FD 92 JSR COUT
806B: C8 93 INY
806C: D0 F3 94 BNE :LOOP
806E: 4C D0 03 95 :DONE JMP DOSWARM
8071: 8D CE CF 96 NOMOUMSG HEX 8DCECFA0CDCFD5D3C58D00
8074: A0 CD CF D5 D3 C5 8D 00
97 *
807C: 58 98 CREATEALL CLI
807D: 08 99 PHP
807E: 78 100 SEI
807F: A9 FF 101 LDA #$FF
8081: 8D 00 82 102 STA STKTAB
8084: 85 19 103 STA ACT
8086: A0 16 104 LDY #$16
8088: A9 83 105 LDA #<PROC0
808A: A2 82 106 LDX #>PROC0
808C: 20 9A 80 107 JSR NEWPROC
808F: 20 F1 80 108 JSR VBLON
8092: A9 13 109 LDA #$13
8094: 85 09 110 STA CTR
8096: 28 111 PLP ; ENABLE IRQ
8097: 4C 97 80 112 :IDLE JMP :IDLE
113 *
809A: 08 114 NEWPROC PHP
809B: 78 115 SEI
===== Page 3 =====
809C: 48 116 PHA
809D: 8A 117 TXA
809E: 48 118 PHA
809F: 98 119 TYA
80A0: 48 120 PHA
80A1: AC 00 82 121 LDY STKTAB
80A4: C8 122 INY ; NEXT PROCESS ID
80A5: F0 04 123 BEQ :CURR ; FIRST PROCESS?
80A7: C0 06 124 CPY #MAXP ; PROCESS LIMIT REACHED?
80A9: F0 45 125 BEQ :DONE
80AB: 8C 00 82 126 :CURR STY STKTAB
80AE: F0 0F 127 BEQ :TSX ; OFFSET FROM CURRENT SP
80B0: 88 128 DEY ; OFFSET FROM LAST PROC SP
80B1: C4 19 129 CPY ACT ; CURRENT PROCESS?
80B3: F0 0A 130 BEQ :TSX
80B5: BE 01 82 131 LDX STKTAB+1,Y
80B8: 8A 132 TXA
80B9: 38 133 SEC
80BA: E9 20 134 SBC #$20 ; NEW PROC SP
80BC: C8 135 INY
80BD: D0 08 136 BNE :STORSP
80BF: BA 137 :TSX TSX
80C0: 8A 138 TXA
80C1: 38 139 SEC
80C2: E9 20 140 SBC #$20
80C4: AC 00 82 141 LDY STKTAB ; RELOAD NEW PROCESS ID
80C7: AA 142 :STORSP TAX
80C8: 99 01 82 143 STA STKTAB+1,Y
80CB: 68 144 PLA ; PROCESS PRIORITY
80CC: 99 07 82 145 STA PRIOTAB,Y
80CF: 68 146 PLA ; HI-BYTE OF START ADDR
80D0: 9D 00 01 147 STA $0100,X
80D3: CA 148 DEX
80D4: 68 149 PLA ; LO-BYTE OF START ADDR
80D5: 9D 00 01 150 STA $0100,X
80D8: A9 00 151 LDA #$00 ; INITIAL PROCESSOR STATUS
80DA: CA 152 DEX
80DB: 9D 00 01 153 STA $0100,X
80DE: CA 154 DEX
80DF: 9D 00 01 155 STA $0100,X ; INITIAL REGISTERS
80E2: CA 156 DEX
80E3: 9D 00 01 157 STA $0100,X
80E6: CA 158 DEX
80E7: 9D 00 01 159 STA $0100,X
80EA: CA 160 DEX
80EB: 8A 161 TXA
80EC: 99 01 82 162 STA STKTAB+1,Y
80EF: 28 163 PLP
80F0: 60 164 :DONE RTS
165 *
80F1: A9 01 166 VBLON LDA #$01
80F3: 20 15 81 167 JSR SETMOUSE
80F6: 20 09 81 168 JSR INITMOUSE
80F9: A9 8B 169 LDA #<IRQ
80FB: 8D FE 03 170 STA IRQLOC
80FE: A9 81 171 LDA #>IRQ
8100: 8D FF 03 172 STA IRQLOC+1
===== Page 4 =====
8103: A9 09 173 LDA #VBLINT
8105: 20 15 81 174 JSR SETMOUSE ; TURN ON MOUSE VBL INTERRUPTS
8108: 60 175 RTS
176 *
8109: A0 19 177 INITMOUSE LDY #$19
810B: A9 00 178 LDA #$00
810D: 85 06 179 STA BASEADDR
810F: B1 06 180 LDA (BASEADDR),Y
8111: 85 06 181 STA BASEADDR
8113: D0 3E 182 BNE MOUSEJMP
183 *
8115: A0 12 184 SETMOUSE LDY #$12
8117: AA 185 TAX
8118: A9 00 186 LDA #$00
811A: 85 06 187 STA BASEADDR
811C: B1 06 188 LDA (BASEADDR),Y
811E: 85 06 189 STA BASEADDR
8120: 8A 190 TXA
8121: 10 30 191 BPL MOUSEJMP
192 *
8123: A0 13 193 SERVEMOUSE LDY #$13
8125: A9 00 194 LDA #$00
8127: 85 06 195 STA BASEADDR
8129: B1 06 196 LDA (BASEADDR),Y
812B: 85 06 197 STA BASEADDR
812D: D0 24 198 BNE MOUSEJMP
199 *
812F: AA 200 CLAMPMOUSE TAX
8130: A0 17 201 LDY #$17
8132: A9 00 202 LDA #$00
8134: 85 06 203 STA BASEADDR
8136: B1 06 204 LDA (BASEADDR),Y
8138: 85 06 205 STA BASEADDR
813A: 8A 206 TXA
813B: 10 16 207 BPL MOUSEJMP
208 *
813D: A0 18 209 HOMEMOUSE LDY #$18
813F: A9 00 210 LDA #$00
8141: 85 06 211 STA BASEADDR
8143: B1 06 212 LDA (BASEADDR),Y
8145: 85 06 213 STA BASEADDR
8147: D0 0A 214 BNE MOUSEJMP
215 *
8149: A0 14 216 READMOUSE LDY #$14
814B: A9 00 217 LDA #$00
814D: 85 06 218 STA BASEADDR
814F: B1 06 219 LDA (BASEADDR),Y
8151: 85 06 220 STA BASEADDR
221 *
8153: A6 07 222 MOUSEJMP LDX BASEADDR+1
8155: A4 08 223 LDY MSLOT
8157: 6C 06 00 224 JMP (BASEADDR)
225 *
815A: 08 226 SLEEP PHP
815B: 78 227 SEI
815C: 29 7F 228 AND #$7F
815E: 48 229 PHA
===== Page 5 =====
815F: 8A 230 TXA
8160: 48 231 PHA
8161: 98 232 TYA
8162: 48 233 PHA
8163: A4 19 234 LDY ACT
8165: BA 235 TSX
8166: E8 236 INX
8167: E8 237 INX
8168: E8 238 INX
8169: BD 00 01 239 LDA $0100,X
816C: 99 0D 82 240 STA SLPTAB,Y
816F: D0 09 241 BNE YIELD2
8171: F0 07 242 BEQ YIELD2
243 *
8173: 08 244 YIELD PHP
8174: 78 245 SEI
8175: 48 246 PHA
8176: 8A 247 TXA
8177: 48 248 PHA
8178: 98 249 TYA
8179: 48 250 PHA
817A: BA 251 YIELD2 TSX ; FIX JSR RETURN FOR RTI
817B: 8A 252 TXA
817C: 18 253 CLC
817D: 69 05 254 ADC #$05
817F: AA 255 TAX
8180: FE 00 01 256 INC $0100,X
8183: D0 47 257 BNE RESETCTR
8185: E8 258 INX
8186: FE 00 01 259 INC $0100,X
8189: D0 41 260 BNE RESETCTR
261
262 *
818B: A5 45 263 IRQ LDA $45
818D: 48 264 PHA
818E: 8A 265 TXA
818F: 48 266 PHA
8190: 98 267 TYA
8191: 48 268 PHA
8192: 20 23 81 269 JSR SERVEMOUSE
8195: B0 63 270 BCS IRQDONE
8197: 20 49 81 271 JSR READMOUSE
819A: A5 07 272 LDA BASEADDR+1
819C: 29 0F 273 AND #$F
819E: AA 274 TAX
819F: BD 78 04 275 LDA $478,X
81A2: 85 1A 276 STA MOUXPOS
81A4: BD F8 04 277 LDA $4F8,X
81A7: 85 1C 278 STA MOUYPOS
81A9: BD 78 05 279 LDA $578,X
81AC: 85 1B 280 STA MOUXPOS+1
81AE: BD F8 05 281 LDA $5F8,X
81B1: 85 1D 282 STA MOUYPOS+1
81B3: BD 78 07 283 LDA $778,X
81B6: 85 1E 284 STA MOUSTAT
81B8: A4 19 285 LDY ACT
81BA: 30 1B 286 BMI IRQNEXT ; BOOTSTRAP INITIAL PROCESS
===== Page 6 =====
81BC: AD 00 82 287 LDA STKTAB
81BF: F0 39 288 BEQ IRQDONE ; ONLY 1 PROCESS
81C1: A5 09 289 :CTR LDA CTR
81C3: D9 07 82 290 CMP PRIOTAB,Y
81C6: F0 04 291 BEQ RESETCTR
81C8: E6 09 292 INC CTR
81CA: D0 2E 293 BNE IRQDONE
81CC: A9 00 294 RESETCTR LDA #$00
81CE: 85 09 295 STA CTR
81D0: A4 19 296 LDY ACT
81D2: BA 297 TSX
81D3: 8A 298 TXA
81D4: 99 01 82 299 STA STKTAB+1,Y
81D7: C8 300 IRQNEXT INY
81D8: CC 00 82 301 CPY STKTAB
81DB: 90 04 302 BCC :SLEEP
81DD: F0 02 303 BEQ :SLEEP
81DF: A0 00 304 LDY #$00 ; LOOP BACK TO PROCESS 0
81E1: B9 0D 82 305 :SLEEP LDA SLPTAB,Y
81E4: F0 08 306 BEQ :CTXSW ; PROCESS IS NOT ASLEEP
81E6: AA 307 TAX
81E7: CA 308 DEX
81E8: 8A 309 TXA
81E9: 99 0D 82 310 STA SLPTAB,Y
81EC: D0 E9 311 BNE IRQNEXT
81EE: BE 01 82 312 :CTXSW LDX STKTAB+1,Y
81F1: 9A 313 TXS
81F2: 84 19 314 STY ACT
81F4: AD 30 C0 315 LDA SPKR
81F7: AD 30 C0 316 LDA SPKR
81FA: 68 317 IRQDONE PLA
81FB: A8 318 TAY
81FC: 68 319 PLA
81FD: AA 320 TAX
81FE: 68 321 PLA
81FF: 40 322 RTI
323 *
8200: 00 00 00 324 STKTAB DS MAXP+1
8203: 00 00 00 00
8207: 00 00 00 325 PRIOTAB DS MAXP ; PROCESS PRIORITIES TABLE
820A: 00 00 00
820D: 00 00 00 326 SLPTAB DS MAXP ; SLEEPING PROCESSES TABLE
8210: 00 00 00
327 *
8213: A5 1E 328 PROC3 LDA MOUSTAT
8215: 10 17 329 BPL :NEXT
8217: A5 1A 330 LDA MOUXPOS
8219: 08 331 PHP
821A: 78 332 SEI
821B: 20 DA FD 333 JSR PRBYTE
821E: A9 A0 334 LDA #$A0
8220: 20 ED FD 335 JSR COUT
8223: A5 1C 336 LDA MOUYPOS
8225: 20 DA FD 337 JSR PRBYTE
8228: A9 8D 338 LDA #$8D
822A: 20 ED FD 339 JSR COUT
822D: 28 340 PLP
===== Page 7 =====
822E: 20 73 81 341 :NEXT JSR YIELD
8231: 4C 13 82 342 JMP PROC3
343 *
8234: A2 27 344 PROC2 LDX #$27
8236: A0 27 345 LDY #$27
8238: A9 03 346 LDA #$03
823A: 20 5A 81 347 JSR SLEEP
823D: 08 348 :L1 PHP
823E: 78 349 SEI
823F: A9 02 350 LDA #BLUE
8241: 20 64 F8 351 JSR SETCOL
8244: 8A 352 TXA
8245: 20 00 F8 353 JSR PLOT
8248: 28 354 PLP
8249: 20 73 81 355 JSR YIELD
824C: 88 356 DEY
824D: 10 EE 357 BPL :L1
824F: A0 27 358 LDY #$27
8251: CA 359 DEX
8252: 10 E9 360 BPL :L1
8254: A2 27 361 LDX #$27
8256: D0 E5 362 BNE :L1
363 *
8258: A0 00 364 PROC1 LDY #$00
825A: A2 00 365 LDX #$00
825C: 08 366 :L1 PHP
825D: 78 367 SEI
825E: A9 01 368 LDA #RED
8260: 20 64 F8 369 JSR SETCOL
8263: 8A 370 TXA
8264: 20 00 F8 371 JSR PLOT
8267: 28 372 PLP
8268: 20 73 81 373 JSR YIELD
826B: C8 374 INY
826C: C0 28 375 CPY #$28
826E: D0 EC 376 BNE :L1
8270: A0 00 377 LDY #$00
8272: A9 07 378 LDA #$07
8274: 20 5A 81 379 JSR SLEEP
8277: E8 380 INX
8278: E0 28 381 CPX #$28
827A: D0 E0 382 BNE :L1
827C: A2 00 383 LDX #$00
827E: F0 DC 384 BEQ :L1
8280: 4C 58 82 385 JMP PROC1
386 *
8283: 08 387 PROC0 PHP
8284: 78 388 SEI
8285: A9 00 389 LDA #$00
8287: A2 27 390 LDX #$27 ; MAX X CLAMP
8289: 8D 78 04 391 STA $478
828C: 8E F8 04 392 STX $4F8
828F: 8D 78 05 393 STA $578
8292: 8D F8 05 394 STA $5F8
8295: 20 2F 81 395 JSR CLAMPMOUSE
8298: A0 00 396 LDY #$00
829A: A9 01 397 LDA #$01
===== Page 8 =====
829C: A2 27 398 LDX #$27
829E: 8C 78 04 399 STY $478
82A1: 8E F8 04 400 STX $4F8
82A4: 8C 78 05 401 STY $578
82A7: 8C F8 05 402 STY $5F8
82AA: 20 2F 81 403 JSR CLAMPMOUSE
82AD: 20 3D 81 404 JSR HOMEMOUSE
82B0: 28 405 PLP
82B1: AD 53 C0 406 LDA MIX
82B4: AD 50 C0 407 LDA GR
82B7: 08 408 PHP
82B8: 78 409 SEI
82B9: 20 36 F8 410 JSR CLRTOP
82BC: 28 411 PLP
82BD: A0 0B 412 LDY #$0B ; PROCESS PRIORITY
82BF: A9 58 413 LDA #<PROC1
82C1: A2 82 414 LDX #>PROC1
82C3: 20 9A 80 415 JSR NEWPROC
82C6: A0 06 416 LDY #$06
82C8: A9 34 417 LDA #<PROC2
82CA: A2 82 418 LDX #>PROC2
82CC: 20 9A 80 419 JSR NEWPROC
82CF: A0 0B 420 LDY #$0B
82D1: A9 13 421 LDA #<PROC3
82D3: A2 82 422 LDX #>PROC3
82D5: 20 9A 80 423 JSR NEWPROC
82D8: 2C 00 C0 424 :NEXT BIT KBD
82DB: 30 16 425 BMI :CLRIT
82DD: 08 426 PHP
82DE: 78 427 SEI
82DF: A5 1E 428 LDA MOUSTAT ; CHECK BUTTON STATUS
82E1: 10 0C 429 BPL :PULL
82E3: A9 0F 430 LDA #WHITE
82E5: 20 64 F8 431 JSR SETCOL
82E8: A5 1C 432 LDA MOUYPOS
82EA: A4 1A 433 LDY MOUXPOS
82EC: 20 00 F8 434 JSR PLOT
82EF: 28 435 :PULL PLP
82F0: 4C D8 82 436 JMP :NEXT
82F3: 2C 10 C0 437 :CLRIT BIT KBDSTRB
82F6: A0 00 438 LDY #$00
82F8: A2 00 439 LDX #$00
82FA: 8A 440 :L1 TXA
82FB: 08 441 PHP
82FC: 78 442 SEI
82FD: 20 71 F8 443 JSR SCRN
8300: 28 444 PLP
8301: 48 445 PHA
8302: 68 446 PLA
8303: C9 0F 447 CMP #WHITE
8305: D0 0C 448 BNE :L2
8307: A9 00 449 LDA #BLACK
8309: 08 450 PHP
830A: 78 451 SEI
830B: 20 64 F8 452 JSR SETCOL
830E: 8A 453 TXA ; VERTICAL POSITION IN A-REG
830F: 20 00 F8 454 JSR PLOT
===== Page 9 =====
8312: 28 455 PLP
8313: C8 456 :L2 INY
8314: C0 28 457 CPY #$28
8316: D0 E2 458 BNE :L1
8318: A0 00 459 LDY #$00
831A: E8 460 INX
831B: E0 28 461 CPX #$28
831D: D0 DB 462 BNE :L1
831F: A0 00 463 LDY #$00
8321: B9 34 83 464 :MSGL LDA CLRMSG,Y
8324: F0 0B 465 BEQ :MSGDONE
8326: 09 80 466 ORA #$80
8328: 08 467 PHP
8329: 78 468 SEI
832A: 20 ED FD 469 JSR COUT
832D: 28 470 PLP
832E: C8 471 INY
832F: D0 F0 472 BNE :MSGL
8331: 4C D8 82 473 :MSGDONE JMP :NEXT
8334: 43 4C 45 474 CLRMSG ASC B4CLEARB4
8337: 41 52
8339: 8D 00 475 HEX 8D00
--End assembly, 827 bytes, Errors: 0
Symbol table - alphabetical order:
ACT =$19 BASEADDR=$06 BLACK =$00 BLUE =$02
CLAMPMOUSE=$812F CLRMSG =$8334 CLRTOP =$F836 COUT =$FDED
CREATEALL=$807C CTR =$09 DOSWARM =$03D0 ? FINDMOUSE=$8010
GR =$C050 HOMEMOUSE=$813D INITMOUSE=$8109 IRQ =$818B
IRQDONE =$81FA IRQLOC =$03FE IRQNEXT =$81D7 KBD =$C000
KBDSTRB =$C010 MAXP =$06 MIX =$C053 MOUID1 =$38
MOUID2 =$18 MOUID3 =$01 MOUID4 =$20 MOUID5 =$D6
MOUIDLOC1=$05 MOUIDLOC2=$07 MOUIDLOC3=$0B MOUIDLOC4=$0C
MOUIDLOC5=$FB MOUSEJMP=$8153 MOUSTAT =$1E MOUXPOS =$1A
MOUYPOS =$1C MSLOT =$08 NEWPROC =$809A NOMOUMSG=$8071
PLOT =$F800 PRBYTE =$FDDA PRIOTAB =$8207 ? PRNTAX =$F941
PROC0 =$8283 PROC1 =$8258 PROC2 =$8234 PROC3 =$8213
READMOUSE=$8149 RED =$01 RESETCTR=$81CC SCRN =$F871
SERVEMOUSE=$8123 SETCOL =$F864 SETMOUSE=$8115 SLEEP =$815A
SLPTAB =$820D SPKR =$C030 STKTAB =$8200 VBLINT =$09
VBLON =$80F1 WHITE =$0F YIELD =$8173 YIELD2 =$817A
Symbol table - numerical order:
BLACK =$00 MOUID3 =$01 RED =$01 BLUE =$02
MOUIDLOC1=$05 BASEADDR=$06 MAXP =$06 MOUIDLOC2=$07
MSLOT =$08 VBLINT =$09 CTR =$09 MOUIDLOC3=$0B
MOUIDLOC4=$0C WHITE =$0F MOUID2 =$18 ACT =$19
MOUXPOS =$1A MOUYPOS =$1C MOUSTAT =$1E MOUID4 =$20
MOUID1 =$38 MOUID5 =$D6 MOUIDLOC5=$FB DOSWARM =$03D0
IRQLOC =$03FE ? FINDMOUSE=$8010 NOMOUMSG=$8071 CREATEALL=$807C
===== Page 10 =====
NEWPROC =$809A VBLON =$80F1 INITMOUSE=$8109 SETMOUSE=$8115
SERVEMOUSE=$8123 CLAMPMOUSE=$812F HOMEMOUSE=$813D READMOUSE=$8149
MOUSEJMP=$8153 SLEEP =$815A YIELD =$8173 YIELD2 =$817A
IRQ =$818B RESETCTR=$81CC IRQNEXT =$81D7 IRQDONE =$81FA
STKTAB =$8200 PRIOTAB =$8207 SLPTAB =$820D PROC3 =$8213
PROC2 =$8234 PROC1 =$8258 PROC0 =$8283 CLRMSG =$8334
KBD =$C000 KBDSTRB =$C010 SPKR =$C030 GR =$C050
MIX =$C053 PLOT =$F800 CLRTOP =$F836 SETCOL =$F864
SCRN =$F871 ? PRNTAX =$F941 PRBYTE =$FDDA COUT =$FDED
Back to comp.sys.apple2.programmer | Previous | Next — Previous in thread | Find similar | Unroll thread
Multitasking Mouse Draw Demo v1.1 D Finnigan <dog_cow@macgui.com> - 2014-02-25 20:57 +0000 Source Code for Multitasking Mouse Draw Demo v1.1 D Finnigan <dog_cow@macgui.com> - 2014-02-25 21:01 +0000
csiph-web