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 L5F80 = $5F80 526 L8073 = $8073 527 L80A2 = $80A2 528 L80AB = $80AB 529 L8240 = $8240 530 L825F = $825F 531 L8280 = $8280 532 L8300 = $8300 533 L8380 = $8380 534 L840C = $840C 535 L841C = $841C 536 L842C = $842C 537 L843C = $843C 538 L844C = $844C 539 ; 540 ; Start of code 541 ; 542 *= $8000 543 ; 544 LDX #$00 545 LDY #$20 546 L8004 LDA L8200,X 547 STA L821F,Y 548 EOR #$3F 549 STA L8240,X 550 STA L825F,Y 551 INX 552 DEY 553 BNE L8004 554 L8016 LDA L8200,Y 555 STA L8280,Y 556 STA L8300,Y 557 STA L8380,Y 558 INY 559 BPL L8016 560 LDA #$B3 561 STA SDLSTL 562 LDA #$80 563 STA SDLSTH 564 LDY #$00 565 L8031 TYA 566 INC DIGRT 567 BMI L8038 568 LDA #$11 569 L8038 STA FCHRFLG 570 CLC 571 LDX #$0F 572 TYA 573 L803E STA L840C,Y 574 STA L841C,X 575 STA L842C,Y 576 STA L843C,X 577 STA L844C,Y 578 ADC FCHRFLG 579 INY 580 DEX 581 BPL L803E 582 LDA #$04 583 ADC CIX 584 STA CIX 585 TAX 586 INC L8073 587 LDA #$0B 588 STA L80B7 589 L8062 CMP VCOUNT 590 BNE L8062 591 LDY #$70 592 STY PRIOR 593 L806C STA WSYNC 594 INX 595 INX 596 INX 597 LDA L8200,Y 598 ADC L8200,X 599 LSR A 600 BIT DIGRT 601 STA WSYNC 602 BMI L809B 603 STA L80B7 604 LDA #$0E 605 BCC L8089 606 LDA #$0C 607 L8089 STA HSCROL 608 TXA 609 ADC VCOUNT 610 AND #$F0 611 BNE L8096 612 LDA #$10 613 L8096 STA COLBK 614 BNE L80AD 615 L809B STA L80A2 616 STA L80AB 617 LDA L840C 618 BCS L80A8 619 ADC #$1F 620 L80A8 ADC #$01 621 STA L840C 622 L80AD DEY 623 BNE L806C 624 JMP L8031 625 .BYTE $47 626 LDY L5F80,X 627 L80B7 .BYTE $0C 628 STY NGFLAG 629 LDX LOMEM,X 630 .BYTE $80 631 .SBYTE "נןעבתכב" 632 BRK 633 .BYTE $22,$39,$00 634 .SBYTE "taquart" 635 .BYTE $00 636 ; 637 *= $8200 638 ; 639 L8200 .BYTE $20,$21,$22,$23 640 .BYTE $24,$25,$26,$26 641 .BYTE $27,$28,$29,$2A 642 .BYTE $2B,$2B,$2C,$2D 643 .BYTE $2D,$2E,$2F,$2F 644 .BYTE $30,$30,$31,$31 645 .BYTE $32,$32,$32,$32 646 .BYTE $33,$33,$33 647 L821F .BYTE $33 648 ; 649 *= $02E0 650 ; 651 .WORD $8000 652 ; 653 .END