1 ; 2 ; System equates 3 ; 4 ; OS EQUATES 5 ; ---------- 6 ; 7 ; Syntax: 8 ; Use '=' for addresses 9 ; and '#' for values 10 ; 11 ; IO EQUATES 12 ; 13 ICHID = $0000 14 ICDNO = $0001 15 ICCOM = $0002 16 ICSTA = $0003 17 ICBAL = $0004 18 ICBAH = $0005 19 ICPTL = $0006 20 ICPTH = $0007 21 ICBLL = $0008 22 ICBLH = $0009 23 ICAX1 = $000A 24 ICAX2 = $000B 25 ICAX3 = $000C 26 ICAX4 = $000D 27 ICAX5 = $000E 28 ICAX6 = $000F 29 ; 30 ; DISPLAY LIST EQUATES 31 ; 32 ADLI = $0080 33 AVB = $0040 34 ALMS = $0040 35 AVSCR = $0020 36 AHSCR = $0010 37 AJMP = $0001 38 AEMPTY1 = $0000 39 AEMPTY2 = $0010 40 AEMPTY3 = $0020 41 AEMPTY4 = $0030 42 AEMPTY5 = $0040 43 AEMPTY6 = $0050 44 AEMPTY7 = $0060 45 AEMPTY8 = $0070 46 ; 47 ; OS VARIABLES FOR XL/XE 48 ; 49 ; PAGE 0 50 ; 51 NGFLAG = $0001 52 CASINI = $0002 53 RAMLO = $0004 54 TRAMSZ = $0006 55 CMCMD = $0007 56 WARMST = $0008 57 BOOT = $0009 58 DOSVEC = $000A 59 DOSINI = $000C 60 APPMHI = $000E 61 POKMSK = $0010 62 BRKKEY = $0011 63 RTCLOK = $0012 64 BUFADR = $0015 65 ICCOMT = $0017 66 DSKFMS = $0018 67 DSKUTL = $001A 68 ABUFPT = $001C 69 ICHIDZ = $0020 70 ICDNOZ = $0021 71 ICCOMZ = $0022 72 ICSTAZ = $0023 73 ICBALZ = $0024 74 ICBAHZ = $0025 75 ICPTLZ = $0026 76 ICPTHZ = $0027 77 ICBLLZ = $0028 78 ICBLHZ = $0029 79 ICAX1Z = $002A 80 ICAX2Z = $002B 81 ICAX3Z = $002C 82 ICAX4Z = $002D 83 ICAX5Z = $002E 84 ICAX6Z = $002F 85 STATUS = $0030 86 CHKSUM = $0031 87 BUFRLO = $0032 88 BUFRHI = $0033 89 BFENLO = $0034 90 BFENHI = $0035 91 LTEMP = $0036 92 BUFRFL = $0038 93 RECVDN = $0039 94 XMTDON = $003A 95 CHKSNT = $003B 96 NOCKSM = $003C 97 BPTR = $003D 98 FTYPE = $003E 99 FEOF = $003F 100 FREQ = $0040 101 SOUNDR = $0041 102 CRITIC = $0042 103 FMSZPG = $0043 104 ZCHAIN = $004A 105 DSTAT = $004C 106 ATRACT = $004D 107 DRKMSK = $004E 108 COLRSH = $004F 109 TEMP = $0050 110 HOLD1 = $0051 111 LMARGN = $0052 112 RMARGN = $0053 113 ROWCRS = $0054 114 COLCRS = $0055 115 DINDEX = $0057 116 SAVMSC = $0058 117 OLDROW = $005A 118 OLDCOL = $005B 119 OLDCHR = $005D 120 OLDADR = $005E 121 FKDEF = $0060 122 PALNTS = $0062 123 LOGCOL = $0063 124 ADRESS = $0064 125 MLTTMP = $0066 126 SAVADR = $0068 127 RAMTOP = $006A 128 BUFCNT = $006B 129 BUFSTR = $006C 130 BITMSK = $006E 131 SHFAMT = $006F 132 ROWAC = $0070 133 COLAC = $0072 134 ENDPT = $0074 135 DELTAR = $0076 136 DELTAC = $0077 137 KEYDEF = $0079 138 SWPFLG = $007B 139 HOLDCH = $007C 140 INSDAT = $007D 141 COUNTR = $007E 142 LOMEM = $0080 143 VNTP = $0082 144 VNTD = $0084 145 VVTP = $0086 146 STMTAB = $0088 147 STMCUR = $008A 148 STARP = $008C 149 RUNSTK = $008E 150 TOPSTK = $0090 151 MEOLFLG = $0092 152 POKADR = $0095 153 DATAD = $00B6 154 DATALN = $00B7 155 STOPLN = $00BA 156 SAVCUR = $00BE 157 IOCMD = $00C0 158 IODVC = $00C1 159 PROMPT = $00C2 160 ERRSAVE = $00C3 161 COLOUR = $00C8 162 PTABW = $00C9 163 LOADFLG = $00CA 164 FR0 = $00D4 165 FRE = $00DA 166 FR1 = $00E0 167 FR2 = $00E6 168 FRX = $00EC 169 EEXP = $00ED 170 NSIGN = $00EE 171 ESIGN = $00EF 172 FCHRFLG = $00F0 173 DIGRT = $00F1 174 CIX = $00F2 175 INBUFF = $00F3 176 ZTEMP1 = $00F5 177 ZTEMP4 = $00F7 178 ZTEMP3 = $00F9 179 RADFLG = $00FB 180 FLPTR = $00FC 181 FPTR2 = $00FE 182 ; 183 ; PAGE 2 184 ; 185 VDSLST = $0200 186 VPRCED = $0202 187 VINTER = $0204 188 VBREAK = $0206 189 VKEYBD = $0208 190 VSERIN = $020A 191 VSEROR = $020C 192 VSEROC = $020E 193 VTIMR1 = $0210 194 VTIMR2 = $0212 195 VTIMR4 = $0214 196 VIMIRQ = $0216 197 CDTMV1 = $0218 198 CDTMV2 = $021A 199 CDTMV3 = $021C 200 CDTMV4 = $021E 201 CDTMV5 = $0220 202 VVBLKI = $0222 203 VVBLKD = $0224 204 CDTMA1 = $0226 205 CDTMA2 = $0228 206 CDTMF3 = $022A 207 SRTIMR = $022B 208 CDTMF4 = $022C 209 INTEMP = $022D 210 CDTMF5 = $022E 211 SDMCTL = $022F 212 SDLSTL = $0230 213 SDLSTH = $0231 214 SSKCTL = $0232 215 SPARE = $0233 216 LPENH = $0234 217 LPENV = $0235 218 BRKKY = $0236 219 VPIRQ = $0238 220 CDEVIC = $023A 221 CCOMND = $023B 222 CAUX1 = $023C 223 CAUX2 = $023D 224 TMPSIO = $023E 225 ERRFLG = $023F 226 DFLAGS = $0240 227 DBSECT = $0241 228 BOOTAD = $0242 229 COLDST = $0244 230 RECLEN = $0245 231 DSKTIM = $0246 232 PDVMSK = $0247 233 SHPDVS = $0248 234 PDMSK = $0249 235 RELADR = $024A 236 PPTMPA = $024C 237 PPTMPX = $024D 238 CHSALT = $026B 239 VSFLAG = $026C 240 KEYDIS = $026D 241 FINE = $026E 242 GPRIOR = $026F 243 PADDL0 = $0270 244 PADDL1 = $0271 245 PADDL2 = $0272 246 PADDL3 = $0273 247 PADDL4 = $0274 248 PADDL5 = $0275 249 PADDL6 = $0276 250 PADDL7 = $0277 251 STICK0 = $0278 252 STICK1 = $0279 253 STICK2 = $027A 254 STICK3 = $027B 255 PTRIG0 = $027C 256 PTRIG1 = $027D 257 PTRIG2 = $027E 258 PTRIG3 = $027F 259 PTRIG4 = $0280 260 PTRIG5 = $0281 261 PTRIG6 = $0282 262 PTRIG7 = $0283 263 STRIG0 = $0284 264 STRIG1 = $0285 265 STRIG2 = $0286 266 STRIG3 = $0287 267 HIBYTE = $0288 268 WMODE = $0289 269 BLIM = $028A 270 IMASK = $028B 271 JVECK = $028C 272 NEWADR = $028E 273 TXTROW = $0290 274 TXTCOL = $0291 275 TINDEX = $0293 276 TXTMSC = $0294 277 TXTOLD = $0296 278 CRETRY = $029C 279 HOLD3 = $029D 280 SUBTMP = $029E 281 HOLD2 = $029F 282 DMASK = $02A0 283 TMPLBT = $02A1 284 ESCFLG = $02A2 285 TABMAP = $02A3 286 LOGMAP = $02B2 287 INVFLG = $02B6 288 FILFLG = $02B7 289 TMPROW = $02B8 290 TMPCOL = $02B9 291 SCRFLG = $02BB 292 HOLD4 = $02BC 293 DRETRY = $02BD 294 SHFLOC = $02BE 295 BOTSCR = $02BF 296 PCOLR0 = $02C0 297 PCOLR1 = $02C1 298 PCOLR2 = $02C2 299 PCOLR3 = $02C3 300 COLOR0 = $02C4 301 COLOR1 = $02C5 302 COLOR2 = $02C6 303 COLOR3 = $02C7 304 COLOR4 = $02C8 305 RUNADR = $02C9 306 HIUSED = $02CB 307 ZHIUSE = $02CD 308 GBYTEA = $02CF 309 LOADAD = $02D1 310 ZLOADA = $02D3 311 DSCTLN = $02D5 312 ACMISR = $02D7 313 KRPDER = $02D9 314 KEYREP = $02DA 315 NOCLIK = $02DB 316 HELPFG = $02DC 317 DMASAV = $02DD 318 PBPNT = $02DE 319 PBUFSZ = $02DF 320 RUNAD = $02E0 321 INITAD = $02E2 322 RAMSIZ = $02E4 323 MEMTOP = $02E5 324 MEMLO = $02E7 325 HNDLOD = $02E9 326 DVSTAT = $02EA 327 CBAUDL = $02EE 328 CBAUDH = $02EF 329 CRSINH = $02F0 330 KEYDEL = $02F1 331 CH1 = $02F2 332 CHACT = $02F3 333 CHBAS = $02F4 334 NEWROW = $02F5 335 NEWCOL = $02F6 336 ROWINC = $02F8 337 COLINC = $02F9 338 CHAR = $02FA 339 ATACHR = $02FB 340 CH = $02FC 341 FILDAT = $02FD 342 DSPFLG = $02FE 343 SSFLAG = $02FF 344 ; 345 ; PAGE 3 346 ; 347 DDEVIC = $0300 348 DUNIT = $0301 349 DCOMND = $0302 350 DSTATS = $0303 351 DBUFLO = $0304 352 DBUFHI = $0305 353 DTIMLO = $0306 354 DUNUSE = $0307 355 DBYTLO = $0308 356 DBYTHI = $0309 357 DAUX1 = $030A 358 DAUX2 = $030B 359 TIMER1 = $030C 360 ADDCOR = $030E 361 CASFLG = $030F 362 TIMER2 = $0310 363 TEMP1 = $0312 364 TEMP2 = $0314 365 TEMP3 = $0315 366 SAVIO = $0316 367 TIMFLG = $0317 368 STACKP = $0318 369 TSTAT = $0319 370 HATABS = $031A 371 PUPBT1 = $033D 372 PUPBT2 = $033E 373 PUPBT3 = $033F 374 IOCB0 = $0340 375 IOCB1 = $0350 376 IOCB2 = $0360 377 IOCB3 = $0370 378 IOCB4 = $0380 379 IOCB5 = $0390 380 IOCB6 = $03A0 381 IOCB7 = $03B0 382 PRNBUF = $03C0 383 SUPERF = $03E8 384 CKEY = $03E9 385 CASSBT = $03EA 386 CARTCK = $03EB 387 DERRF = $03EC 388 ACMVAR = $03ED 389 BASICF = $03F8 390 MINTLK = $03F9 391 GINTLK = $03FA 392 CHLINK = $03FB 393 CASBUF = $03FD 394 ; 395 ; HARDWARE REGISTERS 396 ; 397 ; GTIA 398 ; 399 HPOSP0 = $D000 400 HPOSP1 = $D001 401 HPOSP2 = $D002 402 HPOSP3 = $D003 403 HPOSM0 = $D004 404 HPOSM1 = $D005 405 HPOSM2 = $D006 406 HPOSM3 = $D007 407 SIZEP0 = $D008 408 SIZEP1 = $D009 409 SIZEP2 = $D00A 410 SIZEP3 = $D00B 411 SIZEM = $D00C 412 GRAFP0 = $D00D 413 GRAFP1 = $D00E 414 GRAFP2 = $D00F 415 GRAFP3 = $D010 416 GRAFM = $D011 417 COLPM0 = $D012 418 COLPM1 = $D013 419 COLPM2 = $D014 420 COLPM3 = $D015 421 COLPF0 = $D016 422 COLPF1 = $D017 423 COLPF2 = $D018 424 COLPF3 = $D019 425 COLBK = $D01A 426 PRIOR = $D01B 427 VDELAY = $D01C 428 GRACTL = $D01D 429 HITCLR = $D01E 430 CONSOL = $D01F 431 ; 432 ; POKEY 433 ; 434 AUDF1 = $D200 435 AUDC1 = $D201 436 AUDF2 = $D202 437 AUDC2 = $D203 438 AUDF3 = $D204 439 AUDC3 = $D205 440 AUDF4 = $D206 441 AUDC4 = $D207 442 AUDCTL = $D208 443 STIMER = $D209 444 SKREST = $D20A 445 POTGO = $D20B 446 SEROUT = $D20D 447 IRQEN = $D20E 448 SKCTL = $D20F 449 ; 450 ; PIA 451 ; 452 PORTA = $D300 453 PORTB = $D301 454 PACTL = $D302 455 PBCTL = $D303 456 ; 457 ; ANTIC 458 ; 459 DMACLT = $D400 460 CHACTL = $D401 461 DLISTL = $D402 462 DLISTH = $D403 463 HSCROL = $D404 464 VSCROL = $D405 465 PMBASE = $D407 466 CHBASE = $D409 467 WSYNC = $D40A 468 VCOUNT = $D40B 469 PENH = $D40C 470 PENV = $D40D 471 NMIEN = $D40E 472 NMIRES = $D40F 473 ; 474 ; FLOATING POINT ROUTINES 475 ; 476 AFP = $D800 477 FASC = $D8E6 478 IFP = $D9AA 479 FPI = $D9D2 480 ZFR0 = $DA44 481 ZF1 = $DA46 482 FSUB = $DA60 483 FADD = $DA66 484 FMUL = $DADB 485 FDIV = $DB28 486 PLYEVL = $DD40 487 FLD0R = $DD89 488 FLD0P = $DD8D 489 FLD1R = $DD98 490 FLD1P = $DD9C 491 FSTOR = $DDA7 492 FSTOP = $DDAB 493 FMOVE = $DDB6 494 EXP = $DDC0 495 EXP10 = $DDCC 496 LOG = $DECD 497 LOG10 = $DED1 498 ; 499 ; ROM VECTORS 500 ; 501 DSKINV = $E453 502 CIOV = $E456 503 SIOV = $E459 504 SETVBV = $E45C 505 SYSVBV = $E45F 506 XITVBV = $E462 507 SIOINV = $E465 508 SENDEV = $E468 509 INTINV = $E46B 510 CIOINV = $E46E 511 SELFSV = $E471 512 WARMSV = $E474 513 COLDSV = $E477 514 RBLOKV = $E47A 515 CSOPIV = $E47D 516 PUPDIV = $E480 517 SELFTSV = $E483 518 PENTV = $E486 519 PHUNLV = $E489 520 PHINIV = $E48C 521 GPDVV = $E48F 522 ; 523 ; Code equates 524 ; 525 L0404 = $0404 526 L4F4D = $4F4D 527 L4F4F = $4F4F 528 L8400 = $8400 529 LB022 = $B022 530 LB065 = $B065 531 LB0B7 = $B0B7 532 LB137 = $B137 533 LB14C = $B14C 534 LBC20 = $BC20 535 LBEEA = $BEEA 536 ; 537 ; Start of code 538 ; 539 *= $B000 540 ; 541 LDY #$00 542 LDX #$16 543 LB004 LDA #$00 544 STA COUNTR+1,X 545 LDA LB0E4,Y 546 STA LB0F9,X 547 EOR #$FF 548 ADC #$14 549 STA LB137,Y 550 STA LB14C,X 551 INY 552 DEX 553 BNE LB004 554 LDY #$0F 555 LB01E LDA #$4F 556 STA LBC20,X 557 INX 558 BNE LB01E 559 INC LB022 560 DEY 561 BNE LB01E 562 STA GPRIOR 563 INY 564 STY VNTP 565 INY 566 LB033 LDA LB0B4,Y 567 STA LBEEA,Y 568 DEY 569 BPL LB033 570 INY 571 LB03D LDA LOMEM 572 STA L8400,Y 573 LDA LOMEM+1 574 ADC #$5B 575 STA LOMEM+1 576 BCC LB050 577 LDA LOMEM 578 ADC #$10 579 STA LOMEM 580 LB050 INY 581 BNE LB03D 582 LB053 LDA #$31 583 STA VNTP+1 584 LB057 LDA VCOUNT 585 BNE LB057 586 LDY #$28 587 LB05E STA L4F4F,Y 588 DEY 589 BPL LB05E 590 LDY #$28 591 LDA L8400,Y 592 STA LOMEM 593 LDA LB0E4,Y 594 TAX 595 LB06F LDA LOMEM 596 STA L4F4D,X 597 INX 598 TXA 599 CMP LB0B7,Y 600 BNE LB06F 601 LB07B LDA LOMEM 602 EOR #$FF 603 STA L4F4D,X 604 INX 605 TXA 606 CMP LB137,Y 607 BNE LB07B 608 DEC LB065 609 BNE LB093 610 LDA #$28 611 STA LB065 612 LB093 LDA VNTD 613 ADC #$80 614 STA VNTD 615 BCC LB0A8 616 LDY #$00 617 LB09D LDA LB0B7,Y 618 ADC VNTP 619 STA LB0B7,Y 620 INY 621 BNE LB09D 622 LB0A8 DEC VNTP+1 623 BNE LB057 624 LDA VNTP 625 EOR #$FF 626 STA VNTP 627 BNE LB053 628 LB0B4 EOR (ICHIDZ,X) 629 LDY L0404,X 630 .SBYTE "$$%%%%&&&'''" 631 .SBYTE "((()))**+++," 632 .SBYTE ",,---...////" 633 .SBYTE "0001111" 634 LB0E4 .SBYTE "####" 635 .BYTE $02,$02,$02,$02 636 .BYTE $02,$02 637 .SBYTE "!!!!!!!!!!!" 638 LB0F9 .SBYTE "!" 639 ; 640 .END