* source: Core/ROMvX0.asm.py 186 enableListing() 187 #----------------------------------------------------------------------- 188 # 189 # Start of core 190 # 191 #----------------------------------------------------------------------- 192 # 193 # Pre-loading the formal interface as a way to get warnings when 194 # accidentally redefined with a different value 195 loadBindings('ROMvX0_interface.json') 196 loadBindings('Core/interface-dev.json') # Provisional values for DEVROM 197 198 # Gigatron clock 199 cpuClock = 6.250e+06 200 201 # Output pin assignment for VGA 202 R, G, B, hSync, vSync = 1, 4, 16, 64, 128 203 syncBits = hSync+vSync # Both pulses negative 204 205 # When the XOUT register is in the circuit, the rising edge triggers its update. 206 # The loop can therefore not be agnostic to the horizontal pulse polarity. 207 assert syncBits & hSync != 0 208 209 # VGA 640x480 defaults (to be adjusted below!) 210 vFront = 10 # Vertical front porch 211 vPulse = 2 # Vertical sync pulse 212 vBack = 33 # Vertical back porch 213 vgaLines = vFront + vPulse + vBack + 480 214 vgaClock = 25.175e+06 215 216 # Video adjustments for Gigatron 217 # 1. Our clock is (slightly) slower than 1/4th VGA clock. Not all monitors will 218 # accept the decreased frame rate, so we restore the frame rate to above 219 # minimum 59.94 Hz by cutting some lines from the vertical front porch. 220 vFrontAdjust = vgaLines - int(4 * cpuClock / vgaClock * vgaLines) 221 vFront -= vFrontAdjust 222 # 2. Extend vertical sync pulse so we can feed the game controller the same 223 # signal. This is needed for controllers based on the 4021 instead of 74165 224 vPulseExtension = max(0, 8-vPulse) 225 vPulse += vPulseExtension 226 # 3. Borrow these lines from the back porch so the refresh rate remains 227 # unaffected 228 vBack -= vPulseExtension 229 230 # Start value of vertical blank counter 231 videoYline0 = 1-2*(vFront+vPulse+vBack-2) 232 233 # Mismatch between video lines and sound channels 234 soundDiscontinuity = (vFront+vPulse+vBack) % 4 235 236 # QQVGA resolution 237 qqVgaWidth = 160 238 qqVgaHeight = 120 239 240 # Game controller bits (actual controllers in kit have negative output) 241 # +----------------------------------------+ 242 # | Up B* | 243 # | Left Right B A* | 244 # | Down Select Start A | 245 # +----------------------------------------+ *=Auto fire 246 buttonRight = 1 247 buttonLeft = 2 248 buttonDown = 4 249 buttonUp = 8 250 buttonStart = 16 251 buttonSelect = 32 252 buttonB = 64 253 buttonA = 128 254 255 #----------------------------------------------------------------------- 256 # 257 # RAM page 0: zero-page variables 258 # 259 #----------------------------------------------------------------------- 260 # 261 # Memory size in pages from auto-detect 262 memSize = zpByte() 263 264 # Active interpreter page, swapped with channel, so that we can do a one 265 # instruction vCpuSelect reset, i.e. st(vCpuSelect,[vCpuSelect]) 266 vCpuSelect = zpByte() 267 268 # Next sound sample being synthesized 269 sample = zpByte() 270 # To save one instruction in the critical inner loop, `sample' is always 271 # reset with its own address instead of, for example, the value 0. Compare: 272 # 1 instruction reset 273 # st sample,[sample] 274 # 2 instruction reset: 275 # ld 0 276 # st [sample] 277 # The difference is not audible. This is fine when the reset/address 278 # value is low and doesn't overflow with 4 channels added to it. 279 # There is an alternative, but it requires pull-down diodes on the data bus: 280 # st [sample],[sample] 281 assert 4*63 + sample < 256 282 # We pin this reset/address value to 3, so `sample' swings from 3 to 255 283 assert sample == 3 284 285 # Former bootCount and bootCheck (<= ROMv3) 286 vSPH = zpByte() 287 288 # The current channel number for sound generation. Advanced every scan line 289 # and independent of the vertical refresh to maintain constant oscillation. 290 channel = zpByte() 291 292 # Entropy harvested from SRAM startup and controller input 293 entropy = zpByte(2) 294 295 # Audio quantisation bit mask, (needs a HW mod for full realisation) 296 audioBitMask = zpByte() # 0xFF:0bits to 0x00:8bits, default 0x0F:4bits 297 298 # Visible video 299 videoY = zpByte() # Counts up from 0 to 238 in steps of 2 300 # Counts up (and is odd) during vertical blank 301 videoModeB = zpByte() # Handler for every 2nd line (pixel burst or vCPU) 302 videoModeC = zpByte() # Handler for every 3rd line (pixel burst or vCPU) 303 videoModeD = zpByte() # Handler for every 4th line (pixel burst or vCPU) 304 305 nextVideo = zpByte() # Jump offset to scan line handler (videoA, B, C...) 306 videoPulse = nextVideo # Used for pulse width modulation 307 308 # Frame counter is good enough as system clock 309 frameCount = zpByte(1) 310 311 # Serial input (game controller) 312 serialRaw = zpByte() # New raw serial read 313 serialLast = zpByte() # Previous serial read 314 buttonState = zpByte() # Clearable button state 315 resetTimer = zpByte() # After 2 seconds of holding 'Start', do a soft reset 316 # XXX move to page 1 to free up space 317 318 # Extended output (blinkenlights in bit 0:3 and audio in bit 4:7). This 319 # value must be present in AC during a rising hSync edge. It then gets 320 # copied to the XOUT register by the hardware. The XOUT register is only 321 # accessible in this indirect manner because it isn't part of the core 322 # CPU architecture. 323 xout = zpByte() 324 xoutMask = zpByte() # The blinkenlights and sound on/off state 325 326 # vCPU interpreter 327 vTicks = zpByte() # Interpreter ticks are units of 2 clocks 328 vPC = zpByte(2) # Interpreter program counter, points into RAM 329 vAC = zpByte(2) # Interpreter accumulator, 16-bits 330 vLR = zpByte(2) # Return address, for returning after CALL 331 vSP = zpByte(1) # Stack pointer 332 vTmp = zpByte() 333 vReturn = zpByte() # Return into video loop (in page of vBlankStart) 334 335 # Scratch 336 frameX = zpByte() # Starting byte within page 337 frameY = zpByte() # Page of current pixel line (updated by videoA) 338 339 # Vertical blank (reuse some variables used in the visible part) 340 videoSync0 = frameX # Vertical sync type on current line (0xc0 or 0x40) 341 videoSync1 = frameY # Same during horizontal pulse (0x80 or 0x00) 342 343 # Versioning for GT1 compatibility 344 # Please refer to Docs/GT1-files.txt for interpreting this variable 345 romType = zpByte(1) 346 347 # The low 3 bits are repurposed to select the actively updated sound channels. 348 # Valid bit combinations are: 349 # xxxxx011 Default after reset: 4 channels (page 1,2,3,4) 350 # xxxxx001 2 channels at double update rate (page 1,2) 351 # xxxxx000 1 channel at quadruple update rate (page 1) 352 # The main application for this is to free up the high bytes of page 2,3,4. 353 channelMask = symbol('channelMask_v4') 354 assert romType == channelMask 355 356 # SYS function arguments and results/scratch 357 sysFn = zpByte(2) 358 sysArgs = zpByte(8) 359 360 # Play sound if non-zero, count down and stop sound when zero 361 soundTimer = zpByte() 362 363 # Fow now the LED state machine itself is hard-coded in the program ROM 364 #ledTimer = zpByte() # Number of ticks until next LED change 365 #ledState_v2 = zpByte() # Current LED state 366 #ledTempo = zpByte() # Next value for ledTimer after LED state change 367 jiffiesTick = zpByte() # VBlank ticks 368 secondsTickLo = zpByte() # Seconds ticks low byte 369 secondsTickHi = zpByte() # Seconds ticks high byte 370 371 # All bytes above userVars, except 0x80, are potentially usable by user code 372 # that refrains from using ROM facilities introduced since ROMv5a. 373 userVars = zpByte(0) 374 375 # [0x30-0x35] 376 # Saved vCPU context during vIRQ (since ROMv5a) 377 # Code that uses vCPU interrupts should not use these locations. 378 # area register save area 379 vIrqSave = zpByte(6) 380 userVars1 = zpByte(0) 381 382 # [0x80] 383 # Constant 0x01. 384 zpReset(0x80) 385 oneConst = zpByte(1) 386 userVars2 = zpByte(0) 387 388 # [0x82-0xB7] 389 # Scratch for certain ops and sys calls introduced in ROMvX0. 390 # Pending more specific information to be inserted here. 391 zpReset(0x82) 392 vX0Scratch = zpByte(0xB8-0x82) 393 394 # [0xB8-0xBF] 395 # State for ROMvX0 SYS calls with vCPU callbacks. 396 # Pending more specific information to be inserted here. 397 vX0State = zpByte(0xC0-0xB8) 398 399 # [0xC0-0xCF] 400 # Fixed locations for ROMvX0 opcodes that operate on long and floats. 401 # Pending more specific information to be inserted here. 402 vFAC_reserved = zpByte(4) # reserved for float accumulator 403 vLAC = zpByte(4) # long accumulator/continued float accumulator 404 vTmpL = zpByte(4) # long scratch register 405 vDST = zpByte(2) # destination address for copy opcodes. 406 vTmpW = zpByte(2) # word scratch register 407 408 409 410 #----------------------------------------------------------------------- 411 # 412 # RAM page 1: video line table 413 # 414 #----------------------------------------------------------------------- 415 # 416 # Byte 0-239 define the video lines 417 videoTable = 0x0100 # Indirection table: Y[0] dX[0] ..., Y[119] dX[119] 418 419 vReset = 0x01f0 420 vIRQ_v5 = 0x01f6 421 ctrlBits = 0x01f8 422 videoTop_v5 = 0x01f9 # Number of skip lines 423 424 # Highest bytes are for sound channel variables 425 wavA = 250 # Waveform modulation with `adda' 426 wavX = 251 # Waveform modulation with `xora' 427 keyL = 252 # Frequency low 7 bits (bit7 == 0) 428 keyH = 253 # Frequency high 8 bits 429 oscL = 254 # Phase low 7 bits 430 oscH = 255 # Phase high 8 bits 431 432 #----------------------------------------------------------------------- 433 # Memory layout 434 #----------------------------------------------------------------------- 435 436 userCode = 0x0200 # Application vCPU code 437 soundTable = 0x0700 # Wave form tables (doubles as right-shift-2 table) 438 screenMemory = 0x0800 # Default start of screen memory: 0x0800 to 0x7fff 439 440 #----------------------------------------------------------------------- 441 # Application definitions 442 #----------------------------------------------------------------------- 443 444 maxTicks = 30//2 # Duration of vCPU's slowest virtual opcode (ticks) 445 minTicks = 14//2 # vcPU's fastest instruction 446 447 runVcpu_overhead = 5 # Caller overhead (cycles) 448 vCPU_overhead = 9 # Callee overhead of jumping in and out (cycles) 449 450 def runVcpu(n, ref=None, returnTo=None): 451 """Macro to run interpreter for exactly n cycles. Returns 0 in AC. 452 453 - `n' is the number of available Gigatron cycles including overhead. 454 This is converted into interpreter ticks and takes into account 455 the vCPU calling overheads. A `nop' is inserted when necessary 456 for alignment between cycles and ticks. 457 - `returnTo' is where program flow continues after return. If not set 458 explicitely, it will be the first instruction behind the expansion. 459 - If another interpreter than vCPU is active (v6502...), that one 460 must adjust for the timing differences, because runVcpu wouldn't know.""" 461 462 overhead = runVcpu_overhead + vCPU_overhead 463 if returnTo == 0x100: # Special case for videoZ 464 overhead -= 2 465 466 if n is None: 467 # (Clumsily) create a maximum time slice, corresponding to a vTicks 468 # value of 127 (giving 282 cycles). A higher value doesn't work because 469 # then SYS functions that just need 28 cycles (0 excess) won't start. 470 n = (127 + maxTicks) * 2 + overhead 471 472 n -= overhead 473 assert n > 0 474 475 if n % 2 == 1: 476 nop() # Tick alignment 477 n -= 1 478 assert n % 2 == 0 479 480 print('runVcpu at $%04x net cycles %3s info %s' % (pc(), n, ref)) 481 482 if returnTo != 0x100: 483 if returnTo is None: 484 returnTo = pc() + 5 # Next instruction 485 ld(lo(returnTo)) #0 486 st([vReturn]) #1 487 488 n //= 2 489 n -= maxTicks # First instruction always runs 490 assert n < 128 491 492 ld([vCpuSelect],Y) #2 493 jmp(Y,'ENTER') #3 494 ld(n) #4 495 assert runVcpu_overhead == 5 496 497 498 #----------------------------------------------------------------------- 499 # 500 # $0000 ROM page 0: Boot 501 # 502 #----------------------------------------------------------------------- 503 504 align(0x100, size=0x80) 505 506 # ROM type (see also Docs/GT1-files.txt) 507 romTypeValue = symbol('romTypeValue_ROMvX0') 508 509 #ROM's from ROMvX0 onwards will always have the romType at a fixed and known location address | encoding | | instruction | | | operands | | | | V V V V 0000 0080 ld $80 510 ld(romTypeValue) 511 512 # Give a first sign of life that can be checked with a voltmeter 0001 000f ld $0f 513 ld(0b1111) # LED's 0002 1880 ld $80,out 514 ld(syncBits^hSync,OUT) # Prepare XOUT update, hSync goes down, RGB to black 0003 18c0 ld $c0,out 515 ld(syncBits,OUT) # hSync goes up, updating XOUT, (turn on real LED's) 516 517 # Setup I/O and RAM expander 0004 c17f ctrl $7f 518 ctrl(0b01111111) # Expansion board: (1) reset signal. 0005 c17c ctrl $7c 519 ctrl(0b01111100) # (2) disable SPI slaves, enable RAM bank 1 520 # ^^^^^^^^ 521 # |||||||`-- SCLK 522 # ||||||`--- Not connected 523 # |||||`---- /SS0 524 # ||||`----- /SS1 525 # |||`------ /SS2 526 # ||`------- /SS3 527 # |`-------- B0 528 # `--------- B1 529 # bit15 --------- MOSI = 0 530 531 # Simple RAM test and size check by writing to [1<>8) 002f d617 st [$17],y 589 st([vPC+1],Y) 0030 dc59 st $59,[y,x++] 590 st('LDI', [Y,Xpp]) 0031 dc4f st $4f,[y,x++] 591 st('SYS_Reset_88', [Y,Xpp]) 0032 dc2b st $2b,[y,x++] 592 st('STW', [Y,Xpp]) 0033 dc22 st $22,[y,x++] 593 st(sysFn, [Y,Xpp]) 0034 dcb4 st $b4,[y,x++] 594 st('SYS', [Y,Xpp]) # SYS -> SYS_Reset_88 -> SYS_Exec_88 0035 dce3 st $e3,[y,x++] 595 st(256-88//2+maxTicks,[Y,Xpp]) 0036 dc00 st $00,[y,x++] 596 st(0, [Y,Xpp]) # vIRQ_v5: Disable interrupts 0037 dc00 st $00,[y,x++] 597 st(0, [Y,Xpp]) # vIRQ_v5 0038 dcfc st $fc,[y,x++] 598 st(0b11111100, [Y,Xpp]) # Control register 0039 dc00 st $00,[y,x++] 599 st(0, [Y,Xpp]) # videoTop 600 003a 0002 ld $02 601 ld(hi('ENTER')) # Active interpreter = vCPU 003b c202 st [$02] 602 st([vCpuSelect]) 603 003c 00ff ld $ff 604 ld(255) # Setup serial input 003d c20e st [$0e] 605 st([frameCount]) 003e c20f st [$0f] 606 st([serialRaw]) 003f c210 st [$10] 607 st([serialLast]) 0040 c211 st [$11] 608 st([buttonState]) 0041 c212 st [$12] 609 st([resetTimer]) # resetTimer<0 when entering Main.gcl 610 0042 0000 ld $00 611 ld(0) 0043 c200 st [$00] 612 st([0]) # Carry lookup ([0x80] in 1st line of vBlank) 0044 c205 st [$05] 613 st([channel]) 0045 c22c st [$2c] 614 st([soundTimer]) 0046 c22d st [$2d] 615 st([jiffiesTick]) 0047 c22e st [$2e] 616 st([secondsTickLo]) 0048 c22f st [$2f] 617 st([secondsTickHi]) 0049 1880 ld $80,out 618 ld(syncBits^hSync,OUT) 004a 18c0 ld $c0,out 619 ld(syncBits,OUT) # turn off real LED's 004b c213 st [$13] 620 st([xout]) # Setup for control by video loop 004c c214 st [$14] 621 st([xoutMask]) # audio = 0, SW LED's = 0 622 004d 1401 ld $01,y 623 ld(hi('startVideo'),Y) # Enter video loop at vertical blank 004e e003 jmp y,$03 624 jmp(Y,'startVideo') 625 626 #----------------------------------------------------------------------- 627 # Extension SYS_Reset_88: Soft reset 628 #----------------------------------------------------------------------- 629 # 630 # SYS_Reset_88 initiates an immediate Gigatron reset from within the vCPU. 631 # The reset sequence itself is mostly implemented in GCL by Reset.gcl, 632 # which must first be loaded into RAM. But as that takes more than 1 scanline, 633 # some vCPU bootstrapping code gets loaded with SYS_Exec_88. 634 # !!! This function was REMOVED from interface.json 635 # !!! Better use vReset as generic entry point for soft reset 636 637 label('SYS_Reset_88') 638 assert pc()>>8 == 0 639 assert (romTypeValue & 7) == 0 SYS_Reset_88: 004f 141f ld $1f,y 640 ld(hi('sys_Reset_88'),Y) #15 0050 e041 jmp y,$41 641 jmp(Y,'sys_Reset_88') #16 0051 0080 ld $80 642 ld(romTypeValue) #17 Set ROM type/version and clear channel mask 643 644 0052 0200 nop 645 align(0x80, size=0x80) 0053 0200 nop 0054 0200 nop * 46 times 646 assert pc() == 0x80 647 648 649 # ADDW moved to page0 to free up room for more instruction slots in page3 650 # This implemetation of ADDW relies on Y=0 and hence cannot be dispatched from any other page 651 label('addw#13') addw#13: 0080 0118 ld [$18] 652 ld([vAC]) #13 Low byte 0081 c21d st [$1d] 653 st([vTmp]) #14 Store low result 0082 8500 adda [x] 654 adda([X]) #15 0083 c218 st [$18] 655 st([vAC]) #16 0084 e88f blt .addw#19 656 bmi('.addw#19') #17 Now figure out if there was a carry 0085 0500 ld [x] 657 ld([X]) #18 0086 de00 st [y,x++] 658 st([Y,Xpp]) #29 0087 411d ora [$1d] 659 ora([vTmp]) #20 0088 e898 blt .addw#23 660 bmi('.addw#23') #21 If Carry == 1 0089 0500 ld [x] 661 ld([X]) #22 008a 8119 adda [$19] 662 adda([vAC+1]) #23 008b c219 st [$19] 663 st([vAC+1]) #24 Store high result 008c 1403 ld $03,y 664 ld(hi('REENTER'),Y) #25 008d e0cb jmp y,$cb 665 jmp(Y,'REENTER') #26 008e 00f1 ld $f1 666 ld(-30/2) #27 667 label('.addw#19') .addw#19: 008f de00 st [y,x++] 668 st([Y,Xpp]) #19 0090 211d anda [$1d] 669 anda([vTmp]) #20 0091 e898 blt .addw#23 670 bmi('.addw#23') #21 If Carry == 1 0092 0500 ld [x] 671 ld([X]) #22 0093 8119 adda [$19] 672 adda([vAC+1]) #23 0094 c219 st [$19] 673 st([vAC+1]) #24 Store high result 0095 1403 ld $03,y 674 ld(hi('REENTER'),Y) #25 0096 e0cb jmp y,$cb 675 jmp(Y,'REENTER') #26 0097 00f1 ld $f1 676 ld(-30/2) #27 677 label('.addw#23') .addw#23: 0098 8001 adda $01 678 adda(1) #23 0099 8119 adda [$19] 679 adda([vAC+1]) #24 009a c219 st [$19] 680 st([vAC+1]) #25 Store high result 009b 1403 ld $03,y 681 ld(hi('NEXTY'),Y) #26 009c e000 jmp y,$00 682 jmp(Y,'NEXTY') #27 009d 00f1 ld $f1 683 ld(-30/2) #28 684 685 686 #----------------------------------------------------------------------- 687 # Placeholders for future SYS functions. This works as a kind of jump 688 # table. The indirection allows SYS implementations to be moved around 689 # between ROM versions, at the expense of 2 clock cycles (or 1). When 690 # the function is not present it just acts as a NOP. Of course, when a 691 # SYS function must be patched or extended it needs to have budget for 692 # that in its declared maximum cycle count. 693 # 694 # Technically the same goal can be achieved by starting each function 695 # with 2 nop's, or by overdeclaring their duration in the first place 696 # (a bit is still wise to do). But this can result in fragmentation 697 # of future ROM images. The indirection avoids that. 698 # 699 # An added advantage of having these in ROM page 0 is that it saves one 700 # byte when setting sysFn: LDI+STW (4 bytes) instead of LDWI+STW (5 bytes) 701 #----------------------------------------------------------------------- 702 703 label('SYS_Multiply_s16_vX_66') SYS_Multiply_s16_vX_66: 009e 1419 ld $19,y 704 ld(hi('sys_Multiply_s16'),Y) #15 slot 0x9e 009f e000 jmp y,$00 705 jmp(Y,'sys_Multiply_s16') #16 00a0 012a ld [$2a] 706 ld([sysArgs+6]) #17 load mask.lo 707 708 label('SYS_Divide_s16_vX_80') SYS_Divide_s16_vX_80: 00a1 1419 ld $19,y 709 ld(hi('sys_Divide_s16'),Y) #15 slot 0xa1 00a2 e038 jmp y,$38 710 jmp(Y,'sys_Divide_s16') #16 00a3 0128 ld [$28] 711 ld([sysArgs+4]) #17 712 713 label('SYS_DrawLine_vX_86') SYS_DrawLine_vX_86: 00a4 1419 ld $19,y 714 ld(hi('sys_DrawLine'),Y) #15 slot 0xa4 00a5 e07f jmp y,$7f 715 jmp(Y,'sys_DrawLine') #16 00a6 01a3 ld [$a3] 716 ld([0xA3]) #17 fgcolour 717 00a7 1403 ld $03,y 718 ld(hi('REENTER'),Y) #15 slot 0xa7 00a8 e0cb jmp y,$cb 719 jmp(Y,'REENTER') #16 00a9 00f6 ld $f6 720 ld(-20/2) #17 721 00aa 1403 ld $03,y 722 ld(hi('REENTER'),Y) #15 slot 0xaa 00ab e0cb jmp y,$cb 723 jmp(Y,'REENTER') #16 00ac 00f6 ld $f6 724 ld(-20/2) #17 725 726 727 #----------------------------------------------------------------------- 728 # Extension SYS_Exec_88: Load code from ROM into memory and execute it 729 #----------------------------------------------------------------------- 730 # 731 # This loads the vCPU code with consideration of the current vSP 732 # Used during reset, but also for switching between applications or for 733 # loading data from ROM from within an application (overlays). 734 # 735 # ROM stream format is [ n*]* 0 736 # on top of lookup tables. 737 # 738 # Variables: 739 # sysArgs[0:1] ROM pointer (in) 740 # sysArgs[2:3] RAM pointer (changed) 741 # sysArgs[4] State counter (changed) 742 # vLR vCPU continues here (in) 743 744 label('SYS_Exec_88') SYS_Exec_88: 00ad 140e ld $0e,y 745 ld(hi('sys_Exec'),Y) #15 slot 0xad 00ae e04f jmp y,$4f 746 jmp(Y,'sys_Exec') #16 00af 0000 ld $00 747 ld(0) #17 Address of loader on zero page 748 00b0 1403 ld $03,y 749 ld(hi('REENTER'),Y) #15 slot 0xb0 00b1 e0cb jmp y,$cb 750 jmp(Y,'REENTER') #16 00b2 00f6 ld $f6 751 ld(-20/2) #17 752 00b3 1403 ld $03,y 753 ld(hi('REENTER'),Y) #15 slot 0xb3 00b4 e0cb jmp y,$cb 754 jmp(Y,'REENTER') #16 00b5 00f6 ld $f6 755 ld(-20/2) #17 756 757 label('SYS_SpritePattern_vX_134') SYS_SpritePattern_vX_134: 00b6 141e ld $1e,y 758 ld(hi('sys_SpritePattern'),Y) #15 slot 0xb6 00b7 e000 jmp y,$00 759 jmp(Y,'sys_SpritePattern') #16 00b8 1124 ld [$24],x 760 ld([sysArgs+0],X) #17 src.lo 761 762 label('SYS_SortUint8Array_vX_52') SYS_SortUint8Array_vX_52: 00b9 141a ld $1a,y 763 ld(hi('sys_SortUint8Array'),Y) #15 slot 0xb9 00ba e08f jmp y,$8f 764 jmp(Y,'sys_SortUint8Array') #16 00bb 1525 ld [$25],y 765 ld([sysArgs+1],Y) #17 array pointer is in sysArgs0 766 767 label('SYS_SortSprites_vX_62') SYS_SortSprites_vX_62: 00bc 141c ld $1c,y 768 ld(hi('sys_SortSprites'),Y) #15 slot 0xbc 00bd e000 jmp y,$00 769 jmp(Y,'sys_SortSprites') #16 00be 1525 ld [$25],y 770 ld([sysArgs+1],Y) #17 array pointer is in sysArgs0 771 772 label('SYS_SortViaIndices_vX_44') SYS_SortViaIndices_vX_44: 00bf 141a ld $1a,y 773 ld(hi('sys_SortViaIndices'),Y) #15 slot 0xbf 00c0 e0d6 jmp y,$d6 774 jmp(Y,'sys_SortViaIndices') #16 00c1 1525 ld [$25],y 775 ld([sysArgs+1],Y) #17 src pointer 776 777 label('SYS_MemCopyByte_vX_40') SYS_MemCopyByte_vX_40: 00c2 141b ld $1b,y 778 ld(hi('sys_MemCopyByte'),Y) #15 slot 0xc2 00c3 e000 jmp y,$00 779 jmp(Y,'sys_MemCopyByte') #16 00c4 1525 ld [$25],y 780 ld([sysArgs+1],Y) #17 src pointer 781 782 label('SYS_MemCopyWord_vX_48') SYS_MemCopyWord_vX_48: 00c5 141b ld $1b,y 783 ld(hi('sys_MemCopyWord'),Y) #15 slot 0xc5 00c6 e018 jmp y,$18 784 jmp(Y,'sys_MemCopyWord') #16 00c7 1525 ld [$25],y 785 ld([sysArgs+1],Y) #17 src pointer 786 787 label('SYS_MemCopyDWord_vX_58') SYS_MemCopyDWord_vX_58: 00c8 141b ld $1b,y 788 ld(hi('sys_MemCopyDWord'),Y) #15 slot 0xc8 00c9 e037 jmp y,$37 789 jmp(Y,'sys_MemCopyDWord') #16 00ca 1525 ld [$25],y 790 ld([sysArgs+1],Y) #17 src pointer 791 792 label('SYS_DrawVLine_vX_66') SYS_DrawVLine_vX_66: 00cb 141d ld $1d,y 793 ld(hi('sys_DrawVLine'),Y) #15 slot 0xcb 00cc e000 jmp y,$00 794 jmp(Y,'sys_DrawVLine') #16 00cd 1527 ld [$27],y 795 ld([sysArgs+3],Y) #17 796 00ce 1403 ld $03,y 797 ld(hi('REENTER'),Y) #15 slot 0xce 00cf e0cb jmp y,$cb 798 jmp(Y,'REENTER') #16 00d0 00f6 ld $f6 799 ld(-20/2) #17 800 801 label('SYS_DrawBullet_vX_140') SYS_DrawBullet_vX_140: 00d1 141e ld $1e,y 802 ld(hi('sys_DrawBullet'),Y) #15 slot 0xd1 00d2 e076 jmp y,$76 803 jmp(Y,'sys_DrawBullet') #16 00d3 1182 ld [$82],x 804 ld([0x82],X) #17, bulletX 805 806 label('SYS_CmpByteBounds_vX_54') SYS_CmpByteBounds_vX_54: 00d4 141f ld $1f,y 807 ld(hi('sys_CmpByteBounds'),Y) #15 slot 0xd4 00d5 e000 jmp y,$00 808 jmp(Y,'sys_CmpByteBounds') #16 00d6 01bf ld [$bf] 809 ld([0xBF]) #17 count 810 811 label('SYS_Divide_u168_vX_56') SYS_Divide_u168_vX_56: 00d7 141f ld $1f,y 812 ld(hi('sys_Divide_u168'),Y) #15 slot 0xd7 00d8 e061 jmp y,$61 813 jmp(Y,'sys_Divide_u168') #16 00d9 0125 ld [$25] 814 ld([sysArgs+1]) #17 815 00da 1403 ld $03,y 816 ld(hi('REENTER'),Y) #15 slot 0xda 00db e0cb jmp y,$cb 817 jmp(Y,'REENTER') #16 00dc 00f6 ld $f6 818 ld(-20/2) #17 819 00dd 1403 ld $03,y 820 ld(hi('REENTER'),Y) #15 slot 0xdd 00de e0cb jmp y,$cb 821 jmp(Y,'REENTER') #16 00df 00f6 ld $f6 822 ld(-20/2) #17 823 00e0 1403 ld $03,y 824 ld(hi('REENTER'),Y) #15 slot 0xe0 00e1 e0cb jmp y,$cb 825 jmp(Y,'REENTER') #16 00e2 00f6 ld $f6 826 ld(-20/2) #17 827 828 #----------------------------------------------------------------------- 829 # Extension SYS_ScanMemoryExt_vX_50 830 #----------------------------------------------------------------------- 831 # 832 # SYS function for searching a byte in a 0 to 256 bytes string located 833 # in a different bank. Doesn't cross page boundaries. Returns a 834 # pointer to the target if found or zero. Temporarily deselects SPI 835 # devices. 836 # 837 # sysArgs[0:1] Start address 838 # sysArgs[2], sysArgs[3] Bytes to locate in the string 839 # vACL Length of the string (0 means 256) 840 # vACH Bit 6 and 7 contain the bank number 841 842 label('SYS_ScanMemoryExt_vX_50') SYS_ScanMemoryExt_vX_50: 00e3 1430 ld $30,y 843 ld(hi('sys_ScanMemoryExt'),Y) #15 slot 0xe3 00e4 e027 jmp y,$27 844 jmp(Y,'sys_ScanMemoryExt') #16 00e5 0119 ld [$19] 845 ld([vAC+1]) #17 846 847 848 #----------------------------------------------------------------------- 849 # Extension SYS_ScanMemory_vX_50 850 #----------------------------------------------------------------------- 851 # 852 # SYS function for searching a byte in a 0 to 256 bytes string. 853 # Returns a pointer to the target if found or zero. Doesn't cross 854 # page boundaries. 855 856 # 857 # sysArgs[0:1] Start address 858 # sysArgs[2], sysArgs[3] Bytes to locate in the string 859 # vACL Length of the string (0 means 256) 860 861 label('SYS_ScanMemory_vX_50') SYS_ScanMemory_vX_50: 00e6 1430 ld $30,y 862 ld(hi('sys_ScanMemory'),Y) #15 slot 0xe6 00e7 e000 jmp y,$00 863 jmp(Y,'sys_ScanMemory') #16 00e8 1525 ld [$25],y 864 ld([sysArgs+1],Y) #17 865 866 #----------------------------------------------------------------------- 867 # Extension SYS_CopyMemory_vX_80 868 #----------------------------------------------------------------------- 869 # 870 # SYS function for copying 1..256 bytes 871 # 872 # sysArgs[0:1] Destination address 873 # sysArgs[2:3] Source address 874 # vAC[0] Count (0 means 256) 875 # 876 # Doesn't cross page boundaries. 877 # Overwrites sysArgs[4:7] and vLR. 878 879 label('SYS_CopyMemory_vX_80') SYS_CopyMemory_vX_80: 00e9 142f ld $2f,y 880 ld(hi('sys_CopyMemory'),Y) # 15 slot 0xe9 00ea e000 jmp y,$00 881 jmp(Y, 'sys_CopyMemory') # 16 00eb 0118 ld [$18] 882 ld([vAC]) # 17 883 884 #----------------------------------------------------------------------- 885 # Extension SYS_CopyMemoryExt_vX_100 886 #----------------------------------------------------------------------- 887 # 888 # SYS function for copying 1..256 bytes across banks 889 # 890 # sysArgs[0:1] Destination address 891 # sysArgs[2:3] Source address 892 # vAC[0] Count (0 means 256) 893 # vAC[1] Bits 7 and 6 contain the destination bank number, 894 # and bits 5 and 4 the source bank number. 895 # 896 # Doesn't cross page boundaries. 897 # Overwrites sysArgs[4:7], vLR, and vTmp. 898 # Temporarily deselect all SPI devices. 899 # Should not call without expansion board 900 901 label('SYS_CopyMemoryExt_vX_100') SYS_CopyMemoryExt_vX_100: 00ec 142f ld $2f,y 902 ld(hi('sys_CopyMemoryExt'),Y) # 15 slot 0xec 00ed e078 jmp y,$78 903 jmp(Y, 'sys_CopyMemoryExt') # 16 00ee 0119 ld [$19] 904 ld([vAC+1]) # 17 905 906 #----------------------------------------------------------------------- 907 # Extension SYS_ReadRomDir_v5_80 908 #----------------------------------------------------------------------- 909 # 910 # Get next entry from ROM file system. Use vAC=0 to get the first entry. 911 912 # Variables: 913 # vAC Start address of current entry (inout) 914 # sysArgs[0:7] File name, padded with zeroes (out) 915 916 label('SYS_ReadRomDir_v5_80') SYS_ReadRomDir_v5_80: 00ef 14e0 ld $e0,y 917 ld(hi('sys_ReadRomDir'),Y) #15 00f0 e01d jmp y,$1d 918 jmp(Y,'sys_ReadRomDir') #16 00f1 0119 ld [$19] 919 ld([vAC+1]) #17 920 00f2 0200 nop 921 fillers(until=symbol('SYS_Out_22') & 255) 00f3 0200 nop 922 923 #----------------------------------------------------------------------- 924 # Extension SYS_Out_22 925 #----------------------------------------------------------------------- 926 # 927 # Send byte to output port 928 # 929 # Variables: 930 # vAC 931 932 label('SYS_Out_22') SYS_Out_22: 00f4 1924 ld [$24],out 933 ld([sysArgs+0],OUT) #15 00f5 0200 nop 934 nop() #16 00f6 1403 ld $03,y 935 ld(hi('REENTER'),Y) #17 00f7 e0cb jmp y,$cb 936 jmp(Y,'REENTER') #18 00f8 00f5 ld $f5 937 ld(-22/2) #19 938 939 #----------------------------------------------------------------------- 940 # Extension SYS_In_24 941 #----------------------------------------------------------------------- 942 # 943 # Read a byte from the input port 944 # 945 # Variables: 946 # vAC 947 948 label('SYS_In_24') SYS_In_24: 00f9 c318 st in,[$18] 949 st(IN, [vAC]) #15 00fa 0000 ld $00 950 ld(0) #16 00fb c219 st [$19] 951 st([vAC+1]) #17 00fc 0200 nop 952 nop() #18 00fd 1403 ld $03,y 953 ld(hi('REENTER'),Y) #19 00fe e0cb jmp y,$cb 954 jmp(Y,'REENTER') #20 00ff 00f4 ld $f4 955 ld(-24/2) #21 956 957 assert pc()&255 == 0 958 959 #----------------------------------------------------------------------- 960 # 961 # $0100 ROM page 1: Video loop vertical blank 962 # 963 #----------------------------------------------------------------------- 964 align(0x100, size=0x100) 965 966 # Video off mode (also no sound, serial, timer, blinkenlights, ...). 967 # For benchmarking purposes. This still has the overhead for the vTicks 968 # administration, time slice granularity etc. 969 label('videoZ') 970 videoZ = pc() videoZ: 0100 1502 ld [$02],y 971 runVcpu(None, '---- novideo', returnTo=videoZ) 0101 e0ff jmp y,$ff 0102 007f ld $7f 972 973 label('startVideo') # (Re)start of video signal from idle state startVideo: 0103 00c0 ld $c0 974 ld(syncBits) 975 976 # Start of vertical blank interval 977 label('vBlankStart') vBlankStart: 0104 c21f st [$1f] 978 st([videoSync0]) #32 Start of vertical blank interval 0105 0080 ld $80 979 ld(syncBits^hSync) #33 0106 c220 st [$20] 980 st([videoSync1]) #34 981 982 # Reset line counter before vCPU can see it 0107 00b3 ld $b3 983 ld(videoYline0) #35 0108 c209 st [$09] 984 st([videoY]) #36 985 986 # Update frame count and [0x80] (4 cycles) 0109 0001 ld $01 987 ld(1) #37 Reinitialize carry lookup, for robustness 010a c280 st [$80] 988 st([0x80]) #38 010b 810e adda [$0e] 989 adda([frameCount]) #39 Frame counter 010c c20e st [$0e] 990 st([frameCount]) #40 991 992 # Mix entropy (11 cycles) 010d 6107 xora [$07] 993 xora([entropy+1]) #41 Mix entropy 010e 610f xora [$0f] 994 xora([serialRaw]) #42 Mix in serial input 010f 8106 adda [$06] 995 adda([entropy+0]) #43 0110 c206 st [$06] 996 st([entropy+0]) #44 0111 8116 adda [$16] 997 adda([vPC]) #45 Some hidden state 0112 e815 blt $0115 998 bmi(pc()+3) #46 0113 fc16 bra $0116 999 bra(pc()+3) #47 0114 6053 xora $53 1000 xora(64+16+2+1) #48 0115 606c xora $6c 1001 xora(64+32+8+4) #48(!) 0116 8107 adda [$07] 1002 adda([entropy+1]) #49 0117 c207 st [$07] 1003 st([entropy+1]) #50 1004 1005 1006 # Timer 0118 012d ld [$2d] 1007 ld([jiffiesTick]) #51 0119 8001 adda $01 1008 adda(1) #52 011a c22d st [$2d] 1009 st([jiffiesTick]) #53 011b 603c xora $3c 1010 xora(60) #54 011c f01f beq $011f 1011 beq(pc()+3) #55 011d fc20 bra $0120 1012 bra(pc()+3) #56 011e 0200 nop 1013 nop() #57 011f c22d st [$2d] 1014 st([jiffiesTick]) #57(!) 0120 f023 beq $0123 1015 beq(pc()+3) #58 0121 fc24 bra $0124 1016 bra(pc()+3) #59 0122 0000 ld $00 1017 ld(0) #60 0123 0001 ld $01 1018 ld(1) #60(!) 1019 beq('vblankExpansion') #61 0124 f02e beq vblankExpansion 0125 812e adda [$2e] 1020 adda([secondsTickLo]) #62 0126 c22e st [$2e] 1021 st([secondsTickLo]) #63 0127 f02a beq $012a 1022 beq(pc()+3) #64 0128 fc2b bra $012b 1023 bra(pc()+3) #65 0129 0000 ld $00 1024 ld(0) #66 012a 0001 ld $01 1025 ld(1) #66(!) 012b 812f adda [$2f] 1026 adda([secondsTickHi]) #67 012c fc35 bra vPulseInit 1027 bra('vPulseInit') #68 012d c22f st [$2f] 1028 st([secondsTickHi]) #69 1029 1030 # VBlank expansion area, LED flasher, etc 1031 label('vblankExpansion') vblankExpansion: 012e 0200 nop 1032 nop() #63 012f 0200 nop 1033 nop() #64 0130 0200 nop 1034 nop() #65 0131 0200 nop 1035 nop() #66 0132 0200 nop 1036 nop() #67 0133 0200 nop 1037 nop() #68 0134 0200 nop 1038 nop() #69 1039 1040 label('vPulseInit') vPulseInit: 0135 0114 ld [$14] 1041 ld([xoutMask]) #70 mask LED's 0136 2108 anda [$08] 1042 anda([audioBitMask]) #71 configure 4/6/8bit audio 0137 c214 st [$14] 1043 st([xoutMask]) #72 Sound bits will be re-enabled below 0138 0010 ld $10 1044 ld(vPulse*2) #73 vPulse default length when not modulated 0139 c20d st [$0d] 1045 st([videoPulse]) #74 1046 1047 # When the total number of scan lines per frame is not an exact multiple of the 1048 # (4) channels, there will be an audible discontinuity if no measure is taken. 1049 # This static noise can be suppressed by swallowing the first `lines mod 4' 1050 # partial samples after transitioning into vertical blank. This is easiest if 1051 # the modulo is 0 (do nothing), 1 (reset sample when entering the last visible 1052 # scan line), or 2 (reset sample while in the first blank scan line). For the 1053 # last case there is no solution yet: give a warning. 1054 extra = 0 1055 if soundDiscontinuity == 2: 1056 st(sample, [sample]) # Sound continuity 1057 extra += 1 1058 if soundDiscontinuity > 2: 1059 highlight('Warning: sound discontinuity not suppressed') 1060 1061 # vCPU interrupt 013a 010e ld [$0e] 1062 ld([frameCount]) #75 1063 beq('vBlankFirst#78') #76 013b f041 beq vBlankFirst#78 1064 013c 0044 ld $44 1065 runVcpu(183-77-extra, #77 Application cycles (scan line 0) 013d c21e st [$1e] 013e 1502 ld [$02],y 013f e0ff jmp y,$ff 0140 001f ld $1f 1066 '---D line 0 no timeout', 1067 returnTo='vBlankFirst#183') 1068 1069 label('vBlankFirst#78') vBlankFirst#78: 0141 140e ld $0e,y 1070 ld(hi('vBlankFirst#81'),Y) #78 0142 e000 jmp y,$00 1071 jmp(Y,'vBlankFirst#81') #79 0143 1401 ld $01,y 1072 ld(hi(vIRQ_v5),Y) #80 1073 1074 # Mitigation for rogue channelMask (3 cycles) 1075 label('vBlankFirst#183') vBlankFirst#183: 0144 0121 ld [$21] 1076 ld([channelMask]) #183 Normalize channelMask, for robustness 0145 20fb anda $fb 1077 anda(0b11111011) #184 0146 c221 st [$21] 1078 st([channelMask]) #185 1079 1080 # Sound on/off (6 cycles) 0147 0108 ld [$08] 1081 ld([audioBitMask]) #186 configure 4/6/8bit audio 0148 60ff xora $ff 1082 xora(255) #187 0149 c21d st [$1d] 1083 st([vTmp]) #188 014a 012c ld [$2c] 1084 ld([soundTimer]) #189 Sound on/off 014b ec4e bne $014e 1085 bne(pc()+3) #190 014c fc4f bra $014f 1086 bra(pc()+3) #191 014d 0000 ld $00 1087 ld(0) #192 Keeps sound unchanged (should be off here) 014e 011d ld [$1d] 1088 ld([vTmp]) #192(!) Turns sound back on 014f 4114 ora [$14] 1089 ora([xoutMask]) #193 0150 c214 st [$14] 1090 st([xoutMask]) #194 1091 1092 # Sound timer count down (5 cycles) 0151 012c ld [$2c] 1093 ld([soundTimer]) #195 Sound timer 0152 f055 beq $0155 1094 beq(pc()+3) #196 0153 fc56 bra $0156 1095 bra(pc()+3) #197 0154 a001 suba $01 1096 suba(1) #198 0155 0000 ld $00 1097 ld(0) #198 0156 c22c st [$2c] 1098 st([soundTimer]) #199 1099 0157 191f ld [$1f],out 1100 ld([videoSync0],OUT) #0 1101 label('sound1') sound1: 0158 0105 ld [$05] 1102 ld([channel]) #1 Advance to next sound channel 0159 2121 anda [$21] 1103 anda([channelMask]) #2 015a 8001 adda $01 1104 adda(1) #3 015b 1920 ld [$20],out 1105 ld([videoSync1],OUT) #4 Start horizontal pulse 015c d605 st [$05],y 1106 st([channel],Y) #5 015d 007f ld $7f 1107 ld(0x7f) #6 Update sound channel 015e 29fe anda [y,$fe] 1108 anda([Y,oscL]) #7 015f 89fc adda [y,$fc] 1109 adda([Y,keyL]) #8 0160 cafe st [y,$fe] 1110 st([Y,oscL]) #9 0161 3080 anda $80,x 1111 anda(0x80,X) #10 0162 0500 ld [x] 1112 ld([X]) #11 0163 89ff adda [y,$ff] 1113 adda([Y,oscH]) #12 0164 89fd adda [y,$fd] 1114 adda([Y,keyH]) #13 0165 caff st [y,$ff] 1115 st([Y,oscH]) #14 0166 20fc anda $fc 1116 anda(0xfc) #15 0167 69fb xora [y,$fb] 1117 xora([Y,wavX]) #16 0168 1200 ld ac,x 1118 ld(AC,X) #17 0169 09fa ld [y,$fa] 1119 ld([Y,wavA]) #18 016a 1407 ld $07,y 1120 ld(soundTable>>8,Y) #19 016b 8d00 adda [y,x] 1121 adda([Y,X]) #20 016c e86f blt $016f 1122 bmi(pc()+3) #21 016d fc70 bra $0170 1123 bra(pc()+3) #22 016e 203f anda $3f 1124 anda(63) #23 016f 003f ld $3f 1125 ld(63) #23(!) 0170 8103 adda [$03] 1126 adda([sample]) #24 0171 c203 st [$03] 1127 st([sample]) #25 1128 0172 0113 ld [$13] 1129 ld([xout]) #26 Gets copied to XOUT 0173 140e ld $0e,y 1130 ld(hi('vBlankLast#34'),Y) #27 Prepare jumping out of page in last line 0174 191f ld [$1f],out 1131 ld([videoSync0],OUT) #28 End horizontal pulse 1132 1133 # Count through the vertical blank interval until its last scan line 0175 0109 ld [$09] 1134 ld([videoY]) #29 1135 bpl('.vBlankLast#32') #30 0176 f4a3 bge .vBlankLast#32 0177 8002 adda $02 1136 adda(2) #31 0178 c209 st [$09] 1137 st([videoY]) #32 1138 1139 # Determine if we're in the vertical sync pulse 0179 a0bd suba $bd 1140 suba(1-2*(vBack+vPulse-1)) #33 Prepare sync values 017a ec7f bne .prepSync36 1141 bne('.prepSync36') #34 Tests for start of vPulse 017b a10d suba [$0d] 1142 suba([videoPulse]) #35 017c 0040 ld $40 1143 ld(syncBits^vSync) #36 Entering vertical sync pulse 017d fc84 bra .prepSync39 1144 bra('.prepSync39') #37 017e c21f st [$1f] 1145 st([videoSync0]) #38 1146 label('.prepSync36') .prepSync36: 017f ec83 bne .prepSync38 1147 bne('.prepSync38') #36 Tests for end of vPulse 0180 00c0 ld $c0 1148 ld(syncBits) #37 0181 fc85 bra .prepSync40 1149 bra('.prepSync40') #38 Entering vertical back porch 0182 c21f st [$1f] 1150 st([videoSync0]) #39 1151 label('.prepSync38') .prepSync38: 0183 011f ld [$1f] 1152 ld([videoSync0]) #38 Load current value 1153 label('.prepSync39') .prepSync39: 0184 0200 nop 1154 nop() #39 1155 label('.prepSync40') .prepSync40: 0185 6040 xora $40 1156 xora(hSync) #40 Precompute, as during the pulse there is no time 0186 c220 st [$20] 1157 st([videoSync1]) #41 1158 1159 # Capture the serial input before the '595 shifts it out 0187 0109 ld [$09] 1160 ld([videoY]) #42 Capture serial input 0188 60cf xora $cf 1161 xora(1-2*(vBack-1-1)) #43 Exactly when the 74HC595 has captured all 8 controller bits 0189 ec8c bne $018c 1162 bne(pc()+3) #44 018a fc8d bra $018d 1163 bra(pc()+3) #45 018b c30f st in,[$0f] 1164 st(IN, [serialRaw]) #46 018c c000 st $00,[$00] 1165 st(0,[0]) #46(!) Reinitialize carry lookup, for robustness 1166 1167 # Update [xout] with the next sound sample every 4 scan lines. 1168 # Keep doing this on 'videoC equivalent' scan lines in vertical blank. 018d 0109 ld [$09] 1169 ld([videoY]) #47 018e 2006 anda $06 1170 anda(6) #48 1171 beq('vBlankSample') #49 018f f098 beq vBlankSample 0190 0103 ld [$03] 1172 ld([sample]) #50 1173 1174 label('vBlankNormal') vBlankNormal: 0191 0096 ld $96 1175 runVcpu(199-51, 'AB-D line 1-36')#51 Application cycles (vBlank scan lines without sound sample update) 0192 c21e st [$1e] 0193 1502 ld [$02],y 0194 e0ff jmp y,$ff 0195 0034 ld $34 0196 fc58 bra sound1 1176 bra('sound1') #199 0197 191f ld [$1f],out 1177 ld([videoSync0],OUT) #0 1178 1179 label('vBlankSample') vBlankSample: 0198 4108 ora [$08] 1180 ora([audioBitMask]) #51 configure 4/6/8bit audio 0199 2114 anda [$14] 1181 anda([xoutMask]) #52 019a c213 st [$13] 1182 st([xout]) #53 New sound sample is ready 019b c003 st $03,[$03] 1183 st(sample, [sample]) #54 Reset for next sample 1184 019c 00a1 ld $a1 1185 runVcpu(199-55, '--C- line 3-39')#55 Application cycles (vBlank scan lines with sound sample update) 019d c21e st [$1e] 019e 1502 ld [$02],y 019f e0ff jmp y,$ff 01a0 0032 ld $32 01a1 fc58 bra sound1 1186 bra('sound1') #199 01a2 191f ld [$1f],out 1187 ld([videoSync0],OUT) #0 1188 1189 #----------------------------------------------------------------------- 1190 1191 label('.vBlankLast#32') .vBlankLast#32: 01a3 e032 jmp y,$32 1192 jmp(Y,'vBlankLast#34') #32 Jump out of page for space reasons 1193 #assert hi(controllerType) == hi(pc()) # Assume these share the high address 01a4 1401 ld $01,y 1194 ld(hi(pc()),Y) #33 1195 1196 label('vBlankLast#52') 1197 1198 # Respond to reset button (14 cycles) 1199 # - ResetTimer decrements as long as just [Start] is pressed down 1200 # - Reaching 0 (normal) or 128 (extended) triggers the soft reset sequence 1201 # - Initial value is 128 (or 255 at boot), first decrement, then check 1202 # - This starts vReset -> SYS_Reset_88 -> SYS_Exec_88 -> Reset.gcl -> Main.gcl 1203 # - Main.gcl then recognizes extended presses if resetTimer is 0..127 ("paasei") 1204 # - This requires a full cycle (4s) in the warm boot scenario 1205 # - Or a half cycle (2s) when pressing [Select] down during hard reset 1206 # - This furthermore requires >=1 frame (and <=128) to have passed between 1207 # reaching 128 and getting through Reset and the start of Main, while [Start] 1208 # was still pressed so the count reaches <128. Two reasonable expectations. 1209 # - The unintended power-up scenarios of ROMv1 (pulling SER_DATA low, or 1210 # pressing [Select] together with another button) now don't trigger anymore. 1211 vBlankLast#52: 01a5 0111 ld [$11] 1212 ld([buttonState]) #52 Check [Start] for soft reset 01a6 60ef xora $ef 1213 xora(~buttonStart) #53 01a7 ecb0 bne .restart#56 1214 bne('.restart#56') #54 01a8 0112 ld [$12] 1215 ld([resetTimer]) #55 As long as button pressed 01a9 a001 suba $01 1216 suba(1) #56 ... count down the timer 01aa c212 st [$12] 1217 st([resetTimer]) #57 01ab 207f anda $7f 1218 anda(127) #58 01ac f0b8 beq .restart#61 1219 beq('.restart#61') #59 Reset at 0 (normal 2s) or 128 (extended 4s) 01ad 00ee ld $ee 1220 ld((vReset&255)-2) #60 Start force reset when hitting 0 01ae fcb7 bra .restart#63 1221 bra('.restart#63') #61 ... otherwise do nothing yet 01af fcb6 bra .restart#64 1222 bra('.restart#64') #62 1223 label('.restart#56') .restart#56: 01b0 0001 ld $01 1224 wait(62-56) #56 01b1 ecb1 bne $01b1 01b2 a001 suba $01 01b3 0200 nop 01b4 0080 ld $80 1225 ld(128) #62 Not pressed, reset the timer 01b5 c212 st [$12] 1226 st([resetTimer]) #63 1227 label('.restart#64') .restart#64: 01b6 fcbd bra .restart#66 1228 bra('.restart#66') #64 1229 label('.restart#63') .restart#63: 01b7 0200 nop 1230 nop() #63,65 1231 label('.restart#61') .restart#61: 01b8 c216 st [$16] 1232 st([vPC]) #61 Point vPC at vReset 01b9 0001 ld $01 1233 ld(vReset>>8) #62 01ba c217 st [$17] 1234 st([vPC+1]) #63 01bb 0002 ld $02 1235 ld(hi('ENTER')) #64 Set active interpreter to vCPU 01bc c202 st [$02] 1236 st([vCpuSelect]) #65 1237 label('.restart#66') 1238 1239 # Switch video mode when (only) select is pressed (16 cycles) 1240 # XXX We could make this a vCPU interrupt .restart#66: 01bd 0111 ld [$11] 1241 ld([buttonState]) #66 Check [Select] to switch modes 01be 60df xora $df 1242 xora(~buttonSelect) #67 Only trigger when just [Select] is pressed 01bf ecd4 bne .select#70 1243 bne('.select#70') #68 01c0 010b ld [$0b] 1244 ld([videoModeC]) #69 01c1 e8c7 blt .select#72 1245 bmi('.select#72') #70 Branch when line C is off 01c2 010a ld [$0a] 1246 ld([videoModeB]) #71 Rotate: Off->D->B->C 01c3 c20b st [$0b] 1247 st([videoModeC]) #72 01c4 010c ld [$0c] 1248 ld([videoModeD]) #73 01c5 c20a st [$0a] 1249 st([videoModeB]) #74 01c6 fccc bra .select#77 1250 bra('.select#77') #75 1251 label('.select#72') .select#72: 01c7 00f6 ld $f6 1252 ld('nopixels') #72,76 01c8 000a ld $0a 1253 ld('pixels') #73 Reset: On->D->B->C 01c9 c20b st [$0b] 1254 st([videoModeC]) #74 01ca c20a st [$0a] 1255 st([videoModeB]) #75 01cb 0200 nop 1256 nop() #76 1257 label('.select#77') .select#77: 01cc c20c st [$0c] 1258 st([videoModeD]) #77 01cd 0035 ld $35 1259 wait(188-78) #78 Don't waste code space expanding runVcpu here 01ce ecce bne $01ce 01cf a001 suba $01 01d0 0200 nop 1260 # AC==255 now 01d1 c211 st [$11] 1261 st([buttonState]) #188 1262 bra('vBlankEnd#191') #189 01d2 fcdc bra vBlankEnd#191 01d3 0000 ld $00 1263 ld(0) #190 1264 label('.select#70') 1265 1266 # Mitigation of runaway channel variable .select#70: 01d4 0105 ld [$05] 1267 ld([channel]) #70 Normalize channel, for robustness 01d5 2003 anda $03 1268 anda(0b00000011) #71 01d6 c205 st [$05] 1269 st([channel]) #72 Stop wild channel updates 1270 01d7 00dc ld $dc 1271 runVcpu(191-73, '---D line 40') #73 Application cycles (scan line 40) 01d8 c21e st [$1e] 01d9 1502 ld [$02],y 01da e0ff jmp y,$ff 01db 0025 ld $25 1272 1273 # AC==0 now 1274 label('vBlankEnd#191') vBlankEnd#191: 01dc 1401 ld $01,y 1275 ld(videoTop_v5>>8,Y) #191 01dd 09f9 ld [y,$f9] 1276 ld([Y,videoTop_v5]) #192 01de c209 st [$09] 1277 st([videoY]) #193 01df c21f st [$1f] 1278 st([frameX]) #194 01e0 ece3 bne $01e3 1279 bne(pc()+3) #195 01e1 fce4 bra $01e4 1280 bra(pc()+3) #196 01e2 0001 ld $01 1281 ld('videoA') #197 01e3 00ec ld $ec 1282 ld('videoF') #197(!) 01e4 c20d st [$0d] 1283 st([nextVideo]) #198 01e5 0105 ld [$05] 1284 ld([channel]) #199 Advance to next sound channel 01e6 2121 anda [$21] 1285 anda([channelMask]) #0 01e7 8001 adda $01 1286 adda(1) #1 01e8 1402 ld $02,y 1287 ld(hi('sound2'),Y) #2 01e9 e0b1 jmp y,$b1 1288 jmp(Y,'sound2') #3 01ea 1880 ld $80,out 1289 ld(syncBits^hSync,OUT) #4 Start horizontal pulse 1290 01eb 0200 nop 1291 fillers(until=0xff) 01ec 0200 nop 01ed 0200 nop * 20 times 1292 1293 #----------------------------------------------------------------------- 1294 # Return point for vCPU slices during visible screen area 1295 #----------------------------------------------------------------------- 1296 1297 assert pc() == 0x1ff # Enables runVcpu() to re-enter into the next page 01ff fcae bra sound3 1298 bra('sound3') #200,0 1299 1300 #----------------------------------------------------------------------- 1301 # 1302 # $0200 ROM page 2: Video loop visible scanlines 1303 # 1304 #----------------------------------------------------------------------- 1305 align(0x100, size=0x100) 0200 0105 ld [$05] 1306 ld([channel]) #1 Advance to next sound channel 1307 1308 # Back porch A: first of 4 repeated scan lines 1309 # - Fetch next Yi and store it for retrieval in the next scan lines 1310 # - Calculate Xi from dXi, but there is no cycle time left to store it as well 1311 label('videoA') videoA: 0201 00ca ld $ca 1312 ld('videoB') #29 1st scanline of 4 (always visible) 0202 c20d st [$0d] 1313 st([nextVideo]) #30 0203 1401 ld $01,y 1314 ld(videoTable>>8,Y) #31 0204 1109 ld [$09],x 1315 ld([videoY],X) #32 0205 0d00 ld [y,x] 1316 ld([Y,X]) #33 0206 de00 st [y,x++] 1317 st([Y,Xpp]) #34 Just X++ 0207 c220 st [$20] 1318 st([frameY]) #35 0208 0d00 ld [y,x] 1319 ld([Y,X]) #36 0209 911f adda [$1f],x 1320 adda([frameX],X) #37 1321 label('pixels') pixels: 020a 1520 ld [$20],y 1322 ld([frameY],Y) #38 020b 00c0 ld $c0 1323 ld(syncBits) #39 1324 1325 # Stream 160 pixels from memory location onwards 1326 # Superimpose the sync signal bits to be robust against misprogramming 1327 for i in range(qqVgaWidth): 020c 5d00 ora [y,x++],out 1328 ora([Y,Xpp],OUT) #40-199 Pixel burst 020d 5d00 ora [y,x++],out 020e 5d00 ora [y,x++],out * 160 times 02ac 18c0 ld $c0,out 1329 ld(syncBits,OUT) #0 Back to black 1330 1331 # Front porch 02ad 0105 ld [$05] 1332 ld([channel]) #1 Advance to next sound channel 1333 label('sound3') # Return from vCPU interpreter sound3: 02ae 2121 anda [$21] 1334 anda([channelMask]) #2 02af 8001 adda $01 1335 adda(1) #3 02b0 1880 ld $80,out 1336 ld(syncBits^hSync,OUT) #4 Start horizontal pulse 1337 1338 # Horizontal sync and sound channel update for scanlines outside vBlank 1339 label('sound2') sound2: 02b1 d605 st [$05],y 1340 st([channel],Y) #5 02b2 007f ld $7f 1341 ld(0x7f) #6 02b3 29fe anda [y,$fe] 1342 anda([Y,oscL]) #7 02b4 89fc adda [y,$fc] 1343 adda([Y,keyL]) #8 02b5 cafe st [y,$fe] 1344 st([Y,oscL]) #9 02b6 3080 anda $80,x 1345 anda(0x80,X) #10 02b7 0500 ld [x] 1346 ld([X]) #11 02b8 89ff adda [y,$ff] 1347 adda([Y,oscH]) #12 02b9 89fd adda [y,$fd] 1348 adda([Y,keyH]) #13 02ba caff st [y,$ff] 1349 st([Y,oscH]) #14 02bb 20fc anda $fc 1350 anda(0xfc) #15 02bc 69fb xora [y,$fb] 1351 xora([Y,wavX]) #16 02bd 1200 ld ac,x 1352 ld(AC,X) #17 02be 09fa ld [y,$fa] 1353 ld([Y,wavA]) #18 02bf 1407 ld $07,y 1354 ld(soundTable>>8,Y) #19 02c0 8d00 adda [y,x] 1355 adda([Y,X]) #20 02c1 e8c4 blt $02c4 1356 bmi(pc()+3) #21 02c2 fcc5 bra $02c5 1357 bra(pc()+3) #22 02c3 203f anda $3f 1358 anda(63) #23 02c4 003f ld $3f 1359 ld(63) #23(!) 02c5 8103 adda [$03] 1360 adda([sample]) #24 02c6 c203 st [$03] 1361 st([sample]) #25 1362 02c7 0113 ld [$13] 1363 ld([xout]) #26 Gets copied to XOUT 02c8 fd0d bra [$0d] 1364 bra([nextVideo]) #27 02c9 18c0 ld $c0,out 1365 ld(syncBits,OUT) #28 End horizontal pulse 1366 1367 # Back porch B: second of 4 repeated scan lines 1368 # - Recompute Xi from dXi and store for retrieval in the next scan lines 1369 label('videoB') videoB: 02ca 00d3 ld $d3 1370 ld('videoC') #29 2nd scanline of 4 02cb c20d st [$0d] 1371 st([nextVideo]) #30 02cc 1401 ld $01,y 1372 ld(videoTable>>8,Y) #31 02cd 0109 ld [$09] 1373 ld([videoY]) #32 02ce 9001 adda $01,x 1374 adda(1,X) #33 02cf 011f ld [$1f] 1375 ld([frameX]) #34 02d0 8d00 adda [y,x] 1376 adda([Y,X]) #35 02d1 fd0a bra [$0a] 1377 bra([videoModeB]) #36 02d2 d21f st [$1f],x 1378 st([frameX],X) #37 Store in RAM and X 1379 1380 # Back porch C: third of 4 repeated scan lines 1381 # - Nothing new to for video do as Yi and Xi are known, 1382 # - This is the time to emit and reset the next sound sample 1383 label('videoC') videoC: 02d3 00dc ld $dc 1384 ld('videoD') #29 3rd scanline of 4 02d4 c20d st [$0d] 1385 st([nextVideo]) #30 02d5 0103 ld [$03] 1386 ld([sample]) #31 New sound sample is ready (didn't fit in the audio loop) 02d6 4108 ora [$08] 1387 ora([audioBitMask]) #32 configure 4/6/8bit audio 02d7 2114 anda [$14] 1388 anda([xoutMask]) #33 02d8 c213 st [$13] 1389 st([xout]) #34 Update [xout] with new sample (4 channels just updated) 02d9 c003 st $03,[$03] 1390 st(sample, [sample]) #35 Reset for next sample 02da fd0b bra [$0b] 1391 bra([videoModeC]) #36 02db 111f ld [$1f],x 1392 ld([frameX],X) #37 1393 1394 # Back porch D: last of 4 repeated scan lines 1395 # - Calculate the next frame index 1396 # - Decide if this is the last line or not 1397 label('videoD') # Default video mode videoD: 02dc 111f ld [$1f],x 1398 ld([frameX], X) #29 4th scanline of 4 02dd 0109 ld [$09] 1399 ld([videoY]) #30 02de a0ee suba $ee 1400 suba((120-1)*2) #31 1401 beq('.lastpixels#34') #32 02df f0e5 beq .lastpixels#34 02e0 80f0 adda $f0 1402 adda(120*2) #33 More pixel lines to go 02e1 c209 st [$09] 1403 st([videoY]) #34 02e2 0001 ld $01 1404 ld('videoA') #35 02e3 fd0c bra [$0c] 1405 bra([videoModeD]) #36 02e4 c20d st [$0d] 1406 st([nextVideo]) #37 1407 1408 label('.lastpixels#34') 1409 if soundDiscontinuity == 1: .lastpixels#34: 02e5 c003 st $03,[$03] 1410 st(sample, [sample]) #34 Sound continuity 1411 else: 1412 nop() #34 02e6 00e9 ld $e9 1413 ld('videoE') #35 No more pixel lines to go 02e7 fd0c bra [$0c] 1414 bra([videoModeD]) #36 02e8 c20d st [$0d] 1415 st([nextVideo]) #37 1416 1417 # Back porch "E": after the last line 1418 # - Go back and and enter vertical blank (program page 2) 1419 label('videoE') # Exit visible area videoE: 02e9 1401 ld $01,y 1420 ld(hi('vBlankStart'),Y) #29 Return to vertical blank interval 02ea e004 jmp y,$04 1421 jmp(Y,'vBlankStart') #30 02eb 00c0 ld $c0 1422 ld(syncBits) #31 1423 1424 # Video mode that blacks out one or more pixel lines from the top of screen. 1425 # This yields some speed, but also frees up screen memory for other purposes. 1426 # Note: Sound output becomes choppier the more pixel lines are skipped 1427 # Note: The vertical blank driver leaves 0x80 behind in [videoSync1] 1428 label('videoF') videoF: 02ec 0120 ld [$20] 1429 ld([videoSync1]) #29 Completely black pixel line 02ed 8080 adda $80 1430 adda(0x80) #30 02ee d220 st [$20],x 1431 st([videoSync1],X) #31 02ef 011f ld [$1f] 1432 ld([frameX]) #32 02f0 a500 suba [x] 1433 suba([X]) #33 Decrements every two VGA scanlines 02f1 f0f4 beq .videoF#36 1434 beq('.videoF#36') #34 02f2 c21f st [$1f] 1435 st([frameX]) #35 02f3 fcf6 bra nopixels 1436 bra('nopixels') #36 1437 label('.videoF#36') .videoF#36: 02f4 0001 ld $01 1438 ld('videoA') #36,37 Transfer to visible screen area 02f5 c20d st [$0d] 1439 st([nextVideo]) #37 1440 # 1441 # Alternative for pixel burst: faster application mode 1442 label('nopixels') nopixels: 02f6 00ff ld $ff 1443 runVcpu(200-38, 'ABCD line 40-520', 02f7 c21e st [$1e] 02f8 1502 ld [$02],y 02f9 e0ff jmp y,$ff 02fa 003b ld $3b 1444 returnTo=0x1ff) #38 Application interpreter (black scanlines) 1445 1446 #----------------------------------------------------------------------- 1447 # 1448 # $0300 ROM page 3: Application interpreter primary page 1449 # 1450 #----------------------------------------------------------------------- 1451 # 1452 # Enter the timing-aware application interpreter (aka virtual CPU, vCPU) 1453 # 1454 # This routine will execute as many as possible instructions in the 1455 # allotted time. When time runs out, it synchronizes such that the total 1456 # duration matches the caller's request. Durations are counted in `ticks', 1457 # which are multiples of 2 clock cycles. 1458 # 1459 # Synopsis: Use the runVcpu() macro as entry point 1460 1461 # We let 'ENTER' begin one word before the page boundary, for a bit extra 1462 # precious space in the packed interpreter code page. Although ENTER's 1463 # first instruction is bra() which normally doesn't cross page boundaries, 1464 # in this case it will still jump into the right space, because branches 1465 # from $xxFF land in the next page anyway. 1466 while pc()&255 < 255: 02fb 0200 nop 1467 nop() 02fc 0200 nop 02fd 0200 nop 02fe 0200 nop 1468 label('ENTER') ENTER: 02ff fc03 bra .next2 1469 bra('.next2') #0 Enter at '.next2' (so no startup overhead) 1470 # --- Page boundary --- 1471 align(0x100,size=0x100) 1472 label('NEXTY') # Alternative for REENTER NEXTY: 0300 1517 ld [$17],y 1473 ld([vPC+1],Y) #1 1474 1475 # Fetch next instruction and execute it, but only if there are sufficient 1476 # ticks left for the slowest instruction. 1477 label('NEXT') NEXT: 0301 8115 adda [$15] 1478 adda([vTicks]) #0 Track elapsed ticks (actually counting down: AC<0) 0302 e80b blt EXIT 1479 blt('EXIT') #1 Escape near time out 1480 label('.next2') .next2: 0303 c215 st [$15] 1481 st([vTicks]) #2 0304 0116 ld [$16] 1482 ld([vPC]) #3 Advance vPC 0305 8002 adda $02 1483 adda(2) #4 0306 d216 st [$16],x 1484 st([vPC],X) #5 0307 0d00 ld [y,x] 1485 ld([Y,X]) #6 Fetch opcode (actually a branch target) 0308 de00 st [y,x++] 1486 st([Y,Xpp]) #7 Just X++ 0309 fe00 bra ac 1487 bra(AC) #8 Dispatch 030a 0d00 ld [y,x] 1488 ld([Y,X]) #9 Prefetch operand 1489 1490 # Resync with video driver and transfer control 1491 label('EXIT') EXIT: 030b 800f adda $0f 1492 adda(maxTicks) #3 1493 label('RESYNC') RESYNC: 030c e40c bgt RESYNC 1494 bgt(pc()&255) #4 Resync 030d a001 suba $01 1495 suba(1) #5 030e 1401 ld $01,y 1496 ld(hi('vBlankStart'),Y) #6 030f e11e jmp y,[$1e] 1497 jmp(Y,[vReturn]) #7 To video driver 0310 0000 ld $00 1498 ld(0) #8 AC should be 0 already. Still.. 1499 assert vCPU_overhead == 9 1500 1501 # pc = 0x0311, Opcode = 0x11 1502 # Instruction LDWI: Load immediate word constant (vAC=D), 24 cycles 1503 label('LDWI') LDWI: 0311 140b ld $0b,y 1504 ld(hi('ldwi#13'),Y) #10 0312 e0b0 jmp y,$b0 1505 jmp(Y,'ldwi#13') #11 0313 1517 ld [$17],y 1506 ld([vPC+1],Y) #12 1507 1508 # pc = 0x0314, Opcode = 0x14 1509 # Instruction DEC: Decrement byte var ([D]--), 22 cycles 1510 label('DEC') DEC: 0314 1416 ld $16,y 1511 ld(hi('dec#13'),Y) #10 0315 e00a jmp y,$0a 1512 jmp(Y,'dec#13') #11 1513 # dummy #12 Overlap 1514 # 1515 # pc = 0x0316, Opcode = 0x16 1516 # Instruction MOVQB: Load a byte var with a small constant 0..255, 28 cycles 1517 label('MOVQB') MOVQB: 0316 1416 ld $16,y 1518 ld(hi('movqb#13'),Y) #10 #12 0317 e069 jmp y,$69 1519 jmp(Y,'movqb#13') #11 1520 # dummy #12 Overlap 1521 # 1522 # pc = 0x0318, Opcode = 0x18 1523 # Instruction LSRB: Logical shift right byte var, 28 cycles 1524 label('LSRB') LSRB: 0318 1416 ld $16,y 1525 ld(hi('lsrb#13'),Y) #10 #12 0319 e0b7 jmp y,$b7 1526 jmp(Y,'lsrb#13') #11 1527 # dummy #12 Overlap 1528 # 1529 # pc = 0x031a, Opcode = 0x1a 1530 # Instruction LD: Load byte from zero page (vAC=[D]), 22 cycles 1531 label('LD') LD: 031a 1416 ld $16,y 1532 ld(hi('ld#13'),Y) #10 #12 031b e011 jmp y,$11 1533 jmp(Y,'ld#13') #11 1534 # dummy #12 Overlap 1535 # 1536 # pc = 0x031c, Opcode = 0x1c 1537 # Instruction ADDBI: dst.lo = imm + src.lo, 30 cycles 1538 label('ADDBI') ADDBI: 031c 1435 ld $35,y 1539 ld(hi('addbi#13'),Y) #10 #12 031d e000 jmp y,$00 1540 jmp(Y,'addbi#13') #11 031e 1517 ld [$17],y 1541 ld([vPC+1],Y) #12 vPC.hi 1542 1543 # pc = 0x031f, Opcode = 0x1f 1544 # Instruction SPARE0: 1545 label('SPARE0') SPARE0: 031f 1403 ld $03,y 1546 ld(hi('SPARE0'),Y) #10 0320 e01f jmp y,$1f 1547 jmp(Y,'SPARE0') #11 1548 # dummy #12 Overlap, not dependent on ld(AC,X) anymore 1549 # 1550 # pc = 0x0321, Opcode = 0x21 1551 # Instruction LDW: Load word from zero page (vAC=[D]+256*[D+1]), 24 cycles 1552 label('LDW') LDW: 0321 1416 ld $16,y 1553 ld(hi('ldw#13'),Y) #10 #12 0322 e0bf jmp y,$bf 1554 jmp(Y,'ldw#13') #11 1555 # dummy #12 Overlap 1556 # 1557 # pc = 0x0323, Opcode = 0x23 1558 # Instruction PEEKV+: Peek byte at address contained in var, inc var, 30 cycles 1559 label('PEEKV+') PEEKV+: 0323 1418 ld $18,y 1560 ld(hi('peekv+#13'),Y) #10 #12 0324 e00b jmp y,$0b 1561 jmp(Y,'peekv+#13') #11 1562 # dummy #12 Overlap 1563 # 1564 # pc = 0x0325, Opcode = 0x25 1565 # Instruction POKEI: Poke immediate byte into address contained in [vAC], 20 cycles 1566 label('POKEI') POKEI: 0325 1417 ld $17,y 1567 ld(hi('pokei#13'),Y) #10 #12 0326 e0ca jmp y,$ca 1568 jmp(Y,'pokei#13') #11 1569 # dummy #12 Overlap 1570 # 1571 # pc = 0x0327, Opcode = 0x27 1572 # Instruction LSLV: Logical shift left word var, 28 cycles 1573 label('LSLV') LSLV: 0327 1416 ld $16,y 1574 ld(hi('lslv#13'),Y) #10 #12 0328 e0a3 jmp y,$a3 1575 jmp(Y,'lslv#13') #11 1576 # dummy #12 Overlap 1577 # 1578 # pc = 0x0329, Opcode = 0x29 1579 # Instruction ADDVB: dst.lo = src0.lo + src1.lo, 36 cycles 1580 label('ADDVB') ADDVB: 0329 142d ld $2d,y 1581 ld(hi('addvb#13'),Y) #10 #12 032a e0b4 jmp y,$b4 1582 jmp(Y,'addvb#13') #11 1583 # dummy #12 Overlap 1584 # 1585 # pc = 0x032b, Opcode = 0x2b 1586 # Instruction STW: Store word in zero page ([D],[D+1]=vAC&255,vAC>>8), 24 cycles 1587 label('STW') STW: 032b 1416 ld $16,y 1588 ld(hi('stw#13'),Y) #10 #12 032c e0c9 jmp y,$c9 1589 jmp(Y,'stw#13') #11 1590 # dummy #12 Overlap 1591 # 1592 # pc = 0x032d, Opcode = 0x2d 1593 # Instruction CNVXY: var = src0.lo | ((src1.lo + 8) <<8), 44 cycles 1594 label('CNVXY') CNVXY: 032d 142e ld $2e,y 1595 ld(hi('cnvxy#13'),Y) #10 #12 032e e07c jmp y,$7c 1596 jmp(Y,'cnvxy#13') #11 1597 # dummy #12 Overlap 1598 # 1599 # pc = 0x032f, Opcode = 0x2f 1600 # Instruction PREFX2 1601 label('PREFX2') PREFX2: 032f 1414 ld $14,y 1602 ld(hi('prefx2#13'),Y) #10 #12 0330 e0cd jmp y,$cd 1603 jmp(Y,'prefx2#13') #11 0331 c22b st [$2b] 1604 st([sysArgs+7]) #12 Operand 1605 1606 # pc = 0x0332, Opcode = 0x32 1607 # Instruction MOVWA: Move 16bits from src zero page var to dst zero page var, vAC=dst, 40 cycles 1608 label('MOVWA') MOVWA: 0332 1417 ld $17,y 1609 ld(hi('movwa#13'),Y) #10 0333 e0df jmp y,$df 1610 jmp(Y,'movwa#13') #11 0334 1517 ld [$17],y 1611 ld([vPC+1],Y) #12 vPC.hi 1612 1613 # pc = 0x0335, Opcode = 0x35 1614 # Instruction BCC: Test AC sign and branch conditionally, variable, (24-26), cycles 1615 label('BCC') BCC: 0335 de00 st [y,x++] 1616 st([Y,Xpp]) #10 X++ 0336 143f ld $3f,y 1617 ld(0x3f,Y) #11 0337 e200 jmp y,ac 1618 jmp(Y,AC) #12 AC is the conditional operand 1619 # dummy #13 Overlap 1620 # 1621 # pc = 0x0338, Opcode = 0x38 1622 # Instruction SUBBI: dst.lo = src.lo - imm, 34 cycles 1623 label('SUBBI') SUBBI: 0338 1435 ld $35,y 1624 ld(hi('subbi#13'),Y) #10 #12 0339 e010 jmp y,$10 1625 jmp(Y,'subbi#13') #11 033a 1517 ld [$17],y 1626 ld([vPC+1],Y) #12 vPC.hi 1627 1628 # pc = 0x033b, Opcode = 0x3b 1629 # Instruction DEEKV: read word from address contained in var, 28 cycles 1630 label('DEEKV') DEEKV: 033b 1416 ld $16,y 1631 ld(hi('deekv#13'),Y) #10 033c e093 jmp y,$93 1632 jmp(Y,'deekv#13') #11 1633 # dummy #12 Overlap 1634 # 1635 # pc = 0x033d, Opcode = 0x3d 1636 # Instruction ARRVW: vAC = imm16 + idx*2, 56 cycles 1637 label('ARRVW') ARRVW: 033d 1428 ld $28,y 1638 ld(hi('arrvw#13'),Y) #10 #12 033e e0a0 jmp y,$a0 1639 jmp(Y,'arrvw#13') #11 1640 # dummy #12 Overlap 1641 # 1642 # pc = 0x033f, Opcode = 0x3f 1643 # Instruction LDARRW: vAC = deek [imm16 + idx*2], 62 cycles 1644 label('LDARRW') LDARRW: 033f 1436 ld $36,y 1645 ld(hi('ldarrw#13'),Y) #10 0340 e037 jmp y,$37 1646 jmp(Y,'ldarrw#13') #11 0341 1517 ld [$17],y 1647 ld([vPC+1],Y) #12 vPC.hi 1648 1649 # pc = 0x0342, Opcode = 0x42 1650 # Instruction ADDVI: dst = src + imm, vAC = dst, 54 cycles 1651 label('ADDVI') ADDVI: 0342 1428 ld $28,y 1652 ld(hi('addvi#13'),Y) #10 0343 e000 jmp y,$00 1653 jmp(Y,'addvi#13') #11 1654 # dummy #12 Overlap 1655 1656 # pc = 0x0344, Opcode = 0x44 1657 # Instruction SUBVI: dst = src - imm, vAC = dst, 54 cycles 1658 label('SUBVI') SUBVI: 0344 1428 ld $28,y 1659 ld(hi('subvi#13'),Y) #10 #12 0345 e02f jmp y,$2f 1660 jmp(Y,'subvi#13') #11 1661 # dummy #12 Overlap 1662 1663 # pc = 0x0346, Opcode = 0x46 1664 # Instruction DEEKV+: Deek word at address contained in var, var += 2, 30 cycles 1665 label('DEEKV+') DEEKV+: 0346 1418 ld $18,y 1666 ld(hi('deekv+#13'),Y) #10 #12 0347 e051 jmp y,$51 1667 jmp(Y,'deekv+#13') #11 1668 # dummy #12 Overlap 1669 # 1670 # pc = 0x0348, Opcode = 0x48 1671 # Instruction SUBVB: dst.lo = src0.lo - src1.lo, 36 cycles 1672 label('SUBVB') SUBVB: 0348 142d ld $2d,y 1673 ld(hi('subvb#13'),Y) #10 #12 0349 e0d0 jmp y,$d0 1674 jmp(Y,'subvb#13') #11 1675 # dummy #12 Overlap 1676 # 1677 # pc = 0x034a, Opcode = 0x4a 1678 # Instruction DJGE: 1679 label('DJGE') DJGE: 034a 142b ld $2b,y 1680 ld(hi('djge#13'),Y) #10 #12 034b e000 jmp y,$00 1681 jmp(Y,'djge#13') #11 034c 1517 ld [$17],y 1682 ld([vPC+1],Y) #12 1683 1684 # pc = 0x034d, Opcode = 0x4d 1685 # Instruction MOVQW: Load a word var with a small constant 0..255, 28 cycles 1686 label('MOVQW') MOVQW: 034d 1416 ld $16,y 1687 ld(hi('movqw#13'),Y) #10 #12 034e e076 jmp y,$76 1688 jmp(Y,'movqw#13') #11 1689 # dummy #12 Overlap 1690 # 1691 # pc = 0x034f, Opcode = 0x4f 1692 # Instruction STWM: store [vAC] into [imm16], 30 cycles 1693 label('STWM') STWM: 034f 142e ld $2e,y 1694 ld(hi('stwm#13'),Y) #10 #12 0350 e0af jmp y,$af 1695 jmp(Y,'stwm#13') #11 1696 # dummy #12 Overlap 1697 # 1698 # pc = 0x0351, Opcode = 0x51 1699 # Instruction STARRW: doke [imm16 + idx*2] with vAC, 62 cycles 1700 label('STARRW') STARRW: 0351 1436 ld $36,y 1701 ld(hi('starrw#13'),Y) #10 #12 0352 e06f jmp y,$6f 1702 jmp(Y,'starrw#13') #11 1703 # dummy #12 Overlap 1704 # 1705 # pc = 0x0353, Opcode = 0x53 1706 # Instruction LDARRB: vAC = peek [imm16 + idx], 54 cycles 1707 label('LDARRB') LDARRB: 0353 143f ld $3f,y 1708 ld(hi('ldarrb#13'),Y) #10 #12 0354 e000 jmp y,$00 1709 jmp(Y,'ldarrb#13') #11 1710 # dummy #12 Overlap 1711 # 1712 # pc = 0x0355, Opcode = 0x55 1713 # Instruction STARRB: poke [imm16 + idx] with vAC.lo, 52 cycles 1714 label('STARRB') STARRB: 0355 143f ld $3f,y 1715 ld(hi('starrb#13'),Y) #10 #12 0356 e075 jmp y,$75 1716 jmp(Y,'starrb#13') #11 1717 # dummy #12 Overlap 1718 # 1719 # pc = 0x0357, Opcode = 0x57 1720 # Instruction STARRI: poke [imm16 + idx] with 8bit imm, 56 cycles 1721 label('STARRI') STARRI: 0357 143f ld $3f,y 1722 ld(hi('starri#13'),Y) #10 #12 0358 e0a3 jmp y,$a3 1723 jmp(Y,'starri#13') #11 1724 # dummy #12 Overlap 1725 # 1726 # pc = 0x0359, Opcode = 0x59 1727 # Instruction LDI: Load immediate small positive constant (vAC=D), 20 cycles 1728 label('LDI') LDI: 0359 1416 ld $16,y 1729 ld(hi('ldi#13'),Y) #10 035a e019 jmp y,$19 1730 jmp(Y,'ldi#13') #11 1731 # dummy #12 Overlap 1732 # 1733 # pc = 0x035b, Opcode = 0x5b 1734 # Instruction PEEKV: Read byte from address contained in var, 28 cycles 1735 label('PEEKV') PEEKV: 035b 1416 ld $16,y 1736 ld(hi('peekv#13'),Y) #10 035c e085 jmp y,$85 1737 jmp(Y,'peekv#13') #11 035d 1200 ld ac,x 1738 ld(AC,X) #12 1739 1740 # pc = 0x035e, Opcode = 0x5e 1741 # Instruction ST: Store byte in zero page ([D]=vAC&255), 20 cycles 1742 label('ST') ST: 035e 1416 ld $16,y 1743 ld(hi('st#13'),Y) #10 035f e01f jmp y,$1f 1744 jmp(Y,'st#13') #11 1745 # dummy #12 Overlap 1746 # 1747 # pc = 0x0360, Opcode = 0x60 1748 # Instruction DOKEV+: doke word in vAC to address contained in var, var += 2, 30 cycles 1749 label('DOKEV+') DOKEV+: 0360 1418 ld $18,y 1750 ld(hi('dokev+#13'),Y) #10 #12 0361 e079 jmp y,$79 1751 jmp(Y,'dokev+#13') #11 0362 1400 ld $00,y 1752 ld(0,Y) #12 1753 1754 # pc = 0x0363, Opcode = 0x63 1755 # Instruction POP: Pop address from stack (vLR,vSP==[vSP]+256*[vSP+1],vSP+2), 30 cycles 1756 label('POP') POP: 0363 140b ld $0b,y 1757 ld(hi('pop#13'),Y) #10 0364 e0ba jmp y,$ba 1758 jmp(Y,'pop#13') #11 1759 # dummy #12 Overlap 1760 # 1761 # pc = 0x0365, Opcode = 0x65 1762 # Instruction MOVB: Moves a byte from src var to dst var, 28 cycles 1763 label('MOVB') MOVB: 0365 1416 ld $16,y 1764 ld(hi('movb#13'),Y) #10 #12 0366 e042 jmp y,$42 1765 jmp(Y,'movb#13') #11 1766 # dummy #12 Overlap 1767 # 1768 # pc = 0x0367, Opcode = 0x67 1769 # Instruction PEEKA: Peek a byte from [vAC] to var, 24 cycles 1770 label('PEEKA') PEEKA: 0367 1416 ld $16,y 1771 ld(hi('peeka#13'),Y) #10 #12 0368 e050 jmp y,$50 1772 jmp(Y,'peeka#13') #11 1773 # dummy #12 Overlap 1774 # 1775 # pc = 0x0369, Opcode = 0x69 1776 # Instruction POKEA: Poke a byte from var to [vAC], 22 cycles 1777 label('POKEA') POKEA: 0369 1417 ld $17,y 1778 ld(hi('pokea#13'),Y) #10 #12 036a e0b2 jmp y,$b2 1779 jmp(Y,'pokea#13') #11 1780 # dummy #12 Overlap 1781 1782 # pc = 0x036b, Opcode = 0x6b 1783 # Instruction TEQ: Test for EQ, returns 0x0000 or 0xFFFF in zero page var, 24 cycles 1784 label('TEQ') TEQ: 036b 1415 ld $15,y 1785 ld(hi('teq#13'),Y) #10 #12 036c e067 jmp y,$67 1786 jmp(Y,'teq#13') #11 1787 # dummy #12 Overlap 1788 # 1789 # pc = 0x036d, Opcode = 0x6d 1790 # Instruction TNE: Test for NE, returns 0x0000 or 0xFFFF in zero page var, 24 cycles 1791 label('TNE') TNE: 036d 1415 ld $15,y 1792 ld(hi('tne#13'),Y) #10 #12 036e e076 jmp y,$76 1793 jmp(Y,'tne#13') #11 1794 # dummy #12 Overlap 1795 # 1796 # pc = 0x036f, Opcode = 0x6f 1797 # Instruction DEEKA: Deek a word from [vAC] to var, 30 cycles 1798 label('DEEKA') DEEKA: 036f 1416 ld $16,y 1799 ld(hi('deeka#13'),Y) #10 #12 0370 e059 jmp y,$59 1800 jmp(Y,'deeka#13') #11 0371 c21d st [$1d] 1801 st([vTmp]) #12 mask 1802 1803 # pc = 0x0372, Opcode = 0x72 1804 # Instruction LDWM: LDWI + DEEK, 30 cycles 1805 label('LDWM') LDWM: 0372 142e ld $2e,y 1806 ld(hi('ldwm#13'),Y) #10 0373 e09f jmp y,$9f 1807 jmp(Y,'ldwm#13') #11 0374 1517 ld [$17],y 1808 ld([vPC+1],Y) #12 vPC.hi 1809 1810 # pc = 0x0375, Opcode = 0x75 1811 # Instruction PUSH: Push vLR on stack ([vSP-2],v[vSP-1],vSP=vLR&255,vLR>>8,vLR-2), 30 cycles 1812 label('PUSH') PUSH: 0375 140b ld $0b,y 1813 ld(hi('push#13'),Y) #10 0376 e0ca jmp y,$ca 1814 jmp(Y,'push#13') #11 1815 # dummy #12 Overlap 1816 # 1817 # pc = 0x0377, Opcode = 0x77 1818 # Instruction DOKEI: doke immediate word into address contained in [vAC], 28 cycles 1819 label('DOKEI') DOKEI: 0377 1417 ld $17,y 1820 ld(hi('dokei#13'),Y) #10 #12 0378 e0d0 jmp y,$d0 1821 jmp(Y,'dokei#13') #11 1822 # dummy #12 Overlap 1823 # 1824 # pc = 0x0379, Opcode = 0x79 1825 # Instruction ARRW: vAC = imm16 + vAC*2, 48 cycles 1826 label('ARRW') ARRW: 0379 1428 ld $28,y 1827 ld(hi('arrw#13'),Y) #10 037a e076 jmp y,$76 1828 jmp(Y,'arrw#13') #11 1829 # dummy #12 Overlap 1830 # 1831 # pc = 0x037b, Opcode = 0x7b 1832 # Instruction SCRLHR: horizontal scroll video rectangle, 46 cycles 1833 label('SCRLHR') SCRLHR: 037b 1431 ld $31,y 1834 ld(hi('scrlhr#13'),Y) #10 037c e023 jmp y,$23 1835 jmp(Y,'scrlhr#13') #11 1836 # dummy #12 Overlap 1837 # 1838 # pc = 0x037d, Opcode = 0x7d 1839 # Instruction DOKEA: Doke a word from var to [vAC], 30 cycles 1840 label('DOKEA') DOKEA: 037d 1417 ld $17,y 1841 ld(hi('dokea#13'),Y) #10 #12 037e e0ba jmp y,$ba 1842 jmp(Y,'dokea#13') #11 1843 # dummy #12 Overlap 1844 1845 # pc = 0x037f, Opcode = 0x7f 1846 # Instruction LUP: ROM lookup (vAC=ROM[vAC+D]), 26 cycles 1847 label('LUP') LUP: 037f 1519 ld [$19],y 1848 ld([vAC+1],Y) #10 #12 0380 e0fb jmp y,$fb 1849 jmp(Y,251) #11 Trampoline offset 0381 8118 adda [$18] 1850 adda([vAC]) #12 1851 1852 # pc = 0x0382, Opcode = 0x82 1853 # Instruction ANDI: Logical-AND with small constant (vAC&=D), 20 cycles 1854 label('ANDI') ANDI: 0382 1404 ld $04,y 1855 ld(hi('andi#13'),Y) #10 0383 e022 jmp y,$22 1856 jmp(Y,'andi#13') #11 0384 2118 anda [$18] 1857 anda([vAC]) #12 1858 1859 # pc = 0x0385, Opcode = 0x85 1860 # Instruction CALLI: Goto immediate address and remember vPC (vLR,vPC=vPC+3,$HHLL-2), 28 cycles 1861 label('CALLI') CALLI: 0385 1417 ld $17,y 1862 ld(hi('calli#13'),Y) #10 0386 e000 jmp y,$00 1863 jmp(Y,'calli#13') #11 0387 0116 ld [$16] 1864 ld([vPC]) #12 1865 1866 # pc = 0x0388, Opcode = 0x88 1867 # Instruction ORI: Logical-OR with small constant (vAC|=D), 20 cycles 1868 label('ORI') ORI: 0388 1416 ld $16,y 1869 ld(hi('ori#13'),Y) #10 0389 e025 jmp y,$25 1870 jmp(Y,'ori#13') #11 1871 # dummy #12 Overlap 1872 # 1873 # pc = 0x038a, Opcode = 0x8a 1874 # Instruction PEEKA+: Peek a byte from [vAC] to var, incw vAC, 28-30 cycles 1875 label('PEEKA+') PEEKA+: 038a 1414 ld $14,y 1876 ld(hi('peeka+#13'),Y) #10 #12 038b e046 jmp y,$46 1877 jmp(Y,'peeka+#13') #11 1878 # dummy #12 Overlap 1879 # 1880 # pc = 0x038c, Opcode = 0x8c 1881 # Instruction XORI: Logical-XOR with small constant (vAC^=D), 20 cycles 1882 label('XORI') XORI: 038c 1416 ld $16,y 1883 ld(hi('xori#13'),Y) #10 #12 038d e02a jmp y,$2a 1884 jmp(Y,'xori#13') #11 1885 # dummy #12 Overlap 1886 # 1887 # pc = 0x038e, Opcode = 0x8e 1888 # Instruction DBGE: Decrement byte var and branch if >= 0, 30 cycles 1889 label('DBGE') DBGE: 038e 142a ld $2a,y 1890 ld(hi('dbge#13'),Y) #10 #12 038f e0a6 jmp y,$a6 1891 jmp(Y,'dbge#13') #11 1892 # dummy #12 Overlap 1893 # 1894 # pc = 0x0390, Opcode = 0x90 1895 # Instruction BRA: Branch unconditionally (vPC=(vPC&0xff00)+D), 18 cycles 1896 label('BRA') BRA: 0390 1416 ld $16,y 1897 ld(hi('bra#13'),Y) #10 #12 0391 e000 jmp y,$00 1898 jmp(Y,'bra#13') #11 0392 c216 st [$16] 1899 st([vPC]) #12 1900 1901 # pc = 0x0393, Opcode = 0x93 1902 # Instruction INC: Increment zero page byte ([D]++), 20 cycles 1903 label('INC') INC: 0393 1416 ld $16,y 1904 ld(hi('inc#13'),Y) #10 0394 e003 jmp y,$03 1905 jmp(Y,'inc#13') #11 1906 # dummy #12 Overlap 1907 # 1908 # pc = 0x0395, Opcode = 0x95 1909 # Instruction INCWA: Increment word var, vAC=var, 26-28 cycles 1910 label('INCWA') INCWA: 0395 1415 ld $15,y 1911 ld(hi('incwa#13'),Y) #10 #12 0396 e0cd jmp y,$cd 1912 jmp(Y,'incwa#13') #11 1913 # dummy #12 Overlap 1914 # 1915 # pc = 0x0397, Opcode = 0x97 1916 # Instruction SPARE1: 1917 label('SPARE1') SPARE1: 0397 1403 ld $03,y 1918 ld(hi('SPARE1'),Y) #10 #12 0398 e097 jmp y,$97 1919 jmp(Y,'SPARE1') #11 1920 # dummy #12 Overlap, not dependent on ld(AC,X) anymore 1921 # 1922 # pc = 0x0399, Opcode = 0x99 1923 # Instruction ADDW: Word addition with zero page (vAC+=[D]+256*[D+1]), 30 cycles 1924 label('ADDW') ADDW: 0399 1400 ld $00,y 1925 ld(hi('addw#13'),Y) #10 #12 039a e080 jmp y,$80 1926 jmp(Y,'addw#13') #11 Y=0 039b 1200 ld ac,x 1927 ld(AC,X) #12 Address of low byte to be added 1928 1929 # pc = 0x039c, Opcode = 0x9c 1930 # Instruction LDNI: Load an 8bit immediate as a negative 16bit immediate into vAC, 22 cycles 1931 label('LDNI') LDNI: 039c 1416 ld $16,y 1932 ld(hi('ldni#13'),Y) #10 039d e02f jmp y,$2f 1933 jmp(Y,'ldni#13') #11 1934 # dummy #12 Overlap 1935 # 1936 # pc = 0x039e, Opcode = 0x9e 1937 # Instruction DBNE: Decrement byte var and branch if != 0, 28-30 cycles 1938 label('DBNE') DBNE: 039e 1415 ld $15,y 1939 ld(hi('dbne#13'),Y) #10 #12 039f e053 jmp y,$53 1940 jmp(Y,'dbne#13') #11 1941 # 1942 # pc = 0x03a0, Opcode = 0xa0 1943 # Instruction DEEKR: vAC = DEEK[vAC + idx*2], 52 cycles 1944 label('DEEKR') DEEKR: 03a0 142e ld $2e,y 1945 ld(hi('deekr#13'),Y) #10 #12 03a1 e0bf jmp y,$bf 1946 jmp(Y,'deekr#13') #11 1947 # dummy #12 Overlap 1948 # 1949 # pc = 0x03a2, Opcode = 0xa2 1950 # Instruction PACKAW: vAC = src0.lo | (src1.lo <<8), 30 cycles 1951 label('PACKAW') PACKAW: 03a2 142e ld $2e,y 1952 ld(hi('packaw#13'),Y) #10 #12 03a3 e04a jmp y,$4a 1953 jmp(Y,'packaw#13') #11 1954 # dummy #12 Overlap 1955 # 1956 # pc = 0x03a4, Opcode = 0xa4, 26 to 46 cycles 1957 # Instruction DJNE: 1958 label('DJNE') DJNE: 03a4 142a ld $2a,y 1959 ld(hi('djne#13'),Y) #10 #12 03a5 e0ba jmp y,$ba 1960 jmp(Y,'djne#13') #11 03a6 1517 ld [$17],y 1961 ld([vPC+1],Y) #12 1962 1963 # pc = 0x03a7, Opcode = 0xa7 1964 # Instruction CMPI: Compare byte variable to 8bit immediate, 36 cycles 1965 label('CMPI') CMPI: 03a7 1418 ld $18,y 1966 ld(hi('cmpi#13'),Y) #10 03a8 e09e jmp y,$9e 1967 jmp(Y,'cmpi#13') #11 1968 # dummy #12 Overlap 1969 1970 # pc = 0x03a9, Opcode = 0xa9 1971 # Instruction ADDVW: Add two 16bit zero page vars, dst = src0 + src1, vAC = dst, 60 cycles 1972 label('ADDVW') ADDVW: 03a9 1414 ld $14,y 1973 ld(hi('addvw#13'),Y) #10 #12 03aa e05b jmp y,$5b 1974 jmp(Y,'addvw#13') #11 1975 # dummy #12 Overlap 1976 1977 # pc = 0x03ab, Opcode = 0xab 1978 # Instruction SUBVW: Subtract two 16bit zero page vars, dst = src0 - src1, vAC = dst, 58 cycles 1979 label('SUBVW') SUBVW: 03ab 1414 ld $14,y 1980 ld(hi('subvw#13'),Y) #10 #12 03ac e090 jmp y,$90 1981 jmp(Y,'subvw#13') #11 1982 # dummy #12 Overlap 1983 1984 # pc = 0x03ad, Opcode = 0xad 1985 # Instruction PEEK: Read byte from memory (vAC=[vAC]), 26 cycles 1986 label('PEEK') PEEK: 03ad 1404 ld $04,y 1987 ld(hi('peek#13'),Y) #10 #12 03ae e052 jmp y,$52 1988 jmp(Y,'peek#13') #11 1989 # dummy #12 Overlap 1990 # 1991 # The 'SYS' vCPU instruction first checks the number of desired ticks given by 1992 # the operand. As long as there are insufficient ticks available in the current 1993 # time slice, the instruction will be retried. This will effectively wait for 1994 # the next scan line if the current slice is almost out of time. Then a jump to 1995 # native code is made. This code can do whatever it wants, but it must return 1996 # to the 'REENTER' label when done. When returning, AC must hold (the negative 1997 # of) the actual consumed number of whole ticks for the entire virtual 1998 # instruction cycle (from NEXT to NEXT). This duration may not exceed the prior 1999 # declared duration in the operand + 28 (or maxTicks). The operand specifies the 2000 # (negative) of the maximum number of *extra* ticks that the native call will 2001 # need. The GCL compiler automatically makes this calculation from gross number 2002 # of cycles to excess number of ticks. 2003 # SYS functions can modify vPC to implement repetition. For example to split 2004 # up work into multiple chucks. 2005 label('.sys#13') .sys#13: 03af 1418 ld $18,y 2006 ld(hi('.sys#16'),Y) #13 #12 03b0 e000 jmp y,$00 2007 jmp(Y,'.sys#16') #14 2008 # dummy #15 Overlap 2009 # 2010 # pc = 0x03b1, Opcode = 0xb1 2011 # Instruction PREFX1 2012 label('PREFX1') PREFX1: 03b1 1414 ld $14,y 2013 ld(hi('prefx1#13'),Y) #10 #15 03b2 e0d5 jmp y,$d5 2014 jmp(Y,'prefx1#13') #11 03b3 0023 ld $23 2015 ld(hi('PREFX1_PAGE')) #12 ENTER is at $(n-1)ff, where n = instruction page 2016 2017 # pc = 0x03b4, Opcode = 0xb4 2018 # Instruction SYS: Native call, <=256 cycles (<=128 ticks, in reality less) 2019 label('SYS') SYS: 03b4 8115 adda [$15] 2020 adda([vTicks]) #10 03b5 e8af blt .sys#13 2021 blt('.sys#13') #11 03b6 1523 ld [$23],y 2022 ld([sysFn+1],Y) #12 03b7 e122 jmp y,[$22] 2023 jmp(Y,[sysFn]) #13 2024 # dummy #14 Overlap 2025 # 2026 # pc = 0x03b8, Opcode = 0xb8 2027 # Instruction SUBW: Word subtract with zero page (AC-=[D]+256*[D+1]), 30 cycles 2028 label('SUBW') SUBW: 03b8 1417 ld $17,y 2029 ld(hi('subw#13'),Y) #10 #14 03b9 e00c jmp y,$0c 2030 jmp(Y,'subw#13') #11 Y=0 03ba 1200 ld ac,x 2031 ld(AC,X) #12 Address of low byte to be added 2032 2033 # pc = 0x03bb, Opcode = 0xbb 2034 # Instruction JEQ: jump to 16bit address if vAC=0 2035 label('JEQ') JEQ: 03bb 1418 ld $18,y 2036 ld(hi('jeq#13'),Y) #10 03bc e0c4 jmp y,$c4 2037 jmp(Y,'jeq#13') #11 2038 # dummy #12 Overlap 2039 # 2040 # pc = 0x03bd, Opcode = 0xbd 2041 # Instruction JNE: jump to 16bit address if vAC!=0 2042 label('JNE') JNE: 03bd 1418 ld $18,y 2043 ld(hi('jne#13'),Y) #10 #12 03be e0d6 jmp y,$d6 2044 jmp(Y,'jne#13') #11 2045 # dummy #12 Overlap 2046 # 2047 # pc = 0x03bf, Opcode = 0xbf 2048 # Instruction JLT: jump to 16bit address if vAC<0 2049 label('JLT') JLT: 03bf 1416 ld $16,y 2050 ld(hi('jlt#13'),Y) #10 #12 03c0 e0d2 jmp y,$d2 2051 jmp(Y,'jlt#13') #11 2052 # dummy #12 Overlap 2053 # 2054 # pc = 0x03c1, Opcode = 0xc1 2055 # Instruction JGT: jump to 16bit address if vAC>0 2056 label('JGT') JGT: 03c1 1414 ld $14,y 2057 ld(hi('jgt#13'),Y) #10 #12 03c2 e000 jmp y,$00 2058 jmp(Y,'jgt#13') #11 2059 # dummy #12 Overlap 2060 # 2061 # pc = 0x03c3, Opcode = 0xc3 2062 # Instruction JLE: jump to 16bit address if vAC<=0 2063 label('JLE') JLE: 03c3 1414 ld $14,y 2064 ld(hi('jle#13'),Y) #10 #12 03c4 e019 jmp y,$19 2065 jmp(Y,'jle#13') #11 2066 # dummy #12 Overlap 2067 # 2068 # pc = 0x03c5, Opcode = 0xc5 2069 # Instruction JGE: jump to 16bit address if vAC>=0 2070 label('JGE') JGE: 03c5 1414 ld $14,y 2071 ld(hi('jge#13'),Y) #10 #12 03c6 e035 jmp y,$35 2072 jmp(Y,'jge#13') #11 2073 # dummy #12 Overlap 2074 # 2075 # pc = 0x03c7, Opcode = 0xc7 2076 # Instruction PREFX3: switches instruction page to 0x2200 2077 # original idea by lb3361, see https://forum.gigatron.io/viewtopic.php?p=2099#p2099 2078 label('PREFX3') PREFX3: 03c7 1414 ld $14,y 2079 ld(hi('prefx3#13'),Y) #10 #12 03c8 e0c5 jmp y,$c5 2080 jmp(Y,'prefx3#13') #11 03c9 c22b st [$2b] 2081 st([sysArgs+7]) #12 Second operand 2082 2083 # SYS calls and instruction implementations rely on these labels 2084 label('REENTER_28') REENTER_28: 03ca 00f2 ld $f2 2085 ld(-28/2) #25 2086 label('REENTER') REENTER: 03cb fc01 bra NEXT 2087 bra('NEXT') #26 Return from SYS calls 03cc 1517 ld [$17],y 2088 ld([vPC+1],Y) #27 2089 2090 fillers(until=0xcd) 2091 2092 # 2093 # The instructions below are all implemented in the second code page. Jumping 2094 # back and forth makes each 6 cycles slower, but it also saves space in the 2095 # primary page for the instructions above. Most of them are in fact not very 2096 # critical, as evidenced by the fact that they weren't needed for the first 2097 # Gigatron applications (Snake, Racer, Mandelbrot, Loader). By providing them 2098 # in this way, at least they don't need to be implemented as a SYS extension. 2099 # 2100 # pc = 0x03cd, Opcode = 0xcd 2101 # Instruction DEF: Define data or code (vAC,vPC=vPC+2,(vPC&0xff00)+D), 26 cycles 2102 label('DEF') DEF: 03cd 1404 ld $04,y 2103 ld(hi('def#13'),Y) #10 03ce e017 jmp y,$17 2104 jmp(Y,'def#13') #11 2105 # dummy #12 Overlap 2106 # 2107 # pc = 0x03cf, Opcode = 0xcf 2108 # Instruction CALL: Goto address and remember vPC (vLR,vPC=vPC+2,[D]+256*[D+1]-2), 30 cycles 2109 label('CALL') CALL: 03cf 1404 ld $04,y 2110 ld(hi('call#13'),Y) #10 #12 03d0 e007 jmp y,$07 2111 jmp(Y,'call#13') #11 2112 # dummy #12 Overlap 2113 # 2114 # pc = 0x03d1, Opcode = 0xd1 2115 # Instruction POKEV+: Poke byte in vAC to address contained in var, inc var, 30 cycles 2116 label('POKEV+') POKEV+: 03d1 1418 ld $18,y 2117 ld(hi('pokev+#13'),Y) #10 #12 03d2 e030 jmp y,$30 2118 jmp(Y,'pokev+#13') #11 2119 # dummy #12 Overlap 2120 # 2121 # pc = 0x03d3, Opcode = 0xd3 2122 # Instruction DOKEI+: doke immediate word into [vAC], vAC += 2, 40 cycles 2123 label('DOKEI+') DOKEI+: 03d3 1438 ld $38,y 2124 ld(hi('dokei+#13'),Y) #10 #12 03d4 e087 jmp y,$87 2125 jmp(Y,'dokei+#13') #11 2126 # dummy #12 Overlap 2127 # 2128 # pc = 0x03d5, Opcode = 0xd5 2129 # Instruction TGE: Test for GE, returns 0x0000 or 0xFFFF in zero page var, 24 cycles 2130 label('TGE') TGE: 03d5 1415 ld $15,y 2131 ld(hi('tge#13'),Y) #10 #12 03d6 e085 jmp y,$85 2132 jmp(Y,'tge#13') #11 2133 # dummy #12 Overlap 2134 # 2135 # pc = 0x03d7, Opcode = 0xd7 2136 # Instruction TLT: Test for LT, returns 0x0000 or 0xFFFF in zero page var, 24 cycles 2137 label('TLT') TLT: 03d7 1415 ld $15,y 2138 ld(hi('tlt#13'),Y) #10 #12 03d8 e093 jmp y,$93 2139 jmp(Y,'tlt#13') #11 2140 # dummy #12 Overlap 2141 # 2142 # pc = 0x03d9, Opcode = 0xd9 2143 # Instruction TGT: Test for GT, returns 0x0000 or 0xFFFF in zero page var, 24-26 cycles 2144 label('TGT') TGT: 03d9 1415 ld $15,y 2145 ld(hi('tgt#13'),Y) #10 #12 03da e0a1 jmp y,$a1 2146 jmp(Y,'tgt#13') #11 2147 # dummy #12 Overlap 2148 # 2149 # pc = 0x03db, Opcode = 0xdb 2150 # Instruction TLE: Test for LE, returns 0x0000 or 0xFFFF in zero page var, 24-26 cycles 2151 label('TLE') TLE: 03db 1415 ld $15,y 2152 ld(hi('tle#13'),Y) #10 #12 03dc e0b7 jmp y,$b7 2153 jmp(Y,'tle#13') #11 2154 # dummy #12 Overlap 2155 # 2156 # pc = 0x03dd, Opcode = 0xdd 2157 # Instruction DECWA: Decrement word var, vAC=var, 28-30 cycles 2158 label('DECWA') DECWA: 03dd 1415 ld $15,y 2159 ld(hi('decwa#13'),Y) #10 #12 03de e0df jmp y,$df 2160 jmp(Y,'decwa#13') #11 2161 # dummy #12 Overlap 2162 # 2163 # pc = 0x03df, Opcode = 0xdf 2164 # Instruction ALLOC: Create or destroy stack frame (vSP+=D), 20 cycles 2165 label('ALLOC') ALLOC: 03df 1416 ld $16,y 2166 ld(hi('alloc#13'),Y) #10 #12 03e0 e03d jmp y,$3d 2167 jmp(Y,'alloc#13') #11 2168 # dummy #12 Overlap 2169 # 2170 # pc = 0x03e1, Opcode = 0xe1 2171 # Instruction PACKVW: var = src0.lo | (src1.lo <<8), 42 cycles 2172 label('PACKVW') PACKVW: 03e1 142e ld $2e,y 2173 ld(hi('packvw#13'),Y) #10 #12 03e2 e05a jmp y,$5a 2174 jmp(Y,'packvw#13') #11 2175 # dummy #12 Overlap 2176 # 2177 # pc = 0x03e3, Opcode = 0xe3 2178 # Instruction ADDI: Add small positive constant (vAC+=D), 26 cycles 2179 label('ADDI') ADDI: 03e3 1415 ld $15,y 2180 ld(hi('addi#13'),Y) #10 #12 03e4 e000 jmp y,$00 2181 jmp(Y,'addi#13') #11 03e5 c21d st [$1d] 2182 st([vTmp]) #12 2183 2184 # pc = 0x03e6, Opcode = 0xe6 2185 # Instruction SUBI: Subtract small positive constant (vAC+=D), 26 cycles 2186 label('SUBI') SUBI: 03e6 1415 ld $15,y 2187 ld(hi('subi#13'),Y) #10 03e7 e014 jmp y,$14 2188 jmp(Y,'subi#13') #11 03e8 c21d st [$1d] 2189 st([vTmp]) #12 2190 2191 # pc = 0x03e9, Opcode = 0xe9 2192 # Instruction LSLW: Logical shift left (vAC<<=1), 28 cycles 2193 # Useful, because ADDW can't add vAC to itself. Also more compact. 2194 label('LSLW') LSLW: 03e9 1404 ld $04,y 2195 ld(hi('lslw#13'),Y) #10 03ea e028 jmp y,$28 2196 jmp(Y,'lslw#13') #11 03eb 0118 ld [$18] 2197 ld([vAC]) #12 2198 2199 # pc = 0x03ec, Opcode = 0xec 2200 # Instruction STLW: Store word in stack frame ([vSP+D],[vSP+D+1]=vAC&255,vAC>>8), 24 cycles 2201 label('STLW') STLW: 03ec 1404 ld $04,y 2202 ld(hi('stlw#13'),Y) #10 03ed e034 jmp y,$34 2203 jmp(Y,'stlw#13') #11 2204 #dummy() #12 Overlap 2205 # 2206 # pc = 0x03ee, Opcode = 0xee 2207 # Instruction LDLW: Load word from stack frame (vAC=[vSP+D]+256*[vSP+D+1]), 24 cycles 2208 label('LDLW') LDLW: 03ee 1404 ld $04,y 2209 ld(hi('ldlw#13'),Y) #10 #12 03ef e03d jmp y,$3d 2210 jmp(Y,'ldlw#13') #11 2211 #dummy() #12 Overlap 2212 # 2213 # pc = 0x03f0, Opcode = 0xf0 2214 # Instruction POKE: Write byte in memory ([[D+1],[D]]=vAC&255), 26 cycles 2215 label('POKE') POKE: 03f0 1404 ld $04,y 2216 ld(hi('poke#13'),Y) #10 #12 03f1 e047 jmp y,$47 2217 jmp(Y,'poke#13') #11 03f2 c21d st [$1d] 2218 st([vTmp]) #12 2219 2220 # pc = 0x03f3, Opcode = 0xf3 2221 # Instruction DOKE: Write word in memory ([[D+1],[D]],[[D+1],[D]+1]=vAC&255,vAC>>8), 28 cycles 2222 label('DOKE') DOKE: 03f3 1404 ld $04,y 2223 ld(hi('doke#13'),Y) #10 03f4 e05e jmp y,$5e 2224 jmp(Y,'doke#13') #11 03f5 c21d st [$1d] 2225 st([vTmp]) #12 2226 2227 # pc = 0x03f6, Opcode = 0xf6 2228 # Instruction DEEK: Read word from memory (vAC=[vAC]+256*[vAC+1]), 28 cycles 2229 label('DEEK') DEEK: 03f6 1404 ld $04,y 2230 ld(hi('deek#13'),Y) #10 03f7 e06b jmp y,$6b 2231 jmp(Y,'deek#13') #11 2232 #dummy() #12 Overlap 2233 # 2234 # pc = 0x03f8, Opcode = 0xf8 2235 # Instruction ANDW: Word logical-AND with zero page (vAC&=[D]+256*[D+1]), 28 cycles 2236 label('ANDW') ANDW: 03f8 1404 ld $04,y 2237 ld(hi('andw#13'),Y) #10 #12 03f9 e077 jmp y,$77 2238 jmp(Y,'andw#13') #11 2239 #dummy() #12 Overlap 2240 # 2241 # pc = 0x03fa, Opcode = 0xfa 2242 # Instruction ORW: Word logical-OR with zero page (vAC|=[D]+256*[D+1]), 28 cycles 2243 label('ORW') ORW: 03fa 1404 ld $04,y 2244 ld(hi('orw#13'),Y) #10 #12 03fb e083 jmp y,$83 2245 jmp(Y,'orw#13') #11 2246 #dummy() #12 Overlap 2247 # 2248 # pc = 0x03fc, Opcode = 0xfc 2249 # Instruction XORW: Word logical-XOR with zero page (vAC^=[D]+256*[D+1]), 28 cycles 2250 label('XORW') XORW: 03fc 1415 ld $15,y 2251 ld(hi('xorw#13'),Y) #10 #12 03fd e029 jmp y,$29 2252 jmp(Y,'xorw#13') #11 03fe 1200 ld ac,x 2253 ld(AC,X) #12 2254 2255 # pc = 0x03ff, Opcode = 0xff 2256 # Instruction RET: Function return (vPC=vLR-2), 16 cycles 2257 label('RET') RET: 03ff 011a ld [$1a] 2258 ld([vLR]) #10 2259 assert pc()&255 == 0 2260 2261 2262 #----------------------------------------------------------------------- 2263 # 2264 # $0400 ROM page 4: Application interpreter extension 2265 # 2266 #----------------------------------------------------------------------- 2267 align(0x100, size=0x100) 2268 2269 # (Continue RET) 0400 a002 suba $02 2270 suba(2) #11 0401 c216 st [$16] 2271 st([vPC]) #12 0402 011b ld [$1b] 2272 ld([vLR+1]) #13 0403 c217 st [$17] 2273 st([vPC+1]) #14 0404 1403 ld $03,y 2274 ld(hi('REENTER'),Y) #15 0405 e0cb jmp y,$cb 2275 jmp(Y,'REENTER') #16 0406 00f6 ld $f6 2276 ld(-20/2) #17 2277 2278 # CALL implementation 2279 label('call#13') call#13: 0407 1200 ld ac,x 2280 ld(AC,X) #13 0408 0116 ld [$16] 2281 ld([vPC]) #14 0409 8002 adda $02 2282 adda(2) #15 Point to instruction after CALL 040a c21a st [$1a] 2283 st([vLR]) #16 040b 0117 ld [$17] 2284 ld([vPC+1]) #17 040c c21b st [$1b] 2285 st([vLR+1]) #18 040d 1400 ld $00,y 2286 ld(0,Y) #19 040e 0500 ld [x] 2287 ld([X]) #20 040f de00 st [y,x++] 2288 st([Y,Xpp]) #21 0410 a002 suba $02 2289 suba(2) #22 Because NEXT will add 2 0411 c216 st [$16] 2290 st([vPC]) #23 0412 0500 ld [x] 2291 ld([X]) #24 0413 c217 st [$17] 2292 st([vPC+1]) #25 0414 1403 ld $03,y 2293 ld(hi('NEXTY'),Y) #26 0415 e000 jmp y,$00 2294 jmp(Y,'NEXTY') #27 0416 00f1 ld $f1 2295 ld(-30/2) #28 2296 2297 # DEF implementation 2298 label('def#13') def#13: 0417 c21d st [$1d] 2299 st([vTmp]) #13 0418 0116 ld [$16] 2300 ld([vPC]) #14 0419 8002 adda $02 2301 adda(2) #15 041a c218 st [$18] 2302 st([vAC]) #16 041b 0117 ld [$17] 2303 ld([vPC+1]) #17 041c c219 st [$19] 2304 st([vAC+1]) #18 041d 011d ld [$1d] 2305 ld([vTmp]) #19 041e c216 st [$16] 2306 st([vPC]) #20 041f 1403 ld $03,y 2307 ld(hi('REENTER'),Y) #21 0420 e0cb jmp y,$cb 2308 jmp(Y,'REENTER') #22 0421 00f3 ld $f3 2309 ld(-26/2) #23 2310 2311 # ANDI implementation 2312 label('andi#13') andi#13: 0422 c218 st [$18] 2313 st([vAC]) #13 0423 0000 ld $00 2314 ld(0) #14 Clear high byte 0424 c219 st [$19] 2315 st([vAC+1]) #15 0425 1403 ld $03,y 2316 ld(hi('NEXTY'),Y) #16 0426 e000 jmp y,$00 2317 jmp(Y,'NEXTY') #17 0427 00f6 ld $f6 2318 ld(-20/2) #18 2319 2320 # LSLW implementation 2321 label('lslw#13') lslw#13: 0428 3080 anda $80,x 2322 anda(128,X) #13 0429 8118 adda [$18] 2323 adda([vAC]) #14 042a c218 st [$18] 2324 st([vAC]) #15 042b 0500 ld [x] 2325 ld([X]) #16 042c 8119 adda [$19] 2326 adda([vAC+1]) #17 042d 8119 adda [$19] 2327 adda([vAC+1]) #18 042e c219 st [$19] 2328 st([vAC+1]) #19 042f 0116 ld [$16] 2329 ld([vPC]) #20 0430 a001 suba $01 2330 suba(1) #21 0431 1403 ld $03,y 2331 ld(hi('REENTER_28'),Y) #22 0432 e0ca jmp y,$ca 2332 jmp(Y,'REENTER_28') #23 0433 c216 st [$16] 2333 st([vPC]) #24 2334 2335 # STLW implementation 2336 label('stlw#13') stlw#13: 0434 1504 ld [$04],y 2337 ld([vSPH],Y) #13 0435 911c adda [$1c],x 2338 adda([vSP],X) #14 0436 0118 ld [$18] 2339 ld([vAC]) #15 0437 de00 st [y,x++] 2340 st([Y,Xpp]) #16 0438 0119 ld [$19] 2341 ld([vAC+1]) #17 0439 ce00 st [y,x] 2342 st([Y,X]) #18 043a 1403 ld $03,y 2343 ld(hi('REENTER'),Y) #19 043b e0cb jmp y,$cb 2344 jmp(Y,'REENTER') #20 043c 00f4 ld $f4 2345 ld(-24/2) #21 2346 2347 # LDLW implementation 2348 label('ldlw#13') ldlw#13: 043d 1504 ld [$04],y 2349 ld([vSPH],Y) #13 043e 911c adda [$1c],x 2350 adda([vSP],X) #14 043f 0d00 ld [y,x] 2351 ld([Y,X]) #15 0440 de00 st [y,x++] 2352 st([Y,Xpp]) #16 0441 c218 st [$18] 2353 st([vAC]) #17 0442 0d00 ld [y,x] 2354 ld([Y,X]) #18 0443 c219 st [$19] 2355 st([vAC+1]) #19 0444 1403 ld $03,y 2356 ld(hi('NEXTY'),Y) #20 0445 e000 jmp y,$00 2357 jmp(Y,'NEXTY') #21 0446 00f4 ld $f4 2358 ld(-24/2) #22 2359 2360 # POKE implementation 2361 label('poke#13') poke#13: 0447 9001 adda $01,x 2362 adda(1,X) #13 0448 0500 ld [x] 2363 ld([X]) #14 0449 1600 ld ac,y 2364 ld(AC,Y) #15 044a 111d ld [$1d],x 2365 ld([vTmp],X) #16 044b 0500 ld [x] 2366 ld([X]) #17 044c 1200 ld ac,x 2367 ld(AC,X) #18 044d 0118 ld [$18] 2368 ld([vAC]) #19 044e ce00 st [y,x] 2369 st([Y,X]) #20 044f 1403 ld $03,y 2370 ld(hi('REENTER'),Y) #21 0450 e0cb jmp y,$cb 2371 jmp(Y,'REENTER') #22 0451 00f3 ld $f3 2372 ld(-26/2) #23 2373 2374 # PEEK implementation 2375 label('peek#13') peek#13: 0452 1118 ld [$18],x 2376 ld([vAC],X) #13 0453 1519 ld [$19],y 2377 ld([vAC+1],Y) #14 0454 0d00 ld [y,x] 2378 ld([Y,X]) #15 0455 c218 st [$18] 2379 st([vAC]) #16 0456 0000 ld $00 2380 ld(0) #17 0457 c219 st [$19] 2381 st([vAC+1]) #18 0458 0116 ld [$16] 2382 ld([vPC]) #19 0459 a001 suba $01 2383 suba(1) #20 045a c216 st [$16] 2384 st([vPC]) #21 045b 1403 ld $03,y 2385 ld(hi('NEXTY'),Y) #22 045c e000 jmp y,$00 2386 jmp(Y,'NEXTY') #23 045d 00f3 ld $f3 2387 ld(-26/2) #24 2388 2389 # DOKE implementation 2390 label('doke#13') doke#13: 045e 9001 adda $01,x 2391 adda(1,X) #13 045f 0500 ld [x] 2392 ld([X]) #14 0460 1600 ld ac,y 2393 ld(AC,Y) #15 0461 111d ld [$1d],x 2394 ld([vTmp],X) #16 0462 0500 ld [x] 2395 ld([X]) #17 0463 1200 ld ac,x 2396 ld(AC,X) #18 0464 0118 ld [$18] 2397 ld([vAC]) #19 0465 de00 st [y,x++] 2398 st([Y,Xpp]) #20 0466 0119 ld [$19] 2399 ld([vAC+1]) #21 0467 ce00 st [y,x] 2400 st([Y,X]) #22 Incompatible with REENTER_28 0468 1403 ld $03,y 2401 ld(hi('REENTER'),Y) #23 0469 e0cb jmp y,$cb 2402 jmp(Y,'REENTER') #24 046a 00f2 ld $f2 2403 ld(-28/2) #25 2404 2405 # DEEK implementation 2406 label('deek#13') deek#13: 046b 0116 ld [$16] 2407 ld([vPC]) #13 046c a001 suba $01 2408 suba(1) #14 046d c216 st [$16] 2409 st([vPC]) #15 046e 1118 ld [$18],x 2410 ld([vAC],X) #16 046f 1519 ld [$19],y 2411 ld([vAC+1],Y) #17 0470 0d00 ld [y,x] 2412 ld([Y,X]) #18 0471 de00 st [y,x++] 2413 st([Y,Xpp]) #19 Just X++ 0472 c218 st [$18] 2414 st([vAC]) #20 0473 0d00 ld [y,x] 2415 ld([Y,X]) #21 0474 1403 ld $03,y 2416 ld(hi('REENTER_28'),Y) #22 0475 e0ca jmp y,$ca 2417 jmp(Y,'REENTER_28') #23 0476 c219 st [$19] 2418 st([vAC+1]) #24 2419 2420 # ANDW implementation 2421 label('andw#13') andw#13: 0477 1200 ld ac,x 2422 ld(AC,X) #13 0478 1400 ld $00,y 2423 ld(0,Y) #14 0479 0500 ld [x] 2424 ld([X]) #15 047a de00 st [y,x++] 2425 st([Y,Xpp]) #16 047b 2118 anda [$18] 2426 anda([vAC]) #17 047c c218 st [$18] 2427 st([vAC]) #18 047d 0500 ld [x] 2428 ld([X]) #19 047e 2119 anda [$19] 2429 anda([vAC+1]) #20 047f c219 st [$19] 2430 st([vAC+1]) #21 0480 1403 ld $03,y 2431 ld(hi('NEXTY'),Y) #22 0481 e000 jmp y,$00 2432 jmp(Y,'NEXTY') #23 0482 00f3 ld $f3 2433 ld(-26/2) #24 2434 2435 # ORW implementation 2436 label('orw#13') orw#13: 0483 1200 ld ac,x 2437 ld(AC,X) #13 0484 1400 ld $00,y 2438 ld(0,Y) #14 0485 0500 ld [x] 2439 ld([X]) #15 0486 de00 st [y,x++] 2440 st([Y,Xpp]) #16 0487 4118 ora [$18] 2441 ora([vAC]) #17 0488 c218 st [$18] 2442 st([vAC]) #18 0489 0500 ld [x] 2443 ld([X]) #19 048a 4119 ora [$19] 2444 ora([vAC+1]) #20 048b c219 st [$19] 2445 st([vAC+1]) #21 048c 1403 ld $03,y 2446 ld(hi('NEXTY'),Y) #22 048d e000 jmp y,$00 2447 jmp(Y,'NEXTY') #23 048e 00f3 ld $f3 2448 ld(-26/2) #24 2449 2450 048f 0200 nop 2451 fillers(until=0xa7) 0490 0200 nop 0491 0200 nop * 24 times 2452 2453 # pc = 0x04a7 2454 #----------------------------------------------------------------------- 2455 # 2456 # vCPU extension functions (for acceleration and compaction) follow below. 2457 # 2458 # The naming convention is: SYS_[_v]_ 2459 # 2460 # With the maximum number of cycles the function will run 2461 # (counted from NEXT to NEXT). This is the same number that must 2462 # be passed to the 'SYS' vCPU instruction as operand, and it will 2463 # appear in the GCL code upon use. 2464 # 2465 # If a SYS extension got introduced after ROM v1, the version number of 2466 # introduction is included in the name. This helps the programmer to be 2467 # reminded to verify the acutal ROM version and fail gracefully on older 2468 # ROMs than required. See also Docs/GT1-files.txt on using [romType]. 2469 # 2470 #----------------------------------------------------------------------- 2471 2472 #----------------------------------------------------------------------- 2473 # Extension SYS_Random_34: Update entropy and copy to vAC 2474 #----------------------------------------------------------------------- 2475 # 2476 # This same algorithm runs automatically once per vertical blank. 2477 # Use this function to get numbers at a higher rate. 2478 # 2479 # Variables: 2480 # vAC 2481 2482 label('SYS_Random_34') # leave name as 34 to remain compatible with previous ROM's SYS_Random_34: 04a7 010e ld [$0e] 2483 ld([frameCount]) #15 04a8 6107 xora [$07] 2484 xora([entropy+1]) #16 04a9 610f xora [$0f] 2485 xora([serialRaw]) #17 04aa 8106 adda [$06] 2486 adda([entropy+0]) #18 04ab c206 st [$06] 2487 st([entropy+0]) #19 04ac c218 st [$18] 2488 st([vAC+0]) #20 04ad 8116 adda [$16] 2489 adda([vPC]) #21 04ae e8b1 blt $04b1 2490 bmi(pc()+3) #22 04af fcb2 bra $04b2 2491 bra(pc()+3) #23 04b0 6053 xora $53 2492 xora(64+16+2+1) #24 04b1 606c xora $6c 2493 xora(64+32+8+4) #24 (!) 04b2 8107 adda [$07] 2494 adda([entropy+1]) #25 04b3 c207 st [$07] 2495 st([entropy+1]) #26 04b4 c219 st [$19] 2496 st([vAC+1]) #27 04b5 1403 ld $03,y 2497 ld(hi('NEXTY'),Y) #28 04b6 e000 jmp y,$00 2498 jmp(Y,'NEXTY') #29 04b7 00f0 ld $f0 2499 ld(-32/2) #30 2500 04b8 0200 nop 2501 nop() # padding required to remain compatible with previous ROM's 2502 label('SYS_LSRW7_30') SYS_LSRW7_30: 04b9 0118 ld [$18] 2503 ld([vAC]) #15 04ba 3080 anda $80,x 2504 anda(128,X) #16 04bb 0119 ld [$19] 2505 ld([vAC+1]) #17 04bc 8200 adda ac 2506 adda(AC) #18 04bd 4500 ora [x] 2507 ora([X]) #19 04be c218 st [$18] 2508 st([vAC]) #20 04bf 0119 ld [$19] 2509 ld([vAC+1]) #21 04c0 3080 anda $80,x 2510 anda(128,X) #22 04c1 0500 ld [x] 2511 ld([X]) #23 04c2 c219 st [$19] 2512 st([vAC+1]) #24 04c3 1403 ld $03,y 2513 ld(hi('REENTER'),Y) #25 04c4 e0cb jmp y,$cb 2514 jmp(Y,'REENTER') #26 04c5 00f1 ld $f1 2515 ld(-30/2) #27 2516 2517 label('SYS_LSRW8_24') SYS_LSRW8_24: 04c6 0119 ld [$19] 2518 ld([vAC+1]) #15 04c7 c218 st [$18] 2519 st([vAC]) #16 04c8 0000 ld $00 2520 ld(0) #17 04c9 c219 st [$19] 2521 st([vAC+1]) #18 04ca 1403 ld $03,y 2522 ld(hi('REENTER'),Y) #19 04cb e0cb jmp y,$cb 2523 jmp(Y,'REENTER') #20 04cc 00f4 ld $f4 2524 ld(-24/2) #21 2525 2526 label('SYS_LSLW8_24') SYS_LSLW8_24: 04cd 0118 ld [$18] 2527 ld([vAC]) #15 04ce c219 st [$19] 2528 st([vAC+1]) #16 04cf 0000 ld $00 2529 ld(0) #17 04d0 c218 st [$18] 2530 st([vAC]) #18 04d1 1403 ld $03,y 2531 ld(hi('REENTER'),Y) #19 04d2 e0cb jmp y,$cb 2532 jmp(Y,'REENTER') #20 04d3 00f4 ld $f4 2533 ld(-24/2) #21 2534 2535 #----------------------------------------------------------------------- 2536 # Extension SYS_Draw4_30 2537 #----------------------------------------------------------------------- 2538 # 2539 # Draw 4 pixels on screen, horizontally next to each other 2540 # 2541 # Variables: 2542 # sysArgs[0:3] Pixels (in) 2543 # sysArgs[4:5] Position on screen (in) 2544 2545 label('SYS_Draw4_30') SYS_Draw4_30: 04d4 1128 ld [$28],x 2546 ld([sysArgs+4],X) #15 04d5 1529 ld [$29],y 2547 ld([sysArgs+5],Y) #16 04d6 0124 ld [$24] 2548 ld([sysArgs+0]) #17 04d7 de00 st [y,x++] 2549 st([Y,Xpp]) #18 04d8 0125 ld [$25] 2550 ld([sysArgs+1]) #19 04d9 de00 st [y,x++] 2551 st([Y,Xpp]) #20 04da 0126 ld [$26] 2552 ld([sysArgs+2]) #21 04db de00 st [y,x++] 2553 st([Y,Xpp]) #22 04dc 0127 ld [$27] 2554 ld([sysArgs+3]) #23 04dd de00 st [y,x++] 2555 st([Y,Xpp]) #24 04de 1403 ld $03,y 2556 ld(hi('REENTER'),Y) #25 04df e0cb jmp y,$cb 2557 jmp(Y,'REENTER') #26 04e0 00f1 ld $f1 2558 ld(-30/2) #27 2559 2560 #----------------------------------------------------------------------- 2561 # Extension SYS_VDrawBits_134: 2562 #----------------------------------------------------------------------- 2563 # 2564 # Draw slice of a character, 8 pixels vertical 2565 # 2566 # Variables: 2567 # sysArgs[0] Color 0 "background" (in) 2568 # sysArgs[1] Color 1 "pen" (in) 2569 # sysArgs[2] 8 bits, highest bit first (in, changed) 2570 # sysArgs[4:5] Position on screen (in) 2571 2572 label('SYS_VDrawBits_134') SYS_VDrawBits_134: 04e1 140e ld $0e,y 2573 ld(hi('sys_VDrawBits'),Y) #15 04e2 e093 jmp y,$93 2574 jmp(Y,'sys_VDrawBits') #16 04e3 1128 ld [$28],x 2575 ld([sysArgs+4],X) #17 2576 2577 #----------------------------------------------------------------------- 2578 # 2579 # Interrupt handler: 2580 # STW $xx -> optionally store vCpuSelect 2581 # ... IRQ payload ... 2582 # either: 2583 # LDWI $400 2584 # LUP 0 -> vRTI and don't switch interpreter (immediate resume) 2585 # or: 2586 # LDWI $400 2587 # LUP $xx -> vRTI and switch interpreter type as stored in [$xx] 04e4 0200 nop 2588 fillers(until=251-13) 04e5 0200 nop 04e6 0200 nop * 10 times 2589 label('vRTI#15') vRTI#15: 04ee 0130 ld [$30] 2590 ld([vIrqSave+0]) #15 Continue with vCPU in the same timeslice (faster) 04ef c216 st [$16] 2591 st([vPC]) #16 04f0 0131 ld [$31] 2592 ld([vIrqSave+1]) #17 04f1 c217 st [$17] 2593 st([vPC+1]) #18 04f2 0132 ld [$32] 2594 ld([vIrqSave+2]) #19 04f3 c218 st [$18] 2595 st([vAC]) #20 04f4 0133 ld [$33] 2596 ld([vIrqSave+3]) #21 04f5 c219 st [$19] 2597 st([vAC+1]) #22 04f6 0134 ld [$34] 2598 ld([vIrqSave+4]) #23 Restore vCpuSelect for PREFIX 04f7 c202 st [$02] 2599 st([vCpuSelect]) #24 04f8 9401 adda $01,y 2600 adda(1,Y) #25 Jump to correct PREFIX page, (or page3 by default) 04f9 e0cb jmp y,$cb 2601 jmp(Y,'REENTER') #26 04fa 00f1 ld $f1 2602 ld(-30/2) #27 2603 # vRTI entry point 2604 assert(pc()&255 == 251) # The landing offset 251 for LUP trampoline is fixed 04fb f0ee beq vRTI#15 2605 beq('vRTI#15') #13 vRTI sequence 04fc 9001 adda $01,x 2606 adda(1,X) #14 04fd 140e ld $0e,y 2607 ld(hi('vRTI#18'),Y) #15 Switch and wait for end of timeslice (slower) 04fe e022 jmp y,$22 2608 jmp(Y,'vRTI#18') #16 04ff c21d st [$1d] 2609 st([vTmp]) #17 2610 2611 #----------------------------------------------------------------------- 2612 # 2613 # $0500 ROM page 5-6: Shift table and code 2614 # 2615 #----------------------------------------------------------------------- 2616 2617 align(0x100, size=0x200) 2618 2619 # Lookup table for i>>n, with n in 1..6 2620 # Indexing ix = i & ~b | (b-1), where b = 1<<(n-1) 2621 # ... 2622 # ld <.ret 2623 # st [vTmp] 2624 # ld >shiftTable,y 2625 # 2626 # jmp y,ac 2627 # bra $ff 2628 # .ret: ... 2629 # 2630 # i >> 7 can be always be done with RAM: [i&128] 2631 # ... 2632 # anda $80,x 2633 # ld [x] 2634 # ... 2635 2636 label('shiftTable') 2637 shiftTable = pc() 2638 2639 for ix in range(255): 2640 for n in range(1,7): # Find first zero 2641 if ~ix & (1 << (n-1)): 2642 break 2643 pattern = ['x' if i>n); C('0b%s >> %d' % (''.join(reversed(pattern)), n)) shiftTable: 0500 0000 ld $00 ;0b0000000x >> 1 0501 0000 ld $00 ;0b000000xx >> 2 0502 0001 ld $01 ;0b0000001x >> 1 0503 0000 ld $00 ;0b00000xxx >> 3 0504 0002 ld $02 ;0b0000010x >> 1 0505 0001 ld $01 ;0b000001xx >> 2 0506 0003 ld $03 ;0b0000011x >> 1 0507 0000 ld $00 ;0b0000xxxx >> 4 0508 0004 ld $04 ;0b0000100x >> 1 0509 0002 ld $02 ;0b000010xx >> 2 050a 0005 ld $05 ;0b0000101x >> 1 050b 0001 ld $01 ;0b00001xxx >> 3 050c 0006 ld $06 ;0b0000110x >> 1 050d 0003 ld $03 ;0b000011xx >> 2 050e 0007 ld $07 ;0b0000111x >> 1 050f 0000 ld $00 ;0b000xxxxx >> 5 0510 0008 ld $08 ;0b0001000x >> 1 0511 0004 ld $04 ;0b000100xx >> 2 0512 0009 ld $09 ;0b0001001x >> 1 0513 0002 ld $02 ;0b00010xxx >> 3 0514 000a ld $0a ;0b0001010x >> 1 0515 0005 ld $05 ;0b000101xx >> 2 0516 000b ld $0b ;0b0001011x >> 1 0517 0001 ld $01 ;0b0001xxxx >> 4 0518 000c ld $0c ;0b0001100x >> 1 0519 0006 ld $06 ;0b000110xx >> 2 051a 000d ld $0d ;0b0001101x >> 1 051b 0003 ld $03 ;0b00011xxx >> 3 051c 000e ld $0e ;0b0001110x >> 1 051d 0007 ld $07 ;0b000111xx >> 2 051e 000f ld $0f ;0b0001111x >> 1 051f 0000 ld $00 ;0b00xxxxxx >> 6 0520 0010 ld $10 ;0b0010000x >> 1 0521 0008 ld $08 ;0b001000xx >> 2 0522 0011 ld $11 ;0b0010001x >> 1 0523 0004 ld $04 ;0b00100xxx >> 3 0524 0012 ld $12 ;0b0010010x >> 1 0525 0009 ld $09 ;0b001001xx >> 2 0526 0013 ld $13 ;0b0010011x >> 1 0527 0002 ld $02 ;0b0010xxxx >> 4 0528 0014 ld $14 ;0b0010100x >> 1 0529 000a ld $0a ;0b001010xx >> 2 052a 0015 ld $15 ;0b0010101x >> 1 052b 0005 ld $05 ;0b00101xxx >> 3 052c 0016 ld $16 ;0b0010110x >> 1 052d 000b ld $0b ;0b001011xx >> 2 052e 0017 ld $17 ;0b0010111x >> 1 052f 0001 ld $01 ;0b001xxxxx >> 5 0530 0018 ld $18 ;0b0011000x >> 1 0531 000c ld $0c ;0b001100xx >> 2 0532 0019 ld $19 ;0b0011001x >> 1 0533 0006 ld $06 ;0b00110xxx >> 3 0534 001a ld $1a ;0b0011010x >> 1 0535 000d ld $0d ;0b001101xx >> 2 0536 001b ld $1b ;0b0011011x >> 1 0537 0003 ld $03 ;0b0011xxxx >> 4 0538 001c ld $1c ;0b0011100x >> 1 0539 000e ld $0e ;0b001110xx >> 2 053a 001d ld $1d ;0b0011101x >> 1 053b 0007 ld $07 ;0b00111xxx >> 3 053c 001e ld $1e ;0b0011110x >> 1 053d 000f ld $0f ;0b001111xx >> 2 053e 001f ld $1f ;0b0011111x >> 1 053f 0000 ld $00 ;0b00xxxxxx >> 6 0540 0020 ld $20 ;0b0100000x >> 1 0541 0010 ld $10 ;0b010000xx >> 2 0542 0021 ld $21 ;0b0100001x >> 1 0543 0008 ld $08 ;0b01000xxx >> 3 0544 0022 ld $22 ;0b0100010x >> 1 0545 0011 ld $11 ;0b010001xx >> 2 0546 0023 ld $23 ;0b0100011x >> 1 0547 0004 ld $04 ;0b0100xxxx >> 4 0548 0024 ld $24 ;0b0100100x >> 1 0549 0012 ld $12 ;0b010010xx >> 2 054a 0025 ld $25 ;0b0100101x >> 1 054b 0009 ld $09 ;0b01001xxx >> 3 054c 0026 ld $26 ;0b0100110x >> 1 054d 0013 ld $13 ;0b010011xx >> 2 054e 0027 ld $27 ;0b0100111x >> 1 054f 0002 ld $02 ;0b010xxxxx >> 5 0550 0028 ld $28 ;0b0101000x >> 1 0551 0014 ld $14 ;0b010100xx >> 2 0552 0029 ld $29 ;0b0101001x >> 1 0553 000a ld $0a ;0b01010xxx >> 3 0554 002a ld $2a ;0b0101010x >> 1 0555 0015 ld $15 ;0b010101xx >> 2 0556 002b ld $2b ;0b0101011x >> 1 0557 0005 ld $05 ;0b0101xxxx >> 4 0558 002c ld $2c ;0b0101100x >> 1 0559 0016 ld $16 ;0b010110xx >> 2 055a 002d ld $2d ;0b0101101x >> 1 055b 000b ld $0b ;0b01011xxx >> 3 055c 002e ld $2e ;0b0101110x >> 1 055d 0017 ld $17 ;0b010111xx >> 2 055e 002f ld $2f ;0b0101111x >> 1 055f 0001 ld $01 ;0b01xxxxxx >> 6 0560 0030 ld $30 ;0b0110000x >> 1 0561 0018 ld $18 ;0b011000xx >> 2 0562 0031 ld $31 ;0b0110001x >> 1 0563 000c ld $0c ;0b01100xxx >> 3 0564 0032 ld $32 ;0b0110010x >> 1 0565 0019 ld $19 ;0b011001xx >> 2 0566 0033 ld $33 ;0b0110011x >> 1 0567 0006 ld $06 ;0b0110xxxx >> 4 0568 0034 ld $34 ;0b0110100x >> 1 0569 001a ld $1a ;0b011010xx >> 2 056a 0035 ld $35 ;0b0110101x >> 1 056b 000d ld $0d ;0b01101xxx >> 3 056c 0036 ld $36 ;0b0110110x >> 1 056d 001b ld $1b ;0b011011xx >> 2 056e 0037 ld $37 ;0b0110111x >> 1 056f 0003 ld $03 ;0b011xxxxx >> 5 0570 0038 ld $38 ;0b0111000x >> 1 0571 001c ld $1c ;0b011100xx >> 2 0572 0039 ld $39 ;0b0111001x >> 1 0573 000e ld $0e ;0b01110xxx >> 3 0574 003a ld $3a ;0b0111010x >> 1 0575 001d ld $1d ;0b011101xx >> 2 0576 003b ld $3b ;0b0111011x >> 1 0577 0007 ld $07 ;0b0111xxxx >> 4 0578 003c ld $3c ;0b0111100x >> 1 0579 001e ld $1e ;0b011110xx >> 2 057a 003d ld $3d ;0b0111101x >> 1 057b 000f ld $0f ;0b01111xxx >> 3 057c 003e ld $3e ;0b0111110x >> 1 057d 001f ld $1f ;0b011111xx >> 2 057e 003f ld $3f ;0b0111111x >> 1 057f 0001 ld $01 ;0b01xxxxxx >> 6 0580 0040 ld $40 ;0b1000000x >> 1 0581 0020 ld $20 ;0b100000xx >> 2 0582 0041 ld $41 ;0b1000001x >> 1 0583 0010 ld $10 ;0b10000xxx >> 3 0584 0042 ld $42 ;0b1000010x >> 1 0585 0021 ld $21 ;0b100001xx >> 2 0586 0043 ld $43 ;0b1000011x >> 1 0587 0008 ld $08 ;0b1000xxxx >> 4 0588 0044 ld $44 ;0b1000100x >> 1 0589 0022 ld $22 ;0b100010xx >> 2 058a 0045 ld $45 ;0b1000101x >> 1 058b 0011 ld $11 ;0b10001xxx >> 3 058c 0046 ld $46 ;0b1000110x >> 1 058d 0023 ld $23 ;0b100011xx >> 2 058e 0047 ld $47 ;0b1000111x >> 1 058f 0004 ld $04 ;0b100xxxxx >> 5 0590 0048 ld $48 ;0b1001000x >> 1 0591 0024 ld $24 ;0b100100xx >> 2 0592 0049 ld $49 ;0b1001001x >> 1 0593 0012 ld $12 ;0b10010xxx >> 3 0594 004a ld $4a ;0b1001010x >> 1 0595 0025 ld $25 ;0b100101xx >> 2 0596 004b ld $4b ;0b1001011x >> 1 0597 0009 ld $09 ;0b1001xxxx >> 4 0598 004c ld $4c ;0b1001100x >> 1 0599 0026 ld $26 ;0b100110xx >> 2 059a 004d ld $4d ;0b1001101x >> 1 059b 0013 ld $13 ;0b10011xxx >> 3 059c 004e ld $4e ;0b1001110x >> 1 059d 0027 ld $27 ;0b100111xx >> 2 059e 004f ld $4f ;0b1001111x >> 1 059f 0002 ld $02 ;0b10xxxxxx >> 6 05a0 0050 ld $50 ;0b1010000x >> 1 05a1 0028 ld $28 ;0b101000xx >> 2 05a2 0051 ld $51 ;0b1010001x >> 1 05a3 0014 ld $14 ;0b10100xxx >> 3 05a4 0052 ld $52 ;0b1010010x >> 1 05a5 0029 ld $29 ;0b101001xx >> 2 05a6 0053 ld $53 ;0b1010011x >> 1 05a7 000a ld $0a ;0b1010xxxx >> 4 05a8 0054 ld $54 ;0b1010100x >> 1 05a9 002a ld $2a ;0b101010xx >> 2 05aa 0055 ld $55 ;0b1010101x >> 1 05ab 0015 ld $15 ;0b10101xxx >> 3 05ac 0056 ld $56 ;0b1010110x >> 1 05ad 002b ld $2b ;0b101011xx >> 2 05ae 0057 ld $57 ;0b1010111x >> 1 05af 0005 ld $05 ;0b101xxxxx >> 5 05b0 0058 ld $58 ;0b1011000x >> 1 05b1 002c ld $2c ;0b101100xx >> 2 05b2 0059 ld $59 ;0b1011001x >> 1 05b3 0016 ld $16 ;0b10110xxx >> 3 05b4 005a ld $5a ;0b1011010x >> 1 05b5 002d ld $2d ;0b101101xx >> 2 05b6 005b ld $5b ;0b1011011x >> 1 05b7 000b ld $0b ;0b1011xxxx >> 4 05b8 005c ld $5c ;0b1011100x >> 1 05b9 002e ld $2e ;0b101110xx >> 2 05ba 005d ld $5d ;0b1011101x >> 1 05bb 0017 ld $17 ;0b10111xxx >> 3 05bc 005e ld $5e ;0b1011110x >> 1 05bd 002f ld $2f ;0b101111xx >> 2 05be 005f ld $5f ;0b1011111x >> 1 05bf 0002 ld $02 ;0b10xxxxxx >> 6 05c0 0060 ld $60 ;0b1100000x >> 1 05c1 0030 ld $30 ;0b110000xx >> 2 05c2 0061 ld $61 ;0b1100001x >> 1 05c3 0018 ld $18 ;0b11000xxx >> 3 05c4 0062 ld $62 ;0b1100010x >> 1 05c5 0031 ld $31 ;0b110001xx >> 2 05c6 0063 ld $63 ;0b1100011x >> 1 05c7 000c ld $0c ;0b1100xxxx >> 4 05c8 0064 ld $64 ;0b1100100x >> 1 05c9 0032 ld $32 ;0b110010xx >> 2 05ca 0065 ld $65 ;0b1100101x >> 1 05cb 0019 ld $19 ;0b11001xxx >> 3 05cc 0066 ld $66 ;0b1100110x >> 1 05cd 0033 ld $33 ;0b110011xx >> 2 05ce 0067 ld $67 ;0b1100111x >> 1 05cf 0006 ld $06 ;0b110xxxxx >> 5 05d0 0068 ld $68 ;0b1101000x >> 1 05d1 0034 ld $34 ;0b110100xx >> 2 05d2 0069 ld $69 ;0b1101001x >> 1 05d3 001a ld $1a ;0b11010xxx >> 3 05d4 006a ld $6a ;0b1101010x >> 1 05d5 0035 ld $35 ;0b110101xx >> 2 05d6 006b ld $6b ;0b1101011x >> 1 05d7 000d ld $0d ;0b1101xxxx >> 4 05d8 006c ld $6c ;0b1101100x >> 1 05d9 0036 ld $36 ;0b110110xx >> 2 05da 006d ld $6d ;0b1101101x >> 1 05db 001b ld $1b ;0b11011xxx >> 3 05dc 006e ld $6e ;0b1101110x >> 1 05dd 0037 ld $37 ;0b110111xx >> 2 05de 006f ld $6f ;0b1101111x >> 1 05df 0003 ld $03 ;0b11xxxxxx >> 6 05e0 0070 ld $70 ;0b1110000x >> 1 05e1 0038 ld $38 ;0b111000xx >> 2 05e2 0071 ld $71 ;0b1110001x >> 1 05e3 001c ld $1c ;0b11100xxx >> 3 05e4 0072 ld $72 ;0b1110010x >> 1 05e5 0039 ld $39 ;0b111001xx >> 2 05e6 0073 ld $73 ;0b1110011x >> 1 05e7 000e ld $0e ;0b1110xxxx >> 4 05e8 0074 ld $74 ;0b1110100x >> 1 05e9 003a ld $3a ;0b111010xx >> 2 05ea 0075 ld $75 ;0b1110101x >> 1 05eb 001d ld $1d ;0b11101xxx >> 3 05ec 0076 ld $76 ;0b1110110x >> 1 05ed 003b ld $3b ;0b111011xx >> 2 05ee 0077 ld $77 ;0b1110111x >> 1 05ef 0007 ld $07 ;0b111xxxxx >> 5 05f0 0078 ld $78 ;0b1111000x >> 1 05f1 003c ld $3c ;0b111100xx >> 2 05f2 0079 ld $79 ;0b1111001x >> 1 05f3 001e ld $1e ;0b11110xxx >> 3 05f4 007a ld $7a ;0b1111010x >> 1 05f5 003d ld $3d ;0b111101xx >> 2 05f6 007b ld $7b ;0b1111011x >> 1 05f7 000f ld $0f ;0b1111xxxx >> 4 05f8 007c ld $7c ;0b1111100x >> 1 05f9 003e ld $3e ;0b111110xx >> 2 05fa 007d ld $7d ;0b1111101x >> 1 05fb 001f ld $1f ;0b11111xxx >> 3 05fc 007e ld $7e ;0b1111110x >> 1 05fd 003f ld $3f ;0b111111xx >> 2 05fe 007f ld $7f ;0b1111111x >> 1 2645 2646 assert pc()&255 == 255 05ff fd1d bra [$1d] 2647 bra([vTmp]) # Jumps back into next page 2648 2649 label('SYS_LSRW1_48') 2650 assert pc()&255 == 0 # First instruction on this page *must* be a nop SYS_LSRW1_48: 0600 0200 nop 2651 nop() #15 0601 1405 ld $05,y 2652 ld(hi('shiftTable'),Y) #16 Logical shift right 1 bit (X >> 1) 0602 0008 ld $08 2653 ld('.sysLsrw1a') #17 Shift low byte 0603 c21d st [$1d] 2654 st([vTmp]) #18 0604 0118 ld [$18] 2655 ld([vAC]) #19 0605 20fe anda $fe 2656 anda(0b11111110) #20 0606 e200 jmp y,ac 2657 jmp(Y,AC) #21 0607 fcff bra $ff 2658 bra(255) #22 bra shiftTable+255 2659 label('.sysLsrw1a') .sysLsrw1a: 0608 c218 st [$18] 2660 st([vAC]) #26 0609 0119 ld [$19] 2661 ld([vAC+1]) #27 Transfer bit 8 060a 2001 anda $01 2662 anda(1) #28 060b 807f adda $7f 2663 adda(127) #29 060c 2080 anda $80 2664 anda(128) #30 060d 4118 ora [$18] 2665 ora([vAC]) #31 060e c218 st [$18] 2666 st([vAC]) #32 060f 0015 ld $15 2667 ld('.sysLsrw1b') #33 Shift high byte 0610 c21d st [$1d] 2668 st([vTmp]) #34 0611 0119 ld [$19] 2669 ld([vAC+1]) #35 0612 20fe anda $fe 2670 anda(0b11111110) #36 0613 e200 jmp y,ac 2671 jmp(Y,AC) #37 0614 fcff bra $ff 2672 bra(255) #38 bra shiftTable+255 2673 label('.sysLsrw1b') .sysLsrw1b: 0615 c219 st [$19] 2674 st([vAC+1]) #42 0616 1403 ld $03,y 2675 ld(hi('REENTER'),Y) #43 0617 e0cb jmp y,$cb 2676 jmp(Y,'REENTER') #44 0618 00e8 ld $e8 2677 ld(-48/2) #45 2678 2679 label('SYS_LSRW2_52') SYS_LSRW2_52: 0619 1405 ld $05,y 2680 ld(hi('shiftTable'),Y) #15 Logical shift right 2 bit (X >> 2) 061a 0021 ld $21 2681 ld('.sysLsrw2a') #16 Shift low byte 061b c21d st [$1d] 2682 st([vTmp]) #17 061c 0118 ld [$18] 2683 ld([vAC]) #18 061d 20fc anda $fc 2684 anda(0b11111100) #19 061e 4001 ora $01 2685 ora( 0b00000001) #20 061f e200 jmp y,ac 2686 jmp(Y,AC) #21 0620 fcff bra $ff 2687 bra(255) #22 bra shiftTable+255 2688 label('.sysLsrw2a') .sysLsrw2a: 0621 c218 st [$18] 2689 st([vAC]) #26 0622 0119 ld [$19] 2690 ld([vAC+1]) #27 Transfer bit 8:9 0623 8200 adda ac 2691 adda(AC) #28 0624 8200 adda ac 2692 adda(AC) #29 0625 8200 adda ac 2693 adda(AC) #30 0626 8200 adda ac 2694 adda(AC) #31 0627 8200 adda ac 2695 adda(AC) #32 0628 8200 adda ac 2696 adda(AC) #33 0629 4118 ora [$18] 2697 ora([vAC]) #34 062a c218 st [$18] 2698 st([vAC]) #35 062b 0032 ld $32 2699 ld('.sysLsrw2b') #36 Shift high byte 062c c21d st [$1d] 2700 st([vTmp]) #37 062d 0119 ld [$19] 2701 ld([vAC+1]) #38 062e 20fc anda $fc 2702 anda(0b11111100) #39 062f 4001 ora $01 2703 ora( 0b00000001) #40 0630 e200 jmp y,ac 2704 jmp(Y,AC) #41 0631 fcff bra $ff 2705 bra(255) #42 bra shiftTable+255 2706 label('.sysLsrw2b') .sysLsrw2b: 0632 c219 st [$19] 2707 st([vAC+1]) #46 0633 1403 ld $03,y 2708 ld(hi('REENTER'),Y) #47 0634 e0cb jmp y,$cb 2709 jmp(Y,'REENTER') #48 0635 00e6 ld $e6 2710 ld(-52/2) #49 2711 2712 label('SYS_LSRW3_52') SYS_LSRW3_52: 0636 1405 ld $05,y 2713 ld(hi('shiftTable'),Y) #15 Logical shift right 3 bit (X >> 3) 0637 003e ld $3e 2714 ld('.sysLsrw3a') #16 Shift low byte 0638 c21d st [$1d] 2715 st([vTmp]) #17 0639 0118 ld [$18] 2716 ld([vAC]) #18 063a 20f8 anda $f8 2717 anda(0b11111000) #19 063b 4003 ora $03 2718 ora( 0b00000011) #20 063c e200 jmp y,ac 2719 jmp(Y,AC) #21 063d fcff bra $ff 2720 bra(255) #22 bra shiftTable+255 2721 label('.sysLsrw3a') .sysLsrw3a: 063e c218 st [$18] 2722 st([vAC]) #26 063f 0119 ld [$19] 2723 ld([vAC+1]) #27 Transfer bit 8:10 0640 8200 adda ac 2724 adda(AC) #28 0641 8200 adda ac 2725 adda(AC) #29 0642 8200 adda ac 2726 adda(AC) #30 0643 8200 adda ac 2727 adda(AC) #31 0644 8200 adda ac 2728 adda(AC) #32 0645 4118 ora [$18] 2729 ora([vAC]) #33 0646 c218 st [$18] 2730 st([vAC]) #34 0647 004e ld $4e 2731 ld('.sysLsrw3b') #35 Shift high byte 0648 c21d st [$1d] 2732 st([vTmp]) #36 0649 0119 ld [$19] 2733 ld([vAC+1]) #37 064a 20f8 anda $f8 2734 anda(0b11111000) #38 064b 4003 ora $03 2735 ora( 0b00000011) #39 064c e200 jmp y,ac 2736 jmp(Y,AC) #40 064d fcff bra $ff 2737 bra(255) #41 bra shiftTable+255 2738 label('.sysLsrw3b') .sysLsrw3b: 064e c219 st [$19] 2739 st([vAC+1]) #45 064f 00e6 ld $e6 2740 ld(-52/2) #46 0650 1403 ld $03,y 2741 ld(hi('REENTER'),Y) #47 0651 e0cb jmp y,$cb 2742 jmp(Y,'REENTER') #48 2743 #nop() #49 2744 2745 label('SYS_LSRW4_50') SYS_LSRW4_50: 0652 1405 ld $05,y 2746 ld(hi('shiftTable'),Y) #15,49 Logical shift right 4 bit (X >> 4) 0653 005a ld $5a 2747 ld('.sysLsrw4a') #16 Shift low byte 0654 c21d st [$1d] 2748 st([vTmp]) #17 0655 0118 ld [$18] 2749 ld([vAC]) #18 0656 20f0 anda $f0 2750 anda(0b11110000) #19 0657 4007 ora $07 2751 ora( 0b00000111) #20 0658 e200 jmp y,ac 2752 jmp(Y,AC) #21 0659 fcff bra $ff 2753 bra(255) #22 bra shiftTable+255 2754 label('.sysLsrw4a') .sysLsrw4a: 065a c218 st [$18] 2755 st([vAC]) #26 065b 0119 ld [$19] 2756 ld([vAC+1]) #27 Transfer bit 8:11 065c 8200 adda ac 2757 adda(AC) #28 065d 8200 adda ac 2758 adda(AC) #29 065e 8200 adda ac 2759 adda(AC) #30 065f 8200 adda ac 2760 adda(AC) #31 0660 4118 ora [$18] 2761 ora([vAC]) #32 0661 c218 st [$18] 2762 st([vAC]) #33 0662 0069 ld $69 2763 ld('.sysLsrw4b') #34 Shift high byte' 0663 c21d st [$1d] 2764 st([vTmp]) #35 0664 0119 ld [$19] 2765 ld([vAC+1]) #36 0665 20f0 anda $f0 2766 anda(0b11110000) #37 0666 4007 ora $07 2767 ora( 0b00000111) #38 0667 e200 jmp y,ac 2768 jmp(Y,AC) #39 0668 fcff bra $ff 2769 bra(255) #40 bra shiftTable+255 2770 label('.sysLsrw4b') .sysLsrw4b: 0669 c219 st [$19] 2771 st([vAC+1]) #44 066a 1403 ld $03,y 2772 ld(hi('REENTER'),Y) #45 066b e0cb jmp y,$cb 2773 jmp(Y,'REENTER') #46 066c 00e7 ld $e7 2774 ld(-50/2) #47 2775 2776 label('SYS_LSRW5_50') SYS_LSRW5_50: 066d 1405 ld $05,y 2777 ld(hi('shiftTable'),Y) #15 Logical shift right 5 bit (X >> 5) 066e 0075 ld $75 2778 ld('.sysLsrw5a') #16 Shift low byte 066f c21d st [$1d] 2779 st([vTmp]) #17 0670 0118 ld [$18] 2780 ld([vAC]) #18 0671 20e0 anda $e0 2781 anda(0b11100000) #19 0672 400f ora $0f 2782 ora( 0b00001111) #20 0673 e200 jmp y,ac 2783 jmp(Y,AC) #21 0674 fcff bra $ff 2784 bra(255) #22 bra shiftTable+255 2785 label('.sysLsrw5a') .sysLsrw5a: 0675 c218 st [$18] 2786 st([vAC]) #26 0676 0119 ld [$19] 2787 ld([vAC+1]) #27 Transfer bit 8:13 0677 8200 adda ac 2788 adda(AC) #28 0678 8200 adda ac 2789 adda(AC) #29 0679 8200 adda ac 2790 adda(AC) #30 067a 4118 ora [$18] 2791 ora([vAC]) #31 067b c218 st [$18] 2792 st([vAC]) #32 067c 0083 ld $83 2793 ld('.sysLsrw5b') #33 Shift high byte 067d c21d st [$1d] 2794 st([vTmp]) #34 067e 0119 ld [$19] 2795 ld([vAC+1]) #35 067f 20e0 anda $e0 2796 anda(0b11100000) #36 0680 400f ora $0f 2797 ora( 0b00001111) #37 0681 e200 jmp y,ac 2798 jmp(Y,AC) #38 0682 fcff bra $ff 2799 bra(255) #39 bra shiftTable+255 2800 label('.sysLsrw5b') .sysLsrw5b: 0683 c219 st [$19] 2801 st([vAC+1]) #44 0684 00e7 ld $e7 2802 ld(-50/2) #45 0685 1403 ld $03,y 2803 ld(hi('REENTER'),Y) #46 0686 e0cb jmp y,$cb 2804 jmp(Y,'REENTER') #47 2805 #nop() #48 2806 2807 label('SYS_LSRW6_48') SYS_LSRW6_48: 0687 1405 ld $05,y 2808 ld(hi('shiftTable'),Y) #15,44 Logical shift right 6 bit (X >> 6) 0688 008f ld $8f 2809 ld('.sysLsrw6a') #16 Shift low byte 0689 c21d st [$1d] 2810 st([vTmp]) #17 068a 0118 ld [$18] 2811 ld([vAC]) #18 068b 20c0 anda $c0 2812 anda(0b11000000) #19 068c 401f ora $1f 2813 ora( 0b00011111) #20 068d e200 jmp y,ac 2814 jmp(Y,AC) #21 068e fcff bra $ff 2815 bra(255) #22 bra shiftTable+255 2816 label('.sysLsrw6a') .sysLsrw6a: 068f c218 st [$18] 2817 st([vAC]) #26 0690 0119 ld [$19] 2818 ld([vAC+1]) #27 Transfer bit 8:13 0691 8200 adda ac 2819 adda(AC) #28 0692 8200 adda ac 2820 adda(AC) #29 0693 4118 ora [$18] 2821 ora([vAC]) #30 0694 c218 st [$18] 2822 st([vAC]) #31 0695 009c ld $9c 2823 ld('.sysLsrw6b') #32 Shift high byte 0696 c21d st [$1d] 2824 st([vTmp]) #33 0697 0119 ld [$19] 2825 ld([vAC+1]) #34 0698 20c0 anda $c0 2826 anda(0b11000000) #35 0699 401f ora $1f 2827 ora( 0b00011111) #36 069a e200 jmp y,ac 2828 jmp(Y,AC) #37 069b fcff bra $ff 2829 bra(255) #38 bra shiftTable+255 2830 label('.sysLsrw6b') .sysLsrw6b: 069c c219 st [$19] 2831 st([vAC+1]) #42 069d 1403 ld $03,y 2832 ld(hi('REENTER'),Y) #43 069e e0cb jmp y,$cb 2833 jmp(Y,'REENTER') #44 069f 00e8 ld $e8 2834 ld(-48/2) #45 2835 2836 label('SYS_LSLW4_46') SYS_LSLW4_46: 06a0 1405 ld $05,y 2837 ld(hi('shiftTable'),Y) #15 Logical shift left 4 bit (X << 4) 06a1 00ae ld $ae 2838 ld('.sysLsrl4') #16 06a2 c21d st [$1d] 2839 st([vTmp]) #17 06a3 0119 ld [$19] 2840 ld([vAC+1]) #18 06a4 8200 adda ac 2841 adda(AC) #19 06a5 8200 adda ac 2842 adda(AC) #20 06a6 8200 adda ac 2843 adda(AC) #21 06a7 8200 adda ac 2844 adda(AC) #22 06a8 c219 st [$19] 2845 st([vAC+1]) #23 06a9 0118 ld [$18] 2846 ld([vAC]) #24 06aa 20f0 anda $f0 2847 anda(0b11110000) #25 06ab 4007 ora $07 2848 ora( 0b00000111) #26 06ac e200 jmp y,ac 2849 jmp(Y,AC) #27 06ad fcff bra $ff 2850 bra(255) #28 bra shiftTable+255 2851 label('.sysLsrl4') .sysLsrl4: 06ae 4119 ora [$19] 2852 ora([vAC+1]) #32 06af c219 st [$19] 2853 st([vAC+1]) #33 06b0 0118 ld [$18] 2854 ld([vAC]) #34 06b1 8200 adda ac 2855 adda(AC) #35 06b2 8200 adda ac 2856 adda(AC) #36 06b3 8200 adda ac 2857 adda(AC) #37 06b4 8200 adda ac 2858 adda(AC) #38 06b5 c218 st [$18] 2859 st([vAC]) #39 06b6 00e9 ld $e9 2860 ld(-46/2) #40 06b7 1403 ld $03,y 2861 ld(hi('REENTER'),Y) #41 06b8 e0cb jmp y,$cb 2862 jmp(Y,'REENTER') #42 2863 #nop() #43 2864 2865 #----------------------------------------------------------------------- 2866 # vCPU LSRB 2867 #----------------------------------------------------------------------- 2868 2869 label('.lsrb#24') .lsrb#24: 06b9 c600 st [x] 2870 st([X]) #24 06ba 1403 ld $03,y 2871 ld(hi('REENTER'),Y) #25 06bb e0cb jmp y,$cb 2872 jmp(Y,'REENTER') #26 06bc 00f1 ld $f1 2873 ld(-30/2) #27 2874 2875 #----------------------------------------------------------------------- 2876 # vCPU LSRV 2877 #----------------------------------------------------------------------- 2878 2879 label('.lsrv#27') .lsrv#27: 06bd 142c ld $2c,y 2880 ld(hi('.lsrv#30'),Y) #27 06be e053 jmp y,$53 2881 jmp(Y,'.lsrv#30') #28 06bf c600 st [x] 2882 st([X]) #29 shifted byte low 2883 2884 label('.lsrv#51') .lsrv#51: 06c0 c600 st [x] 2885 st([X]) #51 shifted byte hi 06c1 1403 ld $03,y 2886 ld(hi('NEXTY'),Y) #52 06c2 e000 jmp y,$00 2887 jmp(Y,'NEXTY') #53 06c3 00e4 ld $e4 2888 ld(-56/2) #54 2889 2890 #----------------------------------------------------------------------- 2891 # vCPU LSRVL 2892 #----------------------------------------------------------------------- 2893 2894 label('.lsrvl#26') .lsrvl#26: 06c4 142c ld $2c,y 2895 ld(hi('.lsrvl#29'),Y) #26 06c5 e074 jmp y,$74 2896 jmp(Y,'.lsrvl#29') #27 06c6 c600 st [x] 2897 st([X]) #28 shifted byte 0 2898 2899 label('.lsrvl#54') .lsrvl#54: 06c7 142c ld $2c,y 2900 ld(hi('.lsrvl#57'),Y) #54 06c8 e08a jmp y,$8a 2901 jmp(Y,'.lsrvl#57') #55 06c9 c600 st [x] 2902 st([X]) #56 shifted byte 1 2903 2904 label('.lsrvl#76') .lsrvl#76: 06ca 142c ld $2c,y 2905 ld(hi('.lsrvl#79'),Y) #76 06cb e09a jmp y,$9a 2906 jmp(Y,'.lsrvl#79') #77 06cc c600 st [x] 2907 st([X]) #78 shifted byte 2 2908 2909 label('.lsrvl#98') .lsrvl#98: 06cd c600 st [x] 2910 st([X]) #98 shifted byte 3 06ce 1403 ld $03,y 2911 ld(hi('REENTER'),Y) #99 06cf e0cb jmp y,$cb 2912 jmp(Y,'REENTER') #100 06d0 00cc ld $cc 2913 ld(-104/2) #101 2914 2915 #----------------------------------------------------------------------- 2916 # vCPU NROR (lb3361) 2917 #----------------------------------------------------------------------- 2918 2919 label('nror#35') nror#35: 06d1 4118 ora [$18] 2920 ora([vAC]) #35 06d2 c600 st [x] 2921 st([X]) #36 06d3 012b ld [$2b] 2922 ld([sysArgs+7]) #37 06d4 612a xora [$2a] 2923 xora([sysArgs+6]) #38 06d5 ecd9 bne nror#41 2924 bne('nror#41') #39 06d6 1403 ld $03,y 2925 ld(hi('NEXTY'),Y) #40 06d7 e000 jmp y,$00 2926 jmp(Y,'NEXTY') #41 06d8 00ea ld $ea 2927 ld(-44/2) #42 2928 label('nror#41') nror#41: 06d9 00f1 ld $f1 2929 ld(-30/2) #41 06da 8115 adda [$15] 2930 adda([vTicks]) #12=42-30 06db 1434 ld $34,y 2931 ld(hi('nror#16'),Y) #13=43-30 06dc e037 jmp y,$37 2932 jmp(Y,'nror#16') #14=44-30 06dd c215 st [$15] 2933 st([vTicks]) #15=45-30 2934 2935 2936 2937 #----------------------------------------------------------------------- 2938 # 2939 # $0700 ROM page 7-8: Gigatron font data 2940 # 2941 #----------------------------------------------------------------------- 2942 06de 0200 nop 2943 align(0x100, size=0x100) 06df 0200 nop 06e0 0200 nop * 34 times 2944 2945 label('font32up') 2946 for ch in range(32, 32+50): 2947 comment = 'Char %s' % repr(chr(ch)) 2948 for byte in font.font[ch-32]: 2949 ld(byte) font32up: 0700 0000 ld $00 ;Char ' ' 0701 0000 ld $00 0702 0000 ld $00 * 5 times 0705 0000 ld $00 ;Char '!' 0706 0000 ld $00 0707 00fa ld $fa 0708 0000 ld $00 0709 0000 ld $00 070a 00a0 ld $a0 ;Char '"' 070b 00c0 ld $c0 070c 0000 ld $00 070d 00a0 ld $a0 070e 00c0 ld $c0 070f 0028 ld $28 ;Char '#' 0710 00fe ld $fe 0711 0028 ld $28 0712 00fe ld $fe 0713 0028 ld $28 0714 0024 ld $24 ;Char '$' 0715 0054 ld $54 0716 00fe ld $fe 0717 0054 ld $54 0718 0048 ld $48 0719 00c4 ld $c4 ;Char '%' 071a 00c8 ld $c8 071b 0010 ld $10 071c 0026 ld $26 071d 0046 ld $46 071e 006c ld $6c ;Char '&' 071f 0092 ld $92 0720 006a ld $6a 0721 0004 ld $04 0722 000a ld $0a 0723 0000 ld $00 ;Char "'" 0724 00a0 ld $a0 0725 00c0 ld $c0 0726 0000 ld $00 0727 0000 ld $00 0728 0000 ld $00 ;Char '(' 0729 0038 ld $38 072a 0044 ld $44 072b 0082 ld $82 072c 0000 ld $00 072d 0000 ld $00 ;Char ')' 072e 0082 ld $82 072f 0044 ld $44 0730 0038 ld $38 0731 0000 ld $00 0732 0028 ld $28 ;Char '*' 0733 0010 ld $10 0734 007c ld $7c 0735 0010 ld $10 0736 0028 ld $28 0737 0010 ld $10 ;Char '+' 0738 0010 ld $10 0739 007c ld $7c 073a 0010 ld $10 073b 0010 ld $10 073c 0000 ld $00 ;Char ',' 073d 0005 ld $05 073e 0006 ld $06 073f 0000 ld $00 0740 0000 ld $00 0741 0010 ld $10 ;Char '-' 0742 0010 ld $10 0743 0010 ld $10 * 5 times 0746 0000 ld $00 ;Char '.' 0747 0002 ld $02 0748 0002 ld $02 0749 0000 ld $00 074a 0000 ld $00 074b 0000 ld $00 ;Char '/' 074c 0006 ld $06 074d 0018 ld $18 074e 0060 ld $60 074f 0000 ld $00 0750 007c ld $7c ;Char '0' 0751 008a ld $8a 0752 0092 ld $92 0753 00a2 ld $a2 0754 007c ld $7c 0755 0022 ld $22 ;Char '1' 0756 0042 ld $42 0757 00fe ld $fe 0758 0002 ld $02 0759 0002 ld $02 075a 0046 ld $46 ;Char '2' 075b 008a ld $8a 075c 0092 ld $92 075d 0092 ld $92 075e 0062 ld $62 075f 0044 ld $44 ;Char '3' 0760 0082 ld $82 0761 0092 ld $92 0762 0092 ld $92 0763 006c ld $6c 0764 0018 ld $18 ;Char '4' 0765 0028 ld $28 0766 0048 ld $48 0767 00fe ld $fe 0768 0008 ld $08 0769 00e4 ld $e4 ;Char '5' 076a 00a2 ld $a2 076b 00a2 ld $a2 076c 00a2 ld $a2 076d 009c ld $9c 076e 003c ld $3c ;Char '6' 076f 0052 ld $52 0770 0092 ld $92 0771 0092 ld $92 0772 000c ld $0c 0773 0080 ld $80 ;Char '7' 0774 008e ld $8e 0775 0090 ld $90 0776 00a0 ld $a0 0777 00c0 ld $c0 0778 006c ld $6c ;Char '8' 0779 0092 ld $92 077a 0092 ld $92 077b 0092 ld $92 077c 006c ld $6c 077d 0060 ld $60 ;Char '9' 077e 0092 ld $92 077f 0092 ld $92 0780 0094 ld $94 0781 0078 ld $78 0782 0000 ld $00 ;Char ':' 0783 0024 ld $24 0784 0024 ld $24 0785 0000 ld $00 0786 0000 ld $00 0787 0000 ld $00 ;Char ';' 0788 0025 ld $25 0789 0026 ld $26 078a 0000 ld $00 078b 0000 ld $00 078c 0010 ld $10 ;Char '<' 078d 0028 ld $28 078e 0044 ld $44 078f 0082 ld $82 0790 0000 ld $00 0791 0028 ld $28 ;Char '=' 0792 0028 ld $28 0793 0028 ld $28 * 5 times 0796 0000 ld $00 ;Char '>' 0797 0082 ld $82 0798 0044 ld $44 0799 0028 ld $28 079a 0010 ld $10 079b 0040 ld $40 ;Char '?' 079c 0080 ld $80 079d 008a ld $8a 079e 0090 ld $90 079f 0060 ld $60 07a0 007c ld $7c ;Char '@' 07a1 0082 ld $82 07a2 00ba ld $ba 07a3 00aa ld $aa 07a4 0078 ld $78 07a5 003e ld $3e ;Char 'A' 07a6 0048 ld $48 07a7 0088 ld $88 07a8 0048 ld $48 07a9 003e ld $3e 07aa 00fe ld $fe ;Char 'B' 07ab 0092 ld $92 07ac 0092 ld $92 07ad 0092 ld $92 07ae 006c ld $6c 07af 007c ld $7c ;Char 'C' 07b0 0082 ld $82 07b1 0082 ld $82 07b2 0082 ld $82 07b3 0044 ld $44 07b4 00fe ld $fe ;Char 'D' 07b5 0082 ld $82 07b6 0082 ld $82 07b7 0044 ld $44 07b8 0038 ld $38 07b9 00fe ld $fe ;Char 'E' 07ba 0092 ld $92 07bb 0092 ld $92 07bc 0092 ld $92 07bd 0082 ld $82 07be 00fe ld $fe ;Char 'F' 07bf 0090 ld $90 07c0 0090 ld $90 07c1 0090 ld $90 07c2 0080 ld $80 07c3 007c ld $7c ;Char 'G' 07c4 0082 ld $82 07c5 0082 ld $82 07c6 0092 ld $92 07c7 005c ld $5c 07c8 00fe ld $fe ;Char 'H' 07c9 0010 ld $10 07ca 0010 ld $10 07cb 0010 ld $10 07cc 00fe ld $fe 07cd 0000 ld $00 ;Char 'I' 07ce 0082 ld $82 07cf 00fe ld $fe 07d0 0082 ld $82 07d1 0000 ld $00 07d2 0004 ld $04 ;Char 'J' 07d3 0002 ld $02 07d4 0082 ld $82 07d5 00fc ld $fc 07d6 0080 ld $80 07d7 00fe ld $fe ;Char 'K' 07d8 0010 ld $10 07d9 0028 ld $28 07da 0044 ld $44 07db 0082 ld $82 07dc 00fe ld $fe ;Char 'L' 07dd 0002 ld $02 07de 0002 ld $02 07df 0002 ld $02 07e0 0002 ld $02 07e1 00fe ld $fe ;Char 'M' 07e2 0040 ld $40 07e3 0030 ld $30 07e4 0040 ld $40 07e5 00fe ld $fe 07e6 00fe ld $fe ;Char 'N' 07e7 0020 ld $20 07e8 0010 ld $10 07e9 0008 ld $08 07ea 00fe ld $fe 07eb 007c ld $7c ;Char 'O' 07ec 0082 ld $82 07ed 0082 ld $82 07ee 0082 ld $82 07ef 007c ld $7c 07f0 00fe ld $fe ;Char 'P' 07f1 0090 ld $90 07f2 0090 ld $90 07f3 0090 ld $90 07f4 0060 ld $60 07f5 007c ld $7c ;Char 'Q' 07f6 0082 ld $82 07f7 008a ld $8a 07f8 0084 ld $84 07f9 007a ld $7a 2950 comment = C(comment) 2951 07fa 0200 nop 2952 trampoline() 07fb fe00 bra ac ;+-----------------------------------+ 07fc fcfd bra $07fd ;| | 07fd 1418 ld $18,y ;| Trampoline for page $0700 lookups | 07fe e006 jmp y,$06 ;| | 07ff c218 st [$18] ;+-----------------------------------+ 2953 2954 #----------------------------------------------------------------------- 2955 2956 align(0x100, size=0x100) 2957 2958 label('font82up') 2959 for ch in range(32+50, 132): 2960 comment = 'Char %s' % repr(chr(ch)) 2961 for byte in font.font[ch-32]: 2962 ld(byte) font82up: 0800 00fe ld $fe ;Char 'R' 0801 0090 ld $90 0802 0098 ld $98 0803 0094 ld $94 0804 0062 ld $62 0805 0062 ld $62 ;Char 'S' 0806 0092 ld $92 0807 0092 ld $92 0808 0092 ld $92 0809 000c ld $0c 080a 0080 ld $80 ;Char 'T' 080b 0080 ld $80 080c 00fe ld $fe 080d 0080 ld $80 080e 0080 ld $80 080f 00fc ld $fc ;Char 'U' 0810 0002 ld $02 0811 0002 ld $02 0812 0002 ld $02 0813 00fc ld $fc 0814 00f0 ld $f0 ;Char 'V' 0815 000c ld $0c 0816 0002 ld $02 0817 000c ld $0c 0818 00f0 ld $f0 0819 00fe ld $fe ;Char 'W' 081a 0004 ld $04 081b 0018 ld $18 081c 0004 ld $04 081d 00fe ld $fe 081e 00c6 ld $c6 ;Char 'X' 081f 0028 ld $28 0820 0010 ld $10 0821 0028 ld $28 0822 00c6 ld $c6 0823 00e0 ld $e0 ;Char 'Y' 0824 0010 ld $10 0825 000e ld $0e 0826 0010 ld $10 0827 00e0 ld $e0 0828 0086 ld $86 ;Char 'Z' 0829 008a ld $8a 082a 0092 ld $92 082b 00a2 ld $a2 082c 00c2 ld $c2 082d 0000 ld $00 ;Char '[' 082e 00fe ld $fe 082f 0082 ld $82 0830 0082 ld $82 0831 0000 ld $00 0832 0000 ld $00 ;Char '\\' 0833 0060 ld $60 0834 0018 ld $18 0835 0006 ld $06 0836 0000 ld $00 0837 0000 ld $00 ;Char ']' 0838 0082 ld $82 0839 0082 ld $82 083a 00fe ld $fe 083b 0000 ld $00 083c 0020 ld $20 ;Char '^' 083d 0040 ld $40 083e 0080 ld $80 083f 0040 ld $40 0840 0020 ld $20 0841 0002 ld $02 ;Char '_' 0842 0002 ld $02 0843 0002 ld $02 * 5 times 0846 0000 ld $00 ;Char '`' 0847 0000 ld $00 0848 00c0 ld $c0 0849 00a0 ld $a0 084a 0000 ld $00 084b 0004 ld $04 ;Char 'a' 084c 002a ld $2a 084d 002a ld $2a 084e 002a ld $2a 084f 001e ld $1e 0850 00fe ld $fe ;Char 'b' 0851 0022 ld $22 0852 0022 ld $22 0853 0022 ld $22 0854 001c ld $1c 0855 001c ld $1c ;Char 'c' 0856 0022 ld $22 0857 0022 ld $22 0858 0022 ld $22 0859 0002 ld $02 085a 001c ld $1c ;Char 'd' 085b 0022 ld $22 085c 0022 ld $22 085d 0022 ld $22 085e 00fe ld $fe 085f 001c ld $1c ;Char 'e' 0860 002a ld $2a 0861 002a ld $2a 0862 002a ld $2a 0863 0018 ld $18 0864 0010 ld $10 ;Char 'f' 0865 007e ld $7e 0866 0090 ld $90 0867 0080 ld $80 0868 0040 ld $40 0869 0018 ld $18 ;Char 'g' 086a 0025 ld $25 086b 0025 ld $25 086c 0025 ld $25 086d 001e ld $1e 086e 00fe ld $fe ;Char 'h' 086f 0020 ld $20 0870 0020 ld $20 0871 0020 ld $20 0872 001e ld $1e 0873 0000 ld $00 ;Char 'i' 0874 0022 ld $22 0875 00be ld $be 0876 0002 ld $02 0877 0000 ld $00 0878 0002 ld $02 ;Char 'j' 0879 0001 ld $01 087a 0021 ld $21 087b 00be ld $be 087c 0000 ld $00 087d 00fe ld $fe ;Char 'k' 087e 0008 ld $08 087f 0018 ld $18 0880 0024 ld $24 0881 0002 ld $02 0882 0000 ld $00 ;Char 'l' 0883 0082 ld $82 0884 00fe ld $fe 0885 0002 ld $02 0886 0000 ld $00 0887 003e ld $3e ;Char 'm' 0888 0020 ld $20 0889 001c ld $1c 088a 0020 ld $20 088b 001e ld $1e 088c 003e ld $3e ;Char 'n' 088d 0010 ld $10 088e 0020 ld $20 088f 0020 ld $20 0890 001e ld $1e 0891 001c ld $1c ;Char 'o' 0892 0022 ld $22 0893 0022 ld $22 0894 0022 ld $22 0895 001c ld $1c 0896 003f ld $3f ;Char 'p' 0897 0024 ld $24 0898 0024 ld $24 0899 0024 ld $24 089a 0018 ld $18 089b 0018 ld $18 ;Char 'q' 089c 0024 ld $24 089d 0024 ld $24 089e 0024 ld $24 089f 003f ld $3f 08a0 003e ld $3e ;Char 'r' 08a1 0010 ld $10 08a2 0020 ld $20 08a3 0020 ld $20 08a4 0010 ld $10 08a5 0012 ld $12 ;Char 's' 08a6 002a ld $2a 08a7 002a ld $2a 08a8 002a ld $2a 08a9 0004 ld $04 08aa 0020 ld $20 ;Char 't' 08ab 00fc ld $fc 08ac 0022 ld $22 08ad 0002 ld $02 08ae 0004 ld $04 08af 003c ld $3c ;Char 'u' 08b0 0002 ld $02 08b1 0002 ld $02 08b2 0004 ld $04 08b3 003e ld $3e 08b4 0038 ld $38 ;Char 'v' 08b5 0004 ld $04 08b6 0002 ld $02 08b7 0004 ld $04 08b8 0038 ld $38 08b9 003c ld $3c ;Char 'w' 08ba 0002 ld $02 08bb 000c ld $0c 08bc 0002 ld $02 08bd 003c ld $3c 08be 0022 ld $22 ;Char 'x' 08bf 0014 ld $14 08c0 0008 ld $08 08c1 0014 ld $14 08c2 0022 ld $22 08c3 0038 ld $38 ;Char 'y' 08c4 0005 ld $05 08c5 0005 ld $05 08c6 0005 ld $05 08c7 003e ld $3e 08c8 0022 ld $22 ;Char 'z' 08c9 0026 ld $26 08ca 002a ld $2a 08cb 0032 ld $32 08cc 0022 ld $22 08cd 0010 ld $10 ;Char '{' 08ce 006c ld $6c 08cf 0082 ld $82 08d0 0082 ld $82 08d1 0000 ld $00 08d2 0000 ld $00 ;Char '|' 08d3 0000 ld $00 08d4 00fe ld $fe 08d5 0000 ld $00 08d6 0000 ld $00 08d7 0000 ld $00 ;Char '}' 08d8 0082 ld $82 08d9 0082 ld $82 08da 006c ld $6c 08db 0010 ld $10 08dc 0040 ld $40 ;Char '~' 08dd 0080 ld $80 08de 0040 ld $40 08df 0020 ld $20 08e0 0040 ld $40 08e1 00fe ld $fe ;Char '\x7f' 08e2 00fe ld $fe 08e3 00fe ld $fe * 5 times 08e6 0010 ld $10 ;Char '\x80' 08e7 0038 ld $38 08e8 0054 ld $54 08e9 0010 ld $10 08ea 0010 ld $10 08eb 0010 ld $10 ;Char '\x81' 08ec 0020 ld $20 08ed 007c ld $7c 08ee 0020 ld $20 08ef 0010 ld $10 08f0 0010 ld $10 ;Char '\x82' 08f1 0010 ld $10 08f2 0054 ld $54 08f3 0038 ld $38 08f4 0010 ld $10 08f5 0010 ld $10 ;Char '\x83' 08f6 0008 ld $08 08f7 007c ld $7c 08f8 0008 ld $08 08f9 0010 ld $10 2963 comment = C(comment) 2964 08fa 0200 nop 2965 trampoline() 08fb fe00 bra ac ;+-----------------------------------+ 08fc fcfd bra $08fd ;| | 08fd 1418 ld $18,y ;| Trampoline for page $0800 lookups | 08fe e006 jmp y,$06 ;| | 08ff c218 st [$18] ;+-----------------------------------+ 2966 2967 #----------------------------------------------------------------------- 2968 # 2969 # $0900 ROM page 9: Key table for music 2970 # 2971 #----------------------------------------------------------------------- 2972 2973 align(0x100, size=0x100) 2974 notes = 'CCDDEFFGGAAB' 2975 sampleRate = cpuClock / 200.0 / 4 2976 label('notesTable') notesTable: 0900 0000 ld $00 2977 ld(0) 0901 0000 ld $00 2978 ld(0) 2979 for i in range(0, 250, 2): 2980 j = i//2-1 2981 freq = 440.0*2.0**((j-57)/12.0) 2982 if j>=0 and freq <= sampleRate/2.0: 2983 key = int(round(32768 * freq / sampleRate)) 2984 octave, note = j//12, notes[j%12] 2985 sharp = '-' if notes[j%12-1] != note else '#' 2986 comment = '%s%s%s (%0.1f Hz)' % (note, sharp, octave, freq) 2987 ld(key&127); C(comment); ld(key>>7) 0902 0045 ld $45 ;C-0 (16.4 Hz) 0903 0000 ld $00 0904 0049 ld $49 ;C#0 (17.3 Hz) 0905 0000 ld $00 0906 004d ld $4d ;D-0 (18.4 Hz) 0907 0000 ld $00 0908 0052 ld $52 ;D#0 (19.4 Hz) 0909 0000 ld $00 090a 0056 ld $56 ;E-0 (20.6 Hz) 090b 0000 ld $00 090c 005c ld $5c ;F-0 (21.8 Hz) 090d 0000 ld $00 090e 0061 ld $61 ;F#0 (23.1 Hz) 090f 0000 ld $00 0910 0067 ld $67 ;G-0 (24.5 Hz) 0911 0000 ld $00 0912 006d ld $6d ;G#0 (26.0 Hz) 0913 0000 ld $00 0914 0073 ld $73 ;A-0 (27.5 Hz) 0915 0000 ld $00 0916 007a ld $7a ;A#0 (29.1 Hz) 0917 0000 ld $00 0918 0001 ld $01 ;B-0 (30.9 Hz) 0919 0001 ld $01 091a 0009 ld $09 ;C-1 (32.7 Hz) 091b 0001 ld $01 091c 0011 ld $11 ;C#1 (34.6 Hz) 091d 0001 ld $01 091e 001a ld $1a ;D-1 (36.7 Hz) 091f 0001 ld $01 0920 0023 ld $23 ;D#1 (38.9 Hz) 0921 0001 ld $01 0922 002d ld $2d ;E-1 (41.2 Hz) 0923 0001 ld $01 0924 0037 ld $37 ;F-1 (43.7 Hz) 0925 0001 ld $01 0926 0042 ld $42 ;F#1 (46.2 Hz) 0927 0001 ld $01 0928 004e ld $4e ;G-1 (49.0 Hz) 0929 0001 ld $01 092a 005a ld $5a ;G#1 (51.9 Hz) 092b 0001 ld $01 092c 0067 ld $67 ;A-1 (55.0 Hz) 092d 0001 ld $01 092e 0074 ld $74 ;A#1 (58.3 Hz) 092f 0001 ld $01 0930 0003 ld $03 ;B-1 (61.7 Hz) 0931 0002 ld $02 0932 0012 ld $12 ;C-2 (65.4 Hz) 0933 0002 ld $02 0934 0023 ld $23 ;C#2 (69.3 Hz) 0935 0002 ld $02 0936 0034 ld $34 ;D-2 (73.4 Hz) 0937 0002 ld $02 0938 0046 ld $46 ;D#2 (77.8 Hz) 0939 0002 ld $02 093a 005a ld $5a ;E-2 (82.4 Hz) 093b 0002 ld $02 093c 006e ld $6e ;F-2 (87.3 Hz) 093d 0002 ld $02 093e 0004 ld $04 ;F#2 (92.5 Hz) 093f 0003 ld $03 0940 001b ld $1b ;G-2 (98.0 Hz) 0941 0003 ld $03 0942 0033 ld $33 ;G#2 (103.8 Hz) 0943 0003 ld $03 0944 004d ld $4d ;A-2 (110.0 Hz) 0945 0003 ld $03 0946 0069 ld $69 ;A#2 (116.5 Hz) 0947 0003 ld $03 0948 0006 ld $06 ;B-2 (123.5 Hz) 0949 0004 ld $04 094a 0025 ld $25 ;C-3 (130.8 Hz) 094b 0004 ld $04 094c 0045 ld $45 ;C#3 (138.6 Hz) 094d 0004 ld $04 094e 0068 ld $68 ;D-3 (146.8 Hz) 094f 0004 ld $04 0950 000c ld $0c ;D#3 (155.6 Hz) 0951 0005 ld $05 0952 0033 ld $33 ;E-3 (164.8 Hz) 0953 0005 ld $05 0954 005c ld $5c ;F-3 (174.6 Hz) 0955 0005 ld $05 0956 0008 ld $08 ;F#3 (185.0 Hz) 0957 0006 ld $06 0958 0036 ld $36 ;G-3 (196.0 Hz) 0959 0006 ld $06 095a 0067 ld $67 ;G#3 (207.7 Hz) 095b 0006 ld $06 095c 001b ld $1b ;A-3 (220.0 Hz) 095d 0007 ld $07 095e 0052 ld $52 ;A#3 (233.1 Hz) 095f 0007 ld $07 0960 000c ld $0c ;B-3 (246.9 Hz) 0961 0008 ld $08 0962 0049 ld $49 ;C-4 (261.6 Hz) 0963 0008 ld $08 0964 000b ld $0b ;C#4 (277.2 Hz) 0965 0009 ld $09 0966 0050 ld $50 ;D-4 (293.7 Hz) 0967 0009 ld $09 0968 0019 ld $19 ;D#4 (311.1 Hz) 0969 000a ld $0a 096a 0067 ld $67 ;E-4 (329.6 Hz) 096b 000a ld $0a 096c 0039 ld $39 ;F-4 (349.2 Hz) 096d 000b ld $0b 096e 0010 ld $10 ;F#4 (370.0 Hz) 096f 000c ld $0c 0970 006c ld $6c ;G-4 (392.0 Hz) 0971 000c ld $0c 0972 004e ld $4e ;G#4 (415.3 Hz) 0973 000d ld $0d 0974 0035 ld $35 ;A-4 (440.0 Hz) 0975 000e ld $0e 0976 0023 ld $23 ;A#4 (466.2 Hz) 0977 000f ld $0f 0978 0017 ld $17 ;B-4 (493.9 Hz) 0979 0010 ld $10 097a 0013 ld $13 ;C-5 (523.3 Hz) 097b 0011 ld $11 097c 0015 ld $15 ;C#5 (554.4 Hz) 097d 0012 ld $12 097e 001f ld $1f ;D-5 (587.3 Hz) 097f 0013 ld $13 0980 0032 ld $32 ;D#5 (622.3 Hz) 0981 0014 ld $14 0982 004d ld $4d ;E-5 (659.3 Hz) 0983 0015 ld $15 0984 0072 ld $72 ;F-5 (698.5 Hz) 0985 0016 ld $16 0986 0020 ld $20 ;F#5 (740.0 Hz) 0987 0018 ld $18 0988 0058 ld $58 ;G-5 (784.0 Hz) 0989 0019 ld $19 098a 001c ld $1c ;G#5 (830.6 Hz) 098b 001b ld $1b 098c 006b ld $6b ;A-5 (880.0 Hz) 098d 001c ld $1c 098e 0046 ld $46 ;A#5 (932.3 Hz) 098f 001e ld $1e 0990 002f ld $2f ;B-5 (987.8 Hz) 0991 0020 ld $20 0992 0025 ld $25 ;C-6 (1046.5 Hz) 0993 0022 ld $22 0994 002a ld $2a ;C#6 (1108.7 Hz) 0995 0024 ld $24 0996 003f ld $3f ;D-6 (1174.7 Hz) 0997 0026 ld $26 0998 0064 ld $64 ;D#6 (1244.5 Hz) 0999 0028 ld $28 099a 001a ld $1a ;E-6 (1318.5 Hz) 099b 002b ld $2b 099c 0063 ld $63 ;F-6 (1396.9 Hz) 099d 002d ld $2d 099e 003f ld $3f ;F#6 (1480.0 Hz) 099f 0030 ld $30 09a0 0031 ld $31 ;G-6 (1568.0 Hz) 09a1 0033 ld $33 09a2 0038 ld $38 ;G#6 (1661.2 Hz) 09a3 0036 ld $36 09a4 0056 ld $56 ;A-6 (1760.0 Hz) 09a5 0039 ld $39 09a6 000d ld $0d ;A#6 (1864.7 Hz) 09a7 003d ld $3d 09a8 005e ld $5e ;B-6 (1975.5 Hz) 09a9 0040 ld $40 09aa 004b ld $4b ;C-7 (2093.0 Hz) 09ab 0044 ld $44 09ac 0055 ld $55 ;C#7 (2217.5 Hz) 09ad 0048 ld $48 09ae 007e ld $7e ;D-7 (2349.3 Hz) 09af 004c ld $4c 09b0 0048 ld $48 ;D#7 (2489.0 Hz) 09b1 0051 ld $51 09b2 0034 ld $34 ;E-7 (2637.0 Hz) 09b3 0056 ld $56 09b4 0046 ld $46 ;F-7 (2793.8 Hz) 09b5 005b ld $5b 09b6 007f ld $7f ;F#7 (2960.0 Hz) 09b7 0060 ld $60 09b8 0061 ld $61 ;G-7 (3136.0 Hz) 09b9 0066 ld $66 09ba 006f ld $6f ;G#7 (3322.4 Hz) 09bb 006c ld $6c 09bc 002c ld $2c ;A-7 (3520.0 Hz) 09bd 0073 ld $73 09be 001a ld $1a ;A#7 (3729.3 Hz) 09bf 007a ld $7a 2988 2989 # NOTE trampoline, (0x09c0), 2990 label('noteTrampoline') noteTrampoline: 09c0 fe00 bra ac 2991 bra(AC) #+1 09c1 fcc2 bra $09c2 2992 bra(pc()+1) #+3 09c2 15c1 ld [$c1],y 2993 ld([0xC1],Y) #+4 09c3 e11d jmp y,[$1d] 2994 jmp(Y,[vTmp]) #+5 09c4 0200 nop 2995 nop() #+6 2996 09c5 0200 nop 2997 trampoline() 09c6 0200 nop 09c7 0200 nop * 54 times 09fb fe00 bra ac ;+-----------------------------------+ 09fc fcfd bra $09fd ;| | 09fd 1418 ld $18,y ;| Trampoline for page $0900 lookups | 09fe e006 jmp y,$06 ;| | 09ff c218 st [$18] ;+-----------------------------------+ 2998 2999 #----------------------------------------------------------------------- 3000 # 3001 # $0a00 ROM page 10: SPARE 3002 # 3003 #----------------------------------------------------------------------- 3004 3005 align(0x100, size=0x100) 0a00 0200 nop 3006 fillers(until=0xff) 0a01 0200 nop 0a02 0200 nop * 255 times 3007 3008 #----------------------------------------------------------------------- 3009 # 3010 # $0b00 ROM page 11: More SYS functions 3011 # 3012 #----------------------------------------------------------------------- 3013 0aff 0200 nop 3014 align(0x100, size=0x100) 3015 3016 #----------------------------------------------------------------------- 3017 # Extension SYS_SetMode_v2_80 3018 #----------------------------------------------------------------------- 3019 # 3020 # Set video mode to 0 to 3 black scanlines per pixel line. 3021 # 3022 # Mainly for making the MODE command available in Tiny BASIC, so that 3023 # the user can experiment. It's adviced to refrain from using 3024 # SYS_SetMode_v2_80 in regular applications. Video mode is a deeply 3025 # personal preference, and the programmer shouldn't overrule the user 3026 # in that choice. The Gigatron philisophy is that the end user has 3027 # the final say on what happens on the system, not the application, 3028 # even if that implies a degraded performance. This doesn't mean that 3029 # all applications must work well in all video modes: mode 1 is still 3030 # the default. If an application really doesn't work at all in that 3031 # mode, it's acceptable to change mode once after loading. 3032 # 3033 # There's no "SYS_GetMode" function. 3034 # 3035 # Variables: 3036 # vAC bit 0:1 Mode: 3037 # 0 "ABCD" -> Full mode (slowest) 3038 # 1 "ABC-" -> Default mode after reset 3039 # 2 "A-C-" -> at67's mode 3040 # 3 "A---" -> HGM's mode 3041 # vAC bit 2:15 Ignored bits and should be 0 3042 # 3043 # Special values (ROM v4): 3044 # vAC = 1975 Zombie mode (no video signals, no input, 3045 # no blinkenlights). 3046 # vAC = -1 Leave zombie mode and restore previous mode. 3047 3048 # Actual duration is <80 cycles, but keep some room for future extensions 3049 label('SYS_SetMode_v2_80') SYS_SetMode_v2_80: 0b00 140b ld $0b,y 3050 ld(hi('sys_SetMode'),Y) #15 0b01 e054 jmp y,$54 3051 jmp(Y,'sys_SetMode') #16 0b02 011e ld [$1e] 3052 ld([vReturn]) #17 3053 3054 #----------------------------------------------------------------------- 3055 # Extension SYS_SetMemory_v2_54 3056 #----------------------------------------------------------------------- 3057 # 3058 # SYS function for setting 1..256 bytes 3059 # 3060 # sysArgs[0] Copy count (in, changed) 3061 # sysArgs[1] Copy value (in) 3062 # sysArgs[2:3] Destination address (in, changed) 3063 # 3064 # Sets up to 8 bytes per invocation before restarting itself through vCPU. 3065 # Doesn't wrap around page boundary. Can run 3 times per 148-cycle time slice. 3066 # All combined that gives a 300% speedup over ROMv4 and before. 3067 3068 label('SYS_SetMemory_v2_54') SYS_SetMemory_v2_54: 0b03 0124 ld [$24] 3069 ld([sysArgs+0]) #15 3070 bra('sys_SetMemory#18') #16 0b04 fc18 bra sys_SetMemory#18 0b05 1126 ld [$26],x 3071 ld([sysArgs+2],X) #17 3072 3073 #----------------------------------------------------------------------- 3074 # Extension SYS_SendSerial1_v3_80 3075 #----------------------------------------------------------------------- 3076 # 3077 # SYS function for sending data over serial controller port using 3078 # pulse width modulation of the vertical sync signal. 3079 # 3080 # Variables: 3081 # sysArgs[0:1] Source address (in, changed) 3082 # sysArgs[2] Start bit mask (typically 1) (in, changed) 3083 # sysArgs[3] Number of send frames X (in, changed) 3084 # 3085 # The sending will abort if input data is detected on the serial port. 3086 # Returns 0 in case of all bits sent, or <>0 in case of abort 3087 # 3088 # This modulates the next upcoming X vertical pulses with the supplied 3089 # data. A zero becomes a 7 line vPulse, a one will be 9 lines. 3090 # After that, the vPulse width falls back to 8 lines (idle). 3091 3092 label('SYS_SendSerial1_v3_80') SYS_SendSerial1_v3_80: 0b06 0109 ld [$09] 3093 ld([videoY]) #15 3094 bra('sys_SendSerial1') #16 0b07 fc83 bra sys_SendSerial1 0b08 60b3 xora $b3 3095 xora(videoYline0) #17 First line of vertical blank 3096 3097 #----------------------------------------------------------------------- 3098 # Extension SYS_ExpanderControl_v4_40 3099 #----------------------------------------------------------------------- 3100 # 3101 # Sets the I/O and RAM expander's control register 3102 # 3103 # Variables: 3104 # vAC bit 2 Device enable /SS0 3105 # bit 3 Device enable /SS1 3106 # bit 4 Device enable /SS2 3107 # bit 5 Device enable /SS3 3108 # bit 6 Banking B0 3109 # bit 7 Banking B1 3110 # bit 15 Data out MOSI 3111 # sysArgs[7] Cache for control state (written to) 3112 # 3113 # Intended for prototyping, and probably too low-level for most applications 3114 # Still there's a safeguard: it's not possible to disable RAM using this 3115 3116 label('SYS_ExpanderControl_v4_40') SYS_ExpanderControl_v4_40: 0b09 140d ld $0d,y 3117 ld(hi('sys_ExpanderControl'),Y) #15 0b0a e000 jmp y,$00 3118 jmp(Y,'sys_ExpanderControl') #16 0b0b 000c ld $0c 3119 ld(0b00001100) #17 3120 # ^^^^^^^^ 3121 # |||||||`-- SCLK 3122 # ||||||`--- Not connected 3123 # |||||`---- /SS0 3124 # ||||`----- /SS1 3125 # |||`------ /SS2 3126 # ||`------- /SS3 3127 # |`-------- B0 3128 # `--------- B1 3129 3130 #----------------------------------------------------------------------- 3131 # Extension SPARE 3132 #----------------------------------------------------------------------- 0b0c 1403 ld $03,y 3133 ld(hi('REENTER'),Y) #15 slot 0xa7 0b0d e0cb jmp y,$cb 3134 jmp(Y,'REENTER') #16 0b0e 00f6 ld $f6 3135 ld(-20/2) #17 3136 3137 #----------------------------------------------------------------------- 3138 # Extension SYS_ResetWaveforms_v4_50 3139 #----------------------------------------------------------------------- 3140 # 3141 # soundTable[4x+0] = sawtooth, to be modified into metallic/noise 3142 # soundTable[4x+1] = pulse 3143 # soundTable[4x+2] = triangle 3144 # soundTable[4x+3] = sawtooth, also useful to right shift 2 bits 3145 3146 label('SYS_ResetWaveforms_v4_50') SYS_ResetWaveforms_v4_50: 0b0f 140e ld $0e,y 3147 ld(hi('sys_ResetWaveforms'),Y) #15 Initial setup of waveforms. [vAC+0]=i 0b10 e0b2 jmp y,$b2 3148 jmp(Y,'sys_ResetWaveforms') #16 0b11 1407 ld $07,y 3149 ld(soundTable>>8,Y) #17 3150 3151 #----------------------------------------------------------------------- 3152 # Extension SYS_ShuffleNoise_v4_46 3153 #----------------------------------------------------------------------- 3154 # 3155 # Use simple 6-bits variation of RC4 to permutate waveform 0 in soundTable 3156 3157 label('SYS_ShuffleNoise_v4_46') SYS_ShuffleNoise_v4_46: 0b12 140e ld $0e,y 3158 ld(hi('sys_ShuffleNoise'),Y) #15 Shuffle soundTable[4i+0]. [vAC+0]=4j, [vAC+1]=4i 0b13 e0d3 jmp y,$d3 3159 jmp(Y,'sys_ShuffleNoise') #16 0b14 1407 ld $07,y 3160 ld(soundTable>>8,Y) #17 3161 3162 #----------------------------------------------------------------------- 3163 # Extension SYS_SpiExchangeBytes_v4_134 3164 #----------------------------------------------------------------------- 3165 # 3166 # Send AND receive 1..256 bytes over SPI interface 3167 3168 # Variables: 3169 # sysArgs[0] Page index start, for both send/receive (in, changed) 3170 # sysArgs[1] Memory page for send data (in) 3171 # sysArgs[2] Page index stop (in) 3172 # sysArgs[3] Memory page for receive data (in) 3173 # sysArgs[4] Scratch (changed) 3174 3175 label('SYS_SpiExchangeBytes_v4_134') SYS_SpiExchangeBytes_v4_134: 0b15 140d ld $0d,y 3176 ld(hi('sys_SpiExchangeBytes'),Y)#15 0b16 e015 jmp y,$15 3177 jmp(Y,'sys_SpiExchangeBytes') #16 0b17 1401 ld $01,y 3178 ld(hi(ctrlBits),Y) #17 Control state as saved by SYS_ExpanderControl 3179 3180 3181 #----------------------------------------------------------------------- 3182 # SYS Implementations 3183 #----------------------------------------------------------------------- 3184 # 3185 # SYS_SetMemory_54 implementation 3186 label('sys_SetMemory#18') sys_SetMemory#18: 0b18 1527 ld [$27],y 3187 ld([sysArgs+3],Y) #18 0b19 f83c ble .sysSb#21 3188 ble('.sysSb#21') #19 Enter fast lane if >=128 or at 0 (-> 256) 0b1a a008 suba $08 3189 suba(8) #20 0b1b f43e bge .sysSb#23 3190 bge('.sysSb#23') #21 Or when >=8 0b1c c224 st [$24] 3191 st([sysArgs+0]) #22 0b1d 2004 anda $04 3192 anda(4) #23 0b1e f025 beq .sysSb#26 3193 beq('.sysSb#26') #24 0b1f 0125 ld [$25] 3194 ld([sysArgs+1]) #25 Set 4 pixels 0b20 de00 st [y,x++] 3195 st([Y,Xpp]) #26 0b21 de00 st [y,x++] 3196 st([Y,Xpp]) #27 0b22 de00 st [y,x++] 3197 st([Y,Xpp]) #28 0b23 fc28 bra .sysSb#31 3198 bra('.sysSb#31') #29 0b24 de00 st [y,x++] 3199 st([Y,Xpp]) #30 3200 label('.sysSb#26') .sysSb#26: 0b25 0001 ld $01 3201 wait(31-26) #26 0b26 ec26 bne $0b26 0b27 a001 suba $01 3202 label('.sysSb#31') .sysSb#31: 0b28 0124 ld [$24] 3203 ld([sysArgs+0]) #31 0b29 2002 anda $02 3204 anda(2) #32 0b2a f02f beq .sysSb#35 3205 beq('.sysSb#35') #33 0b2b 0125 ld [$25] 3206 ld([sysArgs+1]) #34 Set 2 pixels 0b2c de00 st [y,x++] 3207 st([Y,Xpp]) #35 0b2d fc32 bra .sysSb#38 3208 bra('.sysSb#38') #36 0b2e de00 st [y,x++] 3209 st([Y,Xpp]) #37 3210 label('.sysSb#35') .sysSb#35: 0b2f 0200 nop 3211 wait(38-35) #35 0b30 0200 nop 0b31 0200 nop 3212 label('.sysSb#38') .sysSb#38: 0b32 0124 ld [$24] 3213 ld([sysArgs+0]) #38 0b33 2001 anda $01 3214 anda(1) #39 0b34 f037 beq $0b37 3215 beq(pc()+3) #40 0b35 fc38 bra $0b38 3216 bra(pc()+3) #41 0b36 0125 ld [$25] 3217 ld([sysArgs+1]) #42 Set 1 pixel 0b37 0d00 ld [y,x] 3218 ld([Y,X]) #42(!) No change 0b38 ce00 st [y,x] 3219 st([Y,X]) #43 0b39 1403 ld $03,y 3220 ld(hi('NEXTY'),Y) #44 Return 0b3a e000 jmp y,$00 3221 jmp(Y,'NEXTY') #45 All done 0b3b 00e8 ld $e8 3222 ld(-48/2) #46 3223 label('.sysSb#21') .sysSb#21: 0b3c 0200 nop 3224 nop() #21 0b3d c224 st [$24] 3225 st([sysArgs+0]) #22 3226 label('.sysSb#23') .sysSb#23: 0b3e 0125 ld [$25] 3227 ld([sysArgs+1]) #23 Set 8 pixels 0b3f de00 st [y,x++] 3228 st([Y,Xpp]) #24 0b40 de00 st [y,x++] 3229 st([Y,Xpp]) #25 0b41 de00 st [y,x++] 3230 st([Y,Xpp]) #26 0b42 de00 st [y,x++] 3231 st([Y,Xpp]) #27 0b43 de00 st [y,x++] 3232 st([Y,Xpp]) #28 0b44 de00 st [y,x++] 3233 st([Y,Xpp]) #29 0b45 de00 st [y,x++] 3234 st([Y,Xpp]) #30 0b46 de00 st [y,x++] 3235 st([Y,Xpp]) #31 0b47 0126 ld [$26] 3236 ld([sysArgs+2]) #32 Advance write pointer 0b48 8008 adda $08 3237 adda(8) #33 0b49 c226 st [$26] 3238 st([sysArgs+2]) #34 0b4a 0124 ld [$24] 3239 ld([sysArgs+0]) #35 0b4b f04e beq $0b4e 3240 beq(pc()+3) #36 0b4c fc4f bra $0b4f 3241 bra(pc()+3) #37 0b4d 00fe ld $fe 3242 ld(-2) #38 Self-restart when more to do 0b4e 0000 ld $00 3243 ld(0) #38(!) 0b4f 8116 adda [$16] 3244 adda([vPC]) #39 0b50 c216 st [$16] 3245 st([vPC]) #40 0b51 1403 ld $03,y 3246 ld(hi('REENTER'),Y) #41 0b52 e0cb jmp y,$cb 3247 jmp(Y,'REENTER') #42 0b53 00e9 ld $e9 3248 ld(-46/2) #43 3249 3250 # SYS_SetMode_80 implementation 3251 label('sys_SetMode') sys_SetMode: 0b54 ec57 bne $0b57 3252 bne(pc()+3) #18 0b55 fc57 bra $0b57 3253 bra(pc()+2) #19 0b56 0003 ld $03 3254 ld('startVideo') #20 First enable video if disabled 0b57 c21e st [$1e] 3255 st([vReturn]) #20,21 0b58 0119 ld [$19] 3256 ld([vAC+1]) #22 0b59 f063 beq .sysSm#25 3257 beq('.sysSm#25') #23 0b5a 1403 ld $03,y 3258 ld(hi('REENTER'),Y) #24 0b5b 6118 xora [$18] 3259 xora([vAC]) #25 0b5c 60b0 xora $b0 3260 xora((1975>>8)^(1975&255)) #26 Poor man\'s 1975 detection 0b5d ec60 bne $0b60 3261 bne(pc()+3) #27 0b5e fc61 bra $0b61 3262 bra(pc()+3) #28 3263 assert videoZ == 0x0100 0b5f c21e st [$1e] 3264 st([vReturn]) #29 DISABLE video/audio/serial/etc 0b60 0200 nop 3265 nop() #29(!) Ignore and return 0b61 e0cb jmp y,$cb 3266 jmp(Y,'REENTER') #30 0b62 00ef ld $ef 3267 ld(-34/2) #31 3268 label('.sysSm#25') .sysSm#25: 0b63 0118 ld [$18] 3269 ld([vAC]) #25 Mode 0,1,2,3 0b64 2003 anda $03 3270 anda(3) #26 0b65 8068 adda $68 3271 adda('.sysSm#30') #27 0b66 fe00 bra ac 3272 bra(AC) #28 0b67 fc6c bra .sysSm#31 3273 bra('.sysSm#31') #29 3274 label('.sysSm#30') .sysSm#30: 0b68 000a ld $0a 3275 ld('pixels') #30 videoB lines 0b69 000a ld $0a 3276 ld('pixels') #30 0b6a 00f6 ld $f6 3277 ld('nopixels') #30 0b6b 00f6 ld $f6 3278 ld('nopixels') #30 3279 label('.sysSm#31') .sysSm#31: 0b6c c20a st [$0a] 3280 st([videoModeB]) #31 0b6d 0118 ld [$18] 3281 ld([vAC]) #32 0b6e 2003 anda $03 3282 anda(3) #33 0b6f 8072 adda $72 3283 adda('.sysSm#37') #34 0b70 fe00 bra ac 3284 bra(AC) #35 0b71 fc76 bra .sysSm#38 3285 bra('.sysSm#38') #36 3286 label('.sysSm#37') .sysSm#37: 0b72 000a ld $0a 3287 ld('pixels') #37 videoC lines 0b73 000a ld $0a 3288 ld('pixels') #37 0b74 000a ld $0a 3289 ld('pixels') #37 0b75 00f6 ld $f6 3290 ld('nopixels') #37 3291 label('.sysSm#38') .sysSm#38: 0b76 c20b st [$0b] 3292 st([videoModeC]) #38 0b77 0118 ld [$18] 3293 ld([vAC]) #39 0b78 2003 anda $03 3294 anda(3) #40 0b79 807c adda $7c 3295 adda('.sysSm#44') #41 0b7a fe00 bra ac 3296 bra(AC) #42 0b7b fc80 bra .sysSm#45 3297 bra('.sysSm#45') #43 3298 label('.sysSm#44') .sysSm#44: 0b7c 000a ld $0a 3299 ld('pixels') #44 videoD lines 0b7d 00f6 ld $f6 3300 ld('nopixels') #44 0b7e 00f6 ld $f6 3301 ld('nopixels') #44 0b7f 00f6 ld $f6 3302 ld('nopixels') #44 3303 label('.sysSm#45') .sysSm#45: 0b80 c20c st [$0c] 3304 st([videoModeD]) #45 0b81 e0cb jmp y,$cb 3305 jmp(Y,'REENTER') #46 0b82 00e7 ld $e7 3306 ld(-50/2) #47 3307 3308 # SYS_SendSerial1_v3_80 implementation 3309 label('sys_SendSerial1') sys_SendSerial1: 0b83 f08a beq .sysSs#20 3310 beq('.sysSs#20') #18 0b84 1124 ld [$24],x 3311 ld([sysArgs+0],X) #19 0b85 0116 ld [$16] 3312 ld([vPC]) #20 Wait for vBlank 0b86 a002 suba $02 3313 suba(2) #21 0b87 1403 ld $03,y 3314 ld(hi('REENTER_28'),Y) #22 0b88 e0ca jmp y,$ca 3315 jmp(Y,'REENTER_28') #23 0b89 c216 st [$16] 3316 st([vPC]) #24 3317 label('.sysSs#20') .sysSs#20: 0b8a 1525 ld [$25],y 3318 ld([sysArgs+1],Y) #20 Synchronized with vBlank 0b8b 0d00 ld [y,x] 3319 ld([Y,X]) #21 Copy next bit 0b8c 2126 anda [$26] 3320 anda([sysArgs+2]) #22 0b8d ec90 bne $0b90 3321 bne(pc()+3) #23 0b8e fc91 bra $0b91 3322 bra(pc()+3) #24 0b8f 000e ld $0e 3323 ld(7*2) #25 0b90 0012 ld $12 3324 ld(9*2) #25 0b91 c20d st [$0d] 3325 st([videoPulse]) #26 0b92 0126 ld [$26] 3326 ld([sysArgs+2]) #27 Rotate input bit 0b93 8200 adda ac 3327 adda(AC) #28 0b94 ec97 bne $0b97 3328 bne(pc()+3) #29 0b95 fc97 bra $0b97 3329 bra(pc()+2) #30 0b96 0001 ld $01 3330 ld(1) #31 0b97 c226 st [$26] 3331 st([sysArgs+2]) #31,32 (must be idempotent) 0b98 2001 anda $01 3332 anda(1) #33 Optionally increment pointer 0b99 8124 adda [$24] 3333 adda([sysArgs+0]) #34 0b9a d224 st [$24],x 3334 st([sysArgs+0],X) #35 0b9b 0127 ld [$27] 3335 ld([sysArgs+3]) #36 Frame counter 0b9c a001 suba $01 3336 suba(1) #37 0b9d f0ac beq .sysSs#40 3337 beq('.sysSs#40') #38 0b9e 1403 ld $03,y 3338 ld(hi('REENTER'),Y) #39 0b9f c227 st [$27] 3339 st([sysArgs+3]) #40 0ba0 010f ld [$0f] 3340 ld([serialRaw]) #41 Test for anything being sent back 0ba1 60ff xora $ff 3341 xora(255) #42 0ba2 f0a7 beq .sysSs#45 3342 beq('.sysSs#45') #43 0ba3 c218 st [$18] 3343 st([vAC]) #44 Abort after key press with non-zero error 0ba4 c219 st [$19] 3344 st([vAC+1]) #45 0ba5 e0cb jmp y,$cb 3345 jmp(Y,'REENTER') #46 0ba6 00e7 ld $e7 3346 ld(-50/2) #47 3347 label('.sysSs#45') .sysSs#45: 0ba7 0116 ld [$16] 3348 ld([vPC]) #45 Continue sending bits 0ba8 a002 suba $02 3349 suba(2) #46 0ba9 c216 st [$16] 3350 st([vPC]) #47 0baa e0cb jmp y,$cb 3351 jmp(Y,'REENTER') #48 0bab 00e6 ld $e6 3352 ld(-52/2) #49 3353 label('.sysSs#40') .sysSs#40: 0bac c218 st [$18] 3354 st([vAC]) #40 Stop sending bits, no error 0bad c219 st [$19] 3355 st([vAC+1]) #41 0bae e0cb jmp y,$cb 3356 jmp(Y,'REENTER') #42 0baf 00e9 ld $e9 3357 ld(-46/2) #43 3358 3359 3360 #----------------------------------------------------------------------- 3361 # vCPU Implementations 3362 #----------------------------------------------------------------------- 3363 # 3364 # LDWI implementation 3365 label('ldwi#13') ldwi#13: 0bb0 c218 st [$18] 3366 st([vAC]) #13 Operand 0bb1 de00 st [y,x++] 3367 st([Y,Xpp]) #14 Just X++ 0bb2 0d00 ld [y,x] 3368 ld([Y,X]) #15 Fetch second operand 0bb3 c219 st [$19] 3369 st([vAC+1]) #16 0bb4 0116 ld [$16] 3370 ld([vPC]) #17 Advance vPC one more 0bb5 8001 adda $01 3371 adda(1) #18 0bb6 c216 st [$16] 3372 st([vPC]) #19 0bb7 1403 ld $03,y 3373 ld(hi('NEXTY'),Y) #20 0bb8 e000 jmp y,$00 3374 jmp(Y,'NEXTY') #21 0bb9 00f4 ld $f4 3375 ld(-24/2) #22 3376 3377 # POP implementation 3378 label('pop#13') pop#13: 0bba 1504 ld [$04],y 3379 ld([vSPH],Y) #13 vSP.hi 0bbb 111c ld [$1c],x 3380 ld([vSP],X) #14 0bbc 0d00 ld [y,x] 3381 ld([Y,X]) #15 0bbd de00 st [y,x++] 3382 st([Y,Xpp]) #16 0bbe c21a st [$1a] 3383 st([vLR]) #17 0bbf 0d00 ld [y,x] 3384 ld([Y,X]) #18 0bc0 c21b st [$1b] 3385 st([vLR+1]) #19 0bc1 011c ld [$1c] 3386 ld([vSP]) #20 0bc2 8002 adda $02 3387 adda(2) #21 0bc3 c21c st [$1c] 3388 st([vSP]) #22 0bc4 0116 ld [$16] 3389 ld([vPC]) #23 0bc5 a001 suba $01 3390 suba(1) #24 0bc6 c216 st [$16] 3391 st([vPC]) #25 0bc7 1403 ld $03,y 3392 ld(hi('NEXTY'),Y) #26 0bc8 e000 jmp y,$00 3393 jmp(Y,'NEXTY') #27 0bc9 00f1 ld $f1 3394 ld(-30/2) #28 3395 3396 # PUSH implementation 3397 label('push#13') push#13: 0bca 1504 ld [$04],y 3398 ld([vSPH],Y) #13 vSP.hi 0bcb 011c ld [$1c] 3399 ld([vSP]) #14 0bcc a002 suba $02 3400 suba(2) #15 0bcd d21c st [$1c],x 3401 st([vSP],X) #16 0bce 011a ld [$1a] 3402 ld([vLR]) #17 0bcf de00 st [y,x++] 3403 st([Y,Xpp]) #18 0bd0 011b ld [$1b] 3404 ld([vLR+1]) #19 0bd1 ce00 st [y,x] 3405 st([Y,X]) #20 0bd2 0116 ld [$16] 3406 ld([vPC]) #21 0bd3 a001 suba $01 3407 suba(1) #22 0bd4 c216 st [$16] 3408 st([vPC]) #23 0bd5 1403 ld $03,y 3409 ld(hi('NEXTY'),Y) #24 0bd6 e000 jmp y,$00 3410 jmp(Y,'NEXTY') #25 0bd7 00f2 ld $f2 3411 ld(-28/2) #26 3412 3413 3414 #----------------------------------------------------------------------- 3415 # 3416 # $0c00 ROM page 12: More SYS functions (sprites) 3417 # 3418 # Page 1: vertical blank interval 3419 # Page 2: visible scanlines 3420 # 3421 #----------------------------------------------------------------------- 3422 0bd8 0200 nop 3423 align(0x100, size=0x100) 0bd9 0200 nop 0bda 0200 nop * 40 times 3424 3425 #----------------------------------------------------------------------- 3426 # Extension SYS_Sprite6_v3_64 3427 # Extension SYS_Sprite6x_v3_64 3428 # Extension SYS_Sprite6y_v3_64 3429 # Extension SYS_Sprite6xy_v3_64 3430 #----------------------------------------------------------------------- 3431 # 3432 # Blit sprite in screen memory 3433 # 3434 # Variables 3435 # vAC Destination address in screen 3436 # sysArgs[0:1] Source address of 6xY pixels (colors 0..63) terminated 3437 # by negative byte value N (typically N = -Y) 3438 # sysArgs[2:7] Scratch (user as copy buffer) 3439 # 3440 # This SYS function draws a sprite of 6 pixels wide and Y pixels high. 3441 # The pixel data is read sequentually from RAM, in horizontal chunks 3442 # of 6 pixels at a time, and then written to the screen through the 3443 # destination pointer (each chunk underneath the previous), thus 3444 # drawing a 6xY stripe. Pixel values should be non-negative. The first 3445 # negative byte N after a chunk signals the end of the sprite data. 3446 # So the sprite's height Y is determined by the source data and is 3447 # therefore flexible. This negative byte value, typically N == -Y, 3448 # is then used to adjust the destination pointer's high byte, to make 3449 # it easier to draw sprites wider than 6 pixels: just repeat the SYS 3450 # call for as many 6-pixel wide stripes you need. All arguments are 3451 # already left in place to facilitate this. After one call, the source 3452 # pointer will point past that source data, effectively: 3453 # src += Y * 6 + 1 3454 # The destination pointer will have been adjusted as: 3455 # dst += (Y + N) * 256 + 6 3456 # (With arithmetic wrapping around on the same memory page) 3457 # 3458 # Y is only limited by source memory, not by CPU cycles. The 3459 # implementation is such that the SYS function self-repeats, each 3460 # time drawing the next 6-pixel chunk. It can typically draw 12 3461 # pixels per scanline this way. 3462 3463 label('SYS_Sprite6_v3_64') 3464 SYS_Sprite6_v3_64: 0c00 1124 ld [$24],x 3465 ld([sysArgs+0],X) #15 Pixel data source address 0c01 1525 ld [$25],y 3466 ld([sysArgs+1],Y) #16 0c02 0d00 ld [y,x] 3467 ld([Y,X]) #17 Next pixel or stop 0c03 f411 bge .sysDpx0 3468 bpl('.sysDpx0') #18 0c04 de00 st [y,x++] 3469 st([Y,Xpp]) #19 Just X++ 3470 0c05 8119 adda [$19] 3471 adda([vAC+1]) #20 Adjust dst for convenience 0c06 c219 st [$19] 3472 st([vAC+1]) #21 0c07 0118 ld [$18] 3473 ld([vAC]) #22 0c08 8006 adda $06 3474 adda(6) #23 0c09 c218 st [$18] 3475 st([vAC]) #24 0c0a 0124 ld [$24] 3476 ld([sysArgs+0]) #25 Adjust src for convenience 0c0b 8001 adda $01 3477 adda(1) #26 0c0c c224 st [$24] 3478 st([sysArgs+0]) #27 0c0d 0200 nop 3479 nop() #28 0c0e 1403 ld $03,y 3480 ld(hi('REENTER'),Y) #29 Normal exit (no self-repeat) 0c0f e0cb jmp y,$cb 3481 jmp(Y,'REENTER') #30 0c10 00ef ld $ef 3482 ld(-34/2) #31 3483 3484 label('.sysDpx0') .sysDpx0: 0c11 c226 st [$26] 3485 st([sysArgs+2]) #20 Gobble 6 pixels into buffer 0c12 0d00 ld [y,x] 3486 ld([Y,X]) #21 0c13 de00 st [y,x++] 3487 st([Y,Xpp]) #22 Just X++ 0c14 c227 st [$27] 3488 st([sysArgs+3]) #23 0c15 0d00 ld [y,x] 3489 ld([Y,X]) #24 0c16 de00 st [y,x++] 3490 st([Y,Xpp]) #25 Just X++ 0c17 c228 st [$28] 3491 st([sysArgs+4]) #26 0c18 0d00 ld [y,x] 3492 ld([Y,X]) #27 0c19 de00 st [y,x++] 3493 st([Y,Xpp]) #28 Just X++ 0c1a c229 st [$29] 3494 st([sysArgs+5]) #29 0c1b 0d00 ld [y,x] 3495 ld([Y,X]) #30 0c1c de00 st [y,x++] 3496 st([Y,Xpp]) #31 Just X++ 0c1d c22a st [$2a] 3497 st([sysArgs+6]) #32 0c1e 0d00 ld [y,x] 3498 ld([Y,X]) #33 0c1f de00 st [y,x++] 3499 st([Y,Xpp]) #34 Just X++ 0c20 c22b st [$2b] 3500 st([sysArgs+7]) #35 3501 0c21 1118 ld [$18],x 3502 ld([vAC],X) #36 Screen memory destination address 0c22 1519 ld [$19],y 3503 ld([vAC+1],Y) #37 0c23 0126 ld [$26] 3504 ld([sysArgs+2]) #38 Write 6 pixels 0c24 de00 st [y,x++] 3505 st([Y,Xpp]) #39 0c25 0127 ld [$27] 3506 ld([sysArgs+3]) #40 0c26 de00 st [y,x++] 3507 st([Y,Xpp]) #41 0c27 0128 ld [$28] 3508 ld([sysArgs+4]) #42 0c28 de00 st [y,x++] 3509 st([Y,Xpp]) #43 0c29 0129 ld [$29] 3510 ld([sysArgs+5]) #44 0c2a de00 st [y,x++] 3511 st([Y,Xpp]) #45 0c2b 012a ld [$2a] 3512 ld([sysArgs+6]) #46 0c2c de00 st [y,x++] 3513 st([Y,Xpp]) #47 0c2d 012b ld [$2b] 3514 ld([sysArgs+7]) #48 0c2e de00 st [y,x++] 3515 st([Y,Xpp]) #49 3516 0c2f 0124 ld [$24] 3517 ld([sysArgs+0]) #50 src += 6 0c30 8006 adda $06 3518 adda(6) #51 0c31 c224 st [$24] 3519 st([sysArgs+0]) #52 0c32 0119 ld [$19] 3520 ld([vAC+1]) #53 dst += 256 0c33 8001 adda $01 3521 adda(1) #54 0c34 c219 st [$19] 3522 st([vAC+1]) #55 3523 0c35 0116 ld [$16] 3524 ld([vPC]) #56 Self-repeating SYS call 0c36 a002 suba $02 3525 suba(2) #57 0c37 c216 st [$16] 3526 st([vPC]) #58 0c38 1403 ld $03,y 3527 ld(hi('REENTER'),Y) #59 0c39 e0cb jmp y,$cb 3528 jmp(Y,'REENTER') #60 0c3a 00e0 ld $e0 3529 ld(-64/2) #61 3530 0c3b 0200 nop 3531 align(64) 0c3c 0200 nop 0c3d 0200 nop * 5 times 3532 label('SYS_Sprite6x_v3_64') 3533 SYS_Sprite6x_v3_64: 0c40 1124 ld [$24],x 3534 ld([sysArgs+0],X) #15 Pixel data source address 0c41 1525 ld [$25],y 3535 ld([sysArgs+1],Y) #16 0c42 0d00 ld [y,x] 3536 ld([Y,X]) #17 Next pixel or stop 0c43 f451 bge .sysDpx1 3537 bpl('.sysDpx1') #18 0c44 de00 st [y,x++] 3538 st([Y,Xpp]) #19 Just X++ 3539 0c45 8119 adda [$19] 3540 adda([vAC+1]) #20 Adjust dst for convenience 0c46 c219 st [$19] 3541 st([vAC+1]) #21 0c47 0118 ld [$18] 3542 ld([vAC]) #22 0c48 a006 suba $06 3543 suba(6) #23 0c49 c218 st [$18] 3544 st([vAC]) #24 0c4a 0124 ld [$24] 3545 ld([sysArgs+0]) #25 Adjust src for convenience 0c4b 8001 adda $01 3546 adda(1) #26 0c4c c224 st [$24] 3547 st([sysArgs+0]) #27 0c4d 0200 nop 3548 nop() #28 0c4e 1403 ld $03,y 3549 ld(hi('REENTER'),Y) #29 Normal exit (no self-repeat) 0c4f e0cb jmp y,$cb 3550 jmp(Y,'REENTER') #30 0c50 00ef ld $ef 3551 ld(-34/2) #31 3552 3553 label('.sysDpx1') .sysDpx1: 0c51 c22b st [$2b] 3554 st([sysArgs+7]) #20 Gobble 6 pixels into buffer (backwards) 0c52 0d00 ld [y,x] 3555 ld([Y,X]) #21 0c53 de00 st [y,x++] 3556 st([Y,Xpp]) #22 Just X++ 0c54 c22a st [$2a] 3557 st([sysArgs+6]) #23 0c55 0d00 ld [y,x] 3558 ld([Y,X]) #24 0c56 de00 st [y,x++] 3559 st([Y,Xpp]) #25 Just X++ 0c57 c229 st [$29] 3560 st([sysArgs+5]) #26 0c58 0d00 ld [y,x] 3561 ld([Y,X]) #27 0c59 de00 st [y,x++] 3562 st([Y,Xpp]) #28 Just X++ 0c5a c228 st [$28] 3563 st([sysArgs+4]) #29 0c5b 0d00 ld [y,x] 3564 ld([Y,X]) #30 0c5c de00 st [y,x++] 3565 st([Y,Xpp]) #31 Just X++ 0c5d c227 st [$27] 3566 st([sysArgs+3]) #32 0c5e 0d00 ld [y,x] 3567 ld([Y,X]) #33 0c5f de00 st [y,x++] 3568 st([Y,Xpp]) #34 Just X++ 3569 0c60 1118 ld [$18],x 3570 ld([vAC],X) #35 Screen memory destination address 0c61 1519 ld [$19],y 3571 ld([vAC+1],Y) #36 0c62 de00 st [y,x++] 3572 st([Y,Xpp]) #37 Write 6 pixels 0c63 0127 ld [$27] 3573 ld([sysArgs+3]) #38 0c64 de00 st [y,x++] 3574 st([Y,Xpp]) #39 0c65 0128 ld [$28] 3575 ld([sysArgs+4]) #40 0c66 de00 st [y,x++] 3576 st([Y,Xpp]) #41 0c67 0129 ld [$29] 3577 ld([sysArgs+5]) #42 0c68 de00 st [y,x++] 3578 st([Y,Xpp]) #43 0c69 012a ld [$2a] 3579 ld([sysArgs+6]) #44 0c6a de00 st [y,x++] 3580 st([Y,Xpp]) #45 0c6b 012b ld [$2b] 3581 ld([sysArgs+7]) #46 0c6c de00 st [y,x++] 3582 st([Y,Xpp]) #47 3583 0c6d 0124 ld [$24] 3584 ld([sysArgs+0]) #48 src += 6 0c6e 8006 adda $06 3585 adda(6) #49 0c6f c224 st [$24] 3586 st([sysArgs+0]) #50 0c70 0119 ld [$19] 3587 ld([vAC+1]) #51 dst += 256 0c71 8001 adda $01 3588 adda(1) #52 0c72 c219 st [$19] 3589 st([vAC+1]) #53 3590 0c73 0116 ld [$16] 3591 ld([vPC]) #54 Self-repeating SYS call 0c74 a002 suba $02 3592 suba(2) #55 0c75 c216 st [$16] 3593 st([vPC]) #56 0c76 1403 ld $03,y 3594 ld(hi('REENTER'),Y) #57 0c77 e0cb jmp y,$cb 3595 jmp(Y,'REENTER') #58 0c78 00e1 ld $e1 3596 ld(-62/2) #59 3597 0c79 0200 nop 3598 align(64) 0c7a 0200 nop 0c7b 0200 nop * 7 times 3599 label('SYS_Sprite6y_v3_64') 3600 SYS_Sprite6y_v3_64: 0c80 1124 ld [$24],x 3601 ld([sysArgs+0],X) #15 Pixel data source address 0c81 1525 ld [$25],y 3602 ld([sysArgs+1],Y) #16 0c82 0d00 ld [y,x] 3603 ld([Y,X]) #17 Next pixel or stop 0c83 f493 bge .sysDpx2 3604 bpl('.sysDpx2') #18 0c84 de00 st [y,x++] 3605 st([Y,Xpp]) #19 Just X++ 3606 0c85 60ff xora $ff 3607 xora(255) #20 Adjust dst for convenience 0c86 8001 adda $01 3608 adda(1) #21 0c87 8119 adda [$19] 3609 adda([vAC+1]) #22 0c88 c219 st [$19] 3610 st([vAC+1]) #23 0c89 0118 ld [$18] 3611 ld([vAC]) #24 0c8a 8006 adda $06 3612 adda(6) #25 0c8b c218 st [$18] 3613 st([vAC]) #26 0c8c 0124 ld [$24] 3614 ld([sysArgs+0]) #27 Adjust src for convenience 0c8d 8001 adda $01 3615 adda(1) #28 0c8e c224 st [$24] 3616 st([sysArgs+0]) #29 0c8f 0200 nop 3617 nop() #30 0c90 1403 ld $03,y 3618 ld(hi('REENTER'),Y) #31 Normal exit (no self-repeat) 0c91 e0cb jmp y,$cb 3619 jmp(Y,'REENTER') #32 0c92 00ee ld $ee 3620 ld(-36/2) #33 3621 3622 label('.sysDpx2') .sysDpx2: 0c93 c226 st [$26] 3623 st([sysArgs+2]) #20 Gobble 6 pixels into buffer 0c94 0d00 ld [y,x] 3624 ld([Y,X]) #21 0c95 de00 st [y,x++] 3625 st([Y,Xpp]) #22 Just X++ 0c96 c227 st [$27] 3626 st([sysArgs+3]) #23 0c97 0d00 ld [y,x] 3627 ld([Y,X]) #24 0c98 de00 st [y,x++] 3628 st([Y,Xpp]) #25 Just X++ 0c99 c228 st [$28] 3629 st([sysArgs+4]) #26 0c9a 0d00 ld [y,x] 3630 ld([Y,X]) #27 0c9b de00 st [y,x++] 3631 st([Y,Xpp]) #28 Just X++ 0c9c c229 st [$29] 3632 st([sysArgs+5]) #29 0c9d 0d00 ld [y,x] 3633 ld([Y,X]) #30 0c9e de00 st [y,x++] 3634 st([Y,Xpp]) #31 Just X++ 0c9f c22a st [$2a] 3635 st([sysArgs+6]) #32 0ca0 0d00 ld [y,x] 3636 ld([Y,X]) #33 0ca1 de00 st [y,x++] 3637 st([Y,Xpp]) #34 Just X++ 0ca2 c22b st [$2b] 3638 st([sysArgs+7]) #35 3639 0ca3 1118 ld [$18],x 3640 ld([vAC],X) #36 Screen memory destination address 0ca4 1519 ld [$19],y 3641 ld([vAC+1],Y) #37 0ca5 0126 ld [$26] 3642 ld([sysArgs+2]) #38 Write 6 pixels 0ca6 de00 st [y,x++] 3643 st([Y,Xpp]) #39 0ca7 0127 ld [$27] 3644 ld([sysArgs+3]) #40 0ca8 de00 st [y,x++] 3645 st([Y,Xpp]) #41 0ca9 0128 ld [$28] 3646 ld([sysArgs+4]) #42 0caa de00 st [y,x++] 3647 st([Y,Xpp]) #43 0cab 0129 ld [$29] 3648 ld([sysArgs+5]) #44 0cac de00 st [y,x++] 3649 st([Y,Xpp]) #45 0cad 012a ld [$2a] 3650 ld([sysArgs+6]) #46 0cae de00 st [y,x++] 3651 st([Y,Xpp]) #47 0caf 012b ld [$2b] 3652 ld([sysArgs+7]) #48 0cb0 de00 st [y,x++] 3653 st([Y,Xpp]) #49 3654 0cb1 0124 ld [$24] 3655 ld([sysArgs+0]) #50 src += 6 0cb2 8006 adda $06 3656 adda(6) #51 0cb3 c224 st [$24] 3657 st([sysArgs+0]) #52 0cb4 0119 ld [$19] 3658 ld([vAC+1]) #53 dst -= 256 0cb5 a001 suba $01 3659 suba(1) #54 0cb6 c219 st [$19] 3660 st([vAC+1]) #55 3661 0cb7 0116 ld [$16] 3662 ld([vPC]) #56 Self-repeating SYS call 0cb8 a002 suba $02 3663 suba(2) #57 0cb9 c216 st [$16] 3664 st([vPC]) #58 0cba 1403 ld $03,y 3665 ld(hi('REENTER'),Y) #59 0cbb e0cb jmp y,$cb 3666 jmp(Y,'REENTER') #60 0cbc 00e0 ld $e0 3667 ld(-64/2) #61 3668 0cbd 0200 nop 3669 align(64) 0cbe 0200 nop 0cbf 0200 nop 3670 label('SYS_Sprite6xy_v3_64') 3671 SYS_Sprite6xy_v3_64: 0cc0 1124 ld [$24],x 3672 ld([sysArgs+0],X) #15 Pixel data source address 0cc1 1525 ld [$25],y 3673 ld([sysArgs+1],Y) #16 0cc2 0d00 ld [y,x] 3674 ld([Y,X]) #17 Next pixel or stop 0cc3 f4d3 bge .sysDpx3 3675 bpl('.sysDpx3') #18 0cc4 de00 st [y,x++] 3676 st([Y,Xpp]) #19 Just X++ 3677 0cc5 60ff xora $ff 3678 xora(255) #20 Adjust dst for convenience 0cc6 8001 adda $01 3679 adda(1) #21 0cc7 8119 adda [$19] 3680 adda([vAC+1]) #22 0cc8 c219 st [$19] 3681 st([vAC+1]) #23 0cc9 0118 ld [$18] 3682 ld([vAC]) #24 0cca a006 suba $06 3683 suba(6) #25 0ccb c218 st [$18] 3684 st([vAC]) #26 0ccc 0124 ld [$24] 3685 ld([sysArgs+0]) #27 Adjust src for convenience 0ccd 8001 adda $01 3686 adda(1) #28 0cce c224 st [$24] 3687 st([sysArgs+0]) #29 0ccf 0200 nop 3688 nop() #30 0cd0 1403 ld $03,y 3689 ld(hi('REENTER'),Y) #31 Normal exit (no self-repeat) 0cd1 e0cb jmp y,$cb 3690 jmp(Y,'REENTER') #32 0cd2 00ee ld $ee 3691 ld(-36/2) #33 3692 3693 label('.sysDpx3') .sysDpx3: 0cd3 c22b st [$2b] 3694 st([sysArgs+7]) #20 Gobble 6 pixels into buffer (backwards) 0cd4 0d00 ld [y,x] 3695 ld([Y,X]) #21 0cd5 de00 st [y,x++] 3696 st([Y,Xpp]) #22 Just X++ 0cd6 c22a st [$2a] 3697 st([sysArgs+6]) #23 0cd7 0d00 ld [y,x] 3698 ld([Y,X]) #24 0cd8 de00 st [y,x++] 3699 st([Y,Xpp]) #25 Just X++ 0cd9 c229 st [$29] 3700 st([sysArgs+5]) #26 0cda 0d00 ld [y,x] 3701 ld([Y,X]) #27 0cdb de00 st [y,x++] 3702 st([Y,Xpp]) #28 Just X++ 0cdc c228 st [$28] 3703 st([sysArgs+4]) #29 0cdd 0d00 ld [y,x] 3704 ld([Y,X]) #30 0cde de00 st [y,x++] 3705 st([Y,Xpp]) #31 Just X++ 0cdf c227 st [$27] 3706 st([sysArgs+3]) #32 0ce0 0d00 ld [y,x] 3707 ld([Y,X]) #33 0ce1 de00 st [y,x++] 3708 st([Y,Xpp]) #34 Just X++ 3709 0ce2 1118 ld [$18],x 3710 ld([vAC],X) #35 Screen memory destination address 0ce3 1519 ld [$19],y 3711 ld([vAC+1],Y) #36 0ce4 de00 st [y,x++] 3712 st([Y,Xpp]) #37 Write 6 pixels 0ce5 0127 ld [$27] 3713 ld([sysArgs+3]) #38 0ce6 de00 st [y,x++] 3714 st([Y,Xpp]) #39 0ce7 0128 ld [$28] 3715 ld([sysArgs+4]) #40 0ce8 de00 st [y,x++] 3716 st([Y,Xpp]) #41 0ce9 0129 ld [$29] 3717 ld([sysArgs+5]) #42 0cea de00 st [y,x++] 3718 st([Y,Xpp]) #43 0ceb 012a ld [$2a] 3719 ld([sysArgs+6]) #44 0cec de00 st [y,x++] 3720 st([Y,Xpp]) #45 0ced 012b ld [$2b] 3721 ld([sysArgs+7]) #46 0cee de00 st [y,x++] 3722 st([Y,Xpp]) #47 3723 0cef 0124 ld [$24] 3724 ld([sysArgs+0]) #48 src += 6 0cf0 8006 adda $06 3725 adda(6) #49 0cf1 c224 st [$24] 3726 st([sysArgs+0]) #50 0cf2 0119 ld [$19] 3727 ld([vAC+1]) #51 dst -= 256 0cf3 a001 suba $01 3728 suba(1) #52 0cf4 c219 st [$19] 3729 st([vAC+1]) #53 3730 0cf5 0116 ld [$16] 3731 ld([vPC]) #54 Self-repeating SYS call 0cf6 a002 suba $02 3732 suba(2) #55 0cf7 c216 st [$16] 3733 st([vPC]) #56 0cf8 1403 ld $03,y 3734 ld(hi('REENTER'),Y) #57 0cf9 e0cb jmp y,$cb 3735 jmp(Y,'REENTER') #58 0cfa 00e1 ld $e1 3736 ld(-62/2) #59 3737 3738 3739 #----------------------------------------------------------------------- 3740 # More SYS functions, (0x0d00) 3741 #----------------------------------------------------------------------- 3742 0cfb 0200 nop 3743 align(0x100) 0cfc 0200 nop 0cfd 0200 nop * 5 times 3744 3745 label('sys_ExpanderControl') 3746 sys_ExpanderControl: 0d00 1401 ld $01,y 3747 ld(hi(ctrlBits),Y) #18 0d01 2118 anda [$18] 3748 anda([vAC]) #19 check for special ctrl code space 0d02 f009 beq sysEx#22 3749 beq('sysEx#22') #20 0d03 0118 ld [$18] 3750 ld([vAC]) #21 load low byte of ctrl code in delay slot 0d04 20fc anda $fc 3751 anda(0xfc) #22 sanitize normal ctrl code 0d05 caf8 st [y,$f8] 3752 st([Y,ctrlBits]) #23 store in ctrlBits 0d06 c21d st [$1d] 3753 st([vTmp]) #24 store in vTmp 0d07 fc0e bra sysEx#27 3754 bra('sysEx#27') #25 jump to issuing normal ctrl code 0d08 1519 ld [$19],y 3755 ld([vAC+1],Y) #26 load high byte of ctrl code in delay slot 3756 label('sysEx#22') sysEx#22: 0d09 30fc anda $fc,x 3757 anda(0xfc,X) #22 * special ctrl code 0d0a 09f8 ld [y,$f8] 3758 ld([Y,ctrlBits]) #23 get previous normal code from ctrlBits 0d0b c21d st [$1d] 3759 st([vTmp]) #24 save it in vTmp 0d0c 1519 ld [$19],y 3760 ld([vAC+1],Y) #25 load high byte of ctrl code 0d0d cd00 ctrl y,x 3761 ctrl(Y,X) #26 issue special ctrl code 3762 label('sysEx#27') sysEx#27: 0d0e 011d ld [$1d] 3763 ld([vTmp]) #27 load saved normal ctrl code 0d0f 30fc anda $fc,x 3764 anda(0xfc,X) #28 sanitize ctrlBits 0d10 cd00 ctrl y,x 3765 ctrl(Y,X) #29 issue normal ctrl code 0d11 011d ld [$1d] 3766 ld([vTmp]) #30 always load something after ctrl 0d12 1403 ld $03,y 3767 ld(hi('REENTER'),Y) #31 0d13 e0cb jmp y,$cb 3768 jmp(Y,'REENTER') #32 0d14 00ee ld $ee 3769 ld(-36/2) #33 3770 3771 #----------------------------------------------------------------------- 3772 3773 label('sys_SpiExchangeBytes') 3774 sys_SpiExchangeBytes: 0d15 09f8 ld [y,$f8] 3775 ld([Y,ctrlBits]) #18 0d16 c228 st [$28] 3776 st([sysArgs+4]) #19 3777 0d17 1124 ld [$24],x 3778 ld([sysArgs+0],X) #20 Fetch byte to send 0d18 1525 ld [$25],y 3779 ld([sysArgs+1],Y) #21 0d19 0d00 ld [y,x] 3780 ld([Y,X]) #22 3781 3782 for i in range(8): 3783 st([vTmp],Y);C('Bit %d'%(7-i))#23+i*12 0d1a d61d st [$1d],y ;Bit 7 0d1b 1128 ld [$28],x 3784 ld([sysArgs+4],X) #24+i*12 0d1c dd00 ctrl y,x++ 3785 ctrl(Y,Xpp) #25+i*12 Set MOSI 0d1d dd00 ctrl y,x++ 3786 ctrl(Y,Xpp) #26+i*12 Raise SCLK, disable RAM! 0d1e 0100 ld [$00] 3787 ld([0]) #27+i*12 Get MISO 0d1f 200f anda $0f 3788 anda(0b00001111) #28+i*12 This is why R1 as pull-DOWN is simpler 0d20 f023 beq $0d23 3789 beq(pc()+3) #29+i*12 0d21 fc23 bra $0d23 3790 bra(pc()+2) #30+i*12 0d22 0001 ld $01 3791 ld(1) #31+i*12 0d23 cd00 ctrl y,x 3792 ctrl(Y,X) #32+i*12,29+i*12 (Must be idempotent) Lower SCLK 0d24 811d adda [$1d] 3793 adda([vTmp]) #33+i*12 Shift 0d25 811d adda [$1d] 3794 adda([vTmp]) #34+i*12 0d26 d61d st [$1d],y ;Bit 6 0d27 1128 ld [$28],x 0d28 dd00 ctrl y,x++ 0d29 dd00 ctrl y,x++ 0d2a 0100 ld [$00] 0d2b 200f anda $0f 0d2c f02f beq $0d2f 0d2d fc2f bra $0d2f 0d2e 0001 ld $01 0d2f cd00 ctrl y,x 0d30 811d adda [$1d] 0d31 811d adda [$1d] 0d32 d61d st [$1d],y ;Bit 5 0d33 1128 ld [$28],x 0d34 dd00 ctrl y,x++ 0d35 dd00 ctrl y,x++ 0d36 0100 ld [$00] 0d37 200f anda $0f 0d38 f03b beq $0d3b 0d39 fc3b bra $0d3b 0d3a 0001 ld $01 0d3b cd00 ctrl y,x 0d3c 811d adda [$1d] 0d3d 811d adda [$1d] 0d3e d61d st [$1d],y ;Bit 4 0d3f 1128 ld [$28],x 0d40 dd00 ctrl y,x++ 0d41 dd00 ctrl y,x++ 0d42 0100 ld [$00] 0d43 200f anda $0f 0d44 f047 beq $0d47 0d45 fc47 bra $0d47 0d46 0001 ld $01 0d47 cd00 ctrl y,x 0d48 811d adda [$1d] 0d49 811d adda [$1d] 0d4a d61d st [$1d],y ;Bit 3 0d4b 1128 ld [$28],x 0d4c dd00 ctrl y,x++ 0d4d dd00 ctrl y,x++ 0d4e 0100 ld [$00] 0d4f 200f anda $0f 0d50 f053 beq $0d53 0d51 fc53 bra $0d53 0d52 0001 ld $01 0d53 cd00 ctrl y,x 0d54 811d adda [$1d] 0d55 811d adda [$1d] 0d56 d61d st [$1d],y ;Bit 2 0d57 1128 ld [$28],x 0d58 dd00 ctrl y,x++ 0d59 dd00 ctrl y,x++ 0d5a 0100 ld [$00] 0d5b 200f anda $0f 0d5c f05f beq $0d5f 0d5d fc5f bra $0d5f 0d5e 0001 ld $01 0d5f cd00 ctrl y,x 0d60 811d adda [$1d] 0d61 811d adda [$1d] 0d62 d61d st [$1d],y ;Bit 1 0d63 1128 ld [$28],x 0d64 dd00 ctrl y,x++ 0d65 dd00 ctrl y,x++ 0d66 0100 ld [$00] 0d67 200f anda $0f 0d68 f06b beq $0d6b 0d69 fc6b bra $0d6b 0d6a 0001 ld $01 0d6b cd00 ctrl y,x 0d6c 811d adda [$1d] 0d6d 811d adda [$1d] 0d6e d61d st [$1d],y ;Bit 0 0d6f 1128 ld [$28],x 0d70 dd00 ctrl y,x++ 0d71 dd00 ctrl y,x++ 0d72 0100 ld [$00] 0d73 200f anda $0f 0d74 f077 beq $0d77 0d75 fc77 bra $0d77 0d76 0001 ld $01 0d77 cd00 ctrl y,x 0d78 811d adda [$1d] 0d79 811d adda [$1d] 3795 0d7a 1124 ld [$24],x 3796 ld([sysArgs+0],X) #119 Store received byte 0d7b 1527 ld [$27],y 3797 ld([sysArgs+3],Y) #120 0d7c ce00 st [y,x] 3798 st([Y,X]) #121 3799 0d7d 0124 ld [$24] 3800 ld([sysArgs+0]) #122 Advance pointer 0d7e 8001 adda $01 3801 adda(1) #123 0d7f c224 st [$24] 3802 st([sysArgs+0]) #124 3803 0d80 6126 xora [$26] 3804 xora([sysArgs+2]) #125 Reached end? 0d81 f088 beq .sysSpi#128 3805 beq('.sysSpi#128') #126 3806 0d82 0116 ld [$16] 3807 ld([vPC]) #127 Self-repeating SYS call 0d83 a002 suba $02 3808 suba(2) #128 0d84 c216 st [$16] 3809 st([vPC]) #129 0d85 1403 ld $03,y 3810 ld(hi('NEXTY'),Y) #130 0d86 e000 jmp y,$00 3811 jmp(Y,'NEXTY') #131 0d87 00bd ld $bd 3812 ld(-134/2) #132 3813 3814 label('.sysSpi#128') .sysSpi#128: 0d88 1403 ld $03,y 3815 ld(hi('NEXTY'),Y) #128 Continue program 0d89 e000 jmp y,$00 3816 jmp(Y,'NEXTY') #129 0d8a 00be ld $be 3817 ld(-132/2) #130 3818 3819 3820 #----------------------------------------------------------------------- 3821 # Extended vertical blank logic, (0x0e00) 3822 #----------------------------------------------------------------------- 0d8b 0200 nop 3823 align(0x100) 0d8c 0200 nop 0d8d 0200 nop * 117 times 3824 3825 # Check if an IRQ handler is defined 3826 label('vBlankFirst#81') vBlankFirst#81: 0e00 09f6 ld [y,$f6] 3827 ld([Y,vIRQ_v5]) #81 0e01 49f7 ora [y,$f7] 3828 ora([Y,vIRQ_v5+1]) #82 3829 bne('vBlankFirst#85') #83 0e02 ec09 bne vBlankFirst#85 0e03 0116 ld [$16] 3830 ld([vPC]) #84 0e04 0044 ld $44 3831 runVcpu(183-85-extra, #85 Application cycles (scan line 0) 0e05 c21e st [$1e] 0e06 1502 ld [$02],y 0e07 e0ff jmp y,$ff 0e08 001b ld $1b 3832 '---D line 0 timeout but no irq', 3833 returnTo='vBlankFirst#183') 3834 3835 label('vBlankFirst#85') vBlankFirst#85: 0e09 c230 st [$30] 3836 st([vIrqSave+0]) #85 Save vPC 0e0a 0117 ld [$17] 3837 ld([vPC+1]) #86 0e0b c231 st [$31] 3838 st([vIrqSave+1]) #87 0e0c 0118 ld [$18] 3839 ld([vAC]) #88 Save vAC 0e0d c232 st [$32] 3840 st([vIrqSave+2]) #89 0e0e 0119 ld [$19] 3841 ld([vAC+1]) #90 0e0f c233 st [$33] 3842 st([vIrqSave+3]) #91 0e10 0102 ld [$02] 3843 ld([vCpuSelect]) #92 Save vCpuSelect for PREFIX 0e11 c234 st [$34] 3844 st([vIrqSave+4]) #93 0e12 09f6 ld [y,$f6] 3845 ld([Y,vIRQ_v5]) #94 Set vPC to vIRQ 0e13 a002 suba $02 3846 suba(2) #95 0e14 c216 st [$16] 3847 st([vPC]) #96 0e15 09f7 ld [y,$f7] 3848 ld([Y,vIRQ_v5+1]) #97 0e16 c217 st [$17] 3849 st([vPC+1]) #98 0e17 0102 ld [$02] 3850 ld([vCpuSelect]) #99 Handler must save this if needed 0e18 c219 st [$19] 3851 st([vAC+1]) #100 0e19 0000 ld $00 3852 ld(0) #101 0e1a c218 st [$18] 3853 st([vAC]) #102 0e1b 0002 ld $02 3854 ld(hi('ENTER')) #103 Set vCpuSelect to ENTER (=regular vCPU) 0e1c c202 st [$02] 3855 st([vCpuSelect]) #104 0e1d 0044 ld $44 3856 runVcpu(183-105-extra, #105 Application cycles (scan line 0) 0e1e c21e st [$1e] 0e1f 1502 ld [$02],y 0e20 e0ff jmp y,$ff 0e21 0011 ld $11 3857 '---D line 0 timeout with irq', 3858 returnTo='vBlankFirst#183') 3859 3860 # vIRQ sequence WITH interpreter switch 3861 label('vRTI#18') vRTI#18: 0e22 0500 ld [x] 3862 ld([X]) #18 0e23 c202 st [$02] 3863 st([vCpuSelect]) #19 0e24 0130 ld [$30] 3864 ld([0x30]) #20 0e25 c216 st [$16] 3865 st([vPC]) #21 0e26 0131 ld [$31] 3866 ld([0x31]) #22 0e27 c217 st [$17] 3867 st([vPC+1]) #23 0e28 0132 ld [$32] 3868 ld([0x32]) #24 0e29 c218 st [$18] 3869 st([vAC]) #25 0e2a 0133 ld [$33] 3870 ld([0x33]) #26 0e2b c219 st [$19] 3871 st([vAC+1]) #27 0e2c 0200 nop 3872 nop() #28 0e2d 0200 nop 3873 nop() #29 0e2e 0200 nop 3874 nop() #30 #0 This MUST match maxTicks, (ie maxTicks=30) 0e2f 1403 ld $03,y 3875 ld(hi('RESYNC'),Y) #1 0e30 e00c jmp y,$0c 3876 jmp(Y,'RESYNC') #2 0e31 0115 ld [$15] 3877 ld([vTicks]) #3 3878 3879 # Entered last line of vertical blank (line 40) 3880 label('vBlankLast#34') 3881 3882 #----------------------------------------------------------------------- 3883 # Extended vertical blank logic: game controller decoding 3884 #----------------------------------------------------------------------- 3885 # 3886 # Game controller types 3887 # TypeA: Based on 74LS165 shift register (not supported) 3888 # TypeB: Based on CD4021B shift register (standard) 3889 # TypeC: Based on priority encoder 3890 # 3891 # Notes: 3892 # - TypeA was only used during development and first beta test, before ROM v1 3893 # - TypeB appears as type A with negative logic levels 3894 # - TypeB is the game controller type that comes with the original kit and ROM v1 3895 # - TypeB is mimicked by BabelFish / Pluggy McPlugface 3896 # - TypeB requires a prolonged /SER_LATCH, therefore vPulse is 8 scanlines, not 2 3897 # - TypeB and TypeC can be sampled in the same scanline 3898 # - TypeA is 1 scanline shifted as it looks at a different edge (XXX up or down?) 3899 # - TypeC gives incomplete information: lower buttons overshadow higher ones 3900 # 3901 # TypeC Alias Button TypeB 3902 # 00000000 ^@ -> Right 11111110 3903 # 00000001 ^A -> Left 11111101 3904 # 00000011 ^C -> Down 11111011 3905 # 00000111 ^G -> Up 11110111 3906 # 00001111 ^O -> Start 11101111 3907 # 00011111 ^_ -> Select 11011111 3908 # 00111111 ? -> B 10111111 3909 # 01111111 DEL -> A 01111111 3910 # 11111111 -> (None) 11111111 3911 # 3912 # Conversion formula: 3913 # f(x) := 254 - x 3914 3915 # Detect controller TypeC codes vBlankLast#34: 0e32 010f ld [$0f] 3916 ld([serialRaw]) #34 if serialRaw in [0,1,3,7,15,31,63,127,255] 0e33 8001 adda $01 3917 adda(1) #35 0e34 210f anda [$0f] 3918 anda([serialRaw]) #36 0e35 ec46 bne .buttons#39 3919 bne('.buttons#39') #37 3920 3921 # TypeC 0e36 010f ld [$0f] 3922 ld([serialRaw]) #38 [TypeC] if serialRaw < serialLast 0e37 8001 adda $01 3923 adda(1) #39 0e38 2110 anda [$10] 3924 anda([serialLast]) #40 0e39 ec3d bne .buttons#43 3925 bne('.buttons#43') #41 0e3a 00fe ld $fe 3926 ld(254) #42 then clear the selected bit 0e3b 0200 nop 3927 nop() #43 0e3c fc40 bra .buttons#46 3928 bra('.buttons#46') #44 3929 label('.buttons#43') .buttons#43: 0e3d a10f suba [$0f] 3930 suba([serialRaw]) #43,45 0e3e 2111 anda [$11] 3931 anda([buttonState]) #44 0e3f c211 st [$11] 3932 st([buttonState]) #45 3933 label('.buttons#46') .buttons#46: 0e40 010f ld [$0f] 3934 ld([serialRaw]) #46 Set the lower bits 0e41 4111 ora [$11] 3935 ora([buttonState]) #47 3936 label('.buttons#48') .buttons#48: 0e42 c211 st [$11] 3937 st([buttonState]) #48 0e43 010f ld [$0f] 3938 ld([serialRaw]) #49 Update serialLast for next pass 0e44 e0a5 jmp y,$a5 3939 jmp(Y,'vBlankLast#52') #50 0e45 c210 st [$10] 3940 st([serialLast]) #51 3941 3942 # TypeB 3943 # pChange = pNew & ~pOld 3944 # nChange = nNew | ~nOld {DeMorgan} 3945 label('.buttons#39') .buttons#39: 0e46 00ff ld $ff 3946 ld(255) #39 [TypeB] Bitwise edge-filter to detect button presses 0e47 6110 xora [$10] 3947 xora([serialLast]) #40 0e48 410f ora [$0f] 3948 ora([serialRaw]) #41 Catch button-press events 0e49 2111 anda [$11] 3949 anda([buttonState]) #42 Keep active button presses 0e4a 410f ora [$0f] 3950 ora([serialRaw]) #43 0e4b 0200 nop 3951 nop() #44 0e4c 0200 nop 3952 nop() #45 0e4d fc42 bra .buttons#48 3953 bra('.buttons#48') #46 0e4e 0200 nop 3954 nop() #47 3955 3956 3957 #----------------------------------------------------------------------- 3958 # 3959 # SYS_Exec_88 implementation 3960 label('sys_Exec') sys_Exec: 0e4f d617 st [$17],y 3961 st([vPC+1],Y) #18 Clear vPCH and Y 0e50 011c ld [$1c] 3962 ld([vSP]) #19 Place ROM loader below current stack pointer 0e51 a037 suba $37 3963 suba(53+2) #20 (AC -> *+0) One extra word for PUSH 0e52 d21d st [$1d],x 3964 st([vTmp],X) #21 0e53 80fe adda $fe 3965 adda(-2) #22 (AC -> *-2) 0e54 c216 st [$16] 3966 st([vPC]) #23 3967 # Start of manually compiled vCPU section 0e55 dc75 st $75,[y,x++] 3968 st('PUSH', [Y,Xpp]) #24 *+0 0e56 dccf st $cf,[y,x++] 3969 st('CALL', [Y,Xpp]) #25 *+26 Fetch first byte 0e57 8023 adda $23 3970 adda(33-(-2)) #26 (AC -> *+33) 0e58 de00 st [y,x++] 3971 st( [Y,Xpp]) #27 *+27 0e59 dc5e st $5e,[y,x++] 3972 st('ST', [Y,Xpp]) #28 *+3 Chunk copy loop 0e5a dc27 st $27,[y,x++] 3973 st(sysArgs+3, [Y,Xpp]) #29 *+4 High-address comes first 0e5b dccf st $cf,[y,x++] 3974 st('CALL', [Y,Xpp]) #30 *+5 0e5c de00 st [y,x++] 3975 st( [Y,Xpp]) #31 *+6 0e5d dc5e st $5e,[y,x++] 3976 st('ST', [Y,Xpp]) #32 *+7 0e5e dc26 st $26,[y,x++] 3977 st(sysArgs+2, [Y,Xpp]) #33 *+8 Then the low address 0e5f dccf st $cf,[y,x++] 3978 st('CALL', [Y,Xpp]) #34 *+9 0e60 de00 st [y,x++] 3979 st( [Y,Xpp]) #35 *+10 0e61 dc5e st $5e,[y,x++] 3980 st('ST', [Y,Xpp]) #36 *+11 Byte copy loop 0e62 dc28 st $28,[y,x++] 3981 st(sysArgs+4, [Y,Xpp]) #37 *+12 Byte count (0 means 256) 0e63 dccf st $cf,[y,x++] 3982 st('CALL', [Y,Xpp]) #38 *+13 0e64 de00 st [y,x++] 3983 st( [Y,Xpp]) #39 *+14 0e65 dcf0 st $f0,[y,x++] 3984 st('POKE', [Y,Xpp]) #40 *+15 0e66 dc26 st $26,[y,x++] 3985 st(sysArgs+2, [Y,Xpp]) #41 *+16 0e67 dc93 st $93,[y,x++] 3986 st('INC', [Y,Xpp]) #42 *+17 0e68 dc26 st $26,[y,x++] 3987 st(sysArgs+2, [Y,Xpp]) #43 *+18 0e69 dc1a st $1a,[y,x++] 3988 st('LD', [Y,Xpp]) #44 *+19 0e6a dc28 st $28,[y,x++] 3989 st(sysArgs+4, [Y,Xpp]) #45 *+20 0e6b dce6 st $e6,[y,x++] 3990 st('SUBI', [Y,Xpp]) #46 *+21 0e6c dc01 st $01,[y,x++] 3991 st(1, [Y,Xpp]) #47 *+22 0e6d dc35 st $35,[y,x++] 3992 st('BCC', [Y,Xpp]) #48 *+23 0e6e dc72 st $72,[y,x++] 3993 st('NE', [Y,Xpp]) #49 *+24 0e6f 80e8 adda $e8 3994 adda(11-2-33) #50 (AC -> *+9) 0e70 de00 st [y,x++] 3995 st( [Y,Xpp]) #51 *+25 0e71 dccf st $cf,[y,x++] 3996 st('CALL', [Y,Xpp]) #52 *+26 Go to next block 0e72 8018 adda $18 3997 adda(33-9) #53 (AC -> *+33) 0e73 de00 st [y,x++] 3998 st( [Y,Xpp]) #54 *+27 0e74 dc35 st $35,[y,x++] 3999 st('BCC', [Y,Xpp]) #55 *+28 0e75 dc72 st $72,[y,x++] 4000 st('NE', [Y,Xpp]) #56 *+29 0e76 80e0 adda $e0 4001 adda(3-2-33) #57 (AC -> *+1) 0e77 de00 st [y,x++] 4002 st( [Y,Xpp]) #58 *+30 0e78 dc63 st $63,[y,x++] 4003 st('POP', [Y,Xpp]) #59 *+31 End 0e79 dcff st $ff,[y,x++] 4004 st('RET', [Y,Xpp]) #60 *+32 4005 # Pointer constant pointing to the routine below (for use by CALL) 0e7a 8022 adda $22 4006 adda(35-1) #61 (AC -> *+35) 0e7b de00 st [y,x++] 4007 st( [Y,Xpp]) #62 *+33 0e7c dc00 st $00,[y,x++] 4008 st(0, [Y,Xpp]) #63 *+34 4009 # Routine to read next byte from ROM and advance read pointer 0e7d dc1a st $1a,[y,x++] 4010 st('LD', [Y,Xpp]) #64 *+35 Test for end of ROM table 0e7e dc24 st $24,[y,x++] 4011 st(sysArgs+0, [Y,Xpp]) #65 *+36 0e7f dc8c st $8c,[y,x++] 4012 st('XORI', [Y,Xpp]) #66 *+37 0e80 dcfb st $fb,[y,x++] 4013 st(251, [Y,Xpp]) #67 *+38 0e81 dc35 st $35,[y,x++] 4014 st('BCC', [Y,Xpp]) #68 *+39 0e82 dc72 st $72,[y,x++] 4015 st('NE', [Y,Xpp]) #69 *+40 0e83 8009 adda $09 4016 adda(46-2-35) #70 (AC -> *+44) 0e84 de00 st [y,x++] 4017 st( [Y,Xpp]) #71 *+41 0e85 dc5e st $5e,[y,x++] 4018 st('ST', [Y,Xpp]) #72 *+42 Wrap to next ROM page 0e86 dc24 st $24,[y,x++] 4019 st(sysArgs+0, [Y,Xpp]) #73 *+43 0e87 dc93 st $93,[y,x++] 4020 st('INC', [Y,Xpp]) #74 *+44 0e88 dc25 st $25,[y,x++] 4021 st(sysArgs+1, [Y,Xpp]) #75 *+45 0e89 dc21 st $21,[y,x++] 4022 st('LDW', [Y,Xpp]) #76 *+46 Read next byte from ROM table 0e8a dc24 st $24,[y,x++] 4023 st(sysArgs+0, [Y,Xpp]) #77 *+47 0e8b dc7f st $7f,[y,x++] 4024 st('LUP', [Y,Xpp]) #78 *+48 0e8c dc00 st $00,[y,x++] 4025 st(0, [Y,Xpp]) #79 *+49 0e8d dc93 st $93,[y,x++] 4026 st('INC', [Y,Xpp]) #80 *+50 Increment read pointer 0e8e dc24 st $24,[y,x++] 4027 st(sysArgs+0, [Y,Xpp]) #81 *+51 0e8f dcff st $ff,[y,x++] 4028 st('RET', [Y,Xpp]) #82 *+52 Return 4029 # Return to interpreter 0e90 1403 ld $03,y 4030 ld(hi('REENTER'),Y) #83 0e91 e0cb jmp y,$cb 4031 jmp(Y,'REENTER') #84 0e92 00d4 ld $d4 4032 ld(-88/2) #85 4033 4034 # SYS_VDrawBits_134 implementation 4035 label('sys_VDrawBits') sys_VDrawBits: 0e93 0000 ld $00 4036 ld(0) #18 4037 label('.sysVdb0') .sysVdb0: 0e94 c21d st [$1d] 4038 st([vTmp]) #19+i*25 0e95 9529 adda [$29],y 4039 adda([sysArgs+5],Y) #20+i*25 Y=[sysPos+1]+[vTmp] 0e96 0126 ld [$26] 4040 ld([sysArgs+2]) #21+i*25 Select color 0e97 e89a blt $0e9a 4041 bmi(pc()+3) #22+i*25 0e98 fc9b bra $0e9b 4042 bra(pc()+3) #23+i*25 0e99 0124 ld [$24] 4043 ld([sysArgs+0]) #24+i*25 0e9a 0125 ld [$25] 4044 ld([sysArgs+1]) #24+i*25(!) 0e9b ce00 st [y,x] 4045 st([Y,X]) #25+i*25 Draw pixel 0e9c 0126 ld [$26] 4046 ld([sysArgs+2]) #26+i*25 Shift byte left 0e9d 8200 adda ac 4047 adda(AC) #27+i*25 0e9e c226 st [$26] 4048 st([sysArgs+2]) #28+i*25 0e9f 011d ld [$1d] 4049 ld([vTmp]) #29+i*25 Unrolled loop (once) 0ea0 8129 adda [$29] 4050 adda([sysArgs+5]) #31+i*25 0ea1 9401 adda $01,y 4051 adda(1,Y) #30+i*25 Y=[sysPos+1]+[vTmp]+1 0ea2 0126 ld [$26] 4052 ld([sysArgs+2]) #32+i*25 Select color 0ea3 e8a6 blt $0ea6 4053 bmi(pc()+3) #33+i*25 0ea4 fca7 bra $0ea7 4054 bra(pc()+3) #34+i*25 0ea5 0124 ld [$24] 4055 ld([sysArgs+0]) #35+i*25 0ea6 0125 ld [$25] 4056 ld([sysArgs+1]) #35+i*25(!) 0ea7 ce00 st [y,x] 4057 st([Y,X]) #36+i*25 Draw pixel 0ea8 0126 ld [$26] 4058 ld([sysArgs+2]) #37+i*25 Shift byte left 0ea9 8200 adda ac 4059 adda(AC) #38+i*25 0eaa c226 st [$26] 4060 st([sysArgs+2]) #39+i*25 0eab 011d ld [$1d] 4061 ld([vTmp]) #40+i*25 Loop counter 0eac a006 suba $06 4062 suba(6) #41+i*25 0ead ec94 bne .sysVdb0 4063 bne('.sysVdb0') #42+i*25 0eae 8008 adda $08 4064 adda(8) #43+i*25 Steps of 2 0eaf 1403 ld $03,y 4065 ld(hi('REENTER'),Y) #119 0eb0 e0cb jmp y,$cb 4066 jmp(Y,'REENTER') #120 0eb1 00c2 ld $c2 4067 ld(-124/2) #121 4068 4069 # SYS_ResetWaveforms_v4_50 implementation 4070 label('sys_ResetWaveforms') sys_ResetWaveforms: 0eb2 0118 ld [$18] 4071 ld([vAC+0]) #18 X=4i 0eb3 8200 adda ac 4072 adda(AC) #19 0eb4 9200 adda ac,x 4073 adda(AC,X) #20 0eb5 0118 ld [$18] 4074 ld([vAC+0]) #21 0eb6 de00 st [y,x++] 4075 st([Y,Xpp]) #22 Sawtooth: T[4i+0] = i 0eb7 2020 anda $20 4076 anda(0x20) #23 Triangle: T[4i+1] = 2i if i<32 else 127-2i 0eb8 ecbb bne $0ebb 4077 bne(pc()+3) #24 0eb9 0118 ld [$18] 4078 ld([vAC+0]) #25 0eba fcbd bra $0ebd 4079 bra(pc()+3) #26 0ebb 8118 adda [$18] 4080 adda([vAC+0]) #26,27 0ebc 607f xora $7f 4081 xora(127) #27 0ebd de00 st [y,x++] 4082 st([Y,Xpp]) #28 0ebe 0118 ld [$18] 4083 ld([vAC+0]) #29 Pulse: T[4i+2] = 0 if i<32 else 63 0ebf 2020 anda $20 4084 anda(0x20) #30 0ec0 ecc3 bne $0ec3 4085 bne(pc()+3) #31 0ec1 fcc4 bra $0ec4 4086 bra(pc()+3) #32 0ec2 0000 ld $00 4087 ld(0) #33 0ec3 003f ld $3f 4088 ld(63) #33(!) 0ec4 de00 st [y,x++] 4089 st([Y,Xpp]) #34 0ec5 0118 ld [$18] 4090 ld([vAC+0]) #35 Sawtooth: T[4i+3] = i 0ec6 ce00 st [y,x] 4091 st([Y,X]) #36 0ec7 8001 adda $01 4092 adda(1) #37 i += 1 0ec8 c218 st [$18] 4093 st([vAC+0]) #38 0ec9 6040 xora $40 4094 xora(64) #39 For 64 iterations 0eca f0cd beq $0ecd 4095 beq(pc()+3) #40 0ecb fcce bra $0ece 4096 bra(pc()+3) #41 0ecc 00fe ld $fe 4097 ld(-2) #42 0ecd 0000 ld $00 4098 ld(0) #42(!) 0ece 8116 adda [$16] 4099 adda([vPC]) #43 0ecf c216 st [$16] 4100 st([vPC]) #44 0ed0 1403 ld $03,y 4101 ld(hi('REENTER'),Y) #45 0ed1 e0cb jmp y,$cb 4102 jmp(Y,'REENTER') #46 0ed2 00e7 ld $e7 4103 ld(-50/2) #47 4104 4105 # SYS_ShuffleNoise_v4_46 implementation 4106 label('sys_ShuffleNoise') sys_ShuffleNoise: 0ed3 1118 ld [$18],x 4107 ld([vAC+0],X) #18 tmp = T[4j] 0ed4 0d00 ld [y,x] 4108 ld([Y,X]) #19 0ed5 c21d st [$1d] 4109 st([vTmp]) #20 0ed6 1119 ld [$19],x 4110 ld([vAC+1],X) #21 T[4j] = T[4i] 0ed7 0d00 ld [y,x] 4111 ld([Y,X]) #22 0ed8 1118 ld [$18],x 4112 ld([vAC+0],X) #23 0ed9 ce00 st [y,x] 4113 st([Y,X]) #24 0eda 8200 adda ac 4114 adda(AC) #25 j += T[4i] 0edb 8200 adda ac 4115 adda(AC,) #26 0edc 8118 adda [$18] 4116 adda([vAC+0]) #27 0edd c218 st [$18] 4117 st([vAC+0]) #28 0ede 1119 ld [$19],x 4118 ld([vAC+1],X) #29 T[4i] = tmp 0edf 011d ld [$1d] 4119 ld([vTmp]) #30 0ee0 ce00 st [y,x] 4120 st([Y,X]) #31 0ee1 0119 ld [$19] 4121 ld([vAC+1]) #32 i += 1 0ee2 8004 adda $04 4122 adda(4) #33 0ee3 c219 st [$19] 4123 st([vAC+1]) #34 0ee4 f0e7 beq $0ee7 4124 beq(pc()+3) #35 For 64 iterations 0ee5 fce8 bra $0ee8 4125 bra(pc()+3) #36 0ee6 00fe ld $fe 4126 ld(-2) #37 0ee7 0000 ld $00 4127 ld(0) #37(!) 0ee8 8116 adda [$16] 4128 adda([vPC]) #38 0ee9 c216 st [$16] 4129 st([vPC]) #39 0eea 1403 ld $03,y 4130 ld(hi('NEXTY'),Y) #40 0eeb e000 jmp y,$00 4131 jmp(Y,'NEXTY') #41 0eec 00ea ld $ea 4132 ld(-44/2) #42 4133 4134 0eed 0200 nop 4135 fillers(until=0xff) 0eee 0200 nop 0eef 0200 nop * 18 times 0eff 0200 nop 4136 align(0x100, size=0x100) 4137 4138 4139 #----------------------------------------------------------------------- 4140 # SPARE, (0x0f00) 4141 #----------------------------------------------------------------------- 4142 0f00 0200 nop 4143 fillers(until=0xff) 0f01 0200 nop 0f02 0200 nop * 255 times 0fff 0200 nop 4144 align(0x100, size=0x100) 4145 4146 4147 #----------------------------------------------------------------------- 4148 # SPARE, (0x1000) 4149 #----------------------------------------------------------------------- 4150 1000 0200 nop 4151 fillers(until=0xff) 1001 0200 nop 1002 0200 nop * 255 times 10ff 0200 nop 4152 align(0x100, size=0x100) 4153 4154 4155 #----------------------------------------------------------------------- 4156 # SPARE, (0x1100) 4157 #----------------------------------------------------------------------- 4158 1100 0200 nop 4159 fillers(until=0xff) 1101 0200 nop 1102 0200 nop * 255 times 11ff 0200 nop 4160 align(0x100, size=0x100) 4161 4162 4163 #----------------------------------------------------------------------- 4164 # SPARE, (0x1200) 4165 #----------------------------------------------------------------------- 4166 1200 0200 nop 4167 fillers(until=0xff) 1201 0200 nop 1202 0200 nop * 255 times 12ff 0200 nop 4168 align(0x100, size=0x100) 4169 4170 4171 #----------------------------------------------------------------------- 4172 # More SYS functions, (0x1300) 4173 #----------------------------------------------------------------------- 4174 # 4175 # sys_Multiply_u8, res:u16 = x:u8 * y:u8 4176 # sysArgs0,1=res, sysArgs2=x, sysArgs3=y, sysArgs4=count 4177 label('SYS_Multiply_u8_vX_48') SYS_Multiply_u8_vX_48: 1300 0128 ld [$28] 4178 ld([sysArgs+4]) #15, 1301 a001 suba $01 4179 suba(1) #16, count-- 4180 bge('.sys_multiply_u8_19') #17, 1302 f407 bge .sys_multiply_u8_19 1303 c228 st [$28] 4181 st([sysArgs+4]) #18, 1304 1403 ld $03,y 4182 ld(hi('REENTER'),Y) #19, 1305 e0cb jmp y,$cb 4183 jmp(Y,'REENTER') #20, 1306 00f4 ld $f4 4184 ld(-24/2) #21, 4185 4186 label('.sys_multiply_u8_19') .sys_multiply_u8_19: 1307 0124 ld [$24] 4187 ld([sysArgs+0]) #19, 1308 3080 anda $80,x 4188 anda(128,X) #20, 1309 8124 adda [$24] 4189 adda([sysArgs+0]) #21, 130a c224 st [$24] 4190 st([sysArgs+0]) #22, 130b 0500 ld [x] 4191 ld([X]) #23, 130c 8125 adda [$25] 4192 adda([sysArgs+1]) #24, 130d 8125 adda [$25] 4193 adda([sysArgs+1]) #25, 130e c225 st [$25] 4194 st([sysArgs+1]) #26, result <<1 130f 0126 ld [$26] 4195 ld([sysArgs+2]) #27, 4196 bmi('.sys_multiply_u8_30') #28, if(x & 0x80) 1310 e819 blt .sys_multiply_u8_30 1311 8126 adda [$26] 4197 adda([sysArgs+2]) #29, 1312 c226 st [$26] 4198 st([sysArgs+2]) #30, x <<= 1 1313 0116 ld [$16] 4199 ld([vPC]) #31, 1314 a002 suba $02 4200 suba(2) #32, 1315 c216 st [$16] 4201 st([vPC]) #33, restart 1316 1403 ld $03,y 4202 ld(hi('NEXTY'),Y) #34, 1317 e000 jmp y,$00 4203 jmp(Y,'NEXTY') #35, 1318 00ed ld $ed 4204 ld(-38/2) #36, 4205 4206 label('.sys_multiply_u8_30') .sys_multiply_u8_30: 1319 c226 st [$26] 4207 st([sysArgs+2]) #30, x <<= 1 131a 0124 ld [$24] 4208 ld([sysArgs+0]) #31, 131b 8127 adda [$27] 4209 adda([sysArgs+3]) #32, 131c c224 st [$24] 4210 st([sysArgs+0]) #33, res.lo += y 4211 bmi('.sys_multiply_u8_36') #34, check carry 131d e82a blt .sys_multiply_u8_36 131e a127 suba [$27] 4212 suba([sysArgs+3]) #35, initial value of res.lo 131f 4127 ora [$27] 4213 ora([sysArgs+3]) #36, carry in bit 7 1320 3080 anda $80,x 4214 anda(0x80,X) #37, move carry to bit 0 1321 0500 ld [x] 4215 ld([X]) #38, 1322 8125 adda [$25] 4216 adda([sysArgs+1]) #39, 1323 c225 st [$25] 4217 st([sysArgs+1]) #40, res.hi += carry 1324 0116 ld [$16] 4218 ld([vPC]) #41, 1325 a002 suba $02 4219 suba(2) #42, 1326 c216 st [$16] 4220 st([vPC]) #43, restart 1327 1403 ld $03,y 4221 ld(hi('NEXTY'),Y) #44, 1328 e000 jmp y,$00 4222 jmp(Y,'NEXTY') #45, 1329 00e8 ld $e8 4223 ld(-48/2) #46, 4224 4225 label('.sys_multiply_u8_36') .sys_multiply_u8_36: 132a 2127 anda [$27] 4226 anda([sysArgs+3]) #36, carry in bit 7 132b 3080 anda $80,x 4227 anda(0x80,X) #37, move carry to bit 0 132c 0500 ld [x] 4228 ld([X]) #38, 132d 8125 adda [$25] 4229 adda([sysArgs+1]) #39, 132e c225 st [$25] 4230 st([sysArgs+1]) #40, res.hi += carry 132f 0116 ld [$16] 4231 ld([vPC]) #41, 1330 a002 suba $02 4232 suba(2) #42, 1331 c216 st [$16] 4233 st([vPC]) #43, restart 1332 1403 ld $03,y 4234 ld(hi('NEXTY'),Y) #44, 1333 e000 jmp y,$00 4235 jmp(Y,'NEXTY') #45, 1334 00e8 ld $e8 4236 ld(-48/2) #46, 4237 4238 # leave some room for updates 1335 0200 nop 4239 fillers(until=0x40) 1336 0200 nop 1337 0200 nop * 11 times 4240 4241 4242 # sys_OffsetVTableY, sysArgs0 = scanline:8, sysArgs1 = scanCount:8, sysArgs2,3 = videoTable:16 4243 label('SYS_OffsetVTableY_vX_36') SYS_OffsetVTableY_vX_36: 1340 0124 ld [$24] 4244 ld([sysArgs+0]) #15, scanline 1341 1126 ld [$26],x 4245 ld([sysArgs+2],X) #16, 1342 1527 ld [$27],y 4246 ld([sysArgs+3],Y) #17, 1343 ce00 st [y,x] 4247 st([Y,X]) #18, [videoTable] = scanline 1344 8001 adda $01 4248 adda(1) #19, 1345 c224 st [$24] 4249 st([sysArgs+0]) #20, scanline++ 1346 0126 ld [$26] 4250 ld([sysArgs+2]) #21, 1347 8002 adda $02 4251 adda(2) #22, 1348 c226 st [$26] 4252 st([sysArgs+2]) #23, videoTable += 2 1349 0125 ld [$25] 4253 ld([sysArgs+1]) #24, 134a a001 suba $01 4254 suba(1) #25, 4255 beq('.sys_offsetvty_28') #26, 134b f053 beq .sys_offsetvty_28 134c c225 st [$25] 4256 st([sysArgs+1]) #27, scanCount-- 134d 0116 ld [$16] 4257 ld([vPC]) #28, 134e a002 suba $02 4258 suba(2) #29, 134f c216 st [$16] 4259 st([vPC]) #30, restart 1350 1403 ld $03,y 4260 ld(hi('REENTER'),Y) #31, 1351 e0cb jmp y,$cb 4261 jmp(Y,'REENTER') #32, 1352 00ee ld $ee 4262 ld(-36/2) #33, 4263 label('.sys_offsetvty_28') .sys_offsetvty_28: 1353 1403 ld $03,y 4264 ld(hi('NEXTY'),Y) #28, 1354 e000 jmp y,$00 4265 jmp(Y,'NEXTY') #29, 1355 00f0 ld $f0 4266 ld(-32/2) #30, 4267 4268 # leave some room for updates 1356 0200 nop 4269 fillers(until=0x60) 1357 0200 nop 1358 0200 nop * 10 times 4270 4271 4272 # sys_FillByteSeq, sysArgs0,1=dst, sysArg2=start, sysArg3=step, sysArg4=count 4273 label('SYS_FillByteSeq_vX_36') SYS_FillByteSeq_vX_36: 1360 1525 ld [$25],y 4274 ld([sysArgs+1],Y) #15 dst pointer 1361 1124 ld [$24],x 4275 ld([sysArgs+0],X) #16, 1362 0124 ld [$24] 4276 ld([sysArgs+0]) #17, 1363 8001 adda $01 4277 adda(1) #18, 1364 c224 st [$24] 4278 st([sysArgs+0]) #19, dst++ 1365 0126 ld [$26] 4279 ld([sysArgs+2]) #20, 1366 ce00 st [y,x] 4280 st([Y,X]) #21, start 1367 8127 adda [$27] 4281 adda([sysArgs+3]) #22, 1368 c226 st [$26] 4282 st([sysArgs+2]) #23, start += step 1369 0128 ld [$28] 4283 ld([sysArgs+4]) #24, 136a a001 suba $01 4284 suba(1) #25, 4285 beq('.sys_fillbyteseq_28') #26, 136b f073 beq .sys_fillbyteseq_28 136c c228 st [$28] 4286 st([sysArgs+4]) #27, 136d 0116 ld [$16] 4287 ld([vPC]) #28, 136e a002 suba $02 4288 suba(2) #29, 136f c216 st [$16] 4289 st([vPC]) #30, restart 1370 1403 ld $03,y 4290 ld(hi('REENTER'),Y) #31, 1371 e0cb jmp y,$cb 4291 jmp(Y,'REENTER') #32, 1372 00ee ld $ee 4292 ld(-36/2) #33, 4293 label('.sys_fillbyteseq_28') .sys_fillbyteseq_28: 1373 1403 ld $03,y 4294 ld(hi('NEXTY'),Y) #28, 1374 e000 jmp y,$00 4295 jmp(Y,'NEXTY') #29, 1375 00f0 ld $f0 4296 ld(-32/2) #30, 4297 4298 # leave some room for updates 1376 0200 nop 4299 fillers(until=0x80) 1377 0200 nop 1378 0200 nop * 10 times 4300 4301 4302 # sys_AddInt8Array, sysArgs0,1=src, sysArgs2,3=dst, sysArgs4=index, sysArgs5=count, dst(i) += src(i) 4303 label('SYS_AddInt8Array_vX_40') SYS_AddInt8Array_vX_40: 1380 0124 ld [$24] 4304 ld([sysArgs+0]) #15, 1381 9128 adda [$28],x 4305 adda([sysArgs+4],X) #16, 1382 1525 ld [$25],y 4306 ld([sysArgs+1],Y) #17, 1383 0d00 ld [y,x] 4307 ld([Y,X]) #18, 1384 c21d st [$1d] 4308 st([vTmp]) #19 1385 0126 ld [$26] 4309 ld([sysArgs+2]) #20, 1386 9128 adda [$28],x 4310 adda([sysArgs+4],X) #21, 1387 1527 ld [$27],y 4311 ld([sysArgs+3],Y) #22, 1388 011d ld [$1d] 4312 ld([vTmp]) #23 1389 8d00 adda [y,x] 4313 adda([Y,X]) #24, 138a ce00 st [y,x] 4314 st([Y,X]) #25, 138b 0129 ld [$29] 4315 ld([sysArgs+5]) #26, 138c a001 suba $01 4316 suba(1) #27, 4317 beq('.sys_addint8Array_30') #28, 138d f098 beq .sys_addint8Array_30 138e c229 st [$29] 4318 st([sysArgs+5]) #29, 138f 0128 ld [$28] 4319 ld([sysArgs+4]) #30, 1390 8001 adda $01 4320 adda(1) #31, 1391 c228 st [$28] 4321 st([sysArgs+4]) #32, index++ 1392 0116 ld [$16] 4322 ld([vPC]) #33, 1393 a002 suba $02 4323 suba(2) #34, 1394 c216 st [$16] 4324 st([vPC]) #35, 1395 1403 ld $03,y 4325 ld(hi('NEXTY'),Y) #36, 1396 e000 jmp y,$00 4326 jmp(Y,'NEXTY') #37, 1397 00ec ld $ec 4327 ld(-40/2) #38, 4328 label('.sys_addint8Array_30') .sys_addint8Array_30: 1398 1403 ld $03,y 4329 ld(hi('NEXTY'),Y) #30, 1399 e000 jmp y,$00 4330 jmp(Y,'NEXTY') #31, 139a 00ef ld $ef 4331 ld(-34/2) #32, 4332 4333 # leave some room for updates 139b 0200 nop 4334 fillers(until=0xa0) 139c 0200 nop 139d 0200 nop * 5 times 4335 4336 4337 # sys_ParityFill, sysArgs0,1=borderColour:fillColour, sysArgs2,3=X:Y start address 4338 # sysArgs4=countXY, sysArgs6=fill toggle, sysArgs7=replace colour 4339 label('SYS_ParityFill_vX_44') SYS_ParityFill_vX_44: 13a0 1527 ld [$27],y 4340 ld([sysArgs+3],Y) #15, 13a1 1126 ld [$26],x 4341 ld([sysArgs+2],X) #16, 13a2 0126 ld [$26] 4342 ld([sysArgs+2]) #17, 13a3 8001 adda $01 4343 adda(1) #18, 13a4 c226 st [$26] 4344 st([sysArgs+2]) #19, x++ 13a5 0128 ld [$28] 4345 ld([sysArgs+4]) #20, 13a6 a001 suba $01 4346 suba(1) #21, countX-- 4347 bge('.sys_parityfill_24') #22, 13a7 f4be bge .sys_parityfill_24 13a8 c228 st [$28] 4348 st([sysArgs+4]) #23, 13a9 0127 ld [$27] 4349 ld([sysArgs+3]) #24, 13aa 8001 adda $01 4350 adda(1) #25, 13ab c227 st [$27] 4351 st([sysArgs+3]) #26, y++ 13ac 0129 ld [$29] 4352 ld([sysArgs+5]) #27, 13ad a001 suba $01 4353 suba(1) #28, countY-- 13ae c229 st [$29] 4354 st([sysArgs+5]) #29, 4355 bne('.sys_parityfill_32') #30, 13af ecb3 bne .sys_parityfill_32 13b0 1403 ld $03,y 4356 ld(hi('REENTER'),Y) #31, 13b1 e0cb jmp y,$cb 4357 jmp(Y,'REENTER') #32, 13b2 00ee ld $ee 4358 ld(-36/2) #33, 4359 label('.sys_parityfill_32') .sys_parityfill_32: 13b3 0182 ld [$82] 4360 ld([0x82]) #32, 13b4 c226 st [$26] 4361 st([sysArgs+2]) #33, restore x 13b5 0183 ld [$83] 4362 ld([0x83]) #34, 13b6 c228 st [$28] 4363 st([sysArgs+4]) #35, restore countX 13b7 0184 ld [$84] 4364 ld([0x84]) #36, 13b8 c22a st [$2a] 4365 st([sysArgs+6]) #37, restore fill toggle 13b9 0116 ld [$16] 4366 ld([vPC]) #38, 13ba a002 suba $02 4367 suba(2) #39, 13bb c216 st [$16] 4368 st([vPC]) #40, restart 13bc e000 jmp y,$00 4369 jmp(Y,'NEXTY') #41, 13bd 00ea ld $ea 4370 ld(-44/2) #42, 4371 4372 label('.sys_parityfill_24') .sys_parityfill_24: 13be 012a ld [$2a] 4373 ld([sysArgs+6]) #24, check fill toggle 4374 bne('.sys_parityfill_27') #25, 13bf ecc9 bne .sys_parityfill_27 13c0 0d00 ld [y,x] 4375 ld([Y,X]) #26, get pixel 13c1 6124 xora [$24] 4376 xora([sysArgs+0]) #27, check border colour 4377 beq('.sys_parityfill_30') #28, 13c2 f0d8 beq .sys_parityfill_30 13c3 0116 ld [$16] 4378 ld([vPC]) #29, 13c4 a002 suba $02 4379 suba(2) #30, 13c5 c216 st [$16] 4380 st([vPC]) #31, restart 13c6 1403 ld $03,y 4381 ld(hi('NEXTY'),Y) #32, 13c7 e000 jmp y,$00 4382 jmp(Y,'NEXTY') #33, 13c8 00ee ld $ee 4383 ld(-36/2) #34, 4384 4385 label('.sys_parityfill_27') .sys_parityfill_27: 13c9 6124 xora [$24] 4386 xora([sysArgs+0]) #27, check border colour 4387 beq('.sys_parityfill_30') #28, 13ca f0d8 beq .sys_parityfill_30 13cb 0d00 ld [y,x] 4388 ld([Y,X]) #29, get pixel 13cc 612b xora [$2b] 4389 xora([sysArgs+7]) #30, check replace colour 13cd ecd0 bne $13d0 4390 bne(pc()+3) #31, ignore replace colour 13ce fcd1 bra $13d1 4391 bra(pc()+3) #32, 13cf 0125 ld [$25] 4392 ld([sysArgs+1]) #33, fill colour 13d0 0d00 ld [y,x] 4393 ld([Y,X]) #33! get pixel 13d1 ce00 st [y,x] 4394 st([Y,X]) #34, set pixel 13d2 0116 ld [$16] 4395 ld([vPC]) #35, 13d3 a002 suba $02 4396 suba(2) #36, 13d4 c216 st [$16] 4397 st([vPC]) #37, restart 13d5 1403 ld $03,y 4398 ld(hi('NEXTY'),Y) #38, 13d6 e000 jmp y,$00 4399 jmp(Y,'NEXTY') #39, 13d7 00eb ld $eb 4400 ld(-42/2) #40, 4401 4402 label('.sys_parityfill_30') .sys_parityfill_30: 13d8 012a ld [$2a] 4403 ld([sysArgs+6]) #30, 13d9 6001 xora $01 4404 xora(0x01) #31, 13da c22a st [$2a] 4405 st([sysArgs+6]) #32, toggle fill 13db 0116 ld [$16] 4406 ld([vPC]) #33, 13dc a002 suba $02 4407 suba(2) #34, 13dd c216 st [$16] 4408 st([vPC]) #35, restart 13de 1403 ld $03,y 4409 ld(hi('NEXTY'),Y) #36, 13df e000 jmp y,$00 4410 jmp(Y,'NEXTY') #37, 13e0 00ec ld $ec 4411 ld(-40/2) #38, 4412 4413 13e1 0200 nop 4414 fillers(until=0xff) 13e2 0200 nop 13e3 0200 nop * 30 times 13ff 0200 nop 4415 align(0x100, size=0x100) 4416 4417 #----------------------------------------------------------------------- 4418 # More vCPU instruction implementations, (0x1400) 4419 #----------------------------------------------------------------------- 4420 # 4421 # JGT implementation 4422 label('jgt#13') jgt#13: 1400 0119 ld [$19] 4423 ld([vAC+1]) #13 1401 e80a blt .jgt#16 4424 blt('.jgt#16') #14 if vAC.hi < 0 1402 4118 ora [$18] 4425 ora([vAC]) #15 1403 ec10 bne .jgt#18 4426 bne('.jgt#18') #16 if (vAC.hi OR vAC.lo) != 0 1404 0116 ld [$16] 4427 ld([vPC]) #17 1405 8001 adda $01 4428 adda(1) #18 1406 c216 st [$16] 4429 st([vPC]) #19 1407 1403 ld $03,y 4430 ld(hi('NEXTY'),Y) #20 1408 e000 jmp y,$00 4431 jmp(Y,'NEXTY') #21 1409 00f4 ld $f4 4432 ld(-24/2) #22 4433 label('.jgt#16') .jgt#16: 140a 0116 ld [$16] 4434 ld([vPC]) #16 140b 8001 adda $01 4435 adda(1) #17 140c c216 st [$16] 4436 st([vPC]) #18 140d 1403 ld $03,y 4437 ld(hi('REENTER'),Y) #19 140e e0cb jmp y,$cb 4438 jmp(Y,'REENTER') #20 140f 00f4 ld $f4 4439 ld(-24/2) #21 4440 label('.jgt#18') .jgt#18: 1410 1517 ld [$17],y 4441 ld([vPC+1],Y) #18 vPC.hi 1411 0d00 ld [y,x] 4442 ld([Y,X]) #19 address of branch destination 1412 c216 st [$16] 4443 st([vPC]) #20 1413 de00 st [y,x++] 4444 st([Y,Xpp]) #21 1414 0d00 ld [y,x] 4445 ld([Y,X]) #22 hi address of jump destination 1415 c217 st [$17] 4446 st([vPC+1]) #23 1416 1403 ld $03,y 4447 ld(hi('NEXTY'),Y) #24 1417 e000 jmp y,$00 4448 jmp(Y,'NEXTY') #25 1418 00f2 ld $f2 4449 ld(-28/2) #26 4450 4451 # JLE implementation 4452 label('jle#13') jle#13: 1419 0119 ld [$19] 4453 ld([vAC+1]) #13 141a e827 blt .jle#16 4454 blt('.jle#16') #14 if vAC.hi < 0 141b 4118 ora [$18] 4455 ora([vAC]) #15 141c ec30 bne .jle#18 4456 bne('.jle#18') #16 if (vAC.hi OR vAC.lo) != 0 141d 0116 ld [$16] 4457 ld([vPC]) #17 141e 1517 ld [$17],y 4458 ld([vPC+1],Y) #18 vPC.hi 141f 0d00 ld [y,x] 4459 ld([Y,X]) #19 address of branch destination 1420 c216 st [$16] 4460 st([vPC]) #20 1421 de00 st [y,x++] 4461 st([Y,Xpp]) #21 1422 0d00 ld [y,x] 4462 ld([Y,X]) #22 hi address of jump destination 1423 c217 st [$17] 4463 st([vPC+1]) #23 1424 1403 ld $03,y 4464 ld(hi('NEXTY'),Y) #24 1425 e000 jmp y,$00 4465 jmp(Y,'NEXTY') #25 1426 00f2 ld $f2 4466 ld(-28/2) #26 4467 label('.jle#16') .jle#16: 1427 1517 ld [$17],y 4468 ld([vPC+1],Y) #16 vPC.hi 1428 0d00 ld [y,x] 4469 ld([Y,X]) #17 address of branch destination 1429 c216 st [$16] 4470 st([vPC]) #18 142a de00 st [y,x++] 4471 st([Y,Xpp]) #19 142b 0d00 ld [y,x] 4472 ld([Y,X]) #20 hi address of jump destination 142c c217 st [$17] 4473 st([vPC+1]) #21 142d 1403 ld $03,y 4474 ld(hi('NEXTY'),Y) #22 142e e000 jmp y,$00 4475 jmp(Y,'NEXTY') #23 142f 00f3 ld $f3 4476 ld(-26/2) #24 4477 label('.jle#18') .jle#18: 1430 8001 adda $01 4478 adda(1) #18 1431 c216 st [$16] 4479 st([vPC]) #19 1432 1403 ld $03,y 4480 ld(hi('NEXTY'),Y) #20 1433 e000 jmp y,$00 4481 jmp(Y,'NEXTY') #21 1434 00f4 ld $f4 4482 ld(-24/2) #22 4483 4484 # JGE implementation 4485 label('jge#13') jge#13: 1435 0119 ld [$19] 4486 ld([vAC+1]) #13 1436 e841 blt .jge#16 4487 blt('.jge#16') #14 if vAC.hi < 0 1437 0116 ld [$16] 4488 ld([vPC]) #15 1438 1517 ld [$17],y 4489 ld([vPC+1],Y) #16 vPC.hi 1439 0d00 ld [y,x] 4490 ld([Y,X]) #17 address of branch destination 143a c216 st [$16] 4491 st([vPC]) #18 143b de00 st [y,x++] 4492 st([Y,Xpp]) #19 143c 0d00 ld [y,x] 4493 ld([Y,X]) #20 hi address of jump destination 143d c217 st [$17] 4494 st([vPC+1]) #21 143e 1403 ld $03,y 4495 ld(hi('NEXTY'),Y) #22 143f e000 jmp y,$00 4496 jmp(Y,'NEXTY') #23 1440 00f3 ld $f3 4497 ld(-26/2) #24 4498 label('.jge#16') .jge#16: 1441 8001 adda $01 4499 adda(1) #16 1442 c216 st [$16] 4500 st([vPC]) #17 1443 1403 ld $03,y 4501 ld(hi('NEXTY'),Y) #18 1444 e000 jmp y,$00 4502 jmp(Y,'NEXTY') #19 1445 00f5 ld $f5 4503 ld(-22/2) #20 4504 4505 4506 # PEEKA+ implementation 4507 label('peeka+#13') peeka+#13: 1446 c21d st [$1d] 4508 st([vTmp]) #13 1447 1519 ld [$19],y 4509 ld([vAC+1],Y) #14 1448 0118 ld [$18] 4510 ld([vAC]) #15 1449 1200 ld ac,x 4511 ld(AC,X) #16 144a 8001 adda $01 4512 adda(1) #17 144b c218 st [$18] 4513 st([vAC]) #18 inc vAC.lo 144c f053 beq .peeka+#21 4514 beq('.peeka+#21') #19 if low byte is 0x00 144d 0d00 ld [y,x] 4515 ld([Y,X]) #20 peek [vAC] 144e 111d ld [$1d],x 4516 ld([vTmp],X) #21 dst var 144f c600 st [x] 4517 st([X]) #22 dst.lo = peek [vAC] 1450 1403 ld $03,y 4518 ld(hi('REENTER'),Y) #23 1451 e0cb jmp y,$cb 4519 jmp(Y,'REENTER') #24 1452 00f2 ld $f2 4520 ld(-28/2) #25 4521 4522 label('.peeka+#21') .peeka+#21: 1453 111d ld [$1d],x 4523 ld([vTmp],X) #21 dst var 1454 c600 st [x] 4524 st([X]) #22 dst.lo = peek [vAC] 1455 0119 ld [$19] 4525 ld([vAC+1]) #23 1456 8001 adda $01 4526 adda(1) #24 1457 c219 st [$19] 4527 st([vAC+1]) #25 inc vAC.hi 1458 1403 ld $03,y 4528 ld(hi('NEXTY'),Y) #26 1459 e000 jmp y,$00 4529 jmp(Y,'NEXTY') #27 145a 00f1 ld $f1 4530 ld(-30/2) #28 4531 4532 4533 # ADDVW implementation 4534 label('addvw#13') addvw#13: 145b 1517 ld [$17],y 4535 ld([vPC+1],Y) #13 145c de00 st [y,x++] 4536 st([Y,Xpp]) #14 145d c22a st [$2a] 4537 st([sysArgs+6]) #15 dst addr 145e 00f1 ld $f1 4538 ld(min(0,maxTicks-60/2)) #16 145f 8115 adda [$15] 4539 adda([vTicks]) #17 1460 e88a blt .addvw#20 4540 blt('.addvw#20') #18 not enough time left, so retry 1461 0d00 ld [y,x] 4541 ld([Y,X]) #19 1462 de00 st [y,x++] 4542 st([Y,Xpp]) #20 1463 c22b st [$2b] 4543 st([sysArgs+7]) #21 src1 addr 1464 0d00 ld [y,x] 4544 ld([Y,X]) #22 1465 1200 ld ac,x 4545 ld(AC,X) #23 src0 addr 1466 1400 ld $00,y 4546 ld(0,Y) #24 1467 0500 ld [x] 4547 ld([X]) #25 1468 c218 st [$18] 4548 st([vAC]) #26 vAC.lo = src0.lo 1469 de00 st [y,x++] 4549 st([Y,Xpp]) #27 146a 0500 ld [x] 4550 ld([X]) #28 146b c219 st [$19] 4551 st([vAC+1]) #29 vAC.hi = src0.hi 146c 112b ld [$2b],x 4552 ld([sysArgs+7],X) #30 146d 0118 ld [$18] 4553 ld([vAC]) #31 146e 8500 adda [x] 4554 adda([X]) #32 146f c218 st [$18] 4555 st([vAC]) #33 vAC.lo = src0.lo + src1.lo 1470 e874 blt .addvw#36 4556 bmi('.addvw#36') #34 calculate carry 1471 a500 suba [x] 4557 suba([X]) #35 1472 fc76 bra .addvw#38 4558 bra('.addvw#38') #36 1473 4500 ora [x] 4559 ora([X]) #37 carry in bit 7 4560 4561 label('.addvw#36') .addvw#36: 1474 2500 anda [x] 4562 anda([X]) #36 carry in bit 7 1475 0200 nop 4563 nop() #37 4564 4565 label('.addvw#38') .addvw#38: 1476 3080 anda $80,x 4566 anda(0x80,X) #38 1477 0500 ld [x] 4567 ld([X]) #39 carry in bit 0 1478 c21d st [$1d] 4568 st([vTmp]) #40 1479 012b ld [$2b] 4569 ld([sysArgs+7]) #41 147a 9001 adda $01,x 4570 adda(1,X) #42 147b 0500 ld [x] 4571 ld([X]) #43 147c 8119 adda [$19] 4572 adda([vAC+1]) #44 147d 811d adda [$1d] 4573 adda([vTmp]) #45 147e c219 st [$19] 4574 st([vAC+1]) #46 147f 112a ld [$2a],x 4575 ld([sysArgs+6],X) #47 1480 0118 ld [$18] 4576 ld([vAC]) #48 1481 de00 st [y,x++] 4577 st([Y,Xpp]) #49 1482 0119 ld [$19] 4578 ld([vAC+1]) #50 1483 ce00 st [y,x] 4579 st([Y,X]) #51 1484 0116 ld [$16] 4580 ld([vPC]) #52 1485 8002 adda $02 4581 adda(2) #53 1486 c216 st [$16] 4582 st([vPC]) #54 1487 1403 ld $03,y 4583 ld(hi('REENTER'),Y) #55 1488 e0cb jmp y,$cb 4584 jmp(Y,'REENTER') #56 1489 00e2 ld $e2 4585 ld(-60/2) #57 4586 4587 label('.addvw#20') .addvw#20: 148a 0116 ld [$16] 4588 ld([vPC]) #20 retry instruction 148b a002 suba $02 4589 suba(2) #21 148c c216 st [$16] 4590 st([vPC]) #22 148d 1403 ld $03,y 4591 ld(hi('REENTER'),Y) #23 148e e0cb jmp y,$cb 4592 jmp(Y,'REENTER') #24 148f 00f2 ld $f2 4593 ld(-28/2) #25 4594 4595 4596 # SUBVW implementation 4597 label('subvw#13') subvw#13: 1490 1517 ld [$17],y 4598 ld([vPC+1],Y) #13 1491 de00 st [y,x++] 4599 st([Y,Xpp]) #14 1492 c22a st [$2a] 4600 st([sysArgs+6]) #15 dst addr 1493 00f2 ld $f2 4601 ld(min(0,maxTicks-58/2)) #16 1494 8115 adda [$15] 4602 adda([vTicks]) #17 1495 e8bf blt .subvw#20 4603 blt('.subvw#20') #18 not enough time left, so retry 1496 0d00 ld [y,x] 4604 ld([Y,X]) #19 1497 de00 st [y,x++] 4605 st([Y,Xpp]) #20 1498 c22b st [$2b] 4606 st([sysArgs+7]) #21 src1 addr 1499 0d00 ld [y,x] 4607 ld([Y,X]) #22 149a 1200 ld ac,x 4608 ld(AC,X) #23 src0 addr 149b 1400 ld $00,y 4609 ld(0,Y) #24 149c 0500 ld [x] 4610 ld([X]) #25 149d c218 st [$18] 4611 st([vAC]) #26 vAC.lo = src0.lo 149e de00 st [y,x++] 4612 st([Y,Xpp]) #27 149f 0500 ld [x] 4613 ld([X]) #28 14a0 c219 st [$19] 4614 st([vAC+1]) #29 vAC.hi = src0.hi 14a1 112b ld [$2b],x 4615 ld([sysArgs+7],X) #30 14a2 0118 ld [$18] 4616 ld([vAC]) #31 14a3 e8a8 blt .subvw#34 4617 bmi('.subvw#34') #32 14a4 a500 suba [x] 4618 suba([X]) #33 vAC.lo = src0.lo - src1.lo 14a5 c218 st [$18] 4619 st([vAC]) #34 low result 14a6 fcab bra .subvw#37 4620 bra('.subvw#37') #35 14a7 4500 ora [x] 4621 ora([X]) #36 borrow in bit 7 4622 4623 label('.subvw#34') .subvw#34: 14a8 c218 st [$18] 4624 st([vAC]) #34 low result 14a9 2500 anda [x] 4625 anda([X]) #35 borrow in bit 7 14aa 0200 nop 4626 nop() #36 4627 4628 label('.subvw#37') .subvw#37: 14ab 3080 anda $80,x 4629 anda(0x80,X) #37 borrow to bit 0 14ac 0119 ld [$19] 4630 ld([vAC+1]) #38 14ad a500 suba [x] 4631 suba([X]) #39 14ae c21d st [$1d] 4632 st([vTmp]) #40 src0.hi - borrow 14af 012b ld [$2b] 4633 ld([sysArgs+7]) #41 14b0 9001 adda $01,x 4634 adda(1,X) #42 14b1 011d ld [$1d] 4635 ld([vTmp]) #43 14b2 a500 suba [x] 4636 suba([X]) #44 src0.hi - borrow - src1.hi 14b3 c219 st [$19] 4637 st([vAC+1]) #45 14b4 112a ld [$2a],x 4638 ld([sysArgs+6],X) #46 14b5 0118 ld [$18] 4639 ld([vAC]) #47 14b6 de00 st [y,x++] 4640 st([Y,Xpp]) #48 14b7 0119 ld [$19] 4641 ld([vAC+1]) #49 14b8 ce00 st [y,x] 4642 st([Y,X]) #50 14b9 0116 ld [$16] 4643 ld([vPC]) #51 14ba 8002 adda $02 4644 adda(2) #52 14bb c216 st [$16] 4645 st([vPC]) #53 14bc 1403 ld $03,y 4646 ld(hi('NEXTY'),Y) #54 14bd e000 jmp y,$00 4647 jmp(Y,'NEXTY') #55 14be 00e3 ld $e3 4648 ld(-58/2) #56 4649 4650 label('.subvw#20') .subvw#20: 14bf 0116 ld [$16] 4651 ld([vPC]) #20 retry instruction 14c0 a002 suba $02 4652 suba(2) #21 14c1 c216 st [$16] 4653 st([vPC]) #22 14c2 1403 ld $03,y 4654 ld(hi('REENTER'),Y) #23 14c3 e0cb jmp y,$cb 4655 jmp(Y,'REENTER') #24 14c4 00f2 ld $f2 4656 ld(-28/2) #25 4657 4658 4659 # PREFX3 implementation 4660 # Original idea by lb3361, see https://forum.gigatron.io/viewtopic.php?p=2099#p2099 4661 label('prefx3#13') prefx3#13: 14c5 0116 ld [$16] 4662 ld([vPC]) #13 14c6 8002 adda $02 4663 adda(2) #14 14c7 c216 st [$16] 4664 st([vPC]) #15 Advance vPC 14c8 0021 ld $21 4665 ld(hi('PREFX3_PAGE')) #16 ENTER is at $(n-1)ff, where n = instruction page 14c9 c202 st [$02] 4666 st([vCpuSelect]) #17 14ca 9401 adda $01,y 4667 adda(1,Y) #18 14cb e000 jmp y,$00 4668 jmp(Y,'NEXTY') #19 14cc 00f5 ld $f5 4669 ld(-22/2) #20 4670 4671 # PREFX2 implementation 4672 label('prefx2#13') prefx2#13: 14cd 0116 ld [$16] 4673 ld([vPC]) #13 14ce 8001 adda $01 4674 adda(1) #14 14cf c216 st [$16] 4675 st([vPC]) #15 Advance vPC 14d0 0022 ld $22 4676 ld(hi('PREFX2_PAGE')) #16 ENTER is at $(n-1)ff, where n = instruction page 14d1 c202 st [$02] 4677 st([vCpuSelect]) #17 14d2 9401 adda $01,y 4678 adda(1,Y) #18 14d3 e000 jmp y,$00 4679 jmp(Y,'NEXTY') #19 14d4 00f5 ld $f5 4680 ld(-22/2) #20 4681 4682 # PREFX1 implementation 4683 label('prefx1#13') prefx1#13: 14d5 c202 st [$02] 4684 st([vCpuSelect]) #13 14d6 9401 adda $01,y 4685 adda(1,Y) #14 14d7 e000 jmp y,$00 4686 jmp(Y,'NEXTY') #15 14d8 00f7 ld $f7 4687 ld(-18/2) #16 4688 4689 14d9 0200 nop 4690 fillers(until=0xff) 14da 0200 nop 14db 0200 nop * 38 times 14ff 0200 nop 4691 align(0x100, size=0x100) 4692 4693 #----------------------------------------------------------------------- 4694 # More vCPU instruction implementations, (0x1500) 4695 #----------------------------------------------------------------------- 4696 # 4697 # ADDI implementation 4698 label('addi#13') addi#13: 1500 8118 adda [$18] 4699 adda([vAC]) #13 1501 c218 st [$18] 4700 st([vAC]) #14 Store low result 1502 e80c blt .addi#17 4701 bmi('.addi#17') #15 Now figure out if there was a carry 1503 a11d suba [$1d] 4702 suba([vTmp]) #16 Gets back the initial value of vAC 1504 411d ora [$1d] 4703 ora([vTmp]) #17 Carry in bit 7 1505 3080 anda $80,x 4704 anda(0x80,X) #18 Move carry to bit 0 1506 0500 ld [x] 4705 ld([X]) #19 1507 8119 adda [$19] 4706 adda([vAC+1]) #20 Add the high bytes with carry 1508 c219 st [$19] 4707 st([vAC+1]) #21 Store high result 1509 1403 ld $03,y 4708 ld(hi('NEXTY'),Y) #22 150a e000 jmp y,$00 4709 jmp(Y,'NEXTY') #23 150b 00f3 ld $f3 4710 ld(-26/2) #24 4711 label('.addi#17') .addi#17: 150c 211d anda [$1d] 4712 anda([vTmp]) #17 Carry in bit 7 150d 3080 anda $80,x 4713 anda(0x80,X) #18 Move carry to bit 0 150e 0500 ld [x] 4714 ld([X]) #19 150f 8119 adda [$19] 4715 adda([vAC+1]) #20 Add the high bytes with carry 1510 c219 st [$19] 4716 st([vAC+1]) #21 Store high result 1511 1403 ld $03,y 4717 ld(hi('NEXTY'),Y) #22 1512 e000 jmp y,$00 4718 jmp(Y,'NEXTY') #23 1513 00f3 ld $f3 4719 ld(-26/2) #24 4720 4721 # SUBI implementation 4722 label('subi#13') subi#13: 1514 0118 ld [$18] 4723 ld([vAC]) #13 1515 e820 blt .subi#16 4724 bmi('.subi#16') #14 1516 a11d suba [$1d] 4725 suba([vTmp]) #15 1517 c218 st [$18] 4726 st([vAC]) #16 Store low result 1518 411d ora [$1d] 4727 ora([vTmp]) #17 Carry in bit 7 1519 3080 anda $80,x 4728 anda(0x80,X) #18 Move carry to bit 0 151a 0119 ld [$19] 4729 ld([vAC+1]) #19 151b a500 suba [x] 4730 suba([X]) #20 151c c219 st [$19] 4731 st([vAC+1]) #21 151d 1403 ld $03,y 4732 ld(hi('NEXTY'),Y) #22 151e e000 jmp y,$00 4733 jmp(Y,'NEXTY') #23 151f 00f3 ld $f3 4734 ld(-26/2) #24 4735 label('.subi#16') .subi#16: 1520 c218 st [$18] 4736 st([vAC]) #16 Store low result 1521 211d anda [$1d] 4737 anda([vTmp]) #17 Carry in bit 7 1522 3080 anda $80,x 4738 anda(0x80,X) #18 Move carry to bit 0 1523 0119 ld [$19] 4739 ld([vAC+1]) #19 1524 a500 suba [x] 4740 suba([X]) #20 1525 c219 st [$19] 4741 st([vAC+1]) #21 1526 1403 ld $03,y 4742 ld(hi('NEXTY'),Y) #22 1527 e000 jmp y,$00 4743 jmp(Y,'NEXTY') #23 1528 00f3 ld $f3 4744 ld(-26/2) #24 4745 4746 # XORW implementation 4747 label('xorw#13') xorw#13: 1529 1400 ld $00,y 4748 ld(0,Y) #13 152a 0500 ld [x] 4749 ld([X]) #14 152b de00 st [y,x++] 4750 st([Y,Xpp]) #15 152c 6118 xora [$18] 4751 xora([vAC]) #16 152d c218 st [$18] 4752 st([vAC]) #17 152e 0500 ld [x] 4753 ld([X]) #18 152f 6119 xora [$19] 4754 xora([vAC+1]) #19 1530 c219 st [$19] 4755 st([vAC+1]) #20 1531 1403 ld $03,y 4756 ld(hi('REENTER'),Y) #21 1532 e0cb jmp y,$cb 4757 jmp(Y,'REENTER') #22 1533 00f3 ld $f3 4758 ld(-26/2) #23 4759 4760 # INCW implementation 4761 label('incw#13') incw#13: 1534 1400 ld $00,y 4762 ld(0,Y) #13 1535 1200 ld ac,x 4763 ld(AC,X) #14 address of low byte to be added 1536 0500 ld [x] 4764 ld([X]) #15 1537 8001 adda $01 4765 adda(1) #16 1538 f03d beq .incw#19 4766 beq('.incw#19') #17 if low byte is 0x00 1539 de00 st [y,x++] 4767 st([Y,Xpp]) #18 inc low byte 153a 1403 ld $03,y 4768 ld(hi('REENTER'),Y) #19 153b e0cb jmp y,$cb 4769 jmp(Y,'REENTER') #20 153c 00f4 ld $f4 4770 ld(-24/2) #21 4771 label('.incw#19') .incw#19: 153d 0500 ld [x] 4772 ld([X]) #19 153e 8001 adda $01 4773 adda(1) #20 153f c600 st [x] 4774 st([X]) #21 inc high byte 1540 1403 ld $03,y 4775 ld(hi('NEXTY'),Y) #22 1541 e000 jmp y,$00 4776 jmp(Y,'NEXTY') #23 1542 00f3 ld $f3 4777 ld(-26/2) #24 4778 4779 # DECW implementation 4780 label('decw#13') decw#13: 1543 1400 ld $00,y 4781 ld(0,Y) #13 1544 1200 ld ac,x 4782 ld(AC,X) #14 address of low byte to be added 1545 0500 ld [x] 4783 ld([X]) #15 1546 a001 suba $01 4784 suba(1) #16 1547 de00 st [y,x++] 4785 st([Y,Xpp]) #17 dec low byte 1548 60ff xora $ff 4786 xora(0xff) #18 if low byte is 0xff 1549 f04d beq .decw#21 4787 beq('.decw#21') #19 154a 1403 ld $03,y 4788 ld(hi('NEXTY'),Y) #20 154b e000 jmp y,$00 4789 jmp(Y,'NEXTY') #21 154c 00f4 ld $f4 4790 ld(-24/2) #22 4791 label('.decw#21') .decw#21: 154d 0500 ld [x] 4792 ld([X]) #21 154e a001 suba $01 4793 suba(1) #22 154f c600 st [x] 4794 st([X]) #23 dec high byte 1550 1403 ld $03,y 4795 ld(hi('NEXTY'),Y) #24 1551 e000 jmp y,$00 4796 jmp(Y,'NEXTY') #25 1552 00f2 ld $f2 4797 ld(-28/2) #26 4798 4799 # DBNE implementation 4800 label('dbne#13') dbne#13: 1553 1517 ld [$17],y 4801 ld([vPC+1],Y) #13 vPC.hi 1554 c21d st [$1d] 4802 st([vTmp]) #14 branch offset 1555 de00 st [y,x++] 4803 st([Y,Xpp]) #15 X++, address of counter 1556 0d00 ld [y,x] 4804 ld([Y,X]) #16 1557 1200 ld ac,x 4805 ld(AC,X) #17 fetch counter 1558 0500 ld [x] 4806 ld([X]) #18 1559 a001 suba $01 4807 suba(1) #19 decrement counter 155a f061 beq .dbne#22 4808 beq('.dbne#22') #20 if zero BRA 155b c600 st [x] 4809 st([X]) #21 155c 011d ld [$1d] 4810 ld([vTmp]) #22 155d c216 st [$16] 4811 st([vPC]) #23 BRA to branch offset 155e 1403 ld $03,y 4812 ld(hi('NEXTY'),Y) #24 155f e000 jmp y,$00 4813 jmp(Y,'NEXTY') #25 1560 00f2 ld $f2 4814 ld(-28/2) #26 4815 label('.dbne#22') .dbne#22: 1561 0116 ld [$16] 4816 ld([vPC]) #22 1562 8001 adda $01 4817 adda(1) #23 1563 c216 st [$16] 4818 st([vPC]) #24 advance vPC by 1 1564 1403 ld $03,y 4819 ld(hi('REENTER'),Y) #25 1565 e0cb jmp y,$cb 4820 jmp(Y,'REENTER') #26 1566 00f1 ld $f1 4821 ld(-30/2) #27 4822 4823 # TEQ implementation 4824 label('teq#13') teq#13: 1567 1200 ld ac,x 4825 ld(AC,X) #13 address of var 1568 0119 ld [$19] 4826 ld([vAC+1]) #14 1569 4118 ora [$18] 4827 ora([vAC]) #15 156a f071 beq .teq#18 4828 beq('.teq#18') #16 if (vAC.hi OR vAC.lo) == 0 156b 1400 ld $00,y 4829 ld(0,Y) #17 156c dc00 st $00,[y,x++] 4830 st(0,[Y,Xpp]) #18 156d cc00 st $00,[y,x] 4831 st(0,[Y,X]) #19 var = 0 156e 1403 ld $03,y 4832 ld(hi('NEXTY'),Y) #20 156f e000 jmp y,$00 4833 jmp(Y,'NEXTY') #21 1570 00f4 ld $f4 4834 ld(-24/2) #22 4835 label('.teq#18') .teq#18: 1571 dcff st $ff,[y,x++] 4836 st(0xFF,[Y,Xpp]) #18 1572 ccff st $ff,[y,x] 4837 st(0xFF,[Y,X]) #19 var = -1 1573 1403 ld $03,y 4838 ld(hi('NEXTY'),Y) #20 1574 e000 jmp y,$00 4839 jmp(Y,'NEXTY') #21 1575 00f4 ld $f4 4840 ld(-24/2) #22 4841 4842 # TNE implementation 4843 label('tne#13') tne#13: 1576 1200 ld ac,x 4844 ld(AC,X) #13 address of var 1577 0119 ld [$19] 4845 ld([vAC+1]) #14 1578 4118 ora [$18] 4846 ora([vAC]) #15 1579 f080 beq .tne#18 4847 beq('.tne#18') #16 if (vAC.hi OR vAC.lo) == 0 157a 1400 ld $00,y 4848 ld(0,Y) #17 157b dcff st $ff,[y,x++] 4849 st(0xFF,[Y,Xpp]) #18 157c ccff st $ff,[y,x] 4850 st(0xFF,[Y,X]) #19 var = -1 157d 1403 ld $03,y 4851 ld(hi('NEXTY'),Y) #20 157e e000 jmp y,$00 4852 jmp(Y,'NEXTY') #21 157f 00f4 ld $f4 4853 ld(-24/2) #22 4854 label('.tne#18') .tne#18: 1580 dc00 st $00,[y,x++] 4855 st(0,[Y,Xpp]) #18 1581 cc00 st $00,[y,x] 4856 st(0,[Y,X]) #19 var = 0 1582 1403 ld $03,y 4857 ld(hi('NEXTY'),Y) #20 1583 e000 jmp y,$00 4858 jmp(Y,'NEXTY') #21 1584 00f4 ld $f4 4859 ld(-24/2) #22 4860 4861 # TGE implementation 4862 label('tge#13') tge#13: 1585 1200 ld ac,x 4863 ld(AC,X) #13 address of var 1586 0119 ld [$19] 4864 ld([vAC+1]) #14 1587 e88e blt .tge#17 4865 bmi('.tge#17') #15 if vAC.hi < 0 1588 1400 ld $00,y 4866 ld(0,Y) #16 1589 dcff st $ff,[y,x++] 4867 st(0xFF,[Y,Xpp]) #17 158a ccff st $ff,[y,x] 4868 st(0xFF,[Y,X]) #18 var = -1 158b 1403 ld $03,y 4869 ld(hi('REENTER'),Y) #19 158c e0cb jmp y,$cb 4870 jmp(Y,'REENTER') #20 158d 00f4 ld $f4 4871 ld(-24/2) #21 4872 label('.tge#17') .tge#17: 158e dc00 st $00,[y,x++] 4873 st(0,[Y,Xpp]) #17 158f cc00 st $00,[y,x] 4874 st(0,[Y,X]) #18 var = 0 1590 1403 ld $03,y 4875 ld(hi('REENTER'),Y) #19 1591 e0cb jmp y,$cb 4876 jmp(Y,'REENTER') #20 1592 00f4 ld $f4 4877 ld(-24/2) #21 4878 4879 # TLT implementation 4880 label('tlt#13') tlt#13: 1593 1200 ld ac,x 4881 ld(AC,X) #13 address of var 1594 0119 ld [$19] 4882 ld([vAC+1]) #14 1595 e89c blt .tlt#17 4883 bmi('.tlt#17') #15 if vAC.hi < 0 1596 1400 ld $00,y 4884 ld(0,Y) #16 1597 dc00 st $00,[y,x++] 4885 st(0,[Y,Xpp]) #17 1598 cc00 st $00,[y,x] 4886 st(0,[Y,X]) #18 var = 0 1599 1403 ld $03,y 4887 ld(hi('REENTER'),Y) #19 159a e0cb jmp y,$cb 4888 jmp(Y,'REENTER') #20 159b 00f4 ld $f4 4889 ld(-24/2) #21 4890 label('.tlt#17') .tlt#17: 159c dcff st $ff,[y,x++] 4891 st(0xFF,[Y,Xpp]) #17 159d ccff st $ff,[y,x] 4892 st(0xFF,[Y,X]) #18 var = -1 159e 1403 ld $03,y 4893 ld(hi('REENTER'),Y) #19 159f e0cb jmp y,$cb 4894 jmp(Y,'REENTER') #20 15a0 00f4 ld $f4 4895 ld(-24/2) #21 4896 4897 # TGT implementation 4898 label('tgt#13') tgt#13: 15a1 1400 ld $00,y 4899 ld(0,Y) #13 15a2 1200 ld ac,x 4900 ld(AC,X) #14 address of var 15a3 0119 ld [$19] 4901 ld([vAC+1]) #15 15a4 e8ad blt .tgt#18 4902 blt('.tgt#18') #16 if vAC.hi < 0 15a5 4118 ora [$18] 4903 ora([vAC]) #17 15a6 ecb2 bne .tgt#20 4904 bne('.tgt#20') #18 if (vAC.hi OR vAC.lo) != 0 15a7 0200 nop 4905 nop() #19 15a8 dc00 st $00,[y,x++] 4906 st(0,[Y,Xpp]) #20 15a9 cc00 st $00,[y,x] 4907 st(0,[Y,X]) #21 var = 0 15aa 1403 ld $03,y 4908 ld(hi('NEXTY'),Y) #22 15ab e000 jmp y,$00 4909 jmp(Y,'NEXTY') #23 15ac 00f3 ld $f3 4910 ld(-26/2) #24 4911 label('.tgt#18') .tgt#18: 15ad dc00 st $00,[y,x++] 4912 st(0,[Y,Xpp]) #18 15ae cc00 st $00,[y,x] 4913 st(0,[Y,X]) #19 var = 0 15af 1403 ld $03,y 4914 ld(hi('NEXTY'),Y) #20 15b0 e000 jmp y,$00 4915 jmp(Y,'NEXTY') #21 15b1 00f4 ld $f4 4916 ld(-24/2) #22 4917 label('.tgt#20') .tgt#20: 15b2 dcff st $ff,[y,x++] 4918 st(0xFF,[Y,Xpp]) #20 15b3 ccff st $ff,[y,x] 4919 st(0xFF,[Y,X]) #21 var = -1 15b4 1403 ld $03,y 4920 ld(hi('NEXTY'),Y) #22 15b5 e000 jmp y,$00 4921 jmp(Y,'NEXTY') #23 15b6 00f3 ld $f3 4922 ld(-26/2) #24 4923 4924 # TLE implementation 4925 label('tle#13') tle#13: 15b7 1400 ld $00,y 4926 ld(0,Y) #13 15b8 1200 ld ac,x 4927 ld(AC,X) #14 address of var 15b9 0119 ld [$19] 4928 ld([vAC+1]) #15 15ba e8c3 blt .tle#18 4929 blt('.tle#18') #16 if vAC.hi < 0 15bb 4118 ora [$18] 4930 ora([vAC]) #17 15bc ecc8 bne .tle#20 4931 bne('.tle#20') #18 if (vAC.hi OR vAC.lo) != 0 15bd 0200 nop 4932 nop() #19 15be dcff st $ff,[y,x++] 4933 st(0xFF,[Y,Xpp]) #20 15bf ccff st $ff,[y,x] 4934 st(0xFF,[Y,X]) #21 var = -1 15c0 1403 ld $03,y 4935 ld(hi('NEXTY'),Y) #22 15c1 e000 jmp y,$00 4936 jmp(Y,'NEXTY') #23 15c2 00f3 ld $f3 4937 ld(-26/2) #24 4938 label('.tle#18') .tle#18: 15c3 dcff st $ff,[y,x++] 4939 st(0xFF,[Y,Xpp]) #18 15c4 ccff st $ff,[y,x] 4940 st(0xFF,[Y,X]) #19 var = -1 15c5 1403 ld $03,y 4941 ld(hi('NEXTY'),Y) #20 15c6 e000 jmp y,$00 4942 jmp(Y,'NEXTY') #21 15c7 00f4 ld $f4 4943 ld(-24/2) #22 4944 label('.tle#20') .tle#20: 15c8 dc00 st $00,[y,x++] 4945 st(0,[Y,Xpp]) #20 15c9 cc00 st $00,[y,x] 4946 st(0,[Y,X]) #21 var = 0 15ca 1403 ld $03,y 4947 ld(hi('NEXTY'),Y) #22 15cb e000 jmp y,$00 4948 jmp(Y,'NEXTY') #23 15cc 00f3 ld $f3 4949 ld(-26/2) #24 4950 4951 # INCWA implementation 4952 label('incwa#13') incwa#13: 15cd 1400 ld $00,y 4953 ld(0,Y) #13 15ce 1200 ld ac,x 4954 ld(AC,X) #14 address of low byte to be added 15cf 0500 ld [x] 4955 ld([X]) #15 15d0 8001 adda $01 4956 adda(1) #16 15d1 de00 st [y,x++] 4957 st([Y,Xpp]) #17 inc low byte 15d2 c218 st [$18] 4958 st([vAC]) #18 15d3 f0d9 beq .incwa#21 4959 beq('.incwa#21') #19 if low byte is 0x00 15d4 0500 ld [x] 4960 ld([X]) #20 15d5 c219 st [$19] 4961 st([vAC+1]) #21 15d6 1403 ld $03,y 4962 ld(hi('NEXTY'),Y) #22 15d7 e000 jmp y,$00 4963 jmp(Y,'NEXTY') #23 15d8 00f3 ld $f3 4964 ld(-26/2) #24 4965 label('.incwa#21') .incwa#21: 15d9 8001 adda $01 4966 adda(1) #21 15da c600 st [x] 4967 st([X]) #22 inc high byte 15db c219 st [$19] 4968 st([vAC+1]) #23 15dc 1403 ld $03,y 4969 ld(hi('NEXTY'),Y) #24 15dd e000 jmp y,$00 4970 jmp(Y,'NEXTY') #25 15de 00f2 ld $f2 4971 ld(-28/2) #26 4972 4973 # DECWA implementation 4974 label('decwa#13') decwa#13: 15df 1400 ld $00,y 4975 ld(0,Y) #13 15e0 1200 ld ac,x 4976 ld(AC,X) #14 address of low byte to be added 15e1 0500 ld [x] 4977 ld([X]) #15 15e2 a001 suba $01 4978 suba(1) #16 15e3 de00 st [y,x++] 4979 st([Y,Xpp]) #17 dec low byte 15e4 c218 st [$18] 4980 st([vAC]) #18 15e5 60ff xora $ff 4981 xora(0xff) #19 if low byte is 0xff 15e6 f0ec beq .decwa#22 4982 beq('.decwa#22') #20 15e7 0500 ld [x] 4983 ld([X]) #21 15e8 c219 st [$19] 4984 st([vAC+1]) #22 15e9 1403 ld $03,y 4985 ld(hi('REENTER'),Y) #23 15ea e0cb jmp y,$cb 4986 jmp(Y,'REENTER') #24 15eb 00f2 ld $f2 4987 ld(-28/2) #25 4988 label('.decwa#22') .decwa#22: 15ec a001 suba $01 4989 suba(1) #22 15ed c600 st [x] 4990 st([X]) #23 dec high byte 15ee c219 st [$19] 4991 st([vAC+1]) #24 15ef 1403 ld $03,y 4992 ld(hi('REENTER'),Y) #25 15f0 e0cb jmp y,$cb 4993 jmp(Y,'REENTER') #26 15f1 00f1 ld $f1 4994 ld(-30/2) #27 4995 4996 15f2 0200 nop 4997 fillers(until=0xff) 15f3 0200 nop 15f4 0200 nop * 13 times 15ff 0200 nop 4998 align(0x100, size=0x100) 4999 5000 #----------------------------------------------------------------------- 5001 # More vCPU instruction implementations, (0x1600) 5002 #----------------------------------------------------------------------- 5003 # 5004 # BRA implementation 5005 label('bra#13') bra#13: 1600 1403 ld $03,y 5006 ld(hi('REENTER'),Y) #13 1601 e0cb jmp y,$cb 5007 jmp(Y,'REENTER') #14 1602 00f7 ld $f7 5008 ld(-18/2) #15 5009 5010 # INC implementation 5011 label('inc#13') inc#13: 1603 1200 ld ac,x 5012 ld(AC,X) #13 1604 0500 ld [x] 5013 ld([X]) #14 1605 8001 adda $01 5014 adda(1) #15 1606 c600 st [x] 5015 st([X]) #16 1607 1403 ld $03,y 5016 ld(hi('REENTER'),Y) #17 1608 e0cb jmp y,$cb 5017 jmp(Y,'REENTER') #18 1609 00f5 ld $f5 5018 ld(-22/2) #19 5019 5020 # DEC implementation 5021 label('dec#13') dec#13: 160a 1200 ld ac,x 5022 ld(AC,X) #13 160b 0500 ld [x] 5023 ld([X]) #14 160c a001 suba $01 5024 suba(1) #15 160d c600 st [x] 5025 st([X]) #16 160e 1403 ld $03,y 5026 ld(hi('REENTER'),Y) #17 160f e0cb jmp y,$cb 5027 jmp(Y,'REENTER') #18 1610 00f5 ld $f5 5028 ld(-22/2) #19 5029 5030 # LD implementation 5031 label('ld#13') ld#13: 1611 1200 ld ac,x 5032 ld(AC,X) #13 1612 0500 ld [x] 5033 ld([X]) #14 1613 c218 st [$18] 5034 st([vAC]) #15 1614 0000 ld $00 5035 ld(0) #16 1615 c219 st [$19] 5036 st([vAC+1]) #17 1616 1403 ld $03,y 5037 ld(hi('NEXTY'),Y) #18 1617 e000 jmp y,$00 5038 jmp(Y,'NEXTY') #19 1618 00f5 ld $f5 5039 ld(-22/2) #20 5040 5041 # LDI implementation 5042 label('ldi#13') ldi#13: 1619 c218 st [$18] 5043 st([vAC]) #13 161a 0000 ld $00 5044 ld(0) #14 161b c219 st [$19] 5045 st([vAC+1]) #15 161c 1403 ld $03,y 5046 ld(hi('NEXTY'),Y) #16 161d e000 jmp y,$00 5047 jmp(Y,'NEXTY') #17 161e 00f6 ld $f6 5048 ld(-20/2) #18 5049 5050 # ST implementation 5051 label('st#13') st#13: 161f 1200 ld ac,x 5052 ld(AC,X) #13 1620 0118 ld [$18] 5053 ld([vAC]) #14 1621 c600 st [x] 5054 st([X]) #15 1622 1403 ld $03,y 5055 ld(hi('NEXTY'),Y) #16 1623 e000 jmp y,$00 5056 jmp(Y,'NEXTY') #17 1624 00f6 ld $f6 5057 ld(-20/2) #18 5058 5059 # ORI implementation 5060 label('ori#13') ori#13: 1625 4118 ora [$18] 5061 ora([vAC]) #13 1626 c218 st [$18] 5062 st([vAC]) #14 1627 1403 ld $03,y 5063 ld(hi('REENTER'),Y) #15 1628 e0cb jmp y,$cb 5064 jmp(Y,'REENTER') #16 1629 00f6 ld $f6 5065 ld(-20/2) #17 5066 5067 # XORI implementation 5068 label('xori#13') xori#13: 162a 6118 xora [$18] 5069 xora([vAC]) #13 162b c218 st [$18] 5070 st([vAC]) #14 162c 1403 ld $03,y 5071 ld(hi('REENTER'),Y) #15 162d e0cb jmp y,$cb 5072 jmp(Y,'REENTER') #16 162e 00f6 ld $f6 5073 ld(-20/2) #17 5074 5075 # LDNI implementation 5076 label('ldni#13') ldni#13: 162f 60ff xora $ff 5077 xora(255) #13 1630 8001 adda $01 5078 adda(1) #14 1631 c218 st [$18] 5079 st([vAC]) #15 1632 00ff ld $ff 5080 ld(255) #16 1633 c219 st [$19] 5081 st([vAC+1]) #17 1634 1403 ld $03,y 5082 ld(hi('NEXTY'),Y) #18 1635 e000 jmp y,$00 5083 jmp(Y,'NEXTY') #19 1636 00f5 ld $f5 5084 ld(-22/2) #20 5085 5086 # NOTB implementation 5087 label('notb#13') notb#13: 1637 0500 ld [x] 5088 ld([X]) #13 1638 60ff xora $ff 5089 xora(255) #14 1639 c600 st [x] 5090 st([X]) #15 163a 1403 ld $03,y 5091 ld(hi('NEXTY'),Y) #16 163b e000 jmp y,$00 5092 jmp(Y,'NEXTY') #17 163c 00f6 ld $f6 5093 ld(-20/2) #18 5094 5095 # ALLOC implementation 5096 label('alloc#13') alloc#13: 163d 811c adda [$1c] 5097 adda([vSP]) #13 163e c21c st [$1c] 5098 st([vSP]) #14 163f 1403 ld $03,y 5099 ld(hi('REENTER'),Y) #15 1640 e0cb jmp y,$cb 5100 jmp(Y,'REENTER') #16 1641 00f6 ld $f6 5101 ld(-20/2) #17 5102 5103 # MOVB implementation 5104 label('movb#13') movb#13: 1642 1517 ld [$17],y 5105 ld([vPC+1],Y) #13 1643 c21d st [$1d] 5106 st([vTmp]) #14 save address of dst var 1644 de00 st [y,x++] 5107 st([Y,Xpp]) #15 X++ 1645 0d00 ld [y,x] 5108 ld([Y,X]) #16 address of src var 1646 1200 ld ac,x 5109 ld(AC,X) #17 1647 0500 ld [x] 5110 ld([X]) #18 get src 1648 111d ld [$1d],x 5111 ld([vTmp],X) #19 address of dst var 1649 c600 st [x] 5112 st([X]) #20 dst.lo = src.lo 164a 0116 ld [$16] 5113 ld([vPC]) #21 164b 8001 adda $01 5114 adda(1) #22 164c c216 st [$16] 5115 st([vPC]) #23 164d 1403 ld $03,y 5116 ld(hi('NEXTY'),Y) #24 164e e000 jmp y,$00 5117 jmp(Y,'NEXTY') #25 164f 00f2 ld $f2 5118 ld(-28/2) #26 5119 5120 # PEEKA implementation 5121 label('peeka#13') peeka#13: 1650 c21d st [$1d] 5122 st([vTmp]) #13 1651 1519 ld [$19],y 5123 ld([vAC+1],Y) #14 1652 1118 ld [$18],x 5124 ld([vAC],X) #15 1653 0d00 ld [y,x] 5125 ld([Y,X]) #16 peek [vAC] 1654 111d ld [$1d],x 5126 ld([vTmp],X) #17 dst var 1655 c600 st [x] 5127 st([X]) #18 dst = peek [vAC] 1656 1403 ld $03,y 5128 ld(hi('REENTER'),Y) #19 1657 e0cb jmp y,$cb 5129 jmp(Y,'REENTER') #20 1658 00f4 ld $f4 5130 ld(-24/2) #21 5131 5132 # DEEKA implementation 5133 label('deeka#13') deeka#13: 1659 1519 ld [$19],y 5134 ld([vAC+1],Y) #13 165a 1118 ld [$18],x 5135 ld([vAC],X) #14 165b 0d00 ld [y,x] 5136 ld([Y,X]) #15 peek [vAC] 165c de00 st [y,x++] 5137 st([Y,Xpp]) #16 165d c22a st [$2a] 5138 st([sysArgs+6]) #17 165e 0d00 ld [y,x] 5139 ld([Y,X]) #18 peek [vAC+1] 165f c22b st [$2b] 5140 st([sysArgs+7]) #19 1660 1400 ld $00,y 5141 ld(0,Y) #20 1661 111d ld [$1d],x 5142 ld([vTmp],X) #21 dst var 1662 012a ld [$2a] 5143 ld([sysArgs+6]) #22 1663 de00 st [y,x++] 5144 st([Y,Xpp]) #23 [var.lo] = peek [vAC] 1664 012b ld [$2b] 5145 ld([sysArgs+7]) #24 1665 ce00 st [y,x] 5146 st([Y,X]) #25 [var.hi] = peek [vAC+1] 1666 1403 ld $03,y 5147 ld(hi('NEXTY'),Y) #26 1667 e000 jmp y,$00 5148 jmp(Y,'NEXTY') #27 1668 00f1 ld $f1 5149 ld(-30/2) #28 5150 5151 # MOVQB implementation 5152 label('movqb#13') movqb#13: 1669 1517 ld [$17],y 5153 ld([vPC+1],Y) #13 vPC.hi 166a c21d st [$1d] 5154 st([vTmp]) #14 immediate value 166b de00 st [y,x++] 5155 st([Y,Xpp]) #15 X++ 166c 0d00 ld [y,x] 5156 ld([Y,X]) #16 166d 1200 ld ac,x 5157 ld(AC,X) #17 address of var 166e 011d ld [$1d] 5158 ld([vTmp]) #18 166f c600 st [x] 5159 st([X]) #19 var.lo = immediate value 1670 0116 ld [$16] 5160 ld([vPC]) #20 1671 8001 adda $01 5161 adda(1) #21 1672 c216 st [$16] 5162 st([vPC]) #22 advance vPC by 1 1673 1403 ld $03,y 5163 ld(hi('REENTER'),Y) #23 1674 e0cb jmp y,$cb 5164 jmp(Y,'REENTER') #24 1675 00f2 ld $f2 5165 ld(-28/2) #25 5166 5167 # MOVQW implementation 5168 label('movqw#13') movqw#13: 1676 1517 ld [$17],y 5169 ld([vPC+1],Y) #13 vPC.hi 1677 c21d st [$1d] 5170 st([vTmp]) #14 immediate value 1678 de00 st [y,x++] 5171 st([Y,Xpp]) #15 X++ 1679 0d00 ld [y,x] 5172 ld([Y,X]) #16 167a 1200 ld ac,x 5173 ld(AC,X) #17 address of var 167b 011d ld [$1d] 5174 ld([vTmp]) #18 167c 1400 ld $00,y 5175 ld(0,Y) #19 167d de00 st [y,x++] 5176 st([Y,Xpp]) #20 var.lo = immediate value 167e c400 st $00,[x] 5177 st(0,[X]) #21 var.hi = 0 167f 0116 ld [$16] 5178 ld([vPC]) #22 1680 8001 adda $01 5179 adda(1) #23 1681 c216 st [$16] 5180 st([vPC]) #24 advance vPC by 1 1682 1403 ld $03,y 5181 ld(hi('REENTER'),Y) #25 1683 e0cb jmp y,$cb 5182 jmp(Y,'REENTER') #26 1684 00f1 ld $f1 5183 ld(-30/2) #27 5184 5185 # PEEKV implementation 5186 label('peekv#13') peekv#13: 1685 1400 ld $00,y 5187 ld(0,Y) #13 1686 0d00 ld [y,x] 5188 ld([Y,X]) #14 low byte peek address 1687 de00 st [y,x++] 5189 st([Y,Xpp]) #15 X++ 1688 c21d st [$1d] 5190 st([vTmp]) #16 1689 0d00 ld [y,x] 5191 ld([Y,X]) #17 high byte peek address 168a 1600 ld ac,y 5192 ld(AC,Y) #18 168b 111d ld [$1d],x 5193 ld([vTmp],X) #19 168c 0d00 ld [y,x] 5194 ld([Y,X]) #20 peek byte 168d c218 st [$18] 5195 st([vAC]) #21 168e 0000 ld $00 5196 ld(0) #22 168f c219 st [$19] 5197 st([vAC+1]) #23 1690 1403 ld $03,y 5198 ld(hi('NEXTY'),Y) #24 1691 e000 jmp y,$00 5199 jmp(Y,'NEXTY') #25 1692 00f2 ld $f2 5200 ld(-28/2) #26 5201 5202 # DEEKV implementation 5203 label('deekv#13') deekv#13: 1693 1200 ld ac,x 5204 ld(AC,X) #13 1694 1400 ld $00,y 5205 ld(0,Y) #14 1695 0d00 ld [y,x] 5206 ld([Y,X]) #15 low byte deek address 1696 de00 st [y,x++] 5207 st([Y,Xpp]) #16 X++ 1697 c21d st [$1d] 5208 st([vTmp]) #17 1698 0d00 ld [y,x] 5209 ld([Y,X]) #18 high byte deek address 1699 1600 ld ac,y 5210 ld(AC,Y) #19 169a 111d ld [$1d],x 5211 ld([vTmp],X) #20 169b 0d00 ld [y,x] 5212 ld([Y,X]) #21 peek low byte 169c c218 st [$18] 5213 st([vAC]) #22 169d de00 st [y,x++] 5214 st([Y,Xpp]) #23 X++ 169e 0d00 ld [y,x] 5215 ld([Y,X]) #24 peek high byte 169f c219 st [$19] 5216 st([vAC+1]) #25 16a0 1403 ld $03,y 5217 ld(hi('NEXTY'),Y) #26 16a1 e000 jmp y,$00 5218 jmp(Y,'NEXTY') #27 16a2 00f1 ld $f1 5219 ld(-30/2) #28 5220 5221 5222 # LSLV implementation 5223 label('lslv#13') lslv#13: 16a3 1400 ld $00,y 5224 ld(0,Y) #13 16a4 1200 ld ac,x 5225 ld(AC,X) #14 var 16a5 0500 ld [x] 5226 ld([X]) #15 16a6 f4b0 bge .lslv#18 5227 bge('.lslv#18') #16 16a7 8500 adda [x] 5228 adda([X]) #17 16a8 de00 st [y,x++] 5229 st([Y,Xpp]) #18 var.lo <<1 16a9 0500 ld [x] 5230 ld([X]) #19 16aa 8500 adda [x] 5231 adda([X]) #20 16ab 4001 ora $01 5232 ora(1) #21 16ac c600 st [x] 5233 st([X]) #22 var.hi <<1 | 1 16ad 1403 ld $03,y 5234 ld(hi('REENTER'),Y) #23 16ae e0cb jmp y,$cb 5235 jmp(Y,'REENTER') #24 16af 00f2 ld $f2 5236 ld(-28/2) #25 5237 5238 label('.lslv#18') .lslv#18: 16b0 de00 st [y,x++] 5239 st([Y,Xpp]) #18 16b1 0500 ld [x] 5240 ld([X]) #19 16b2 8500 adda [x] 5241 adda([X]) #20 16b3 c600 st [x] 5242 st([X]) #21 16b4 1403 ld $03,y 5243 ld(hi('NEXTY'),Y) #22 16b5 e000 jmp y,$00 5244 jmp(Y,'NEXTY') #23 16b6 00f3 ld $f3 5245 ld(-26/2) #24 5246 5247 5248 # LSRB implementation 5249 label('lsrb#13') lsrb#13: 16b7 1200 ld ac,x 5250 ld(AC,X) #13 var address 16b8 1405 ld $05,y 5251 ld(hi('shiftTable'),Y) #14 logical shift right 1 bit (X >> 1) 16b9 00b9 ld $b9 5252 ld('.lsrb#24') #15 continuation address 16ba c21d st [$1d] 5253 st([vTmp]) #16 16bb 0500 ld [x] 5254 ld([X]) #17 load byte from var 16bc 20fe anda $fe 5255 anda(0xfe) #18 16bd e200 jmp y,ac 5256 jmp(Y,AC) #19 16be fcff bra $ff 5257 bra(255) #20 bra shiftTable+255 5258 #dummy 5259 # continues in page 0x0600 at label('.lsrb#24') after fetching shifted byte from 0x0500 5260 5261 # LDW implementation 5262 label('ldw#13') ldw#13: 16bf 1400 ld $00,y 5263 ld(0,Y) #13 16c0 1200 ld ac,x 5264 ld(AC,X) #14 Operand 16c1 0500 ld [x] 5265 ld([X]) #15 16c2 c218 st [$18] 5266 st([vAC]) #16 16c3 de00 st [y,x++] 5267 st([Y,Xpp]) #17 X++ 16c4 0500 ld [x] 5268 ld([X]) #18 16c5 c219 st [$19] 5269 st([vAC+1]) #19 16c6 1403 ld $03,y 5270 ld(hi('NEXTY'),Y) #20 16c7 e000 jmp y,$00 5271 jmp(Y,'NEXTY') #21 16c8 00f4 ld $f4 5272 ld(-24/2) #22 5273 5274 # STW implementation 5275 label('stw#13') stw#13: 16c9 1400 ld $00,y 5276 ld(0,Y) #13 16ca 1200 ld ac,x 5277 ld(AC,X) #14 Operand 16cb 0118 ld [$18] 5278 ld([vAC]) #15 16cc de00 st [y,x++] 5279 st([Y,Xpp]) #16 16cd 0119 ld [$19] 5280 ld([vAC+1]) #17 16ce c600 st [x] 5281 st([X]) #18 16cf 1403 ld $03,y 5282 ld(hi('REENTER'),Y) #19 16d0 e0cb jmp y,$cb 5283 jmp(Y,'REENTER') #20 16d1 00f4 ld $f4 5284 ld(-24/2) #21 5285 5286 # JLT implementation 5287 label('jlt#13') jlt#13: 16d2 1517 ld [$17],y 5288 ld([vPC+1],Y) #13 vPC.hi 16d3 0119 ld [$19] 5289 ld([vAC+1]) #14 16d4 e8dc blt .jlt#17 5290 blt('.jlt#17') #15 if vAC.hi < 0 16d5 0d00 ld [y,x] 5291 ld([Y,X]) #16 address of branch destination 16d6 0116 ld [$16] 5292 ld([vPC]) #17 16d7 8001 adda $01 5293 adda(1) #18 16d8 c216 st [$16] 5294 st([vPC]) #19 16d9 1403 ld $03,y 5295 ld(hi('NEXTY'),Y) #20 16da e000 jmp y,$00 5296 jmp(Y,'NEXTY') #21 16db 00f4 ld $f4 5297 ld(-24/2) #22 5298 label('.jlt#17') .jlt#17: 16dc c216 st [$16] 5299 st([vPC]) #17 16dd de00 st [y,x++] 5300 st([Y,Xpp]) #18 16de 0d00 ld [y,x] 5301 ld([Y,X]) #19 hi address of jump destination 16df c217 st [$17] 5302 st([vPC+1]) #20 16e0 1403 ld $03,y 5303 ld(hi('REENTER'),Y) #21 16e1 e0cb jmp y,$cb 5304 jmp(Y,'REENTER') #22 16e2 00f3 ld $f3 5305 ld(-26/2) #23 5306 5307 # SCRLH implementation 5308 label('scrlh#13') scrlh#13: 16e3 0500 ld [x] 5309 ld([X]) #13 ac = scroll amount 16e4 1401 ld $01,y 5310 ld(1,Y) #14 16e5 1001 ld $01,x 5311 ld(1,X) #15 16e6 8d00 adda [y,x] 5312 adda([Y,X]) #16 ac += peek(0x0101) 16e7 ce00 st [y,x] 5313 st([Y,X]) #17 poke 0x0101, ac 16e8 1403 ld $03,y 5314 ld(hi('NEXTY'),Y) #18 16e9 e000 jmp y,$00 5315 jmp(Y,'NEXTY') #19 16ea 00f5 ld $f5 5316 ld(-22/2) #20 5317 5318 16eb 0200 nop 5319 fillers(until=0xff) 16ec 0200 nop 16ed 0200 nop * 20 times 16ff 0200 nop 5320 align(0x100, size=0x100) 5321 5322 #----------------------------------------------------------------------- 5323 # More vCPU instruction implementations, (0x1700) 5324 #----------------------------------------------------------------------- 5325 # 5326 # CALLI implementation 5327 label('calli#13') calli#13: 1700 8003 adda $03 5328 adda(3) #13 1701 c21a st [$1a] 5329 st([vLR]) #14 1702 0117 ld [$17] 5330 ld([vPC+1]) #15 1703 d61b st [$1b],y 5331 st([vLR+1],Y) #16 1704 0d00 ld [y,x] 5332 ld([Y,X]) #17 1705 de00 st [y,x++] 5333 st([Y,Xpp]) #18 Just X++ 1706 a002 suba $02 5334 suba(2) #19 1707 c216 st [$16] 5335 st([vPC]) #20 1708 0d00 ld [y,x] 5336 ld([Y,X]) #21 1709 1403 ld $03,y 5337 ld(hi('REENTER_28'),Y) #22 170a e0ca jmp y,$ca 5338 jmp(Y,'REENTER_28') #23 170b c217 st [$17] 5339 st([vPC+1]) #24 5340 5341 # SUBW implemetation 5342 label('subw#13') subw#13: 170c 8001 adda $01 5343 adda(1) #13 170d c21d st [$1d] 5344 st([vTmp]) #14 Address of high byte to be subtracted 170e 0118 ld [$18] 5345 ld([vAC]) #15 Low byte 170f e81c blt .subw#18 5346 bmi('.subw#18') #16 1710 a500 suba [x] 5347 suba([X]) #17 1711 c218 st [$18] 5348 st([vAC]) #18 Store low result 1712 4500 ora [x] 5349 ora([X]) #19 Carry in bit 7 1713 3080 anda $80,x 5350 anda(0x80,X) #20 Move carry to bit 0 1714 0119 ld [$19] 5351 ld([vAC+1]) #21 1715 a500 suba [x] 5352 suba([X]) #22 1716 111d ld [$1d],x 5353 ld([vTmp],X) #23 1717 a500 suba [x] 5354 suba([X]) #24 1718 c219 st [$19] 5355 st([vAC+1]) #25 1719 1403 ld $03,y 5356 ld(hi('NEXTY'),Y) #26 171a e000 jmp y,$00 5357 jmp(Y,'NEXTY') #27 171b 00f1 ld $f1 5358 ld(-30/2) #28 5359 label('.subw#18') .subw#18: 171c c218 st [$18] 5360 st([vAC]) #18 Store low result 171d 2500 anda [x] 5361 anda([X]) #19 Carry in bit 7 171e 3080 anda $80,x 5362 anda(0x80,X) #20 Move carry to bit 0 171f 0119 ld [$19] 5363 ld([vAC+1]) #21 1720 a500 suba [x] 5364 suba([X]) #22 1721 111d ld [$1d],x 5365 ld([vTmp],X) #23 1722 a500 suba [x] 5366 suba([X]) #24 1723 c219 st [$19] 5367 st([vAC+1]) #25 1724 1403 ld $03,y 5368 ld(hi('NEXTY'),Y) #26 1725 e000 jmp y,$00 5369 jmp(Y,'NEXTY') #27 1726 00f1 ld $f1 5370 ld(-30/2) #28 5371 5372 # BEQ implementation 5373 label('beq#17') beq#17: 1727 0119 ld [$19] 5374 ld([vAC+1]) #17 1728 4118 ora [$18] 5375 ora([vAC]) #18 1729 f031 beq .beq#21 5376 beq('.beq#21') #19 if (vAC.hi OR vAC.lo) == 0 172a 0d00 ld [y,x] 5377 ld([Y,X]) #20 address of branch destination 172b 0116 ld [$16] 5378 ld([vPC]) #21 172c 8001 adda $01 5379 adda(1) #22 172d c216 st [$16] 5380 st([vPC]) #23 172e 1403 ld $03,y 5381 ld(hi('NEXTY'),Y) #24 172f e000 jmp y,$00 5382 jmp(Y,'NEXTY') #25 1730 00f2 ld $f2 5383 ld(-28/2) #26 5384 label('.beq#21') .beq#21: 1731 c216 st [$16] 5385 st([vPC]) #21 1732 1403 ld $03,y 5386 ld(hi('NEXTY'),Y) #22 1733 e000 jmp y,$00 5387 jmp(Y,'NEXTY') #23 1734 00f3 ld $f3 5388 ld(-26/2) #24 5389 5390 # BNE implementation 5391 label('bne#17') bne#17: 1735 0119 ld [$19] 5392 ld([vAC+1]) #17 1736 4118 ora [$18] 5393 ora([vAC]) #18 1737 ec3f bne .bne#21 5394 bne('.bne#21') #19 if (vAC.hi OR vAC.lo) != 0 1738 0d00 ld [y,x] 5395 ld([Y,X]) #20 address of branch destination 1739 0116 ld [$16] 5396 ld([vPC]) #21 173a 8001 adda $01 5397 adda(1) #22 173b c216 st [$16] 5398 st([vPC]) #23 173c 1403 ld $03,y 5399 ld(hi('NEXTY'),Y) #24 173d e000 jmp y,$00 5400 jmp(Y,'NEXTY') #25 173e 00f2 ld $f2 5401 ld(-28/2) #26 5402 label('.bne#21') .bne#21: 173f c216 st [$16] 5403 st([vPC]) #21 1740 1403 ld $03,y 5404 ld(hi('NEXTY'),Y) #22 1741 e000 jmp y,$00 5405 jmp(Y,'NEXTY') #23 1742 00f3 ld $f3 5406 ld(-26/2) #24 5407 5408 # BGT implementation 5409 label('bgt#17') bgt#17: 1743 0119 ld [$19] 5410 ld([vAC+1]) #17 1744 e84d blt .bgt#20 5411 blt('.bgt#20') #18 if vAC.hi < 0 1745 4118 ora [$18] 5412 ora([vAC]) #19 1746 ec53 bne .bgt#22 5413 bne('.bgt#22') #20 if (vAC.hi OR vAC.lo) != 0 1747 0116 ld [$16] 5414 ld([vPC]) #21 1748 8001 adda $01 5415 adda(1) #22 1749 c216 st [$16] 5416 st([vPC]) #23 174a 1403 ld $03,y 5417 ld(hi('NEXTY'),Y) #24 174b e000 jmp y,$00 5418 jmp(Y,'NEXTY') #25 174c 00f2 ld $f2 5419 ld(-28/2) #26 5420 label('.bgt#20') .bgt#20: 174d 0116 ld [$16] 5421 ld([vPC]) #20 174e 8001 adda $01 5422 adda(1) #21 174f c216 st [$16] 5423 st([vPC]) #22 1750 1403 ld $03,y 5424 ld(hi('REENTER'),Y) #23 1751 e0cb jmp y,$cb 5425 jmp(Y,'REENTER') #24 1752 00f2 ld $f2 5426 ld(-28/2) #25 5427 label('.bgt#22') .bgt#22: 1753 0d00 ld [y,x] 5428 ld([Y,X]) #22 address of branch destination 1754 c216 st [$16] 5429 st([vPC]) #23 1755 1403 ld $03,y 5430 ld(hi('NEXTY'),Y) #24 1756 e000 jmp y,$00 5431 jmp(Y,'NEXTY') #25 1757 00f2 ld $f2 5432 ld(-28/2) #26 5433 5434 # BLT implementation 5435 label('blt#17') blt#17: 1758 0119 ld [$19] 5436 ld([vAC+1]) #17 1759 e860 blt .blt#20 5437 blt('.blt#20') #18 if vAC.hi < 0 175a 0116 ld [$16] 5438 ld([vPC]) #19 175b 8001 adda $01 5439 adda(1) #20 175c c216 st [$16] 5440 st([vPC]) #21 175d 1403 ld $03,y 5441 ld(hi('NEXTY'),Y) #22 175e e000 jmp y,$00 5442 jmp(Y,'NEXTY') #23 175f 00f3 ld $f3 5443 ld(-26/2) #24 5444 label('.blt#20') .blt#20: 1760 0d00 ld [y,x] 5445 ld([Y,X]) #20 address of branch destination 1761 c216 st [$16] 5446 st([vPC]) #21 1762 1403 ld $03,y 5447 ld(hi('NEXTY'),Y) #22 1763 e000 jmp y,$00 5448 jmp(Y,'NEXTY') #23 1764 00f3 ld $f3 5449 ld(-26/2) #24 5450 5451 # BGE implementation 5452 label('bge#17') bge#17: 1765 0119 ld [$19] 5453 ld([vAC+1]) #17 1766 e86d blt .bge#20 5454 blt('.bge#20') #18 if vAC.hi < 0 1767 0116 ld [$16] 5455 ld([vPC]) #19 1768 0d00 ld [y,x] 5456 ld([Y,X]) #20 address of branch destination 1769 c216 st [$16] 5457 st([vPC]) #21 176a 1403 ld $03,y 5458 ld(hi('NEXTY'),Y) #22 176b e000 jmp y,$00 5459 jmp(Y,'NEXTY') #23 176c 00f3 ld $f3 5460 ld(-26/2) #24 5461 label('.bge#20') .bge#20: 176d 8001 adda $01 5462 adda(1) #20 176e c216 st [$16] 5463 st([vPC]) #21 176f 1403 ld $03,y 5464 ld(hi('NEXTY'),Y) #22 1770 e000 jmp y,$00 5465 jmp(Y,'NEXTY') #23 1771 00f3 ld $f3 5466 ld(-26/2) #24 5467 5468 # BLE implementation 5469 label('ble#17') ble#17: 1772 0119 ld [$19] 5470 ld([vAC+1]) #17 1773 e87c blt .ble#20 5471 blt('.ble#20') #18 if vAC.hi < 0 1774 4118 ora [$18] 5472 ora([vAC]) #19 1775 ec81 bne .ble#22 5473 bne('.ble#22') #20 if (vAC.hi OR vAC.lo) != 0 1776 0116 ld [$16] 5474 ld([vPC]) #21 1777 0d00 ld [y,x] 5475 ld([Y,X]) #22 address of branch destination 1778 c216 st [$16] 5476 st([vPC]) #23 1779 1403 ld $03,y 5477 ld(hi('NEXTY'),Y) #24 177a e000 jmp y,$00 5478 jmp(Y,'NEXTY') #25 177b 00f2 ld $f2 5479 ld(-28/2) #26 5480 label('.ble#20') .ble#20: 177c 0d00 ld [y,x] 5481 ld([Y,X]) #20 address of branch destination 177d c216 st [$16] 5482 st([vPC]) #21 177e 1403 ld $03,y 5483 ld(hi('NEXTY'),Y) #22 177f e000 jmp y,$00 5484 jmp(Y,'NEXTY') #23 1780 00f3 ld $f3 5485 ld(-26/2) #24 5486 label('.ble#22') .ble#22: 1781 8001 adda $01 5487 adda(1) #22 1782 c216 st [$16] 5488 st([vPC]) #23 1783 1403 ld $03,y 5489 ld(hi('NEXTY'),Y) #24 1784 e000 jmp y,$00 5490 jmp(Y,'NEXTY') #25 1785 00f2 ld $f2 5491 ld(-28/2) #26 5492 5493 # ADDBA implementation 5494 label('addba#13') addba#13: 1786 1200 ld ac,x 5495 ld(AC,X) #13 src var 1787 0118 ld [$18] 5496 ld([vAC]) #14 1788 8500 adda [x] 5497 adda([X]) #15 1789 c218 st [$18] 5498 st([vAC]) #16 vAC.lo += var.lo 178a e894 blt .addba#19 5499 bmi('.addba#19') #17 Now figure out if there was a carry 178b a500 suba [x] 5500 suba([X]) #18 Gets back the initial value of vAC 178c 4500 ora [x] 5501 ora([X]) #19 Carry in bit 7 178d 3080 anda $80,x 5502 anda(0x80,X) #20 Move carry to bit 0 178e 0500 ld [x] 5503 ld([X]) #21 178f 8119 adda [$19] 5504 adda([vAC+1]) #22 Add the high byte and carry 1790 c219 st [$19] 5505 st([vAC+1]) #23 Store high result 1791 1403 ld $03,y 5506 ld(hi('NEXTY'),Y) #24 1792 e000 jmp y,$00 5507 jmp(Y,'NEXTY') #25 1793 00f2 ld $f2 5508 ld(-28/2) #26 5509 label('.addba#19') .addba#19: 1794 2500 anda [x] 5510 anda([X]) #19 Carry in bit 7 1795 3080 anda $80,x 5511 anda(0x80,X) #20 Move carry to bit 0 1796 0500 ld [x] 5512 ld([X]) #21 1797 8119 adda [$19] 5513 adda([vAC+1]) #22 Add high byte and carry 1798 c219 st [$19] 5514 st([vAC+1]) #23 Store high result 1799 1403 ld $03,y 5515 ld(hi('NEXTY'),Y) #24 179a e000 jmp y,$00 5516 jmp(Y,'NEXTY') #25 179b 00f2 ld $f2 5517 ld(-28/2) #26 5518 5519 # SUBBA implementation 5520 label('subba#13') subba#13: 179c 1200 ld ac,x 5521 ld(AC,X) #13 src var 179d 0118 ld [$18] 5522 ld([vAC]) #14 179e e8a9 blt .subba#17 5523 bmi('.subba#17') #15 179f a500 suba [x] 5524 suba([X]) #16 17a0 c218 st [$18] 5525 st([vAC]) #17 vAC.lo -= var.lo 17a1 4500 ora [x] 5526 ora([X]) #18 Borrow in bit 7 17a2 3080 anda $80,x 5527 anda(0x80,X) #19 Move borrow to bit 0 17a3 0119 ld [$19] 5528 ld([vAC+1]) #20 17a4 a500 suba [x] 5529 suba([X]) #21 Sub borrow from high byte 17a5 c219 st [$19] 5530 st([vAC+1]) #22 Store high result 17a6 1403 ld $03,y 5531 ld(hi('REENTER'),Y) #23 17a7 e0cb jmp y,$cb 5532 jmp(Y,'REENTER') #24 17a8 00f2 ld $f2 5533 ld(-28/2) #25 5534 label('.subba#17') .subba#17: 17a9 c218 st [$18] 5535 st([vAC]) #17 17aa 2500 anda [x] 5536 anda([X]) #18 Borrow in bit 7 17ab 3080 anda $80,x 5537 anda(0x80,X) #19 Move borrow to bit 0 17ac 0119 ld [$19] 5538 ld([vAC+1]) #20 17ad a500 suba [x] 5539 suba([X]) #21 Sub borrow from high byte 17ae c219 st [$19] 5540 st([vAC+1]) #22 Store high result 17af 1403 ld $03,y 5541 ld(hi('REENTER'),Y) #23 17b0 e0cb jmp y,$cb 5542 jmp(Y,'REENTER') #24 17b1 00f2 ld $f2 5543 ld(-28/2) #25 5544 5545 # POKEA implementation 5546 label('pokea#13') pokea#13: 17b2 1200 ld ac,x 5547 ld(AC,X) #13 17b3 0500 ld [x] 5548 ld([X]) #14 var.lo 17b4 1118 ld [$18],x 5549 ld([vAC],X) #15 17b5 1519 ld [$19],y 5550 ld([vAC+1],Y) #16 17b6 ce00 st [y,x] 5551 st([Y,X]) #17 poke [vAC], var.lo 17b7 1403 ld $03,y 5552 ld(hi('NEXTY'),Y) #18 17b8 e000 jmp y,$00 5553 jmp(Y,'NEXTY') #19 17b9 00f5 ld $f5 5554 ld(-22/2) #20 5555 5556 # DOKEA implementation 5557 label('dokea#13') dokea#13: 17ba d21d st [$1d],x 5558 st([vTmp],X) #13 17bb 0500 ld [x] 5559 ld([X]) #14 var.lo 17bc 1118 ld [$18],x 5560 ld([vAC],X) #15 17bd 1519 ld [$19],y 5561 ld([vAC+1],Y) #16 17be ce00 st [y,x] 5562 st([Y,X]) #17 poke [vAC], var.lo 17bf 011d ld [$1d] 5563 ld([vTmp]) #18 17c0 9001 adda $01,x 5564 adda(1,X) #19 17c1 0500 ld [x] 5565 ld([X]) #20 var.hi 17c2 c21d st [$1d] 5566 st([vTmp]) #21 17c3 0118 ld [$18] 5567 ld([vAC]) #22 17c4 9001 adda $01,x 5568 adda(1,X) #23 17c5 011d ld [$1d] 5569 ld([vTmp]) #24 17c6 ce00 st [y,x] 5570 st([Y,X]) #25 poke [vAC+1], var.hi 17c7 1403 ld $03,y 5571 ld(hi('NEXTY'),Y) #26 17c8 e000 jmp y,$00 5572 jmp(Y,'NEXTY') #27 17c9 00f1 ld $f1 5573 ld(-30/2) #28 5574 5575 # POKEI implementation 5576 label('pokei#13') pokei#13: 17ca 1519 ld [$19],y 5577 ld([vAC+1],Y) #13 17cb 1118 ld [$18],x 5578 ld([vAC],X) #14 17cc de00 st [y,x++] 5579 st([Y,Xpp]) #15 17cd 1403 ld $03,y 5580 ld(hi('NEXTY'),Y) #16 17ce e000 jmp y,$00 5581 jmp(Y,'NEXTY') #17 17cf 00f6 ld $f6 5582 ld(-20/2) #18 5583 5584 # DOKEI implementation 5585 label('dokei#13') dokei#13: 17d0 1517 ld [$17],y 5586 ld([vPC+1],Y) #13 17d1 c21d st [$1d] 5587 st([vTmp]) #14 imm.hi 17d2 de00 st [y,x++] 5588 st([Y,Xpp]) #15 X++ 17d3 0d00 ld [y,x] 5589 ld([Y,X]) #16 imm.lo 17d4 1519 ld [$19],y 5590 ld([vAC+1],Y) #17 17d5 1118 ld [$18],x 5591 ld([vAC],X) #18 17d6 de00 st [y,x++] 5592 st([Y,Xpp]) #19 17d7 011d ld [$1d] 5593 ld([vTmp]) #20 17d8 ce00 st [y,x] 5594 st([Y,X]) #21 17d9 0116 ld [$16] 5595 ld([vPC]) #22 17da 8001 adda $01 5596 adda(1) #23 17db c216 st [$16] 5597 st([vPC]) #24 17dc 1403 ld $03,y 5598 ld(hi('REENTER'),Y) #25 17dd e0cb jmp y,$cb 5599 jmp(Y,'REENTER') #26 17de 00f1 ld $f1 5600 ld(-30/2) #27 5601 5602 5603 # MOVWA implementation 5604 label('movwa#13') movwa#13: 17df c21d st [$1d] 5605 st([vTmp]) #13 address of dst var 17e0 de00 st [y,x++] 5606 st([Y,Xpp]) #14 X++ 17e1 00fb ld $fb 5607 ld(min(0,maxTicks-40/2)) #15 17e2 8115 adda [$15] 5608 adda([vTicks]) #16 17e3 e8f9 blt .movwa#19 5609 blt('.movwa#19') #17 not enough time left, so retry 17e4 0d00 ld [y,x] 5610 ld([Y,X]) #18 17e5 1200 ld ac,x 5611 ld(AC,X) #19 address of src var 17e6 1400 ld $00,y 5612 ld(0,Y) #20 17e7 0d00 ld [y,x] 5613 ld([Y,X]) #21 src.lo 17e8 de00 st [y,x++] 5614 st([Y,Xpp]) #22 X++ 17e9 c22a st [$2a] 5615 st([sysArgs+6]) #23 17ea 0500 ld [x] 5616 ld([X]) #24 src.hi 17eb c22b st [$2b] 5617 st([sysArgs+7]) #25 17ec 111d ld [$1d],x 5618 ld([vTmp],X) #26 address of dst var 17ed 012a ld [$2a] 5619 ld([sysArgs+6]) #27 17ee de00 st [y,x++] 5620 st([Y,Xpp]) #28 dst.lo = src.lo, X++ 17ef c218 st [$18] 5621 st([vAC]) #29 vAC.lo = dst.lo 17f0 012b ld [$2b] 5622 ld([sysArgs+7]) #30 17f1 ce00 st [y,x] 5623 st([Y,X]) #31 dst.hi = src.hi 17f2 c219 st [$19] 5624 st([vAC+1]) #32 vAC.hi = dst.hi 17f3 0116 ld [$16] 5625 ld([vPC]) #33 17f4 8001 adda $01 5626 adda(1) #34 17f5 c216 st [$16] 5627 st([vPC]) #35 advance vPC by 1 17f6 1403 ld $03,y 5628 ld(hi('NEXTY'),Y) #36 17f7 e000 jmp y,$00 5629 jmp(Y,'NEXTY') #37 17f8 00ec ld $ec 5630 ld(-40/2) #38 5631 5632 label('.movwa#19') .movwa#19: 17f9 0116 ld [$16] 5633 ld([vPC]) #19 retry instruction 17fa a002 suba $02 5634 suba(2) #20 17fb c216 st [$16] 5635 st([vPC]) #21 17fc 1403 ld $03,y 5636 ld(hi('NEXTY'),Y) #22 17fd e000 jmp y,$00 5637 jmp(Y,'NEXTY') #23 17fe 00f3 ld $f3 5638 ld(-26/2) #24 5639 5640 5641 fillers(until=0xff) 17ff 0200 nop 5642 align(0x100, size=0x100) 5643 5644 #----------------------------------------------------------------------- 5645 # More vCPU instruction implementations, (0x1800) 5646 #----------------------------------------------------------------------- 5647 # 5648 # SYS retry implementation 5649 label('.sys#16') .sys#16: 1800 0116 ld [$16] 5650 ld([vPC]) #16 1801 a002 suba $02 5651 suba(2) #17 1802 c216 st [$16] 5652 st([vPC]) #18 1803 1403 ld $03,y 5653 ld(hi('REENTER'),Y) #19 1804 e0cb jmp y,$cb 5654 jmp(Y,'REENTER') #20 1805 00f4 ld $f4 5655 ld(-24/2) #21 5656 5657 # LUP return, no longer part of PEEK 5658 label('lupReturn#19') lupReturn#19: 1806 0000 ld $00 5659 ld(0) #19 1807 c219 st [$19] 5660 st([vAC+1]) #20 1808 1403 ld $03,y 5661 ld(hi('REENTER'),Y) #21 1809 e0cb jmp y,$cb 5662 jmp(Y,'REENTER') #22 180a 00f3 ld $f3 5663 ld(-26/2) #23 5664 5665 5666 # PEEKV+ implementation 5667 label('peekv+#13') peekv+#13: 180b 1400 ld $00,y 5668 ld(0,Y) #13 180c 1200 ld ac,x 5669 ld(AC,X) #14 180d 00fd ld $fd 5670 ld(min(0,maxTicks-36/2)) #15 180e 8115 adda [$15] 5671 adda([vTicks]) #16 180f e82a blt .peekv+#19 5672 blt('.peekv+#19') #17 not enough time left, so retry 1810 0500 ld [x] 5673 ld([X]) #18 low byte peek address 1811 c21d st [$1d] 5674 st([vTmp]) #19 1812 8001 adda $01 5675 adda(1) #20 1813 de00 st [y,x++] 5676 st([Y,Xpp]) #21 1814 f01f beq .peekv+#24 5677 beq('.peekv+#24') #22 if low byte is 0x00 1815 0500 ld [x] 5678 ld([X]) #23 high byte peek address 1816 1600 ld ac,y 5679 ld(AC,Y) #24 1817 111d ld [$1d],x 5680 ld([vTmp],X) #25 1818 0d00 ld [y,x] 5681 ld([Y,X]) #26 1819 c218 st [$18] 5682 st([vAC]) #27 181a 0000 ld $00 5683 ld(0) #28 181b c219 st [$19] 5684 st([vAC+1]) #29 181c 1403 ld $03,y 5685 ld(hi('NEXTY'),Y) #30 181d e000 jmp y,$00 5686 jmp(Y,'NEXTY') #31 181e 00ef ld $ef 5687 ld(-34/2) #32 5688 5689 label('.peekv+#24') .peekv+#24: 181f 1600 ld ac,y 5690 ld(AC,Y) #24 1820 8001 adda $01 5691 adda(1) #25 1821 c600 st [x] 5692 st([X]) #26 1822 111d ld [$1d],x 5693 ld([vTmp],X) #27 1823 0d00 ld [y,x] 5694 ld([Y,X]) #28 1824 c218 st [$18] 5695 st([vAC]) #29 1825 0000 ld $00 5696 ld(0) #30 1826 c219 st [$19] 5697 st([vAC+1]) #31 1827 1403 ld $03,y 5698 ld(hi('NEXTY'),Y) #32 1828 e000 jmp y,$00 5699 jmp(Y,'NEXTY') #33 1829 00ee ld $ee 5700 ld(-36/2) #34 5701 5702 label('.peekv+#19') .peekv+#19: 182a 0116 ld [$16] 5703 ld([vPC]) #19 retry instruction 182b a002 suba $02 5704 suba(2) #20 182c c216 st [$16] 5705 st([vPC]) #21 182d 1403 ld $03,y 5706 ld(hi('NEXTY'),Y) #22 182e e000 jmp y,$00 5707 jmp(Y,'NEXTY') #23 182f 00f3 ld $f3 5708 ld(-26/2) #24 5709 5710 5711 # POKEV+ implementation 5712 label('pokev+#13') pokev+#13: 1830 1400 ld $00,y 5713 ld(0,Y) #13 1831 1200 ld ac,x 5714 ld(AC,X) #14 Operand 1832 00fe ld $fe 5715 ld(min(0,maxTicks-34/2)) #15 1833 8115 adda [$15] 5716 adda([vTicks]) #16 1834 e84b blt .pokev+#19 5717 blt('.pokev+#19') #17 not enough time left, so retry 1835 0500 ld [x] 5718 ld([X]) #18 low byte poke address 1836 c21d st [$1d] 5719 st([vTmp]) #19 1837 8001 adda $01 5720 adda(1) #20 1838 de00 st [y,x++] 5721 st([Y,Xpp]) #21 1839 f042 beq .pokev+#24 5722 beq('.pokev+#24') #22 if low byte is 0x00 183a 0500 ld [x] 5723 ld([X]) #23 high byte poke address 183b 1600 ld ac,y 5724 ld(AC,Y) #24 183c 111d ld [$1d],x 5725 ld([vTmp],X) #25 183d 0118 ld [$18] 5726 ld([vAC]) #26 183e ce00 st [y,x] 5727 st([Y,X]) #27 183f 1403 ld $03,y 5728 ld(hi('NEXTY'),Y) #28 1840 e000 jmp y,$00 5729 jmp(Y,'NEXTY') #29 1841 00f0 ld $f0 5730 ld(-32/2) #30 5731 5732 label('.pokev+#24') .pokev+#24: 1842 1600 ld ac,y 5733 ld(AC,Y) #24 1843 8001 adda $01 5734 adda(1) #25 1844 c600 st [x] 5735 st([X]) #26 1845 111d ld [$1d],x 5736 ld([vTmp],X) #27 1846 0118 ld [$18] 5737 ld([vAC]) #28 1847 ce00 st [y,x] 5738 st([Y,X]) #29 1848 1403 ld $03,y 5739 ld(hi('NEXTY'),Y) #30 1849 e000 jmp y,$00 5740 jmp(Y,'NEXTY') #31 184a 00ef ld $ef 5741 ld(-34/2) #32 5742 5743 label('.pokev+#19') .pokev+#19: 184b 0116 ld [$16] 5744 ld([vPC]) #19 retry instruction 184c a002 suba $02 5745 suba(2) #20 184d c216 st [$16] 5746 st([vPC]) #21 184e 1403 ld $03,y 5747 ld(hi('NEXTY'),Y) #22 184f e000 jmp y,$00 5748 jmp(Y,'NEXTY') #23 1850 00f3 ld $f3 5749 ld(-26/2) #24 5750 5751 5752 # DEEKV+ implementation 5753 label('deekv+#13') deekv+#13: 1851 1400 ld $00,y 5754 ld(0,Y) #13 1852 1200 ld ac,x 5755 ld(AC,X) #14 1853 00fc ld $fc 5756 ld(min(0,maxTicks-38/2)) #15 1854 8115 adda [$15] 5757 adda([vTicks]) #16 1855 e873 blt .deekv+#19 5758 blt('.deekv+#19') #17 not enough time left, so retry 1856 0500 ld [x] 5759 ld([X]) #18 low byte deek address 1857 c21d st [$1d] 5760 st([vTmp]) #19 1858 8002 adda $02 5761 adda(2) #20 1859 de00 st [y,x++] 5762 st([Y,Xpp]) #21 185a 20fe anda $fe 5763 anda(0xFE) #22 185b f067 beq .deekv+#25 5764 beq('.deekv+#25') #23 if low byte is 0x00 or 0x01 185c 0500 ld [x] 5765 ld([X]) #24 high byte deek address 185d 1600 ld ac,y 5766 ld(AC,Y) #25 185e 111d ld [$1d],x 5767 ld([vTmp],X) #26 185f 0d00 ld [y,x] 5768 ld([Y,X]) #27 1860 de00 st [y,x++] 5769 st([Y,Xpp]) #28 X++ 1861 c218 st [$18] 5770 st([vAC]) #29 1862 0d00 ld [y,x] 5771 ld([Y,X]) #30 1863 c219 st [$19] 5772 st([vAC+1]) #31 1864 1403 ld $03,y 5773 ld(hi('NEXTY'),Y) #32 1865 e000 jmp y,$00 5774 jmp(Y,'NEXTY') #33 1866 00ee ld $ee 5775 ld(-36/2) #34 5776 5777 label('.deekv+#25') .deekv+#25: 1867 1600 ld ac,y 5778 ld(AC,Y) #25 1868 8001 adda $01 5779 adda(1) #26 1869 c600 st [x] 5780 st([X]) #27 186a 111d ld [$1d],x 5781 ld([vTmp],X) #28 186b 0d00 ld [y,x] 5782 ld([Y,X]) #29 186c de00 st [y,x++] 5783 st([Y,Xpp]) #30 X++ 186d c218 st [$18] 5784 st([vAC]) #31 186e 0d00 ld [y,x] 5785 ld([Y,X]) #32 186f c219 st [$19] 5786 st([vAC+1]) #33 1870 1403 ld $03,y 5787 ld(hi('NEXTY'),Y) #34 1871 e000 jmp y,$00 5788 jmp(Y,'NEXTY') #35 1872 00ed ld $ed 5789 ld(-38/2) #36 5790 5791 label('.deekv+#19') .deekv+#19: 1873 0116 ld [$16] 5792 ld([vPC]) #19 retry instruction 1874 a002 suba $02 5793 suba(2) #20 1875 c216 st [$16] 5794 st([vPC]) #21 1876 1403 ld $03,y 5795 ld(hi('NEXTY'),Y) #22 1877 e000 jmp y,$00 5796 jmp(Y,'NEXTY') #23 1878 00f3 ld $f3 5797 ld(-26/2) #24 5798 5799 5800 # DOKEV+ implementation 5801 label('dokev+#13') dokev+#13: 1879 1200 ld ac,x 5802 ld(AC,X) #13 187a 00fd ld $fd 5803 ld(min(0,maxTicks-36/2)) #14 187b 8115 adda [$15] 5804 adda([vTicks]) #15 187c e898 blt .dokev+#18 5805 blt('.dokev+#18') #16 not enough time left, so retry 187d 0500 ld [x] 5806 ld([X]) #17 low byte poke address 187e c21d st [$1d] 5807 st([vTmp]) #18 187f 8002 adda $02 5808 adda(2) #19 1880 de00 st [y,x++] 5809 st([Y,Xpp]) #20 1881 20fe anda $fe 5810 anda(0xFE) #21 1882 f08d beq .dokev+#24 5811 beq('.dokev+#24') #22 if low byte is 0x00 or 0x01 1883 0500 ld [x] 5812 ld([X]) #23 high byte poke address 1884 1600 ld ac,y 5813 ld(AC,Y) #24 1885 111d ld [$1d],x 5814 ld([vTmp],X) #25 1886 0118 ld [$18] 5815 ld([vAC]) #26 1887 de00 st [y,x++] 5816 st([Y,Xpp]) #27 1888 0119 ld [$19] 5817 ld([vAC+1]) #28 1889 ce00 st [y,x] 5818 st([Y,X]) #29 188a 1403 ld $03,y 5819 ld(hi('NEXTY'),Y) #30 188b e000 jmp y,$00 5820 jmp(Y,'NEXTY') #31 188c 00ef ld $ef 5821 ld(-34/2) #32 5822 5823 label('.dokev+#24') .dokev+#24: 188d 1600 ld ac,y 5824 ld(AC,Y) #24 188e 8001 adda $01 5825 adda(1) #25 188f c600 st [x] 5826 st([X]) #26 1890 111d ld [$1d],x 5827 ld([vTmp],X) #27 1891 0118 ld [$18] 5828 ld([vAC]) #28 1892 de00 st [y,x++] 5829 st([Y,Xpp]) #29 1893 0119 ld [$19] 5830 ld([vAC+1]) #30 1894 ce00 st [y,x] 5831 st([Y,X]) #31 1895 1403 ld $03,y 5832 ld(hi('NEXTY'),Y) #32 1896 e000 jmp y,$00 5833 jmp(Y,'NEXTY') #33 1897 00ee ld $ee 5834 ld(-36/2) #34 5835 5836 label('.dokev+#18') .dokev+#18: 1898 0116 ld [$16] 5837 ld([vPC]) #18 retry instruction 1899 a002 suba $02 5838 suba(2) #19 189a c216 st [$16] 5839 st([vPC]) #20 189b 1403 ld $03,y 5840 ld(hi('REENTER'),Y) #21 189c e0cb jmp y,$cb 5841 jmp(Y,'REENTER') #22 189d 00f3 ld $f3 5842 ld(-26/2) #23 5843 5844 5845 # CMPI implementation 5846 label('cmpi#13') cmpi#13: 189e c21d st [$1d] 5847 st([vTmp]) #13 immediate value 189f 00fd ld $fd 5848 ld(min(0,maxTicks-36/2)) #14 18a0 8115 adda [$15] 5849 adda([vTicks]) #15 18a1 e8be blt .cmpi#18 5850 blt('.cmpi#18') #16 not enough time left, so retry 18a2 1517 ld [$17],y 5851 ld([vPC+1],Y) #17 18a3 011d ld [$1d] 5852 ld([vTmp]) #18 immediate value 18a4 de00 st [y,x++] 5853 st([Y,Xpp]) #19 X++ 18a5 0d00 ld [y,x] 5854 ld([Y,X]) #20 address of var 18a6 1200 ld ac,x 5855 ld(AC,X) #21 18a7 0500 ld [x] 5856 ld([X]) #22 low byte of var 18a8 e8b4 blt .cmpi#25 5857 bmi('.cmpi#25') #23 18a9 a11d suba [$1d] 5858 suba([vTmp]) #24 18aa c218 st [$18] 5859 st([vAC]) #25 store low result 18ab 411d ora [$1d] 5860 ora([vTmp]) #26 18ac 2080 anda $80 5861 anda(0x80) #27 18ad c219 st [$19] 5862 st([vAC+1]) #28 [vAC.hi] = sign bit, numerical accuracy is not important 18ae 0116 ld [$16] 5863 ld([vPC]) #29 18af 8001 adda $01 5864 adda(1) #30 18b0 c216 st [$16] 5865 st([vPC]) #31 advance vPC by 1 18b1 1403 ld $03,y 5866 ld(hi('NEXTY'),Y) #32 18b2 e000 jmp y,$00 5867 jmp(Y,'NEXTY') #33 18b3 00ee ld $ee 5868 ld(-36/2) #34 5869 label('.cmpi#25') .cmpi#25: 18b4 c218 st [$18] 5870 st([vAC]) #25 store low result 18b5 211d anda [$1d] 5871 anda([vTmp]) #26 18b6 2080 anda $80 5872 anda(0x80) #27 18b7 c219 st [$19] 5873 st([vAC+1]) #28 [vAC.hi] = sign bit, numerical accuracy is not important 18b8 0116 ld [$16] 5874 ld([vPC]) #29 18b9 8001 adda $01 5875 adda(1) #30 18ba c216 st [$16] 5876 st([vPC]) #31 advance vPC by 1 18bb 1403 ld $03,y 5877 ld(hi('NEXTY'),Y) #32 18bc e000 jmp y,$00 5878 jmp(Y,'NEXTY') #33 18bd 00ee ld $ee 5879 ld(-36/2) #34 5880 label('.cmpi#18') .cmpi#18: 18be 0116 ld [$16] 5881 ld([vPC]) #18 retry instruction 18bf a002 suba $02 5882 suba(2) #19 18c0 c216 st [$16] 5883 st([vPC]) #20 18c1 1403 ld $03,y 5884 ld(hi('REENTER'),Y) #21 18c2 e0cb jmp y,$cb 5885 jmp(Y,'REENTER') #22 18c3 00f3 ld $f3 5886 ld(-26/2) #23 5887 # CMPI implementation 5888 #label('cmpi#13') 5889 #st([vTmp]) #13 immediate value 5890 #ld(min(0,maxTicks-42/2)) #14 5891 #adda([vTicks]) #15 5892 #blt('.cmpi#18') #16 not enough time left, so retry 5893 #ld([vPC+1],Y) #17 5894 #ld([vTmp]) #18 immediate value 5895 #st([Y,Xpp]) #19 X++ 5896 #ld([Y,X]) #20 address of var 5897 #ld(AC,X) #21 5898 #ld(0,Y) #22 5899 #ld([X]) #23 low byte of var 5900 #st([sysArgs+7]) #24 5901 #st([Y,Xpp]) #25 X++ 5902 #ld([X]) #26 high byte of var 5903 #beq('.cmpi#29') #27 exit if var.hi != 0 5904 #ld([sysArgs+7]) #28 var.lo 5905 #ld([vPC]) #29 5906 #adda(1) #30 5907 #st([vPC]) #31 advance vPC by 1 5908 #ld(hi('NEXTY'),Y) #32 5909 #jmp(Y,'NEXTY') #33 5910 #ld(-36/2) #34 5911 # 5912 #label('.cmpi#29') 5913 #bmi('.cmpi#31') #29 5914 #suba([vTmp]) #30 5915 #st([vAC]) #31 store low result 5916 #ora([vTmp]) #32 5917 #anda(0x80) #33 5918 #st([vAC+1]) #34 [vAC.hi] = sign bit, numerical accuracy is not important 5919 #ld([vPC]) #35 5920 #adda(1) #36 5921 #st([vPC]) #37 advance vPC by 1 5922 #ld(hi('NEXTY'),Y) #38 5923 #jmp(Y,'NEXTY') #39 5924 #ld(-42/2) #40 5925 # 5926 #label('.cmpi#31') 5927 #st([vAC]) #31 store low result 5928 #anda([vTmp]) #32 5929 #anda(0x80) #33 5930 #st([vAC+1]) #34 [vAC.hi] = sign bit, numerical accuracy is not important 5931 #ld([vPC]) #35 5932 #adda(1) #36 5933 #st([vPC]) #37 advance vPC by 1 5934 #ld(hi('NEXTY'),Y) #38 5935 #jmp(Y,'NEXTY') #39 5936 #ld(-42/2) #40 5937 # 5938 #label('.cmpi#18') 5939 #ld([vPC]) #18 retry instruction 5940 #suba(2) #19 5941 #st([vPC]) #20 5942 #ld(hi('REENTER'),Y) #21 5943 #jmp(Y,'REENTER') #22 5944 #ld(-26/2) #23 5945 5946 5947 # JEQ implementation 5948 label('jeq#13') jeq#13: 18c4 1517 ld [$17],y 5949 ld([vPC+1],Y) #13 vPC.hi 18c5 0119 ld [$19] 5950 ld([vAC+1]) #14 18c6 4118 ora [$18] 5951 ora([vAC]) #15 18c7 f0cf beq .jeq#18 5952 beq('.jeq#18') #16 if (vAC.hi OR vAC.lo) == 0 18c8 0d00 ld [y,x] 5953 ld([Y,X]) #17 lo address of jump destination 18c9 0116 ld [$16] 5954 ld([vPC]) #18 18ca 8001 adda $01 5955 adda(1) #19 18cb c216 st [$16] 5956 st([vPC]) #20 18cc 1403 ld $03,y 5957 ld(hi('REENTER'),Y) #21 18cd e0cb jmp y,$cb 5958 jmp(Y,'REENTER') #22 18ce 00f3 ld $f3 5959 ld(-26/2) #23 5960 label('.jeq#18') .jeq#18: 18cf c216 st [$16] 5961 st([vPC]) #18 18d0 de00 st [y,x++] 5962 st([Y,Xpp]) #19 18d1 0d00 ld [y,x] 5963 ld([Y,X]) #20 hi address of jump destination 18d2 c217 st [$17] 5964 st([vPC+1]) #21 18d3 1403 ld $03,y 5965 ld(hi('NEXTY'),Y) #22 18d4 e000 jmp y,$00 5966 jmp(Y,'NEXTY') #23 18d5 00f3 ld $f3 5967 ld(-26/2) #24 5968 5969 # JNE implementation 5970 label('jne#13') jne#13: 18d6 1517 ld [$17],y 5971 ld([vPC+1],Y) #13 vPC.hi 18d7 0119 ld [$19] 5972 ld([vAC+1]) #14 18d8 4118 ora [$18] 5973 ora([vAC]) #15 18d9 ece1 bne .jne#18 5974 bne('.jne#18') #16 if (vAC.hi OR vAC.lo) != 0 18da 0d00 ld [y,x] 5975 ld([Y,X]) #17 address of branch destination 18db 0116 ld [$16] 5976 ld([vPC]) #18 18dc 8001 adda $01 5977 adda(1) #19 18dd c216 st [$16] 5978 st([vPC]) #20 18de 1403 ld $03,y 5979 ld(hi('REENTER'),Y) #21 18df e0cb jmp y,$cb 5980 jmp(Y,'REENTER') #22 18e0 00f3 ld $f3 5981 ld(-26/2) #23 5982 label('.jne#18') .jne#18: 18e1 c216 st [$16] 5983 st([vPC]) #18 18e2 de00 st [y,x++] 5984 st([Y,Xpp]) #19 18e3 0d00 ld [y,x] 5985 ld([Y,X]) #20 hi address of jump destination 18e4 c217 st [$17] 5986 st([vPC+1]) #21 18e5 1403 ld $03,y 5987 ld(hi('NEXTY'),Y) #22 18e6 e000 jmp y,$00 5988 jmp(Y,'NEXTY') #23 18e7 00f3 ld $f3 5989 ld(-26/2) #24 5990 5991 18e8 0200 nop 5992 fillers(until=0xff) 18e9 0200 nop 18ea 0200 nop * 23 times 18ff 0200 nop 5993 align(0x100, size=0x100) 5994 5995 #----------------------------------------------------------------------- 5996 # More sys implementations, (0x1900) 5997 #----------------------------------------------------------------------- 5998 # sys_Multiply_s16, sum:s16 = x:s16 * y:s16 5999 # x:args0:1 y:args2:3 sum:args4:5 mask:args6:7 6000 label('sys_Multiply_s16') sys_Multiply_s16: 1900 2126 anda [$26] 6001 anda([sysArgs+2]) #18, 1901 c218 st [$18] 6002 st([vAC]) #19, AC.lo = mask.lo AND y.lo 1902 012b ld [$2b] 6003 ld([sysArgs+7]) #20, load mask.hio 1903 2127 anda [$27] 6004 anda([sysArgs+3]) #21, 1904 c219 st [$19] 6005 st([vAC+1]) #22, AC.hi = mask.hi AND y.hi 1905 4118 ora [$18] 6006 ora([vAC]) #23, 6007 beq('.sys_ms16_26') #24, AC = 0 then skip 1906 f00e beq .sys_ms16_26 1907 0128 ld [$28] 6008 ld([sysArgs+4]) #25, load sum.lo 1908 8124 adda [$24] 6009 adda([sysArgs+0]) #26, load x.lo 1909 c228 st [$28] 6010 st([sysArgs+4]) #27, sum.lo = sum.lo + x.lo 6011 blt('.sys_ms16_30') #28, check for carry 190a e810 blt .sys_ms16_30 190b a124 suba [$24] 6012 suba([sysArgs+0]) #29, get original sum.lo back 6013 bra('.sys_ms16_32') #30, 190c fc12 bra .sys_ms16_32 190d 4124 ora [$24] 6014 ora([sysArgs+0]) #31, carry in bit 7 6015 6016 label('.sys_ms16_26') 6017 bra('.sys_ms16_28') #26, .sys_ms16_26: 190e fc18 bra .sys_ms16_28 190f 00e4 ld $e4 6018 ld(-56/2) #27, no accumulate sys ticks 6019 6020 label('.sys_ms16_30') .sys_ms16_30: 1910 2124 anda [$24] 6021 anda([sysArgs+0]) #30, carry in bit 7 1911 0200 nop 6022 nop() #31, 6023 6024 label('.sys_ms16_32') .sys_ms16_32: 1912 3080 anda $80,x 6025 anda(0x80,X) #32, 1913 0500 ld [x] 6026 ld([X]) #33, move carry to bit 0 1914 8129 adda [$29] 6027 adda([sysArgs+5]) #34, 1915 8125 adda [$25] 6028 adda([sysArgs+1]) #35, 1916 c229 st [$29] 6029 st([sysArgs+5]) #36, sum.hi = sum.hi + x.hi 1917 00df ld $df 6030 ld(-66/2) #37, accumulate sys ticks 6031 6032 label('.sys_ms16_28') .sys_ms16_28: 1918 c21d st [$1d] 6033 st([vTmp]) #28,#38, 1919 0124 ld [$24] 6034 ld([sysArgs+0]) #29,#39, AC = x.lo 191a 3080 anda $80,x 6035 anda(0x80,X) #30,#40, X = AC & 0x80 191b 8124 adda [$24] 6036 adda([sysArgs+0]) #31,#41, AC = x.lo <<1 191c c224 st [$24] 6037 st([sysArgs+0]) #32,#42, x.lo = AC 191d 0500 ld [x] 6038 ld([X]) #33,#43, AC = X >>7 191e 8125 adda [$25] 6039 adda([sysArgs+1]) #34,#44, 191f 8125 adda [$25] 6040 adda([sysArgs+1]) #35,#45, 1920 c225 st [$25] 6041 st([sysArgs+1]) #36,#46, x.hi = x.hi <<1 + AC 1921 012a ld [$2a] 6042 ld([sysArgs+6]) #37,#47, AC = mask.lo 1922 3080 anda $80,x 6043 anda(0x80,X) #38,#48, X = AC & 0x80 1923 812a adda [$2a] 6044 adda([sysArgs+6]) #39,#49, AC = mask.lo <<1 1924 c22a st [$2a] 6045 st([sysArgs+6]) #40,#50, mask.lo = AC 1925 0500 ld [x] 6046 ld([X]) #41,#51, AC = X >>7 1926 812b adda [$2b] 6047 adda([sysArgs+7]) #42,#52, 1927 812b adda [$2b] 6048 adda([sysArgs+7]) #43,#53, 1928 c22b st [$2b] 6049 st([sysArgs+7]) #44,#54, mask.hi = mask.hi <<1 + AC 1929 412a ora [$2a] 6050 ora([sysArgs+6]) #45,#55, 6051 beq('.sys_ms16_48') #46,#56, if mask = 0 192a f032 beq .sys_ms16_48 192b 0128 ld [$28] 6052 ld([sysArgs+4]) #47,#57 192c 0116 ld [$16] 6053 ld([vPC]) #48,#58, 192d a002 suba $02 6054 suba(2) #49,#59, 192e c216 st [$16] 6055 st([vPC]) #50,#60, restart SYS function 192f 1403 ld $03,y 6056 ld(hi('REENTER'),Y) #51,#61, 1930 e0cb jmp y,$cb 6057 jmp(Y,'REENTER') #52,#62, 1931 011d ld [$1d] 6058 ld([vTmp]) #53,#63, 6059 6060 label('.sys_ms16_48') .sys_ms16_48: 1932 c218 st [$18] 6061 st([vAC]) #48,#58, 1933 0129 ld [$29] 6062 ld([sysArgs+5]) #49,#59, 1934 c219 st [$19] 6063 st([vAC+1]) #50,#60, 1935 1403 ld $03,y 6064 ld(hi('REENTER'),Y) #51,#61, 1936 e0cb jmp y,$cb 6065 jmp(Y,'REENTER') #52,#62, 1937 011d ld [$1d] 6066 ld([vTmp]) #53,#63, 6067 6068 6069 #----------------------------------------------------------------------- 6070 # sys_Divide_s16, x:s16 = x:s16 / y:s16, rem:s16 = x:s16 % y:s16 6071 # x:args0:1 y:args2:3 rem:args4:5 mask:args6:7 6072 label('sys_Divide_s16') sys_Divide_s16: 1938 3080 anda $80,x 6073 anda(0x80,X) #18, X = AC & 0x80 1939 8128 adda [$28] 6074 adda([sysArgs+4]) #19, AC = rem.lo <<1 193a c228 st [$28] 6075 st([sysArgs+4]) #20, rem.lo = AC 193b 0500 ld [x] 6076 ld([X]) #21, AC = X >>7 193c 8129 adda [$29] 6077 adda([sysArgs+5]) #22, 193d 8129 adda [$29] 6078 adda([sysArgs+5]) #23, 193e c229 st [$29] 6079 st([sysArgs+5]) #24, rem.hi = rem.hi <<1 + AC 193f 0125 ld [$25] 6080 ld([sysArgs+1]) #25, 1940 2080 anda $80 6081 anda(0x80) #26, sign of x 6082 beq('.sys_ds16_29') #27, if x >= 0 1941 f046 beq .sys_ds16_29 1942 0128 ld [$28] 6083 ld([sysArgs+4]) #28, 1943 8001 adda $01 6084 adda(1) #29, 6085 bra('.sys_ds16_32') #30, 1944 fc49 bra .sys_ds16_32 1945 c228 st [$28] 6086 st([sysArgs+4]) #31, rem.lo++ 6087 6088 label('.sys_ds16_29') .sys_ds16_29: 1946 0200 nop 6089 nop() #29 1947 0200 nop 6090 nop() #30 1948 0200 nop 6091 nop() #31 6092 6093 label('.sys_ds16_32') .sys_ds16_32: 1949 0124 ld [$24] 6094 ld([sysArgs+0]) #32, AC = x.lo 194a 3080 anda $80,x 6095 anda(0x80,X) #33, X = AC & 0x80 194b 8124 adda [$24] 6096 adda([sysArgs+0]) #34, AC = x.lo <<1 194c c224 st [$24] 6097 st([sysArgs+0]) #35, x.lo = AC 194d 0500 ld [x] 6098 ld([X]) #36, AC = X >>7 194e 8125 adda [$25] 6099 adda([sysArgs+1]) #37, 194f 8125 adda [$25] 6100 adda([sysArgs+1]) #38, 1950 c225 st [$25] 6101 st([sysArgs+1]) #39, x.hi = x.hi <<1 + AC 6102 1951 0128 ld [$28] 6103 ld([sysArgs+4]) #40, load rem.lo 6104 blt('.sys_ds16_43') #41, check for borrow 1952 e857 blt .sys_ds16_43 1953 a126 suba [$26] 6105 suba([sysArgs+2]) #42, 1954 c218 st [$18] 6106 st([vAC]) #43, vAC.lo = rem.lo - y.lo 6107 bra('.sys_ds16_46') #44, 1955 fc5a bra .sys_ds16_46 1956 4126 ora [$26] 6108 ora([sysArgs+2]) #45, 6109 6110 label('.sys_ds16_43') .sys_ds16_43: 1957 c218 st [$18] 6111 st([vAC]) #43, 1958 2126 anda [$26] 6112 anda([sysArgs+2]) #44, 1959 0200 nop 6113 nop() #45, 6114 6115 label('.sys_ds16_46') .sys_ds16_46: 195a 3080 anda $80,x 6116 anda(0x80,X) #46, move borrow to bit 0 195b 0129 ld [$29] 6117 ld([sysArgs+5]) #47, load rem.hi 195c a500 suba [x] 6118 suba([X]) #48, 195d a127 suba [$27] 6119 suba([sysArgs+3]) #49, 195e c219 st [$19] 6120 st([vAC+1]) #50, vAC.hi = rem.hi - y.hi 6121 blt('.sys_ds16_53') #51, 195f e869 blt .sys_ds16_53 1960 00dc ld $dc 6122 ld(-72/2) #52 1961 0118 ld [$18] 6123 ld([vAC]) #53, 1962 c228 st [$28] 6124 st([sysArgs+4]) #54, 1963 0119 ld [$19] 6125 ld([vAC+1]) #55, 1964 c229 st [$29] 6126 st([sysArgs+5]) #56, rem = vAC 1965 0124 ld [$24] 6127 ld([sysArgs+0]) #57, 1966 8001 adda $01 6128 adda(1) #58, 1967 c224 st [$24] 6129 st([sysArgs+0]) #59, x.lo++ 1968 00d8 ld $d8 6130 ld(-80/2) #60, 6131 6132 label('.sys_ds16_53') .sys_ds16_53: 1969 c21d st [$1d] 6133 st([vTmp]) #53, #61, 196a 012a ld [$2a] 6134 ld([sysArgs+6]) #54, #62, AC = mask.lo 196b 3080 anda $80,x 6135 anda(0x80,X) #55, #63, X = AC & 0x80 196c 812a adda [$2a] 6136 adda([sysArgs+6]) #56, #64, AC = mask.lo <<1 196d c22a st [$2a] 6137 st([sysArgs+6]) #57, #65, mask.lo = AC 196e 0500 ld [x] 6138 ld([X]) #58, #66, AC = X >>7 196f 812b adda [$2b] 6139 adda([sysArgs+7]) #59, #67, 1970 812b adda [$2b] 6140 adda([sysArgs+7]) #60, #68, 1971 c22b st [$2b] 6141 st([sysArgs+7]) #61, #69, mask.hi = mask.hi <<1 + AC 1972 412a ora [$2a] 6142 ora([sysArgs+6]) #62, #70, 6143 bne('.sys_ds16_65') #63, #71, 1973 ec7a bne .sys_ds16_65 1974 0116 ld [$16] 6144 ld([vPC]) #64, #72, 1975 0200 nop 6145 nop() #65, #73, 1976 0200 nop 6146 nop() #66, #74, 1977 1403 ld $03,y 6147 ld(hi('REENTER'),Y) #67, #75, 1978 e0cb jmp y,$cb 6148 jmp(Y,'REENTER') #68, #76, 1979 011d ld [$1d] 6149 ld([vTmp]) #69, #77, 6150 6151 label('.sys_ds16_65') .sys_ds16_65: 197a a002 suba $02 6152 suba(2) #65, #73, 197b c216 st [$16] 6153 st([vPC]) #66, #74, restart SYS function 197c 1403 ld $03,y 6154 ld(hi('REENTER'),Y) #67, #75, 197d e0cb jmp y,$cb 6155 jmp(Y,'REENTER') #68, #76, 197e 011d ld [$1d] 6156 ld([vTmp]) #69, #77, 6157 6158 6159 #----------------------------------------------------------------------- 6160 # sys_DrawLine 6161 label('sys_DrawLine') sys_DrawLine: 197f 1182 ld [$82],x 6162 ld([0x82],X) #18, X = [xy1].lo 1980 1583 ld [$83],y 6163 ld([0x83],Y) #19, Y = [xy1].hi 1981 ce00 st [y,x] 6164 st([Y,X]) #20, [Y, X] = fgColour 1982 1184 ld [$84],x 6165 ld([0x84],X) #21, X = [xy2].lo 1983 1585 ld [$85],y 6166 ld([0x85],Y) #22, Y = [xy2].hi 1984 ce00 st [y,x] 6167 st([Y,X]) #23, [Y, X] = fgColour 6168 1985 01a0 ld [$a0] 6169 ld([0xA0]) #24, num.lo 1986 819c adda [$9c] 6170 adda([0x9C]) #25, sy.lo 1987 c2a0 st [$a0] 6171 st([0xA0]) #26, num.lo = num.lo + sy.lo 6172 blt('.sys_drawl_29') #27, check for carry 1988 e88c blt .sys_drawl_29 1989 a19c suba [$9c] 6173 suba([0x9C]) #28, get original num.lo back 6174 bra('.sys_drawl_31') #29, 198a fc8e bra .sys_drawl_31 198b 419c ora [$9c] 6175 ora([0x9C]) #30, carry in bit 7 6176 6177 label('.sys_drawl_29') .sys_drawl_29: 198c 219c anda [$9c] 6178 anda([0x9C]) #29, carry in bit 7 198d 0200 nop 6179 nop() #30, 6180 6181 label('.sys_drawl_31') .sys_drawl_31: 198e 3080 anda $80,x 6182 anda(0x80,X) #31, 198f 0500 ld [x] 6183 ld([X]) #32, move carry to bit 0 1990 81a1 adda [$a1] 6184 adda([0xA1]) #33, 1991 819d adda [$9d] 6185 adda([0x9D]) #34, 1992 c2a1 st [$a1] 6186 st([0xA1]) #35, num.hi = num.hi + sy.hi 6187 1993 01a0 ld [$a0] 6188 ld([0xA0]) #36, num.lo 6189 blt('.sys_drawl_39') #37, check for borrow 1994 e899 blt .sys_drawl_39 1995 a19a suba [$9a] 6190 suba([0x9A]) #38, sx.lo 1996 c218 st [$18] 6191 st([vAC]) #39, vAC.lo = num.lo - sx.lo 6192 bra('.sys_drawl_42') #40, 1997 fc9c bra .sys_drawl_42 1998 419a ora [$9a] 6193 ora([0x9A]) #41, 6194 6195 label('.sys_drawl_39') .sys_drawl_39: 1999 c218 st [$18] 6196 st([vAC]) #39, 199a 219a anda [$9a] 6197 anda([0x9A]) #40, 199b 0200 nop 6198 nop() #41, 6199 6200 label('.sys_drawl_42') .sys_drawl_42: 199c 3080 anda $80,x 6201 anda(0x80,X) #42, move borrow to bit 0 199d 01a1 ld [$a1] 6202 ld([0xA1]) #43, num.hi 199e a500 suba [x] 6203 suba([X]) #44, 199f a19b suba [$9b] 6204 suba([0x9B]) #45, 6205 blt('.sys_drawl_48') #46, 19a0 e8cf blt .sys_drawl_48 19a1 c219 st [$19] 6206 st([vAC+1]) #47, vAC.hi = num.hi - sx.hi 19a2 0118 ld [$18] 6207 ld([vAC]) #48, 19a3 c2a0 st [$a0] 6208 st([0xA0]) #49, 19a4 0119 ld [$19] 6209 ld([vAC+1]) #50, 19a5 c2a1 st [$a1] 6210 st([0xA1]) #51, num = vAC 6211 19a6 0182 ld [$82] 6212 ld([0x82]) #52, xy1.lo 19a7 8186 adda [$86] 6213 adda([0x86]) #53, dxy1.lo 19a8 c282 st [$82] 6214 st([0x82]) #54, xy1.lo = xy1.lo + dxy1.lo 6215 blt('.sys_drawl_57') #55, check for carry 19a9 e8ad blt .sys_drawl_57 19aa a186 suba [$86] 6216 suba([0x86]) #56, get original xy1.lo back 6217 bra('.sys_drawl_59') #57, 19ab fcaf bra .sys_drawl_59 19ac 4186 ora [$86] 6218 ora([0x86]) #58, carry in bit 7 6219 6220 label('.sys_drawl_57') .sys_drawl_57: 19ad 2186 anda [$86] 6221 anda([0x86]) #57, carry in bit 7 19ae 0200 nop 6222 nop() #58, 6223 6224 label('.sys_drawl_59') .sys_drawl_59: 19af 3080 anda $80,x 6225 anda(0x80,X) #59, 19b0 0500 ld [x] 6226 ld([X]) #60, move carry to bit 0 19b1 8183 adda [$83] 6227 adda([0x83]) #61, 19b2 8187 adda [$87] 6228 adda([0x87]) #62, 19b3 c283 st [$83] 6229 st([0x83]) #63, xy1.hi = xy1.hi + dxy1.hi 6230 19b4 0184 ld [$84] 6231 ld([0x84]) #64, xy2.lo 6232 blt('.sys_drawl_67') #65, check for borrow 19b5 e8ba blt .sys_drawl_67 19b6 a186 suba [$86] 6233 suba([0x86]) #66, dxy1.lo 19b7 c284 st [$84] 6234 st([0x84]) #67, xy2.lo = xy2.lo - dxy1.lo 6235 bra('.sys_drawl_70') #68, 19b8 fcbd bra .sys_drawl_70 19b9 4186 ora [$86] 6236 ora([0x86]) #69, 6237 6238 label('.sys_drawl_67') .sys_drawl_67: 19ba c284 st [$84] 6239 st([0x84]) #67, 19bb 2186 anda [$86] 6240 anda([0x86]) #68, 19bc 0200 nop 6241 nop() #69, 6242 6243 label('.sys_drawl_70') .sys_drawl_70: 19bd 3080 anda $80,x 6244 anda(0x80,X) #70, move borrow to bit 0 19be 0185 ld [$85] 6245 ld([0x85]) #71, xy2.hi 19bf a500 suba [x] 6246 suba([X]) #72, 19c0 a187 suba [$87] 6247 suba([0x87]) #73, 19c1 c285 st [$85] 6248 st([0x85]) #74, xy2.hi = xy2.hi - dxy1.hi 6249 19c2 019e ld [$9e] 6250 ld([0x9E]) #75, 19c3 a001 suba $01 6251 suba(1) #76, 6252 bne('.sys_drawl_79') #77, 19c4 ecc9 bne .sys_drawl_79 19c5 c29e st [$9e] 6253 st([0x9E]) #78, drawLine_count-- 19c6 1403 ld $03,y 6254 ld(hi('REENTER'),Y) #79, 19c7 e0cb jmp y,$cb 6255 jmp(Y,'REENTER') #80, 19c8 00d6 ld $d6 6256 ld(-84/2) #81, 6257 6258 label('.sys_drawl_79') .sys_drawl_79: 19c9 0116 ld [$16] 6259 ld([vPC]) #79, 19ca a002 suba $02 6260 suba(2) #80, 19cb c216 st [$16] 6261 st([vPC]) #81, restart 19cc 1403 ld $03,y 6262 ld(hi('NEXTY'),Y) #82, 19cd e000 jmp y,$00 6263 jmp(Y,'NEXTY') #83, 19ce 00d5 ld $d5 6264 ld(-86/2) #84, 6265 6266 label('.sys_drawl_48') .sys_drawl_48: 19cf 0182 ld [$82] 6267 ld([0x82]) #48, xy1.lo 19d0 8188 adda [$88] 6268 adda([0x88]) #49, dxy2.lo 19d1 c282 st [$82] 6269 st([0x82]) #50, xy1.lo = xy1.lo + dxy2.lo 6270 blt('.sys_drawl_53') #51, check for carry 19d2 e8d6 blt .sys_drawl_53 19d3 a188 suba [$88] 6271 suba([0x88]) #52, get original xy1.lo back 6272 bra('.sys_drawl_55') #53, 19d4 fcd8 bra .sys_drawl_55 19d5 4188 ora [$88] 6273 ora([0x88]) #54, carry in bit 7 6274 6275 label('.sys_drawl_53') .sys_drawl_53: 19d6 2188 anda [$88] 6276 anda([0x88]) #53, carry in bit 7 19d7 0200 nop 6277 nop() #54, 6278 6279 label('.sys_drawl_55') .sys_drawl_55: 19d8 3080 anda $80,x 6280 anda(0x80,X) #55, 19d9 0500 ld [x] 6281 ld([X]) #56, move carry to bit 0 19da 8183 adda [$83] 6282 adda([0x83]) #57, 19db 8189 adda [$89] 6283 adda([0x89]) #58, 19dc c283 st [$83] 6284 st([0x83]) #59, xy1.hi = xy1.hi + dxy2.hi 6285 19dd 0184 ld [$84] 6286 ld([0x84]) #60, xy2.lo 6287 blt('.sys_drawl_63') #61, check for borrow 19de e8e3 blt .sys_drawl_63 19df a188 suba [$88] 6288 suba([0x88]) #62, dxy2.lo 19e0 c284 st [$84] 6289 st([0x84]) #63, xy2.lo = xy2.lo - dxy2.lo 6290 bra('.sys_drawl_66') #64, 19e1 fce6 bra .sys_drawl_66 19e2 4188 ora [$88] 6291 ora([0x88]) #65, 6292 6293 label('.sys_drawl_63') .sys_drawl_63: 19e3 c284 st [$84] 6294 st([0x84]) #63, 19e4 2188 anda [$88] 6295 anda([0x88]) #64, 19e5 0200 nop 6296 nop() #65, 6297 6298 label('.sys_drawl_66') .sys_drawl_66: 19e6 3080 anda $80,x 6299 anda(0x80,X) #66, move borrow to bit 0 19e7 0185 ld [$85] 6300 ld([0x85]) #67, xy2.hi 19e8 a500 suba [x] 6301 suba([X]) #68, 19e9 a189 suba [$89] 6302 suba([0x89]) #69, 19ea c285 st [$85] 6303 st([0x85]) #70, xy2.hi = xy2.hi - dxy2.hi 6304 19eb 019e ld [$9e] 6305 ld([0x9E]) #71, 19ec a001 suba $01 6306 suba(1) #72, 6307 bne('.sys_drawl_75') #73, 19ed ecf2 bne .sys_drawl_75 19ee c29e st [$9e] 6308 st([0x9E]) #74, drawLine_count-- 19ef 1403 ld $03,y 6309 ld(hi('REENTER'),Y) #75, 19f0 e0cb jmp y,$cb 6310 jmp(Y,'REENTER') #76, 19f1 00d8 ld $d8 6311 ld(-80/2) #77, 6312 6313 label('.sys_drawl_75') .sys_drawl_75: 19f2 0116 ld [$16] 6314 ld([vPC]) #75, 19f3 a002 suba $02 6315 suba(2) #76, 19f4 c216 st [$16] 6316 st([vPC]) #77, restart 19f5 1403 ld $03,y 6317 ld(hi('NEXTY'),Y) #78, 19f6 e000 jmp y,$00 6318 jmp(Y,'NEXTY') #79, 19f7 00d7 ld $d7 6319 ld(-82/2) #80, 6320 6321 19f8 0200 nop 6322 fillers(until=0xff) 19f9 0200 nop 19fa 0200 nop * 7 times 19ff 0200 nop 6323 align(0x100, size=0x100) 6324 6325 #----------------------------------------------------------------------- 6326 # More sys implementations, (0x1A00) 6327 #----------------------------------------------------------------------- 6328 # 6329 # SYS_LoaderNextByteIn_32 6330 # sysArgs[0:1] Current address 6331 # sysArgs[2] Checksum 6332 # sysArgs[3] Wait value (videoY) 6333 label('SYS_LoaderNextByteIn_32') SYS_LoaderNextByteIn_32: 1a00 0109 ld [$09] 6334 ld([videoY]) #15 1a01 6127 xora [$27] 6335 xora([sysArgs+3]) #16 1a02 ec10 bne .sysNbi#19 6336 bne('.sysNbi#19') #17 1a03 1124 ld [$24],x 6337 ld([sysArgs+0],X) #18 1a04 1525 ld [$25],y 6338 ld([sysArgs+1],Y) #19 1a05 0300 ld in 6339 ld(IN) #20 1a06 ce00 st [y,x] 6340 st([Y,X]) #21 1a07 c218 st [$18] 6341 st([vAC]) #22 1a08 8126 adda [$26] 6342 adda([sysArgs+2]) #23 1a09 c226 st [$26] 6343 st([sysArgs+2]) #24 1a0a 0124 ld [$24] 6344 ld([sysArgs+0]) #25 1a0b 8001 adda $01 6345 adda(1) #26 1a0c c224 st [$24] 6346 st([sysArgs+0]) #27 1a0d 1403 ld $03,y 6347 ld(hi('NEXTY'),Y) #28 1a0e e000 jmp y,$00 6348 jmp(Y,'NEXTY') #29 1a0f 00f0 ld $f0 6349 ld(-32/2) #30 6350 6351 # Restart the instruction in the next timeslice 6352 label('.sysNbi#19') .sysNbi#19: 1a10 0116 ld [$16] 6353 ld([vPC]) #19 1a11 a002 suba $02 6354 suba(2) #20 1a12 c216 st [$16] 6355 st([vPC]) #21 1a13 1403 ld $03,y 6356 ld(hi('NEXTY'),Y) #22 1a14 e000 jmp y,$00 6357 jmp(Y,'NEXTY') #23 1a15 00f3 ld $f3 6358 ld(-26/2) #24 6359 6360 6361 # SYS_LoaderProcessInput_64 6362 # sysArgs[0:1] Source address 6363 # sysArgs[2] Checksum 6364 # sysArgs[4] Copy count 6365 # sysArgs[5:6] Destination address 6366 label('SYS_LoaderProcessInput_64') SYS_LoaderProcessInput_64: 1a16 1525 ld [$25],y 6367 ld([sysArgs+1],Y) #15 1a17 0126 ld [$26] 6368 ld([sysArgs+2]) #16 1a18 ec3d bne .sysPi#19 6369 bne('.sysPi#19') #17 1a19 0124 ld [$24] 6370 ld([sysArgs+0]) #18 1a1a b041 suba $41,x 6371 suba(65,X) #19 Point at first byte of buffer 1a1b 0d00 ld [y,x] 6372 ld([Y,X]) #20 Command byte 6373 st([Y,Xpp]); C('Just X++')#21 1a1c de00 st [y,x++] ;Just X++ 1a1d 604c xora $4c 6374 xora(ord('L')) #22 This loader lumps everything under 'L' 1a1e ec41 bne .sysPi#25 6375 bne('.sysPi#25') #23 6376 ld([Y,X]); C('Valid command')#24 Length byte 1a1f 0d00 ld [y,x] ;Valid command 6377 st([Y,Xpp]); C('Just X++')#25 1a20 de00 st [y,x++] ;Just X++ 1a21 203f anda $3f 6378 anda(63) #26 Bit 6:7 are garbage 1a22 c228 st [$28] 6379 st([sysArgs+4]) #27 Copy count 0..60 1a23 8d00 adda [y,x] 6380 adda([Y,X]) #28 One location past (+1) the last byte of fragment 1a24 8001 adda $01 6381 adda(1) #29 254+1 = $ff becomes 0, 255+1 = $00 becomes 1 1a25 20fe anda $fe 6382 anda(0xfe) #30 Will be zero only when writing in top 2 bytes of page 1a26 c21d st [$1d] 6383 st([vTmp]) #31 Remember as first condition 1a27 0d00 ld [y,x] 6384 ld([Y,X]) #32 Low copy address 6385 st([Y,Xpp]); C('Just X++')#33 1a28 de00 st [y,x++] ;Just X++ 1a29 c229 st [$29] 6386 st([sysArgs+5]) #34 1a2a 0d00 ld [y,x] 6387 ld([Y,X]) #35 High copy address 6388 st([Y,Xpp]); C('Just X++')#36 1a2b de00 st [y,x++] ;Just X++ 1a2c c22a st [$2a] 6389 st([sysArgs+6]) #37 1a2d a001 suba $01 6390 suba(1) #38 Check if writing into sound channel page (1..4) 1a2e 20fc anda $fc 6391 anda(0xfc) #39 1a2f 411d ora [$1d] 6392 ora([vTmp]) #40 Combine second condition with first 1a30 c21d st [$1d] 6393 st([vTmp]) #41 Zero when overwriting one of oscL[1..4] or oscH[1..4] 1a31 0128 ld [$28] 6394 ld([sysArgs+4]) #42 Check copy count 1a32 ec46 bne .sysPi#45 6395 bne('.sysPi#45') #43 6396 # Execute code (don't care about checksum anymore) 6397 ld([sysArgs+5]); C('Execute')#44 Low run address 1a33 0129 ld [$29] ;Execute 1a34 c21a st [$1a] 6398 st([vLR]) #45 https://forum.gigatron.io/viewtopic.php?p=29#p29 1a35 a002 suba $02 6399 suba(2) #46 1a36 c216 st [$16] 6400 st([vPC]) #47 1a37 012a ld [$2a] 6401 ld([sysArgs+6]) #48 High run address 1a38 c217 st [$17] 6402 st([vPC+1]) #49 1a39 c21b st [$1b] 6403 st([vLR+1]) #50 1a3a 1403 ld $03,y 6404 ld(hi('REENTER'),Y) #51 1a3b e0cb jmp y,$cb 6405 jmp(Y,'REENTER') #52 1a3c 00e4 ld $e4 6406 ld(-56/2) #53 6407 6408 # Invalid checksum 6409 label('.sysPi#19') .sysPi#19: 1a3d 0001 ld $01 6410 wait(25-19); C('Invalid checksum')#19 Reset checksum 1a3e ec3e bne $1a3e 1a3f a001 suba $01 1a40 0200 nop ;Invalid checksum 6411 6412 # Unknown command 6413 label('.sysPi#25') 6414 ld(ord('g')); C('Unknown command')#25 Reset checksum .sysPi#25: 1a41 0067 ld $67 ;Unknown command 1a42 c226 st [$26] 6415 st([sysArgs+2]) #26 1a43 1403 ld $03,y 6416 ld(hi('REENTER'),Y) #27 1a44 e0cb jmp y,$cb 6417 jmp(Y,'REENTER') #28 1a45 00f0 ld $f0 6418 ld(-32/2) #29 6419 6420 # Loading data 6421 label('.sysPi#45') 6422 ld([vTmp]); C('Loading data')#45 .sysPi#45: 1a46 011d ld [$1d] ;Loading data 1a47 ec4a bne $1a4a 6423 bne(pc()+3) #46 1a48 fc4b bra $1a4b 6424 bra(pc()+3) #47 6425 ld(0xfc); C('Unsafe')#48 Clear low channelMask bits so it becomes safe 1a49 00fc ld $fc ;Unsafe 6426 ld(0xff); C('Safe')#48(!) No change to channelMask because already safe 1a4a 00ff ld $ff ;Safe 1a4b 2121 anda [$21] 6427 anda([channelMask]) #49 1a4c c221 st [$21] 6428 st([channelMask]) #50 1a4d 0124 ld [$24] 6429 ld([sysArgs+0]) #51 Continue checksum 1a4e b001 suba $01,x 6430 suba(1,X) #52 Point at last byte 1a4f 0d00 ld [y,x] 6431 ld([Y,X]) #53 1a50 c226 st [$26] 6432 st([sysArgs+2]) #54 1a51 1403 ld $03,y 6433 ld(hi('REENTER'),Y) #55 1a52 e0cb jmp y,$cb 6434 jmp(Y,'REENTER') #56 1a53 00e2 ld $e2 6435 ld(-60/2) #57 6436 6437 6438 # SYS_LoaderPayloadCopy_34 6439 # sysArgs[0:1] Source address 6440 # sysArgs[4] Copy count 6441 # sysArgs[5:6] Destination address 6442 label('SYS_LoaderPayloadCopy_34') SYS_LoaderPayloadCopy_34: 1a54 0128 ld [$28] 6443 ld([sysArgs+4]) #15 Copy count 1a55 f062 beq .sysCc#18 6444 beq('.sysCc#18') #16 1a56 a001 suba $01 6445 suba(1) #17 1a57 c228 st [$28] 6446 st([sysArgs+4]) #18 1a58 1124 ld [$24],x 6447 ld([sysArgs+0],X) #19 Current pointer 1a59 1525 ld [$25],y 6448 ld([sysArgs+1],Y) #20 1a5a 0d00 ld [y,x] 6449 ld([Y,X]) #21 1a5b 1129 ld [$29],x 6450 ld([sysArgs+5],X) #22 Target pointer 1a5c 152a ld [$2a],y 6451 ld([sysArgs+6],Y) #23 1a5d ce00 st [y,x] 6452 st([Y,X]) #24 1a5e 0129 ld [$29] 6453 ld([sysArgs+5]) #25 Increment target 1a5f 8001 adda $01 6454 adda(1) #26 1a60 c229 st [$29] 6455 st([sysArgs+5]) #27 1a61 fc66 bra .sysCc#30 6456 bra('.sysCc#30') #28 6457 6458 label('.sysCc#18') .sysCc#18: 1a62 1403 ld $03,y 6459 ld(hi('REENTER'),Y) #18,29 1a63 0004 ld $04 6460 wait(30-19) #19 1a64 ec64 bne $1a64 1a65 a001 suba $01 6461 label('.sysCc#30') .sysCc#30: 1a66 e0cb jmp y,$cb 6462 jmp(Y,'REENTER') #30 1a67 00ef ld $ef 6463 ld(-34/2) #31 6464 6465 6466 # SYS_Unpack_56 6467 # Unpack 3 bytes into 4 pixels 6468 # 6469 # Variables: 6470 # sysArgs[0:2] Packed bytes (in) 6471 # sysArgs[0:3] Pixels (out) 6472 label('SYS_Unpack_56') SYS_Unpack_56: 1a68 1407 ld $07,y 6473 ld(soundTable>>8,Y) #15 1a69 0126 ld [$26] 6474 ld([sysArgs+2]) #16 a[2]>>2 1a6a 5003 ora $03,x 6475 ora(0x03,X) #17 1a6b 0d00 ld [y,x] 6476 ld([Y,X]) #18 1a6c c227 st [$27] 6477 st([sysArgs+3]) #19 -> Pixel 3 6478 1a6d 0126 ld [$26] 6479 ld([sysArgs+2]) #20 (a[2]&3)<<4 1a6e 2003 anda $03 6480 anda(0x03) #21 1a6f 8200 adda ac 6481 adda(AC) #22 1a70 8200 adda ac 6482 adda(AC) #23 1a71 8200 adda ac 6483 adda(AC) #24 1a72 8200 adda ac 6484 adda(AC) #25 1a73 c226 st [$26] 6485 st([sysArgs+2]) #26 1a74 0125 ld [$25] 6486 ld([sysArgs+1]) #27 | a[1]>>4 1a75 5003 ora $03,x 6487 ora(0x03,X) #28 1a76 0d00 ld [y,x] 6488 ld([Y,X]) #29 1a77 5003 ora $03,x 6489 ora(0x03,X) #30 1a78 0d00 ld [y,x] 6490 ld([Y,X]) #31 1a79 4126 ora [$26] 6491 ora([sysArgs+2]) #32 1a7a c226 st [$26] 6492 st([sysArgs+2]) #33 -> Pixel 2 6493 1a7b 0125 ld [$25] 6494 ld([sysArgs+1]) #34 (a[1]&15)<<2 1a7c 200f anda $0f 6495 anda(0x0f) #35 1a7d 8200 adda ac 6496 adda(AC) #36 1a7e 8200 adda ac 6497 adda(AC) #37 1a7f c225 st [$25] 6498 st([sysArgs+1]) #38 6499 1a80 0124 ld [$24] 6500 ld([sysArgs+0]) #39 | a[0]>>6 1a81 5003 ora $03,x 6501 ora(0x03,X) #40 1a82 0d00 ld [y,x] 6502 ld([Y,X]) #41 1a83 5003 ora $03,x 6503 ora(0x03,X) #42 1a84 0d00 ld [y,x] 6504 ld([Y,X]) #43 1a85 5003 ora $03,x 6505 ora(0x03,X) #44 1a86 0d00 ld [y,x] 6506 ld([Y,X]) #45 1a87 4125 ora [$25] 6507 ora([sysArgs+1]) #46 1a88 c225 st [$25] 6508 st([sysArgs+1]) #47 -> Pixel 1 6509 1a89 0124 ld [$24] 6510 ld([sysArgs+0]) #48 a[1]&63 1a8a 203f anda $3f 6511 anda(0x3f) #49 1a8b c224 st [$24] 6512 st([sysArgs+0]) #50 -> Pixel 0 6513 1a8c 1403 ld $03,y 6514 ld(hi('REENTER'),Y) #51 1a8d e0cb jmp y,$cb 6515 jmp(Y,'REENTER') #52 1a8e 00e4 ld $e4 6516 ld(-56/2) #53 6517 6518 6519 # sys_SortUint8Array, sysArgs0,1=array, sysArg2=i, sysArg3=j, sysArg4=key, sysArg5=length 6520 label('sys_SortUint8Array') sys_SortUint8Array: 1a8f 0127 ld [$27] 6521 ld([sysArgs+3]) #18, 6522 ble('.sys_sortuint8array_21') #19, j == 0 1a90 f8a8 ble .sys_sortuint8array_21 1a91 0124 ld [$24] 6523 ld([sysArgs+0]) #20, 1a92 8127 adda [$27] 6524 adda([sysArgs+3]) #21, 1a93 b001 suba $01,x 6525 suba(1,X) #22, 1a94 0d00 ld [y,x] 6526 ld([Y,X]) #23, 6527 bmi('.sys_sortuint8array_26') #24, convert signed < to unsigned < 1a95 e899 blt .sys_sortuint8array_26 1a96 a128 suba [$28] 6528 suba([sysArgs+4]) #25, 6529 bra('.sys_sortuint8array_28') #26, 1a97 fc9b bra .sys_sortuint8array_28 1a98 4128 ora [$28] 6530 ora([sysArgs+4]) #27, borrow 6531 label('.sys_sortuint8array_26') .sys_sortuint8array_26: 1a99 2128 anda [$28] 6532 anda([sysArgs+4]) #26, borrow 1a9a 0200 nop 6533 nop() #27, 6534 label('.sys_sortuint8array_28') .sys_sortuint8array_28: 6535 bmi('.sys_sortuint8array_30_0') #28, a[j-1] < key 1a9b e8b4 blt .sys_sortuint8array_30_0 1a9c 0d00 ld [y,x] 6536 ld([Y,X]) #29, 1a9d de00 st [y,x++] 6537 st([Y,Xpp]) #30, 1a9e ce00 st [y,x] 6538 st([Y,X]) #31, a[j] = a[j-1] 1a9f 0127 ld [$27] 6539 ld([sysArgs+3]) #32, 1aa0 a001 suba $01 6540 suba(1) #33, 1aa1 c227 st [$27] 6541 st([sysArgs+3]) #34, j-- 1aa2 0116 ld [$16] 6542 ld([vPC]) #35, 1aa3 a002 suba $02 6543 suba(2) #36, 1aa4 c216 st [$16] 6544 st([vPC]) #37, restart 1aa5 1403 ld $03,y 6545 ld(hi('NEXTY'),Y) #38, 1aa6 e000 jmp y,$00 6546 jmp(Y,'NEXTY') #39, 1aa7 00eb ld $eb 6547 ld(-42/2) #40, 6548 label('.sys_sortuint8array_21') .sys_sortuint8array_21: 1aa8 9127 adda [$27],x 6549 adda([sysArgs+3],X) #21, 1aa9 0128 ld [$28] 6550 ld([sysArgs+4]) #22, 1aaa ce00 st [y,x] 6551 st([Y,X]) #23, a[j] = key 1aab 0126 ld [$26] 6552 ld([sysArgs+2]) #24, 1aac 8001 adda $01 6553 adda(1) #25, 1aad c226 st [$26] 6554 st([sysArgs+2]) #26, i++ 1aae a129 suba [$29] 6555 suba([sysArgs+5]) #27, 6556 blt('.sys_sortuint8array_30_1') #28, i < length 1aaf e8c0 blt .sys_sortuint8array_30_1 1ab0 0124 ld [$24] 6557 ld([sysArgs+0]) #29, 1ab1 1403 ld $03,y 6558 ld(hi('NEXTY'),Y) #30, 1ab2 e000 jmp y,$00 6559 jmp(Y,'NEXTY') #31, 1ab3 00ef ld $ef 6560 ld(-34/2) #32, 6561 label('.sys_sortuint8array_30_0') .sys_sortuint8array_30_0: 1ab4 de00 st [y,x++] 6562 st([Y,Xpp]) #30, 1ab5 0128 ld [$28] 6563 ld([sysArgs+4]) #31, 1ab6 ce00 st [y,x] 6564 st([Y,X]) #32, a[j] = key 1ab7 0126 ld [$26] 6565 ld([sysArgs+2]) #33, 1ab8 8001 adda $01 6566 adda(1) #34, 1ab9 c226 st [$26] 6567 st([sysArgs+2]) #35, i++ 1aba a129 suba [$29] 6568 suba([sysArgs+5]) #36, 6569 blt('.sys_sortuint8array_39') #37, i < length 1abb e8cb blt .sys_sortuint8array_39 1abc 0124 ld [$24] 6570 ld([sysArgs+0]) #38, 1abd 1403 ld $03,y 6571 ld(hi('REENTER'),Y) #39, 1abe e0cb jmp y,$cb 6572 jmp(Y,'REENTER') #40, 1abf 00ea ld $ea 6573 ld(-44/2) #41, 6574 label('.sys_sortuint8array_30_1') .sys_sortuint8array_30_1: 1ac0 9126 adda [$26],x 6575 adda([sysArgs+2],X) #30, 1ac1 0d00 ld [y,x] 6576 ld([Y,X]) #31, 1ac2 c228 st [$28] 6577 st([sysArgs+4]) #32, key = a[i] 1ac3 0126 ld [$26] 6578 ld([sysArgs+2]) #33, 1ac4 c227 st [$27] 6579 st([sysArgs+3]) #34, j = i 1ac5 0116 ld [$16] 6580 ld([vPC]) #35, 1ac6 a002 suba $02 6581 suba(2) #36, 1ac7 c216 st [$16] 6582 st([vPC]) #37, restart 1ac8 1403 ld $03,y 6583 ld(hi('NEXTY'),Y) #38, 1ac9 e000 jmp y,$00 6584 jmp(Y,'NEXTY') #39, 1aca 00eb ld $eb 6585 ld(-42/2) #40, 6586 label('.sys_sortuint8array_39') .sys_sortuint8array_39: 1acb 9126 adda [$26],x 6587 adda([sysArgs+2],X) #39, 1acc 0d00 ld [y,x] 6588 ld([Y,X]) #40, 1acd c228 st [$28] 6589 st([sysArgs+4]) #41, key = a[i] 1ace 0126 ld [$26] 6590 ld([sysArgs+2]) #42, 1acf c227 st [$27] 6591 st([sysArgs+3]) #43, j = i 1ad0 0116 ld [$16] 6592 ld([vPC]) #44, 1ad1 a002 suba $02 6593 suba(2) #45, 1ad2 c216 st [$16] 6594 st([vPC]) #46, restart 1ad3 1403 ld $03,y 6595 ld(hi('REENTER'),Y) #47, 1ad4 e0cb jmp y,$cb 6596 jmp(Y,'REENTER') #48, 1ad5 00e6 ld $e6 6597 ld(-52/2) #49, 6598 6599 6600 # sys_SortViaIndices, sysArgs0,1=indices, sysArgs2,3=src, sysArg4,5=dst, sysArg6=dst step, vAC=count 6601 label('sys_SortViaIndices') sys_SortViaIndices: 1ad6 1124 ld [$24],x 6602 ld([sysArgs+0],X) #18, 1ad7 0d00 ld [y,x] 6603 ld([Y,X]) #19, [index] 1ad8 1527 ld [$27],y 6604 ld([sysArgs+3],Y) #20, 1ad9 9126 adda [$26],x 6605 adda([sysArgs+2],X) #21, src 1ada 0d00 ld [y,x] 6606 ld([Y,X]) #22, peek(src + index) 1adb 1529 ld [$29],y 6607 ld([sysArgs+5],Y) #23, 1adc 1128 ld [$28],x 6608 ld([sysArgs+4],X) #24, dst 1add ce00 st [y,x] 6609 st([Y,X]) #25, 1ade 0124 ld [$24] 6610 ld([sysArgs+0]) #26, 1adf 8001 adda $01 6611 adda(1) #27, 1ae0 c224 st [$24] 6612 st([sysArgs+0]) #28, indices++ 1ae1 0128 ld [$28] 6613 ld([sysArgs+4]) #29, 1ae2 812a adda [$2a] 6614 adda([sysArgs+6]) #30, 1ae3 c228 st [$28] 6615 st([sysArgs+4]) #31, dst += step 1ae4 0118 ld [$18] 6616 ld([vAC]) #32, 1ae5 a001 suba $01 6617 suba(1) #33, 6618 beq('.sys_sortviaindices_36') #34, 1ae6 f0ee beq .sys_sortviaindices_36 1ae7 c218 st [$18] 6619 st([vAC]) #35, count-- 1ae8 0116 ld [$16] 6620 ld([vPC]) #36, 1ae9 a002 suba $02 6621 suba(2) #37, 1aea c216 st [$16] 6622 st([vPC]) #38, restart 1aeb 1403 ld $03,y 6623 ld(hi('REENTER'),Y) #39, 1aec e0cb jmp y,$cb 6624 jmp(Y,'REENTER') #40, 1aed 00ea ld $ea 6625 ld(-44/2) #41, 6626 label('.sys_sortviaindices_36') .sys_sortviaindices_36: 1aee 1403 ld $03,y 6627 ld(hi('NEXTY'),Y) #36, 1aef e000 jmp y,$00 6628 jmp(Y,'NEXTY') #37, 1af0 00ec ld $ec 6629 ld(-40/2) #38, 6630 6631 1af1 0200 nop 6632 fillers(until=0xff) 1af2 0200 nop 1af3 0200 nop * 14 times 1aff 0200 nop 6633 align(0x100, size=0x100) 6634 6635 #----------------------------------------------------------------------- 6636 # More sys implementations, (0x1B00) 6637 #----------------------------------------------------------------------- 6638 # 6639 # sys_MemCopyByte, sysArgs0,1=src, sysArg2,3=dst, sysArg4=src step, sysArg5=dst step, vAC=count 6640 label('sys_MemCopyByte') sys_MemCopyByte: 1b00 1124 ld [$24],x 6641 ld([sysArgs+0],X) #18, 1b01 0d00 ld [y,x] 6642 ld([Y,X]) #19, [src] 1b02 1527 ld [$27],y 6643 ld([sysArgs+3],Y) #20, 1b03 1126 ld [$26],x 6644 ld([sysArgs+2],X) #21, 1b04 ce00 st [y,x] 6645 st([Y,X]) #22, [dst] = [src] 1b05 0124 ld [$24] 6646 ld([sysArgs+0]) #23, 1b06 8128 adda [$28] 6647 adda([sysArgs+4]) #24, 1b07 c224 st [$24] 6648 st([sysArgs+0]) #25, src++ 1b08 0126 ld [$26] 6649 ld([sysArgs+2]) #26, 1b09 8129 adda [$29] 6650 adda([sysArgs+5]) #27, 1b0a c226 st [$26] 6651 st([sysArgs+2]) #28, dst++ 1b0b 0118 ld [$18] 6652 ld([vAC]) #29, 1b0c a001 suba $01 6653 suba(1) #30, 6654 beq('.sys_memcopybyte_33') #31, 1b0d f015 beq .sys_memcopybyte_33 1b0e c218 st [$18] 6655 st([vAC]) #32, count-- 1b0f 0116 ld [$16] 6656 ld([vPC]) #33, 1b10 a002 suba $02 6657 suba(2) #34, 1b11 c216 st [$16] 6658 st([vPC]) #35, restart 1b12 1403 ld $03,y 6659 ld(hi('NEXTY'),Y) #36, 1b13 e000 jmp y,$00 6660 jmp(Y,'NEXTY') #37, 1b14 00ec ld $ec 6661 ld(-40/2) #38, 6662 label('.sys_memcopybyte_33') .sys_memcopybyte_33: 1b15 1403 ld $03,y 6663 ld(hi('REENTER'),Y) #33, 1b16 e0cb jmp y,$cb 6664 jmp(Y,'REENTER') #34, 1b17 00ed ld $ed 6665 ld(-38/2) #35, 6666 6667 6668 # sys_MemCopyWord, sysArgs0,1=src, sysArg2,3=dst, vAC=count, sysArg4,5=tmp 6669 label('sys_MemCopyWord') sys_MemCopyWord: 1b18 1124 ld [$24],x 6670 ld([sysArgs+0],X) #18, 1b19 0d00 ld [y,x] 6671 ld([Y,X]) #19, [src + 0] 1b1a de00 st [y,x++] 6672 st([Y,Xpp]) #20 1b1b c228 st [$28] 6673 st([sysArgs+4]) #21, 1b1c 0d00 ld [y,x] 6674 ld([Y,X]) #22, [src + 1] 1b1d c229 st [$29] 6675 st([sysArgs+5]) #23, 1b1e 1527 ld [$27],y 6676 ld([sysArgs+3],Y) #24, 1b1f 1126 ld [$26],x 6677 ld([sysArgs+2],X) #25, 1b20 0128 ld [$28] 6678 ld([sysArgs+4]) #26, 1b21 de00 st [y,x++] 6679 st([Y,Xpp]) #27, [dst + 0] = [src + 0] 1b22 0129 ld [$29] 6680 ld([sysArgs+5]) #28, 1b23 ce00 st [y,x] 6681 st([Y,X]) #29, [dst + 1] = [src + 1] 1b24 0124 ld [$24] 6682 ld([sysArgs+0]) #30, 1b25 8002 adda $02 6683 adda(2) #31, 1b26 c224 st [$24] 6684 st([sysArgs+0]) #32, src += 2 1b27 0126 ld [$26] 6685 ld([sysArgs+2]) #33, 1b28 8002 adda $02 6686 adda(2) #34, 1b29 c226 st [$26] 6687 st([sysArgs+2]) #35, dst += 2 1b2a 0118 ld [$18] 6688 ld([vAC]) #36, 1b2b a001 suba $01 6689 suba(1) #37, 6690 beq('.sys_memcopyword_40') #38, 1b2c f034 beq .sys_memcopyword_40 1b2d c218 st [$18] 6691 st([vAC]) #39, count-- 1b2e 0116 ld [$16] 6692 ld([vPC]) #40, 1b2f a002 suba $02 6693 suba(2) #41, 1b30 c216 st [$16] 6694 st([vPC]) #42, restart 1b31 1403 ld $03,y 6695 ld(hi('REENTER'),Y) #43, 1b32 e0cb jmp y,$cb 6696 jmp(Y,'REENTER') #44, 1b33 00e8 ld $e8 6697 ld(-48/2) #45, 6698 label('.sys_memcopyword_40') .sys_memcopyword_40: 1b34 1403 ld $03,y 6699 ld(hi('NEXTY'),Y) #40, 1b35 e000 jmp y,$00 6700 jmp(Y,'NEXTY') #41, 1b36 00ea ld $ea 6701 ld(-44/2) #42, 6702 6703 6704 # sys_MemCopyDWord, sysArgs0,1=src, sysArg2,3=dst, vAC=count, sysArg4,5=tmp, sysArg6,7=tmp 6705 label('sys_MemCopyDWord') sys_MemCopyDWord: 1b37 1124 ld [$24],x 6706 ld([sysArgs+0],X) #18, 1b38 0d00 ld [y,x] 6707 ld([Y,X]) #19, [src + 0] 1b39 de00 st [y,x++] 6708 st([Y,Xpp]) #20 1b3a c228 st [$28] 6709 st([sysArgs+4]) #21, 1b3b 0d00 ld [y,x] 6710 ld([Y,X]) #22, [src + 1] 1b3c de00 st [y,x++] 6711 st([Y,Xpp]) #23 1b3d c229 st [$29] 6712 st([sysArgs+5]) #24, 1b3e 0d00 ld [y,x] 6713 ld([Y,X]) #25, [src + 2] 1b3f de00 st [y,x++] 6714 st([Y,Xpp]) #26 1b40 c22a st [$2a] 6715 st([sysArgs+6]) #27, 1b41 0d00 ld [y,x] 6716 ld([Y,X]) #28, [src + 3] 1b42 c22b st [$2b] 6717 st([sysArgs+7]) #29, 1b43 1527 ld [$27],y 6718 ld([sysArgs+3],Y) #30, 1b44 1126 ld [$26],x 6719 ld([sysArgs+2],X) #31, 1b45 0128 ld [$28] 6720 ld([sysArgs+4]) #32, 1b46 de00 st [y,x++] 6721 st([Y,Xpp]) #33, [dst + 0] = [src + 0] 1b47 0129 ld [$29] 6722 ld([sysArgs+5]) #34, 1b48 de00 st [y,x++] 6723 st([Y,Xpp]) #35, [dst + 1] = [src + 1] 1b49 012a ld [$2a] 6724 ld([sysArgs+6]) #36, 1b4a de00 st [y,x++] 6725 st([Y,Xpp]) #37, [dst + 2] = [src + 2] 1b4b 012b ld [$2b] 6726 ld([sysArgs+7]) #38, 1b4c ce00 st [y,x] 6727 st([Y,X]) #39, [dst + 3] = [src + 3] 1b4d 0124 ld [$24] 6728 ld([sysArgs+0]) #40, 1b4e 8004 adda $04 6729 adda(4) #41, 1b4f c224 st [$24] 6730 st([sysArgs+0]) #42, src += 4 1b50 0126 ld [$26] 6731 ld([sysArgs+2]) #43, 1b51 8004 adda $04 6732 adda(4) #44, 1b52 c226 st [$26] 6733 st([sysArgs+2]) #45, dst += 4 1b53 0118 ld [$18] 6734 ld([vAC]) #46, 1b54 a001 suba $01 6735 suba(1) #47, 6736 beq('.sys_memcopydword_50') #48, 1b55 f05d beq .sys_memcopydword_50 1b56 c218 st [$18] 6737 st([vAC]) #49, count-- 1b57 0116 ld [$16] 6738 ld([vPC]) #50, 1b58 a002 suba $02 6739 suba(2) #51, 1b59 c216 st [$16] 6740 st([vPC]) #52, restart 1b5a 1403 ld $03,y 6741 ld(hi('REENTER'),Y) #53, 1b5b e0cb jmp y,$cb 6742 jmp(Y,'REENTER') #54, 1b5c 00e3 ld $e3 6743 ld(-58/2) #55, 6744 label('.sys_memcopydword_50') .sys_memcopydword_50: 1b5d 1403 ld $03,y 6745 ld(hi('NEXTY'),Y) #50, 1b5e e000 jmp y,$00 6746 jmp(Y,'NEXTY') #51, 1b5f 00e5 ld $e5 6747 ld(-54/2) #52, 6748 6749 1b60 0200 nop 6750 fillers(until=0xff) 1b61 0200 nop 1b62 0200 nop * 159 times 1bff 0200 nop 6751 align(0x100, size=0x100) 6752 6753 #----------------------------------------------------------------------- 6754 # More sys implementations, (0x1C00) 6755 #----------------------------------------------------------------------- 6756 # 6757 # sys_SortSprites, sysArgs0,1=_y_array, sysArg2=i, sysArg3=j, sysArg4=key0, sysArg5=length 6758 # sysArgs6,7=_is_array, vAC.lo=key1 6759 label('sys_SortSprites') sys_SortSprites: 1c00 0127 ld [$27] 6760 ld([sysArgs+3]) #18, 6761 ble('.sys_sortsprites_21') #19, j <= 0 1c01 f820 ble .sys_sortsprites_21 1c02 0124 ld [$24] 6762 ld([sysArgs+0]) #20, 1c03 8127 adda [$27] 6763 adda([sysArgs+3]) #21, 1c04 b001 suba $01,x 6764 suba(1,X) #22, 1c05 0d00 ld [y,x] 6765 ld([Y,X]) #23, 6766 bmi('.sys_sortsprites_26') #24, convert signed < to unsigned < 1c06 e80a blt .sys_sortsprites_26 1c07 a128 suba [$28] 6767 suba([sysArgs+4]) #25, 6768 bra('.sys_sortsprites_28') #26, 1c08 fc0c bra .sys_sortsprites_28 1c09 4128 ora [$28] 6769 ora([sysArgs+4]) #27, borrow 6770 label('.sys_sortsprites_26') .sys_sortsprites_26: 1c0a 2128 anda [$28] 6771 anda([sysArgs+4]) #26, borrow 1c0b 0200 nop 6772 nop() #27, 6773 label('.sys_sortsprites_28') .sys_sortsprites_28: 6774 bmi('.sys_sortsprites_30') #28, y[j-1] < key 1c0c e831 blt .sys_sortsprites_30 1c0d 0d00 ld [y,x] 6775 ld([Y,X]) #29, 1c0e de00 st [y,x++] 6776 st([Y,Xpp]) #30, 1c0f ce00 st [y,x] 6777 st([Y,X]) #31, y[j] = y[j-1] 1c10 152b ld [$2b],y 6778 ld([sysArgs+7],Y) #32, 1c11 012a ld [$2a] 6779 ld([sysArgs+6]) #33, 1c12 8127 adda [$27] 6780 adda([sysArgs+3]) #34, 1c13 b001 suba $01,x 6781 suba(1,X) #35, 1c14 0d00 ld [y,x] 6782 ld([Y,X]) #36, 1c15 de00 st [y,x++] 6783 st([Y,Xpp]) #37, 1c16 ce00 st [y,x] 6784 st([Y,X]) #38, is[j] = is[j-1] 1c17 0127 ld [$27] 6785 ld([sysArgs+3]) #39, 1c18 a001 suba $01 6786 suba(1) #40, 1c19 c227 st [$27] 6787 st([sysArgs+3]) #41, j-- 1c1a 0116 ld [$16] 6788 ld([vPC]) #42, 1c1b a002 suba $02 6789 suba(2) #43, 1c1c c216 st [$16] 6790 st([vPC]) #44, restart 1c1d 1403 ld $03,y 6791 ld(hi('REENTER'),Y) #45, 1c1e e0cb jmp y,$cb 6792 jmp(Y,'REENTER') #46, 1c1f 00e7 ld $e7 6793 ld(-50/2) #47, 6794 label('.sys_sortsprites_21') .sys_sortsprites_21: 1c20 9127 adda [$27],x 6795 adda([sysArgs+3],X) #21, 1c21 0128 ld [$28] 6796 ld([sysArgs+4]) #22, 1c22 ce00 st [y,x] 6797 st([Y,X]) #23, y[j] = key0 1c23 152b ld [$2b],y 6798 ld([sysArgs+7],Y) #24, 1c24 012a ld [$2a] 6799 ld([sysArgs+6]) #25, 1c25 9127 adda [$27],x 6800 adda([sysArgs+3],X) #26, 1c26 0182 ld [$82] 6801 ld([0x82]) #27, 1c27 ce00 st [y,x] 6802 st([Y,X]) #28, is[j] = key1 1c28 0126 ld [$26] 6803 ld([sysArgs+2]) #29, 1c29 8001 adda $01 6804 adda(1) #30, 1c2a c226 st [$26] 6805 st([sysArgs+2]) #31, i++ 1c2b a129 suba [$29] 6806 suba([sysArgs+5]) #32, 6807 blt('.sys_sortsprites_35') #33, i < length 1c2c e842 blt .sys_sortsprites_35 1c2d 1525 ld [$25],y 6808 ld([sysArgs+1],Y) #34, 1c2e 1403 ld $03,y 6809 ld(hi('REENTER'),Y) #35, 1c2f e0cb jmp y,$cb 6810 jmp(Y,'REENTER') #36, 1c30 00ec ld $ec 6811 ld(-40/2) #37, 6812 label('.sys_sortsprites_30') .sys_sortsprites_30: 1c31 de00 st [y,x++] 6813 st([Y,Xpp]) #30, 1c32 0128 ld [$28] 6814 ld([sysArgs+4]) #31, 1c33 ce00 st [y,x] 6815 st([Y,X]) #32, y[j] = key0 1c34 152b ld [$2b],y 6816 ld([sysArgs+7],Y) #33, 1c35 012a ld [$2a] 6817 ld([sysArgs+6]) #34, 1c36 9127 adda [$27],x 6818 adda([sysArgs+3],X) #35, 1c37 0182 ld [$82] 6819 ld([0x82]) #36, 1c38 ce00 st [y,x] 6820 st([Y,X]) #37, is[j] = key1 1c39 0126 ld [$26] 6821 ld([sysArgs+2]) #38, 1c3a 8001 adda $01 6822 adda(1) #39, 1c3b c226 st [$26] 6823 st([sysArgs+2]) #40, i++ 1c3c a129 suba [$29] 6824 suba([sysArgs+5]) #41, 6825 blt('.sys_sortsprites_44') #42, i < length 1c3d e853 blt .sys_sortsprites_44 1c3e 1525 ld [$25],y 6826 ld([sysArgs+1],Y) #43 1c3f 1403 ld $03,y 6827 ld(hi('NEXTY'),Y) #44, 1c40 e000 jmp y,$00 6828 jmp(Y,'NEXTY') #45, 1c41 00e8 ld $e8 6829 ld(-48/2) #46, 6830 label('.sys_sortsprites_35') .sys_sortsprites_35: 1c42 0124 ld [$24] 6831 ld([sysArgs+0]) #35, 1c43 9126 adda [$26],x 6832 adda([sysArgs+2],X) #36, 1c44 0d00 ld [y,x] 6833 ld([Y,X]) #37, 1c45 c228 st [$28] 6834 st([sysArgs+4]) #38, key0 = y[i] 1c46 152b ld [$2b],y 6835 ld([sysArgs+7],Y) #39, 1c47 012a ld [$2a] 6836 ld([sysArgs+6]) #40, 1c48 9126 adda [$26],x 6837 adda([sysArgs+2],X) #41, 1c49 0d00 ld [y,x] 6838 ld([Y,X]) #42, 1c4a c282 st [$82] 6839 st([0x82]) #43, key1 = is[i] 1c4b 0126 ld [$26] 6840 ld([sysArgs+2]) #44, 1c4c c227 st [$27] 6841 st([sysArgs+3]) #45, j = i 1c4d 0116 ld [$16] 6842 ld([vPC]) #46, 1c4e a002 suba $02 6843 suba(2) #47, 1c4f c216 st [$16] 6844 st([vPC]) #48, restart 1c50 1403 ld $03,y 6845 ld(hi('REENTER'),Y) #49, 1c51 e0cb jmp y,$cb 6846 jmp(Y,'REENTER') #50, 1c52 00e5 ld $e5 6847 ld(-54/2) #51, 6848 label('.sys_sortsprites_44') .sys_sortsprites_44: 1c53 0124 ld [$24] 6849 ld([sysArgs+0]) #44, 1c54 9126 adda [$26],x 6850 adda([sysArgs+2],X) #45, 1c55 0d00 ld [y,x] 6851 ld([Y,X]) #46, 1c56 c228 st [$28] 6852 st([sysArgs+4]) #47, key0 = y[i] 1c57 152b ld [$2b],y 6853 ld([sysArgs+7],Y) #48, 1c58 012a ld [$2a] 6854 ld([sysArgs+6]) #49, 1c59 9126 adda [$26],x 6855 adda([sysArgs+2],X) #50, 1c5a 0d00 ld [y,x] 6856 ld([Y,X]) #51, 1c5b c282 st [$82] 6857 st([0x82]) #52, key1 = is[i] 1c5c 0126 ld [$26] 6858 ld([sysArgs+2]) #53, 1c5d c227 st [$27] 6859 st([sysArgs+3]) #54, j = i 1c5e 0116 ld [$16] 6860 ld([vPC]) #55, 1c5f a002 suba $02 6861 suba(2) #56, 1c60 c216 st [$16] 6862 st([vPC]) #57, restart 1c61 1403 ld $03,y 6863 ld(hi('NEXTY'),Y) #58, 1c62 e000 jmp y,$00 6864 jmp(Y,'NEXTY') #59, 1c63 00e1 ld $e1 6865 ld(-62/2) #60, 6866 6867 1c64 0200 nop 6868 fillers(until=0xff) 1c65 0200 nop 1c66 0200 nop * 155 times 1cff 0200 nop 6869 align(0x100, size=0x100) 6870 6871 #----------------------------------------------------------------------- 6872 # More sys implementations, (0x1D00) 6873 #----------------------------------------------------------------------- 6874 # 6875 # sys_DrawVLine, sysArgs0,1=count:colour, sysArgs2,3=X:Y address 6876 label('sys_DrawVLine') sys_DrawVLine: 1d00 1126 ld [$26],x 6877 ld([sysArgs+2],X) #18, 1d01 0124 ld [$24] 6878 ld([sysArgs+0]) #19, 1d02 a008 suba $08 6879 suba(8) #20, 6880 blt('.sys_drawvline_23') #21, 1d03 e82e blt .sys_drawvline_23 1d04 0124 ld [$24] 6881 ld([sysArgs+0]) #22, 1d05 0125 ld [$25] 6882 ld([sysArgs+1]) #23, 8 pixels 1d06 ce00 st [y,x] 6883 st([Y,X]) #24, 1d07 0127 ld [$27] 6884 ld([sysArgs+3]) #25, 1d08 9401 adda $01,y 6885 adda(1,Y) #26, 1d09 0125 ld [$25] 6886 ld([sysArgs+1]) #27, 1d0a ce00 st [y,x] 6887 st([Y,X]) #28, 1d0b 0127 ld [$27] 6888 ld([sysArgs+3]) #29, 1d0c 9402 adda $02,y 6889 adda(2,Y) #30, 1d0d 0125 ld [$25] 6890 ld([sysArgs+1]) #31, 1d0e ce00 st [y,x] 6891 st([Y,X]) #32, 1d0f 0127 ld [$27] 6892 ld([sysArgs+3]) #33, 1d10 9403 adda $03,y 6893 adda(3,Y) #34, 1d11 0125 ld [$25] 6894 ld([sysArgs+1]) #35, 1d12 ce00 st [y,x] 6895 st([Y,X]) #36, 1d13 0127 ld [$27] 6896 ld([sysArgs+3]) #37, 1d14 9404 adda $04,y 6897 adda(4,Y) #38, 1d15 0125 ld [$25] 6898 ld([sysArgs+1]) #39, 1d16 ce00 st [y,x] 6899 st([Y,X]) #40, 1d17 0127 ld [$27] 6900 ld([sysArgs+3]) #41, 1d18 9405 adda $05,y 6901 adda(5,Y) #42, 1d19 0125 ld [$25] 6902 ld([sysArgs+1]) #43, 1d1a ce00 st [y,x] 6903 st([Y,X]) #44, 1d1b 0127 ld [$27] 6904 ld([sysArgs+3]) #45, 1d1c 9406 adda $06,y 6905 adda(6,Y) #46, 1d1d 0125 ld [$25] 6906 ld([sysArgs+1]) #47, 1d1e ce00 st [y,x] 6907 st([Y,X]) #48, 1d1f 0127 ld [$27] 6908 ld([sysArgs+3]) #49, 1d20 9407 adda $07,y 6909 adda(7,Y) #50, 1d21 8008 adda $08 6910 adda(8) #51, 1d22 c227 st [$27] 6911 st([sysArgs+3]) #52, 1d23 0125 ld [$25] 6912 ld([sysArgs+1]) #53, 1d24 ce00 st [y,x] 6913 st([Y,X]) #54, 1d25 0124 ld [$24] 6914 ld([sysArgs+0]) #55, 1d26 a008 suba $08 6915 suba(8) #56, 1d27 c224 st [$24] 6916 st([sysArgs+0]) #57, 1d28 0116 ld [$16] 6917 ld([vPC]) #58, 1d29 a002 suba $02 6918 suba(2) #59, 1d2a c216 st [$16] 6919 st([vPC]) #60, restart 1d2b 1403 ld $03,y 6920 ld(hi('REENTER'),Y) #61, 1d2c e0cb jmp y,$cb 6921 jmp(Y,'REENTER') #62, 1d2d 00df ld $df 6922 ld(-66/2) #63, 6923 label('.sys_drawvline_23') .sys_drawvline_23: 1d2e a004 suba $04 6924 suba(4) #23, 6925 blt('.sys_drawvline_26') #24, 1d2f e84a blt .sys_drawvline_26 1d30 0124 ld [$24] 6926 ld([sysArgs+0]) #25, 1d31 0125 ld [$25] 6927 ld([sysArgs+1]) #26, 4 pixels 1d32 ce00 st [y,x] 6928 st([Y,X]) #27, 1d33 0127 ld [$27] 6929 ld([sysArgs+3]) #28, 1d34 9401 adda $01,y 6930 adda(1,Y) #29, 1d35 0125 ld [$25] 6931 ld([sysArgs+1]) #30, 1d36 ce00 st [y,x] 6932 st([Y,X]) #31, 1d37 0127 ld [$27] 6933 ld([sysArgs+3]) #32, 1d38 9402 adda $02,y 6934 adda(2,Y) #33, 1d39 0125 ld [$25] 6935 ld([sysArgs+1]) #34, 1d3a ce00 st [y,x] 6936 st([Y,X]) #35, 1d3b 0127 ld [$27] 6937 ld([sysArgs+3]) #36, 1d3c 9403 adda $03,y 6938 adda(3,Y) #37, 1d3d 8004 adda $04 6939 adda(4) #38, 1d3e c227 st [$27] 6940 st([sysArgs+3]) #39, 1d3f 0125 ld [$25] 6941 ld([sysArgs+1]) #40, 1d40 ce00 st [y,x] 6942 st([Y,X]) #41, 1d41 0124 ld [$24] 6943 ld([sysArgs+0]) #42, 1d42 a004 suba $04 6944 suba(4) #43, 1d43 c224 st [$24] 6945 st([sysArgs+0]) #44, 1d44 0116 ld [$16] 6946 ld([vPC]) #45, 1d45 a002 suba $02 6947 suba(2) #46, 1d46 c216 st [$16] 6948 st([vPC]) #47, restart 1d47 1403 ld $03,y 6949 ld(hi('NEXTY'),Y) #48, 1d48 e000 jmp y,$00 6950 jmp(Y,'NEXTY') #49, 1d49 00e6 ld $e6 6951 ld(-52/2) #50, 6952 label('.sys_drawvline_26') .sys_drawvline_26: 1d4a a002 suba $02 6953 suba(2) #26, 6954 blt('.sys_drawvline_29') #27, 1d4b e85e blt .sys_drawvline_29 1d4c 0124 ld [$24] 6955 ld([sysArgs+0]) #28, 1d4d 0125 ld [$25] 6956 ld([sysArgs+1]) #29, 2 pixels 1d4e ce00 st [y,x] 6957 st([Y,X]) #30, 1d4f 0127 ld [$27] 6958 ld([sysArgs+3]) #31, 1d50 9401 adda $01,y 6959 adda(1,Y) #32, 1d51 8002 adda $02 6960 adda(2) #33, 1d52 c227 st [$27] 6961 st([sysArgs+3]) #34, 1d53 0125 ld [$25] 6962 ld([sysArgs+1]) #35, 1d54 ce00 st [y,x] 6963 st([Y,X]) #36, 1d55 0124 ld [$24] 6964 ld([sysArgs+0]) #37, 1d56 a002 suba $02 6965 suba(2) #38, 1d57 c224 st [$24] 6966 st([sysArgs+0]) #39, 1d58 0116 ld [$16] 6967 ld([vPC]) #40, 1d59 a002 suba $02 6968 suba(2) #41, 1d5a c216 st [$16] 6969 st([vPC]) #42, restart 1d5b 1403 ld $03,y 6970 ld(hi('REENTER'),Y) #43, 1d5c e0cb jmp y,$cb 6971 jmp(Y,'REENTER') #44, 1d5d 00e8 ld $e8 6972 ld(-48/2) #45, 6973 label('.sys_drawvline_29') .sys_drawvline_29: 1d5e a001 suba $01 6974 suba(1) #29, 6975 blt('.sys_drawvline_32') #30, 1d5f e86c blt .sys_drawvline_32 1d60 0124 ld [$24] 6976 ld([sysArgs+0]) #31, 1d61 0125 ld [$25] 6977 ld([sysArgs+1]) #32, 1 pixel 1d62 ce00 st [y,x] 6978 st([Y,X]) #33, 1d63 0124 ld [$24] 6979 ld([sysArgs+0]) #34, 1d64 a001 suba $01 6980 suba(1) #35, 1d65 c224 st [$24] 6981 st([sysArgs+0]) #36, 1d66 0116 ld [$16] 6982 ld([vPC]) #37, 1d67 a002 suba $02 6983 suba(2) #38, 1d68 c216 st [$16] 6984 st([vPC]) #39, restart 1d69 1403 ld $03,y 6985 ld(hi('NEXTY'),Y) #40, 1d6a e000 jmp y,$00 6986 jmp(Y,'NEXTY') #41, 1d6b 00ea ld $ea 6987 ld(-44/2) #42, 6988 label('.sys_drawvline_32') .sys_drawvline_32: 1d6c 1403 ld $03,y 6989 ld(hi('NEXTY'),Y) #32, done 1d6d e000 jmp y,$00 6990 jmp(Y,'NEXTY') #33, 1d6e 00ee ld $ee 6991 ld(-36/2) #34, 6992 6993 1d6f 0200 nop 6994 fillers(until=0x80) 1d70 0200 nop 1d71 0200 nop * 17 times 6995 6996 1d80 0200 nop 6997 fillers(until=0xff) 1d81 0200 nop 1d82 0200 nop * 127 times 1dff 0200 nop 6998 align(0x100, size=0x100) 6999 7000 #----------------------------------------------------------------------- 7001 # More sys implementations, (0x1E00) 7002 #----------------------------------------------------------------------- 7003 # 7004 # sys_SpritePattern, sysArgs0,1=src, sysArgs2=dstY, sysArgs3=height/2, sysArgs4,5=patternLut 7005 label('sys_SpritePattern') sys_SpritePattern: 1e00 1525 ld [$25],y 7006 ld([sysArgs+1],Y) #18, src.hi 1e01 0d00 ld [y,x] 7007 ld([Y,X]) #19, 1e02 de00 st [y,x++] 7008 st([Y,Xpp]) #20, src.lo++ 1e03 1526 ld [$26],y 7009 ld([sysArgs+2],Y) #21, 1e04 caa3 st [y,$a3] 7010 st([Y,0xA3]) #22, pixel0 1e05 1525 ld [$25],y 7011 ld([sysArgs+1],Y) #23, src.hi 1e06 0d00 ld [y,x] 7012 ld([Y,X]) #24, 1e07 de00 st [y,x++] 7013 st([Y,Xpp]) #25, src.lo++ 1e08 1526 ld [$26],y 7014 ld([sysArgs+2],Y) #26, 1e09 caa5 st [y,$a5] 7015 st([Y,0xA5]) #27, pixel1 1e0a 1525 ld [$25],y 7016 ld([sysArgs+1],Y) #28, src.hi 1e0b 0d00 ld [y,x] 7017 ld([Y,X]) #29, 1e0c de00 st [y,x++] 7018 st([Y,Xpp]) #30, src.lo++ 1e0d 1526 ld [$26],y 7019 ld([sysArgs+2],Y) #31, 1e0e caa7 st [y,$a7] 7020 st([Y,0xA7]) #32, pixel2 1e0f 1525 ld [$25],y 7021 ld([sysArgs+1],Y) #33, src.hi 1e10 0d00 ld [y,x] 7022 ld([Y,X]) #34, 1e11 de00 st [y,x++] 7023 st([Y,Xpp]) #35, src.lo++ 1e12 1526 ld [$26],y 7024 ld([sysArgs+2],Y) #36, 1e13 caa9 st [y,$a9] 7025 st([Y,0xA9]) #37, pixel3 1e14 1525 ld [$25],y 7026 ld([sysArgs+1],Y) #38, src.hi 1e15 0d00 ld [y,x] 7027 ld([Y,X]) #39, 1e16 de00 st [y,x++] 7028 st([Y,Xpp]) #40, src.lo++ 1e17 1526 ld [$26],y 7029 ld([sysArgs+2],Y) #41, 1e18 caab st [y,$ab] 7030 st([Y,0xAB]) #42, pixel4 1e19 1525 ld [$25],y 7031 ld([sysArgs+1],Y) #43, src.hi 1e1a 0d00 ld [y,x] 7032 ld([Y,X]) #44, 1e1b de00 st [y,x++] 7033 st([Y,Xpp]) #45, src.lo++ 1e1c 1526 ld [$26],y 7034 ld([sysArgs+2],Y) #46, 1e1d caad st [y,$ad] 7035 st([Y,0xAD]) #47, pixel5 1e1e 1525 ld [$25],y 7036 ld([sysArgs+1],Y) #48, src.hi 1e1f 0d00 ld [y,x] 7037 ld([Y,X]) #49, 1e20 de00 st [y,x++] 7038 st([Y,Xpp]) #50, src.lo++ 1e21 1526 ld [$26],y 7039 ld([sysArgs+2],Y) #51, 1e22 caaf st [y,$af] 7040 st([Y,0xAF]) #52, pixel6 1e23 1525 ld [$25],y 7041 ld([sysArgs+1],Y) #53, src.hi 1e24 0d00 ld [y,x] 7042 ld([Y,X]) #54, 1e25 de00 st [y,x++] 7043 st([Y,Xpp]) #55, src.lo++ 1e26 1526 ld [$26],y 7044 ld([sysArgs+2],Y) #56, 1e27 cab1 st [y,$b1] 7045 st([Y,0xB1]) #57, pixel7 1e28 1525 ld [$25],y 7046 ld([sysArgs+1],Y) #58, src.hi 1e29 0d00 ld [y,x] 7047 ld([Y,X]) #59, 1e2a de00 st [y,x++] 7048 st([Y,Xpp]) #60, src.lo++ 1e2b 1526 ld [$26],y 7049 ld([sysArgs+2],Y) #61, 1e2c cab3 st [y,$b3] 7050 st([Y,0xB3]) #62, pixel8 1e2d 0126 ld [$26] 7051 ld([sysArgs+2]) #63, 1e2e 8001 adda $01 7052 adda(1) #64, 1e2f c226 st [$26] 7053 st([sysArgs+2]) #65, dstY++ 1e30 1525 ld [$25],y 7054 ld([sysArgs+1],Y) #66, src.hi 1e31 0d00 ld [y,x] 7055 ld([Y,X]) #67, 1e32 de00 st [y,x++] 7056 st([Y,Xpp]) #68, src.lo++ 1e33 1526 ld [$26],y 7057 ld([sysArgs+2],Y) #69, 1e34 caa3 st [y,$a3] 7058 st([Y,0xA3]) #70, pixel9 1e35 1525 ld [$25],y 7059 ld([sysArgs+1],Y) #71, src.hi 1e36 0d00 ld [y,x] 7060 ld([Y,X]) #72, 1e37 de00 st [y,x++] 7061 st([Y,Xpp]) #73, src.lo++ 1e38 1526 ld [$26],y 7062 ld([sysArgs+2],Y) #74, 1e39 caa5 st [y,$a5] 7063 st([Y,0xA5]) #75, pixel10 1e3a 1525 ld [$25],y 7064 ld([sysArgs+1],Y) #76, src.hi 1e3b 0d00 ld [y,x] 7065 ld([Y,X]) #77, 1e3c de00 st [y,x++] 7066 st([Y,Xpp]) #78, src.lo++ 1e3d 1526 ld [$26],y 7067 ld([sysArgs+2],Y) #79, 1e3e caa7 st [y,$a7] 7068 st([Y,0xA7]) #80, pixel11 1e3f 1525 ld [$25],y 7069 ld([sysArgs+1],Y) #81, src.hi 1e40 0d00 ld [y,x] 7070 ld([Y,X]) #82, 1e41 de00 st [y,x++] 7071 st([Y,Xpp]) #83, src.lo++ 1e42 1526 ld [$26],y 7072 ld([sysArgs+2],Y) #84, 1e43 caa9 st [y,$a9] 7073 st([Y,0xA9]) #85, pixel12 1e44 1525 ld [$25],y 7074 ld([sysArgs+1],Y) #86, src.hi 1e45 0d00 ld [y,x] 7075 ld([Y,X]) #87, 1e46 de00 st [y,x++] 7076 st([Y,Xpp]) #88, src.lo++ 1e47 1526 ld [$26],y 7077 ld([sysArgs+2],Y) #89, 1e48 caab st [y,$ab] 7078 st([Y,0xAB]) #90, pixel13 1e49 1525 ld [$25],y 7079 ld([sysArgs+1],Y) #91, src.hi 1e4a 0d00 ld [y,x] 7080 ld([Y,X]) #92, 1e4b de00 st [y,x++] 7081 st([Y,Xpp]) #93, src.lo++ 1e4c 1526 ld [$26],y 7082 ld([sysArgs+2],Y) #94, 1e4d caad st [y,$ad] 7083 st([Y,0xAD]) #95, pixel14 1e4e 1525 ld [$25],y 7084 ld([sysArgs+1],Y) #96, src.hi 1e4f 0d00 ld [y,x] 7085 ld([Y,X]) #97, 1e50 de00 st [y,x++] 7086 st([Y,Xpp]) #98, src.lo++ 1e51 1526 ld [$26],y 7087 ld([sysArgs+2],Y) #99, 1e52 caaf st [y,$af] 7088 st([Y,0xAF]) #100, pixel15 1e53 1525 ld [$25],y 7089 ld([sysArgs+1],Y) #101, src.hi 1e54 0d00 ld [y,x] 7090 ld([Y,X]) #102, 1e55 de00 st [y,x++] 7091 st([Y,Xpp]) #103, src.lo++ 1e56 1526 ld [$26],y 7092 ld([sysArgs+2],Y) #104, 1e57 cab1 st [y,$b1] 7093 st([Y,0xB1]) #105, pixel16 1e58 1525 ld [$25],y 7094 ld([sysArgs+1],Y) #106, src.hi 1e59 0d00 ld [y,x] 7095 ld([Y,X]) #107, 1e5a de00 st [y,x++] 7096 st([Y,Xpp]) #108, src.lo++ 1e5b 1526 ld [$26],y 7097 ld([sysArgs+2],Y) #109, 1e5c cab3 st [y,$b3] 7098 st([Y,0xB3]) #110, pixel17 1e5d 0126 ld [$26] 7099 ld([sysArgs+2]) #111, 1e5e 8001 adda $01 7100 adda(1) #112, 1e5f c226 st [$26] 7101 st([sysArgs+2]) #113, dstY++ 7102 1e60 0128 ld [$28] 7103 ld([sysArgs+4]) #114, 1e61 8002 adda $02 7104 adda(2) #115, 1e62 d228 st [$28],x 7105 st([sysArgs+4],X) #116, patternLut += 2 1e63 1529 ld [$29],y 7106 ld([sysArgs+5],Y) #117, 1e64 0d00 ld [y,x] 7107 ld([Y,X]) #118, 1e65 de00 st [y,x++] 7108 st([Y,Xpp]) #119, 1e66 c224 st [$24] 7109 st([sysArgs+0]) #120, src.lo 1e67 0d00 ld [y,x] 7110 ld([Y,X]) #121, 1e68 c225 st [$25] 7111 st([sysArgs+1]) #122, src.hi 7112 1e69 0127 ld [$27] 7113 ld([sysArgs+3]) #123, 1e6a a001 suba $01 7114 suba(1) #124, 1e6b c227 st [$27] 7115 st([sysArgs+3]) #125, height/2 -- 7116 beq('.sys_spritepattern_128') #126, 1e6c f073 beq .sys_spritepattern_128 1e6d 0116 ld [$16] 7117 ld([vPC]) #127, 1e6e a002 suba $02 7118 suba(2) #128, 1e6f c216 st [$16] 7119 st([vPC]) #129, restart 1e70 1403 ld $03,y 7120 ld(hi('NEXTY'),Y) #130, 1e71 e000 jmp y,$00 7121 jmp(Y,'NEXTY') #131, 1e72 00bd ld $bd 7122 ld(-134/2) #132, 7123 7124 label('.sys_spritepattern_128') .sys_spritepattern_128: 1e73 1403 ld $03,y 7125 ld(hi('NEXTY'),Y) #128, 1e74 e000 jmp y,$00 7126 jmp(Y,'NEXTY') #129, 1e75 00be ld $be 7127 ld(-132/2) #130, 7128 7129 7130 # sys_DrawBullet 7131 label('sys_DrawBullet') sys_DrawBullet: 1e76 1583 ld [$83],y 7132 ld([0x83],Y) #18, bulletY 1e77 0d00 ld [y,x] 7133 ld([Y,X]) #19, AC = screen 1e78 1587 ld [$87],y 7134 ld([0x87],Y) #20, bulletData 1e79 69b4 xora [y,$b4] 7135 xora([Y,0xB4]) #21, AC ^= bullet 1e7a 1583 ld [$83],y 7136 ld([0x83],Y) #22, bulletY 1e7b de00 st [y,x++] 7137 st([Y,Xpp]) #23, screen = AC 7138 1e7c 0d00 ld [y,x] 7139 ld([Y,X]) #24, AC = screen 1e7d 1587 ld [$87],y 7140 ld([0x87],Y) #25, bulletData 1e7e 69b5 xora [y,$b5] 7141 xora([Y,0xB5]) #26, AC ^= bullet 1e7f 1583 ld [$83],y 7142 ld([0x83],Y) #27, bulletY 1e80 de00 st [y,x++] 7143 st([Y,Xpp]) #28, screen = AC 7144 1e81 0d00 ld [y,x] 7145 ld([Y,X]) #29, AC = screen 1e82 1587 ld [$87],y 7146 ld([0x87],Y) #30, bulletData 1e83 69b6 xora [y,$b6] 7147 xora([Y,0xB6]) #31, AC ^= bullet 1e84 1583 ld [$83],y 7148 ld([0x83],Y) #32, bulletY 1e85 de00 st [y,x++] 7149 st([Y,Xpp]) #33, screen = AC 7150 1e86 0d00 ld [y,x] 7151 ld([Y,X]) #34, AC = screen 1e87 1587 ld [$87],y 7152 ld([0x87],Y) #35, bulletData 1e88 69b7 xora [y,$b7] 7153 xora([Y,0xB7]) #36, AC ^= bullet 1e89 1583 ld [$83],y 7154 ld([0x83],Y) #37, bulletY 1e8a de00 st [y,x++] 7155 st([Y,Xpp]) #38, screen = AC 7156 1e8b 1182 ld [$82],x 7157 ld([0x82],X) #39, bulletX 1e8c 0183 ld [$83] 7158 ld([0x83]) #40, 1e8d 8001 adda $01 7159 adda(1) #41, 1e8e d683 st [$83],y 7160 st([0x83],Y) #42, bulletY++ 7161 1e8f 0d00 ld [y,x] 7162 ld([Y,X]) #43, AC = screen 1e90 1587 ld [$87],y 7163 ld([0x87],Y) #44, bulletData 1e91 69b8 xora [y,$b8] 7164 xora([Y,0xB8]) #45, AC ^= bullet 1e92 1583 ld [$83],y 7165 ld([0x83],Y) #46, bulletY 1e93 de00 st [y,x++] 7166 st([Y,Xpp]) #47, screen = AC 7167 1e94 0d00 ld [y,x] 7168 ld([Y,X]) #48, AC = screen 1e95 1587 ld [$87],y 7169 ld([0x87],Y) #49, bulletData 1e96 69b9 xora [y,$b9] 7170 xora([Y,0xB9]) #50, AC ^= bullet 1e97 1583 ld [$83],y 7171 ld([0x83],Y) #51, bulletY 1e98 de00 st [y,x++] 7172 st([Y,Xpp]) #52, screen = AC 7173 1e99 0d00 ld [y,x] 7174 ld([Y,X]) #53, AC = screen 1e9a 1587 ld [$87],y 7175 ld([0x87],Y) #54, bulletData 1e9b 69ba xora [y,$ba] 7176 xora([Y,0xBA]) #55, AC ^= bullet 1e9c 1583 ld [$83],y 7177 ld([0x83],Y) #56, bulletY 1e9d de00 st [y,x++] 7178 st([Y,Xpp]) #57, screen = AC 7179 1e9e 0d00 ld [y,x] 7180 ld([Y,X]) #58, AC = screen 1e9f 1587 ld [$87],y 7181 ld([0x87],Y) #59, bulletData 1ea0 69bb xora [y,$bb] 7182 xora([Y,0xBB]) #60, AC ^= bullet 1ea1 1583 ld [$83],y 7183 ld([0x83],Y) #61, bulletY 1ea2 de00 st [y,x++] 7184 st([Y,Xpp]) #62, screen = AC 7185 1ea3 1182 ld [$82],x 7186 ld([0x82],X) #63, bulletX 1ea4 0183 ld [$83] 7187 ld([0x83]) #64, 1ea5 8001 adda $01 7188 adda(1) #65, 1ea6 d683 st [$83],y 7189 st([0x83],Y) #66, bulletY++ 7190 1ea7 0d00 ld [y,x] 7191 ld([Y,X]) #67, AC = screen 1ea8 1587 ld [$87],y 7192 ld([0x87],Y) #68, bulletData 1ea9 69bc xora [y,$bc] 7193 xora([Y,0xBC]) #69, AC ^= bullet 1eaa 1583 ld [$83],y 7194 ld([0x83],Y) #70, bulletY 1eab de00 st [y,x++] 7195 st([Y,Xpp]) #71, screen = AC 7196 1eac 0d00 ld [y,x] 7197 ld([Y,X]) #72, AC = screen 1ead 1587 ld [$87],y 7198 ld([0x87],Y) #73, bulletData 1eae 69bd xora [y,$bd] 7199 xora([Y,0xBD]) #74, AC ^= bullet 1eaf 1583 ld [$83],y 7200 ld([0x83],Y) #75, bulletY 1eb0 de00 st [y,x++] 7201 st([Y,Xpp]) #76, screen = AC 7202 1eb1 0d00 ld [y,x] 7203 ld([Y,X]) #77, AC = screen 1eb2 1587 ld [$87],y 7204 ld([0x87],Y) #78, bulletData 1eb3 69be xora [y,$be] 7205 xora([Y,0xBE]) #79, AC ^= bullet 1eb4 1583 ld [$83],y 7206 ld([0x83],Y) #80, bulletY 1eb5 de00 st [y,x++] 7207 st([Y,Xpp]) #81, screen = AC 7208 1eb6 0d00 ld [y,x] 7209 ld([Y,X]) #82, AC = screen 1eb7 1587 ld [$87],y 7210 ld([0x87],Y) #83, bulletData 1eb8 69bf xora [y,$bf] 7211 xora([Y,0xBF]) #84, AC ^= bullet 1eb9 1583 ld [$83],y 7212 ld([0x83],Y) #85, bulletY 1eba de00 st [y,x++] 7213 st([Y,Xpp]) #86, screen = AC 7214 1ebb 1182 ld [$82],x 7215 ld([0x82],X) #87, bulletX 1ebc 0183 ld [$83] 7216 ld([0x83]) #88, 1ebd 8001 adda $01 7217 adda(1) #89, 1ebe d683 st [$83],y 7218 st([0x83],Y) #90, bulletY++ 7219 1ebf 0d00 ld [y,x] 7220 ld([Y,X]) #91, AC = screen 1ec0 1587 ld [$87],y 7221 ld([0x87],Y) #92, bulletData 1ec1 69c0 xora [y,$c0] 7222 xora([Y,0xC0]) #93, AC ^= bullet 1ec2 1583 ld [$83],y 7223 ld([0x83],Y) #94, bulletY 1ec3 de00 st [y,x++] 7224 st([Y,Xpp]) #95, screen = AC 7225 1ec4 0d00 ld [y,x] 7226 ld([Y,X]) #96, AC = screen 1ec5 1587 ld [$87],y 7227 ld([0x87],Y) #97, bulletData 1ec6 69c1 xora [y,$c1] 7228 xora([Y,0xC1]) #98, AC ^= bullet 1ec7 1583 ld [$83],y 7229 ld([0x83],Y) #99, bulletY 1ec8 de00 st [y,x++] 7230 st([Y,Xpp]) #100, screen = AC 7231 1ec9 0d00 ld [y,x] 7232 ld([Y,X]) #101, AC = screen 1eca 1587 ld [$87],y 7233 ld([0x87],Y) #102, bulletData 1ecb 69c2 xora [y,$c2] 7234 xora([Y,0xC2]) #103, AC ^= bullet 1ecc 1583 ld [$83],y 7235 ld([0x83],Y) #104, bulletY 1ecd de00 st [y,x++] 7236 st([Y,Xpp]) #105, screen = AC 7237 1ece 0d00 ld [y,x] 7238 ld([Y,X]) #106, AC = screen 1ecf 1587 ld [$87],y 7239 ld([0x87],Y) #107, bulletData 1ed0 69c3 xora [y,$c3] 7240 xora([Y,0xC3]) #108, AC ^= bullet 1ed1 1583 ld [$83],y 7241 ld([0x83],Y) #109, bulletY 1ed2 de00 st [y,x++] 7242 st([Y,Xpp]) #110, screen = AC 7243 1ed3 019c ld [$9c] 7244 ld([0x9C]) #111, register13 1ed4 8001 adda $01 7245 adda(1) #112, 1ed5 d29c st [$9c],x 7246 st([0x9C],X) #113, register13++ 1ed6 159d ld [$9d],y 7247 ld([0x9D],Y) #114, 1ed7 0d00 ld [y,x] 7248 ld([Y,X]) #115, peek(register13) 1ed8 c282 st [$82] 7249 st([0x82]) #116, bulletX 7250 1ed9 019e ld [$9e] 7251 ld([0x9E]) #117, 1eda 8001 adda $01 7252 adda(1) #118, 1edb d29e st [$9e],x 7253 st([0x9E],X) #119, register14++ 1edc 159f ld [$9f],y 7254 ld([0x9F],Y) #120, 1edd 0d00 ld [y,x] 7255 ld([Y,X]) #121, peek(register14) 1ede c283 st [$83] 7256 st([0x83]) #122, bulletY 7257 1edf 01a0 ld [$a0] 7258 ld([0xA0]) #123, 1ee0 8001 adda $01 7259 adda(1) #124, 1ee1 d2a0 st [$a0],x 7260 st([0xA0],X) #125, register15++ 1ee2 15a1 ld [$a1],y 7261 ld([0xA1],Y) #126, 1ee3 0d00 ld [y,x] 7262 ld([Y,X]) #127, peek(register15) 1ee4 c287 st [$87] 7263 st([0x87]) #128, bulletData 7264 1ee5 019a ld [$9a] 7265 ld([0x9A]) #129, 1ee6 a001 suba $01 7266 suba(1) #130, 7267 beq('.sys_drawbullet_133') #131, 1ee7 f0ef beq .sys_drawbullet_133 1ee8 c29a st [$9a] 7268 st([0x9A]) #132, register12-- 1ee9 1403 ld $03,y 7269 ld(hi('NEXTY'),Y) #133, 1eea 0116 ld [$16] 7270 ld([vPC]) #134, 1eeb a002 suba $02 7271 suba(2) #135, 1eec c216 st [$16] 7272 st([vPC]) #136, restart 1eed e000 jmp y,$00 7273 jmp(Y,'NEXTY') #137, 1eee 00ba ld $ba 7274 ld(-140/2) #138, 7275 label('.sys_drawbullet_133') .sys_drawbullet_133: 1eef 1403 ld $03,y 7276 ld(hi('REENTER'),Y) #133, 1ef0 e0cb jmp y,$cb 7277 jmp(Y,'REENTER') #134, 1ef1 00bb ld $bb 7278 ld(-138/2) #135, 7279 7280 1ef2 0200 nop 7281 fillers(until=0xff) 1ef3 0200 nop 1ef4 0200 nop * 13 times 1eff 0200 nop 7282 align(0x100, size=0x100) 7283 7284 #----------------------------------------------------------------------- 7285 # More sys implementations, (0x1F00) 7286 #----------------------------------------------------------------------- 7287 # 7288 # sys_CmpByteBounds, 0xB8,B9=src, 0xBA,BB=vPC_bounds, 0xBC,BD=bounds, 0xBE=index, 7289 # 0xBF=count, output:vAC.lo=index 7290 label('sys_CmpByteBounds') sys_CmpByteBounds: 1f00 a001 suba $01 7291 suba(1) #18, 7292 bge('.sys_cmpbytebounds_21') #19, 1f01 f406 bge .sys_cmpbytebounds_21 1f02 c2bf st [$bf] 7293 st([0xBF]) #20, count-- 1f03 1403 ld $03,y 7294 ld(hi('REENTER'),Y) #21, 1f04 e0cb jmp y,$cb 7295 jmp(Y,'REENTER') #22, 1f05 00f3 ld $f3 7296 ld(-26/2) #23, 7297 label('.sys_cmpbytebounds_21') .sys_cmpbytebounds_21: 1f06 01b8 ld [$b8] 7298 ld([0xB8]) #21, 1f07 91be adda [$be],x 7299 adda([0xBE],X) #22, 1f08 15b9 ld [$b9],y 7300 ld([0xB9],Y) #23, 1f09 0d00 ld [y,x] 7301 ld([Y,X]) #24, 7302 bmi('.sys_cmpbytebounds_27') #25, 1f0a e80e blt .sys_cmpbytebounds_27 1f0b a1bc suba [$bc] 7303 suba([0xBC]) #26, 7304 bra('.sys_cmpbytebounds_29') #27, 1f0c fc10 bra .sys_cmpbytebounds_29 1f0d 41bc ora [$bc] 7305 ora([0xBC]) #28, 7306 label('.sys_cmpbytebounds_27') .sys_cmpbytebounds_27: 1f0e 21bc anda [$bc] 7307 anda([0xBC]) #27, 1f0f 0200 nop 7308 nop() #28, 7309 7310 label('.sys_cmpbytebounds_29') .sys_cmpbytebounds_29: 7311 bpl('.sys_cmpbytebounds_31') #29, 1f10 f422 bge .sys_cmpbytebounds_31 1f11 0d00 ld [y,x] 7312 ld([Y,X]) #30, 1f12 0116 ld [$16] 7313 ld([vPC]) #31, < lbounds 1f13 c21a st [$1a] 7314 st([vLR]) #32, return to SYS call 1f14 0117 ld [$17] 7315 ld([vPC+1]) #33, 1f15 c21b st [$1b] 7316 st([vLR+1]) #34, 1f16 01ba ld [$ba] 7317 ld([0xBA]) #35, 1f17 a002 suba $02 7318 suba(2) #36, 1f18 c216 st [$16] 7319 st([vPC]) #37, NEXT adds 2 1f19 01bb ld [$bb] 7320 ld([0xBB]) #38, 1f1a c217 st [$17] 7321 st([vPC+1]) #39, bounds call address 1f1b 01be ld [$be] 7322 ld([0xBE]) #40, 1f1c c218 st [$18] 7323 st([vAC]) #41, vAC.lo = index 1f1d 8001 adda $01 7324 adda(1) #42, 1f1e c2be st [$be] 7325 st([0xBE]) #43, index++ 1f1f 1403 ld $03,y 7326 ld(hi('NEXTY'),Y) #44, 1f20 e000 jmp y,$00 7327 jmp(Y,'NEXTY') #45, 1f21 00e8 ld $e8 7328 ld(-48/2) #46, 7329 7330 label('.sys_cmpbytebounds_31') .sys_cmpbytebounds_31: 7331 bmi('.sys_cmpbytebounds_33') #31, 1f22 e826 blt .sys_cmpbytebounds_33 1f23 a1bd suba [$bd] 7332 suba([0xBD]) #32, 7333 bra('.sys_cmpbytebounds_35') #33, 1f24 fc28 bra .sys_cmpbytebounds_35 1f25 41bd ora [$bd] 7334 ora([0xBD]) #34, 7335 label('.sys_cmpbytebounds_33') .sys_cmpbytebounds_33: 1f26 21bd anda [$bd] 7336 anda([0xBD]) #33, 1f27 0200 nop 7337 nop() #34, 7338 label('.sys_cmpbytebounds_35') .sys_cmpbytebounds_35: 7339 bmi('.sys_cmpbytebounds_37') #35, 1f28 e839 blt .sys_cmpbytebounds_37 1f29 0116 ld [$16] 7340 ld([vPC]) #36, >= ubounds 1f2a c21a st [$1a] 7341 st([vLR]) #37, return to SYS call 1f2b 0117 ld [$17] 7342 ld([vPC+1]) #38, 1f2c c21b st [$1b] 7343 st([vLR+1]) #39, 1f2d 01ba ld [$ba] 7344 ld([0xBA]) #40, 1f2e a002 suba $02 7345 suba(2) #41, 1f2f c216 st [$16] 7346 st([vPC]) #42, NEXT adds 2 1f30 01bb ld [$bb] 7347 ld([0xBB]) #43, 1f31 c217 st [$17] 7348 st([vPC+1]) #44, bounds call address 1f32 01be ld [$be] 7349 ld([0xBE]) #45, 1f33 c218 st [$18] 7350 st([vAC]) #46, vAC.lo = index 1f34 8001 adda $01 7351 adda(1) #47, 1f35 c2be st [$be] 7352 st([0xBE]) #48, index++ 1f36 1403 ld $03,y 7353 ld(hi('REENTER'),Y) #49, 1f37 e0cb jmp y,$cb 7354 jmp(Y,'REENTER') #50, 1f38 00e5 ld $e5 7355 ld(-54/2) #51, 7356 7357 label('.sys_cmpbytebounds_37') .sys_cmpbytebounds_37: 1f39 a002 suba $02 7358 suba(2) #37, 1f3a c216 st [$16] 7359 st([vPC]) #38, restart 1f3b 01be ld [$be] 7360 ld([0xBE]) #39, 1f3c 8001 adda $01 7361 adda(1) #40, 1f3d c2be st [$be] 7362 st([0xBE]) #41, index++ 1f3e 1403 ld $03,y 7363 ld(hi('NEXTY'),Y) #42, 1f3f e000 jmp y,$00 7364 jmp(Y,'NEXTY') #43, 1f40 00e9 ld $e9 7365 ld(-46/2) #44, 7366 7367 7368 # SYS_Reset_88 implementation 7369 label('sys_Reset_88') sys_Reset_88: 1f41 c221 st [$21] 7370 st([romType]) #18 1f42 0000 ld $00 7371 ld(0) #19 1f43 c21c st [$1c] 7372 st([vSP]) #20 1f44 c204 st [$04] 7373 st([vSPH]) #21 1f45 1401 ld $01,y 7374 ld(hi('videoTop_v5'),Y) #22 1f46 caf9 st [y,$f9] 7375 st([Y,lo('videoTop_v5')]) #23 Show all 120 pixel lines 1f47 caf6 st [y,$f6] 7376 st([Y,vIRQ_v5]) #24 Disable vIRQ dispatch 1f48 caf7 st [y,$f7] 7377 st([Y,vIRQ_v5+1]) #25 1f49 c22c st [$2c] 7378 st([soundTimer]) #26 soundTimer 7379 assert userCode&255 == 0 1f4a c21a st [$1a] 7380 st([vLR]) #27 vLR 1f4b 0002 ld $02 7381 ld(userCode>>8) #28 1f4c c21b st [$1b] 7382 st([vLR+1]) #29 1f4d 00f6 ld $f6 7383 ld('nopixels') #30 Video mode 3 (fast) 1f4e c20a st [$0a] 7384 st([videoModeB]) #31 1f4f c20b st [$0b] 7385 st([videoModeC]) #32 1f50 c20c st [$0c] 7386 st([videoModeD]) #33 1f51 00ad ld $ad 7387 ld('SYS_Exec_88') #34 SYS_Exec_88 1f52 c222 st [$22] 7388 st([sysFn]) #35 High byte (remains) 0 1f53 005b ld $5b 7389 ld('Reset') #36 Reset.gt1 from EPROM 1f54 c224 st [$24] 7390 st([sysArgs+0]) #37 1f55 00de ld $de 7391 ld(hi('Reset')) #38 1f56 c225 st [$25] 7392 st([sysArgs+1]) #39 1f57 0116 ld [$16] 7393 ld([vPC]) #40 Force second SYS call 1f58 a002 suba $02 7394 suba(2) #41 1f59 c216 st [$16] 7395 st([vPC]) #42 1f5a c17f ctrl $7f 7396 ctrl(0b01111111) #43 Expansion board: (1) reset signal. 1f5b c17c ctrl $7c 7397 ctrl(0b01111100) #44 (2) disable SPI slaves, enable RAM bank 1 1f5c 000f ld $0f 7398 ld(0x0f) #45 default 4bit sound 1f5d c208 st [$08] 7399 st([audioBitMask]) #46 1f5e 1403 ld $03,y 7400 ld(hi('REENTER'),Y) #47 1f5f e0cb jmp y,$cb 7401 jmp(Y,'REENTER') #48 1f60 00e6 ld $e6 7402 ld(-52/2) #49 7403 7404 7405 #----------------------------------------------------------------------- 7406 # sys_Divide_u168, x:u8 = x:u16 / y:u8, rem:u8 = x:u16 % y:u8 7407 # sysArgs0,1=x, sysArgs2=y, sysArgs4=count, output : sysArgs0=res, sysArgs1=rem 7408 label('sys_Divide_u168') sys_Divide_u168: 1f61 c229 st [$29] 7409 st([sysArgs+5]) #18, save x.hi 1f62 0128 ld [$28] 7410 ld([sysArgs+4]) #19, 1f63 a001 suba $01 7411 suba(1) #20, count-- 7412 bge('.sys_divide_u168_23') #21, 1f64 f469 bge .sys_divide_u168_23 1f65 c228 st [$28] 7413 st([sysArgs+4]) #22, 1f66 1403 ld $03,y 7414 ld(hi('REENTER'),Y) #23, 1f67 e0cb jmp y,$cb 7415 jmp(Y,'REENTER') #24, 1f68 00f2 ld $f2 7416 ld(-28/2) #25, 7417 7418 label('.sys_divide_u168_23') .sys_divide_u168_23: 1f69 0124 ld [$24] 7419 ld([sysArgs+0]) #23, 1f6a 3080 anda $80,x 7420 anda(128,X) #24, 1f6b 8124 adda [$24] 7421 adda([sysArgs+0]) #25, 1f6c c224 st [$24] 7422 st([sysArgs+0]) #26, 1f6d 0500 ld [x] 7423 ld([X]) #27, 1f6e 8125 adda [$25] 7424 adda([sysArgs+1]) #28, 1f6f 8125 adda [$25] 7425 adda([sysArgs+1]) #29, 1f70 c225 st [$25] 7426 st([sysArgs+1]) #30, x <<1 7427 bmi('.sys_divide_u168_33') #31, unsigned compare 1f71 e876 blt .sys_divide_u168_33 1f72 a126 suba [$26] 7428 suba([sysArgs+2]) #32, x.hi - y 1f73 c21d st [$1d] 7429 st([vTmp]) #33, 7430 bra('.sys_divide_u168_36') #34, 1f74 fc79 bra .sys_divide_u168_36 1f75 4126 ora [$26] 7431 ora([sysArgs+2]) #35, 7432 label('.sys_divide_u168_33') .sys_divide_u168_33: 1f76 c21d st [$1d] 7433 st([vTmp]) #33, 1f77 2126 anda [$26] 7434 anda([sysArgs+2]) #34, 1f78 0200 nop 7435 nop() #35, 7436 7437 label('.sys_divide_u168_36') .sys_divide_u168_36: 7438 bmi('.sys_divide_u168_38') #36, 1f79 e88f blt .sys_divide_u168_38 1f7a 011d ld [$1d] 7439 ld([vTmp]) #37, x.hi >= y 1f7b c225 st [$25] 7440 st([sysArgs+1]) #38, x.hi = (x.hi - y) <<8 1f7c 0124 ld [$24] 7441 ld([sysArgs+0]) #39, 1f7d 8001 adda $01 7442 adda(1) #40, x.lo++ 7443 bne('.sys_divide_u168_43') #41, 1f7e ec89 bne .sys_divide_u168_43 1f7f c224 st [$24] 7444 st([sysArgs+0]) #42, 1f80 0125 ld [$25] 7445 ld([sysArgs+1]) #43, 1f81 8001 adda $01 7446 adda(1) #44, x.hi++ 1f82 c225 st [$25] 7447 st([sysArgs+1]) #45, 1f83 0116 ld [$16] 7448 ld([vPC]) #46, 1f84 a002 suba $02 7449 suba(2) #47, 1f85 c216 st [$16] 7450 st([vPC]) #48, restart 1f86 1403 ld $03,y 7451 ld(hi('REENTER'),Y) #49, 1f87 e0cb jmp y,$cb 7452 jmp(Y,'REENTER') #50, 1f88 00e5 ld $e5 7453 ld(-54/2) #51, 7454 label('.sys_divide_u168_43') .sys_divide_u168_43: 1f89 0116 ld [$16] 7455 ld([vPC]) #43, 1f8a a002 suba $02 7456 suba(2) #44, 1f8b c216 st [$16] 7457 st([vPC]) #45, restart 1f8c 1403 ld $03,y 7458 ld(hi('NEXTY'),Y) #46, 1f8d e000 jmp y,$00 7459 jmp(Y,'NEXTY') #47, 1f8e 00e7 ld $e7 7460 ld(-50/2) #48, 7461 7462 label('.sys_divide_u168_38') .sys_divide_u168_38: 1f8f 0129 ld [$29] 7463 ld([sysArgs+5]) #38, 7464 bpl('.sys_divide_u168_41') #39, msb(x.hi) = 0 1f90 f4a6 bge .sys_divide_u168_41 1f91 011d ld [$1d] 7465 ld([vTmp]) #40, x.hi >= y 1f92 c225 st [$25] 7466 st([sysArgs+1]) #41, x.hi = (x.hi - y) <<8 1f93 0124 ld [$24] 7467 ld([sysArgs+0]) #42, 1f94 8001 adda $01 7468 adda(1) #43, x.lo++ 7469 bne('.sys_divide_u168_46') #44, 1f95 eca0 bne .sys_divide_u168_46 1f96 c224 st [$24] 7470 st([sysArgs+0]) #45, 1f97 0125 ld [$25] 7471 ld([sysArgs+1]) #46, 1f98 8001 adda $01 7472 adda(1) #47, x.hi++ 1f99 c225 st [$25] 7473 st([sysArgs+1]) #48, 1f9a 0116 ld [$16] 7474 ld([vPC]) #49, 1f9b a002 suba $02 7475 suba(2) #50, 1f9c c216 st [$16] 7476 st([vPC]) #51, restart 1f9d 1403 ld $03,y 7477 ld(hi('NEXTY'),Y) #52, 1f9e e000 jmp y,$00 7478 jmp(Y,'NEXTY') #53, 1f9f 00e4 ld $e4 7479 ld(-56/2) #54, 7480 label('.sys_divide_u168_46') .sys_divide_u168_46: 1fa0 0116 ld [$16] 7481 ld([vPC]) #46, 1fa1 a002 suba $02 7482 suba(2) #47, 1fa2 c216 st [$16] 7483 st([vPC]) #48, restart 1fa3 1403 ld $03,y 7484 ld(hi('REENTER'),Y) #49, 1fa4 e0cb jmp y,$cb 7485 jmp(Y,'REENTER') #50, 1fa5 00e5 ld $e5 7486 ld(-54/2) #51, 7487 7488 label('.sys_divide_u168_41') .sys_divide_u168_41: 1fa6 0116 ld [$16] 7489 ld([vPC]) #41, 1fa7 a002 suba $02 7490 suba(2) #42, 1fa8 c216 st [$16] 7491 st([vPC]) #43, restart 1fa9 1403 ld $03,y 7492 ld(hi('NEXTY'),Y) #44, 1faa e000 jmp y,$00 7493 jmp(Y,'NEXTY') #45, 1fab 00e8 ld $e8 7494 ld(-48/2) #46, 7495 7496 1fac 0200 nop 7497 fillers(until=0xc0) 1fad 0200 nop 1fae 0200 nop * 20 times 7498 7499 # sys_ConvertVTableX, sysArgs0=dst, sysArgs2=offsetX, sysArgs3=accum, sysArgs4=count 7500 label('SYS_ConvertVTableX_66') SYS_ConvertVTableX_66: 1fc0 1401 ld $01,y 7501 ld(1,Y) #15, VTable.hi 1fc1 1126 ld [$26],x 7502 ld([sysArgs+2],X) #16, VTable.lo 1fc2 0d00 ld [y,x] 7503 ld([Y,X]) #17, get VTableX 1fc3 8127 adda [$27] 7504 adda([sysArgs+3]) #18, 1fc4 1525 ld [$25],y 7505 ld([sysArgs+1],Y) #19, dst.hi 1fc5 1124 ld [$24],x 7506 ld([sysArgs+0],X) #20, dst.lo 1fc6 ce00 st [y,x] 7507 st([Y,X]) #21, 1fc7 c227 st [$27] 7508 st([sysArgs+3]) #22, accum 7509 1fc8 1401 ld $01,y 7510 ld(1,Y) #23 1fc9 0124 ld [$24] 7511 ld([sysArgs+0]) #24, 1fca 8001 adda $01 7512 adda(1) #25, 1fcb c224 st [$24] 7513 st([sysArgs+0]) #26, dst++ 1fcc 0126 ld [$26] 7514 ld([sysArgs+2]) #27, 1fcd 8002 adda $02 7515 adda(2) #28, 1fce d226 st [$26],x 7516 st([sysArgs+2],X) #29, offsetX += 2 1fcf 0d00 ld [y,x] 7517 ld([Y,X]) #30, get video table X 1fd0 8127 adda [$27] 7518 adda([sysArgs+3]) #31, 1fd1 1525 ld [$25],y 7519 ld([sysArgs+1],Y) #32, dst.hi 1fd2 1124 ld [$24],x 7520 ld([sysArgs+0],X) #33, dst.lo 1fd3 ce00 st [y,x] 7521 st([Y,X]) #34, 1fd4 c227 st [$27] 7522 st([sysArgs+3]) #35, accum 7523 1fd5 1401 ld $01,y 7524 ld(1,Y) #36 1fd6 0124 ld [$24] 7525 ld([sysArgs+0]) #37, 1fd7 8001 adda $01 7526 adda(1) #38, 1fd8 c224 st [$24] 7527 st([sysArgs+0]) #39, dst++ 1fd9 0126 ld [$26] 7528 ld([sysArgs+2]) #40, 1fda 8002 adda $02 7529 adda(2) #41, 1fdb d226 st [$26],x 7530 st([sysArgs+2],X) #42, offsetX += 2 1fdc 0d00 ld [y,x] 7531 ld([Y,X]) #43, get video table X 1fdd 8127 adda [$27] 7532 adda([sysArgs+3]) #44, 1fde 1525 ld [$25],y 7533 ld([sysArgs+1],Y) #45, dst.hi 1fdf 1124 ld [$24],x 7534 ld([sysArgs+0],X) #46, dst.lo 1fe0 ce00 st [y,x] 7535 st([Y,X]) #47, 1fe1 c227 st [$27] 7536 st([sysArgs+3]) #48, accum 7537 1fe2 0128 ld [$28] 7538 ld([sysArgs+4]) #49, 1fe3 a001 suba $01 7539 suba(1) #50, 1fe4 c228 st [$28] 7540 st([sysArgs+4]) #51, count-- 7541 beq('.sys_convertvtablex_54') #52, 1fe5 f0f2 beq .sys_convertvtablex_54 1fe6 0124 ld [$24] 7542 ld([sysArgs+0]) #53, 1fe7 8001 adda $01 7543 adda(1) #54, 1fe8 c224 st [$24] 7544 st([sysArgs+0]) #55, dst++ 1fe9 0126 ld [$26] 7545 ld([sysArgs+2]) #56, 1fea 8002 adda $02 7546 adda(2) #57, 1feb c226 st [$26] 7547 st([sysArgs+2]) #58, offsetX += 2 1fec 0116 ld [$16] 7548 ld([vPC]) #59, 1fed a002 suba $02 7549 suba(2) #60, 1fee c216 st [$16] 7550 st([vPC]) #61, restart 1fef 1403 ld $03,y 7551 ld(hi('NEXTY'),Y) #62, 1ff0 e000 jmp y,$00 7552 jmp(Y,'NEXTY') #63, 1ff1 00df ld $df 7553 ld(-66/2) #64, 7554 label('.sys_convertvtablex_54') .sys_convertvtablex_54: 1ff2 1403 ld $03,y 7555 ld(hi('NEXTY'),Y) #54, 1ff3 e000 jmp y,$00 7556 jmp(Y,'NEXTY') #55, 1ff4 00e3 ld $e3 7557 ld(-58/2) #56, 7558 7559 1ff5 0200 nop 7560 fillers(until=0xff) 1ff6 0200 nop 1ff7 0200 nop * 10 times 1fff 0200 nop 7561 align(0x100, size=0x100) 7562 7563 #----------------------------------------------------------------------- 7564 # More sys implementations, (0x2000) 7565 #----------------------------------------------------------------------- 7566 # 7567 # SYS_DrawSprite_vX_140 7568 label('SYS_DrawSprite_vX_140') SYS_DrawSprite_vX_140: 2000 0186 ld [$86] 7569 ld([0x86]) #15, spriteEnable 7570 bmi('.sys_drawsprite_18') #16, 2001 e89b blt .sys_drawsprite_18 2002 0183 ld [$83] 7571 ld([0x83]) #17, spriteY 2003 8183 adda [$83] 7572 adda([0x83]) #18, spriteY 2004 1200 ld ac,x 7573 ld(AC,X) #19, 2005 1401 ld $01,y 7574 ld(1,Y) #20, 0x0100 2006 0d00 ld [y,x] 7575 ld([Y,X]) #21, VTableY 2007 c285 st [$85] 7576 st([0x85]) #22, 2008 1525 ld [$25],y 7577 ld([sysArgs+1],Y) #23, VTableAbsX.hi 2009 0124 ld [$24] 7578 ld([sysArgs+0]) #24, VTableAbsX.lo 200a 8183 adda [$83] 7579 adda([0x83]) #25, spriteY 200b 1200 ld ac,x 7580 ld(AC,X) #26, 200c 0182 ld [$82] 7581 ld([0x82]) #27, spriteX 200d 8d00 adda [y,x] 7582 adda([Y,X]) #28, VTableX offset, (absolute) 200e d284 st [$84],x 7583 st([0x84],X) #29, 200f 1585 ld [$85],y 7584 ld([0x85],Y) #30, 7585 2010 0d00 ld [y,x] 7586 ld([Y,X]) #31, get back0 2011 1587 ld [$87],y 7587 ld([0x87],Y) #32, spriteData 2012 caa2 st [y,$a2] 7588 st([Y,0xA2]) #33, save back0 2013 09a3 ld [y,$a3] 7589 ld([Y,0xA3]) #34, load pixel0 2014 1585 ld [$85],y 7590 ld([0x85],Y) #35, spriteY 2015 ec18 bne $2018 7591 bne(pc()+3) #36, colourkey 2016 fc19 bra $2019 7592 bra(pc()+3) #37, 2017 0d00 ld [y,x] 7593 ld([Y,X]) #38, 2018 61b8 xora [$b8] 7594 xora([0xB8]) #38, (!) 2019 de00 st [y,x++] 7595 st([Y,Xpp]) #39, draw pixel0 7596 201a 0d00 ld [y,x] 7597 ld([Y,X]) #40, get back1 201b 1587 ld [$87],y 7598 ld([0x87],Y) #41, spriteData 201c caa4 st [y,$a4] 7599 st([Y,0xA4]) #42, save back1 201d 09a5 ld [y,$a5] 7600 ld([Y,0xA5]) #43, load pixel1 201e 1585 ld [$85],y 7601 ld([0x85],Y) #44, spriteY 201f ec22 bne $2022 7602 bne(pc()+3) #45, colourkey 2020 fc23 bra $2023 7603 bra(pc()+3) #46, 2021 0d00 ld [y,x] 7604 ld([Y,X]) #47, 2022 61b8 xora [$b8] 7605 xora([0xB8]) #47, (!) 2023 de00 st [y,x++] 7606 st([Y,Xpp]) #48, draw pixel1 7607 2024 0d00 ld [y,x] 7608 ld([Y,X]) #49, get back2 2025 1587 ld [$87],y 7609 ld([0x87],Y) #50, spriteData 2026 caa6 st [y,$a6] 7610 st([Y,0xA6]) #51, save back2 2027 09a7 ld [y,$a7] 7611 ld([Y,0xA7]) #52, load pixel2 2028 1585 ld [$85],y 7612 ld([0x85],Y) #53, spriteY 2029 ec2c bne $202c 7613 bne(pc()+3) #54, colourkey 202a fc2d bra $202d 7614 bra(pc()+3) #55, 202b 0d00 ld [y,x] 7615 ld([Y,X]) #56, 202c 61b8 xora [$b8] 7616 xora([0xB8]) #56, (!) 202d de00 st [y,x++] 7617 st([Y,Xpp]) #57, draw pixel2 7618 202e 0d00 ld [y,x] 7619 ld([Y,X]) #58, get back3 202f 1587 ld [$87],y 7620 ld([0x87],Y) #59, spriteData 2030 caa8 st [y,$a8] 7621 st([Y,0xA8]) #60, save back3 2031 09a9 ld [y,$a9] 7622 ld([Y,0xA9]) #61, load pixel3 2032 1585 ld [$85],y 7623 ld([0x85],Y) #62, spriteY 2033 ec36 bne $2036 7624 bne(pc()+3) #63, colourkey 2034 fc37 bra $2037 7625 bra(pc()+3) #64, 2035 0d00 ld [y,x] 7626 ld([Y,X]) #65, 2036 61b8 xora [$b8] 7627 xora([0xB8]) #65, (!) 2037 de00 st [y,x++] 7628 st([Y,Xpp]) #66, draw pixel3 7629 2038 0d00 ld [y,x] 7630 ld([Y,X]) #67, get back4 2039 1587 ld [$87],y 7631 ld([0x87],Y) #68, spriteData 203a caaa st [y,$aa] 7632 st([Y,0xAA]) #69, save back4 203b 09ab ld [y,$ab] 7633 ld([Y,0xAB]) #70, load pixel4 203c 1585 ld [$85],y 7634 ld([0x85],Y) #71, spriteY 203d ec40 bne $2040 7635 bne(pc()+3) #72, colourkey 203e fc41 bra $2041 7636 bra(pc()+3) #73, 203f 0d00 ld [y,x] 7637 ld([Y,X]) #74, 2040 61b8 xora [$b8] 7638 xora([0xB8]) #74, (!) 2041 de00 st [y,x++] 7639 st([Y,Xpp]) #75, draw pixel4 7640 2042 0d00 ld [y,x] 7641 ld([Y,X]) #76, get back5 2043 1587 ld [$87],y 7642 ld([0x87],Y) #77, spriteData 2044 caac st [y,$ac] 7643 st([Y,0xAC]) #78, save back5 2045 09ad ld [y,$ad] 7644 ld([Y,0xAD]) #79, load pixel5 2046 1585 ld [$85],y 7645 ld([0x85],Y) #80, spriteY 2047 ec4a bne $204a 7646 bne(pc()+3) #81, colourkey 2048 fc4b bra $204b 7647 bra(pc()+3) #82, 2049 0d00 ld [y,x] 7648 ld([Y,X]) #83, 204a 61b8 xora [$b8] 7649 xora([0xB8]) #83, (!) 204b de00 st [y,x++] 7650 st([Y,Xpp]) #84, draw pixel5 7651 204c 0d00 ld [y,x] 7652 ld([Y,X]) #85, get back6 204d 1587 ld [$87],y 7653 ld([0x87],Y) #86, spriteData 204e caae st [y,$ae] 7654 st([Y,0xAE]) #87, save back6 204f 09af ld [y,$af] 7655 ld([Y,0xAF]) #88, load pixel6 2050 1585 ld [$85],y 7656 ld([0x85],Y) #89, spriteY 2051 ec54 bne $2054 7657 bne(pc()+3) #90, colourkey 2052 fc55 bra $2055 7658 bra(pc()+3) #91, 2053 0d00 ld [y,x] 7659 ld([Y,X]) #92, 2054 61b8 xora [$b8] 7660 xora([0xB8]) #92, (!) 2055 de00 st [y,x++] 7661 st([Y,Xpp]) #93, draw pixel6 7662 2056 0d00 ld [y,x] 7663 ld([Y,X]) #94, get back7 2057 1587 ld [$87],y 7664 ld([0x87],Y) #95, spriteData 2058 cab0 st [y,$b0] 7665 st([Y,0xB0]) #96, save back7 2059 09b1 ld [y,$b1] 7666 ld([Y,0xB1]) #97, load pixel7 205a 1585 ld [$85],y 7667 ld([0x85],Y) #98, spriteY 205b ec5e bne $205e 7668 bne(pc()+3) #99, colourkey 205c fc5f bra $205f 7669 bra(pc()+3) #100, 205d 0d00 ld [y,x] 7670 ld([Y,X]) #101, 205e 61b8 xora [$b8] 7671 xora([0xB8]) #101, (!) 205f de00 st [y,x++] 7672 st([Y,Xpp]) #102, draw pixel7 7673 2060 0d00 ld [y,x] 7674 ld([Y,X]) #103, get back8 2061 1587 ld [$87],y 7675 ld([0x87],Y) #104, spriteData 2062 cab2 st [y,$b2] 7676 st([Y,0xB2]) #105, save back8 2063 09b3 ld [y,$b3] 7677 ld([Y,0xB3]) #106, load pixel8 2064 1585 ld [$85],y 7678 ld([0x85],Y) #107, spriteY 2065 ec68 bne $2068 7679 bne(pc()+3) #108, colourkey 2066 fc69 bra $2069 7680 bra(pc()+3) #109, 2067 0d00 ld [y,x] 7681 ld([Y,X]) #110, 2068 61b8 xora [$b8] 7682 xora([0xB8]) #110, (!) 2069 de00 st [y,x++] 7683 st([Y,Xpp]) #111, draw pixel8 7684 206a 1587 ld [$87],y 7685 ld([0x87],Y) #112, spriteData 206b 0184 ld [$84] 7686 ld([0x84]) #113, spriteX 206c caa0 st [y,$a0] 7687 st([Y,0xA0]) #114, spriteOldX 206d 0185 ld [$85] 7688 ld([0x85]) #115, spriteY 206e caa1 st [y,$a1] 7689 st([Y,0xA1]) #116, spriteOldY 206f 0186 ld [$86] 7690 ld([0x86]) #117, 2070 a001 suba $01 7691 suba(1) #118, 2071 c286 st [$86] 7692 st([0x86]) #119, scanLines-- 7693 beq('.sys_drawsprite_122') #120, 2072 f07f beq .sys_drawsprite_122 2073 0183 ld [$83] 7694 ld([0x83]) #121, spriteY 2074 8001 adda $01 7695 adda(1) #122, 2075 c283 st [$83] 7696 st([0x83]) #123, spriteY++ 2076 0187 ld [$87] 7697 ld([0x87]) #124, 2077 8001 adda $01 7698 adda(1) #125, 2078 c287 st [$87] 7699 st([0x87]) #126, spriteData++ 2079 0116 ld [$16] 7700 ld([vPC]) #127, 207a a002 suba $02 7701 suba(2) #128, 207b c216 st [$16] 7702 st([vPC]) #129, restart 207c 1403 ld $03,y 7703 ld(hi('NEXTY'),Y) #130, 207d e000 jmp y,$00 7704 jmp(Y,'NEXTY') #131, 207e 00bd ld $bd 7705 ld(-134/2) #132, 7706 7707 label('.sys_drawsprite_122') .sys_drawsprite_122: 207f 01a0 ld [$a0] 7708 ld([0xA0]) #122, 2080 8004 adda $04 7709 adda(4) #123, 2081 d2a0 st [$a0],x 7710 st([0xA0],X) #124, register15 += 4 2082 15a1 ld [$a1],y 7711 ld([0xA1],Y) #125, 2083 0d00 ld [y,x] 7712 ld([Y,X]) #126, peek(register15 + 0) 2084 c282 st [$82] 7713 st([0x82]) #127, spriteX 2085 de00 st [y,x++] 7714 st([Y,Xpp]) #128, X++ 2086 0d00 ld [y,x] 7715 ld([Y,X]) #129, peek(register15 + 1) 2087 c283 st [$83] 7716 st([0x83]) #130, spriteY 2088 de00 st [y,x++] 7717 st([Y,Xpp]) #131, X++ 2089 0d00 ld [y,x] 7718 ld([Y,X]) #132, peek(register15 + 2) 208a c286 st [$86] 7719 st([0x86]) #133, spriteHeight 208b de00 st [y,x++] 7720 st([Y,Xpp]) #134, X++ 208c 0d00 ld [y,x] 7721 ld([Y,X]) #135, peek(register15 + 3) 208d c287 st [$87] 7722 st([0x87]) #136, spriteData 208e 0188 ld [$88] 7723 ld([0x88]) #137, 208f a001 suba $01 7724 suba(1) #138, 2090 c288 st [$88] 7725 st([0x88]) #139, register3--, spriteCount 7726 beq('.sys_drawsprite_142') #140, 2091 f098 beq .sys_drawsprite_142 2092 0116 ld [$16] 7727 ld([vPC]) #141, 2093 a002 suba $02 7728 suba(2) #142, 2094 c216 st [$16] 7729 st([vPC]) #143, restart 2095 1403 ld $03,y 7730 ld(hi('NEXTY'),Y) #144, 2096 e000 jmp y,$00 7731 jmp(Y,'NEXTY') #145, 2097 00b6 ld $b6 7732 ld(-148/2) #146, 7733 label('.sys_drawsprite_142') .sys_drawsprite_142: 2098 1403 ld $03,y 7734 ld(hi('NEXTY'),Y) #142, 2099 e000 jmp y,$00 7735 jmp(Y,'NEXTY') #143, 209a 00b7 ld $b7 7736 ld(-146/2) #144, 7737 7738 label('.sys_drawsprite_18') .sys_drawsprite_18: 209b 01a0 ld [$a0] 7739 ld([0xA0]) #18, 209c 8004 adda $04 7740 adda(4) #19, 209d d2a0 st [$a0],x 7741 st([0xA0],X) #20, register15 += 4 209e 15a1 ld [$a1],y 7742 ld([0xA1],Y) #21, 209f 0d00 ld [y,x] 7743 ld([Y,X]) #22, peek(register15 + 0) 20a0 c282 st [$82] 7744 st([0x82]) #23, spriteX 20a1 de00 st [y,x++] 7745 st([Y,Xpp]) #24, X++ 20a2 0d00 ld [y,x] 7746 ld([Y,X]) #25, peek(register15 + 1) 20a3 c283 st [$83] 7747 st([0x83]) #26, spriteY 20a4 de00 st [y,x++] 7748 st([Y,Xpp]) #27, X++ 20a5 0d00 ld [y,x] 7749 ld([Y,X]) #28, peek(register15 + 2) 20a6 c286 st [$86] 7750 st([0x86]) #29, spriteHeight 20a7 de00 st [y,x++] 7751 st([Y,Xpp]) #30, X++ 20a8 0d00 ld [y,x] 7752 ld([Y,X]) #31, peek(register15 + 3) 20a9 c287 st [$87] 7753 st([0x87]) #32, spriteData 20aa 0188 ld [$88] 7754 ld([0x88]) #33, 20ab a001 suba $01 7755 suba(1) #34, 20ac c288 st [$88] 7756 st([0x88]) #35, register3--, spriteCount 7757 beq('.sys_drawsprite_38') #36, 20ad f0b4 beq .sys_drawsprite_38 20ae 0116 ld [$16] 7758 ld([vPC]) #37, 20af a002 suba $02 7759 suba(2) #38, 20b0 c216 st [$16] 7760 st([vPC]) #39, restart 20b1 1403 ld $03,y 7761 ld(hi('NEXTY'),Y) #40, 20b2 e000 jmp y,$00 7762 jmp(Y,'NEXTY') #41, 20b3 00ea ld $ea 7763 ld(-44/2) #42, 7764 label('.sys_drawsprite_38') .sys_drawsprite_38: 20b4 1403 ld $03,y 7765 ld(hi('NEXTY'),Y) #38, 20b5 e000 jmp y,$00 7766 jmp(Y,'NEXTY') #39, 20b6 00eb ld $eb 7767 ld(-42/2) #40, 7768 7769 20b7 0200 nop 7770 fillers(until=0xc0) 20b8 0200 nop 20b9 0200 nop * 9 times 7771 7772 # SYS_ScrollVTableY_vX_38, sysArgs0=scrollOffset, sysArgs1=scanCount, sysArgs2,3=videoTable 7773 label('SYS_ScrollVTableY_vX_38') SYS_ScrollVTableY_vX_38: 20c0 0125 ld [$25] 7774 ld([sysArgs+1]) #15, 20c1 a001 suba $01 7775 suba(1) #16, 20c2 c225 st [$25] 7776 st([sysArgs+1]) #17, scanCount-- 7777 bge('.sys_scrollvty_20') #18, 20c3 f4c8 bge .sys_scrollvty_20 20c4 1527 ld [$27],y 7778 ld([sysArgs+3],Y) #19, VTable.hi 20c5 1403 ld $03,y 7779 ld(hi('NEXTY'),Y) #20, 20c6 e000 jmp y,$00 7780 jmp(Y,'NEXTY') #21, 20c7 00f4 ld $f4 7781 ld(-24/2) #22, 7782 label('.sys_scrollvty_20') .sys_scrollvty_20: 20c8 1126 ld [$26],x 7783 ld([sysArgs+2],X) #20, VTable.low 20c9 0d00 ld [y,x] 7784 ld([Y,X]) #21, scanline = peek [VTable] 20ca 8124 adda [$24] 7785 adda([sysArgs+0]) #22, scanline += scrollOffset 20cb a07f suba $7f 7786 suba(0x7f) #23, scanline -= 0x7f 7787 ble('.sys_scrollvty_26') #24, 20cc f8d9 ble .sys_scrollvty_26 20cd 807f adda $7f 7788 adda(0x7F) #25, original scanline 20ce 8088 adda $88 7789 adda(0x88) #26, overflow into the range 0x08 to 0x7f 20cf ce00 st [y,x] 7790 st([Y,X]) #27, 20d0 0126 ld [$26] 7791 ld([sysArgs+2]) #28, 20d1 8002 adda $02 7792 adda(2) #29, 20d2 c226 st [$26] 7793 st([sysArgs+2]) #30, 20d3 0116 ld [$16] 7794 ld([vPC]) #31, 20d4 a002 suba $02 7795 suba(2) #32, 20d5 c216 st [$16] 7796 st([vPC]) #33, restart 20d6 1403 ld $03,y 7797 ld(hi('NEXTY'),Y) #34, 20d7 e000 jmp y,$00 7798 jmp(Y,'NEXTY') #35, 20d8 00ed ld $ed 7799 ld(-38/2) #36, 7800 7801 label('.sys_scrollvty_26') .sys_scrollvty_26: 20d9 ce00 st [y,x] 7802 st([Y,X]) #26, 20da 0126 ld [$26] 7803 ld([sysArgs+2]) #27, 20db 8002 adda $02 7804 adda(2) #28, 20dc c226 st [$26] 7805 st([sysArgs+2]) #29, 20dd 0116 ld [$16] 7806 ld([vPC]) #30, 20de a002 suba $02 7807 suba(2) #31, 20df c216 st [$16] 7808 st([vPC]) #32, restart 20e0 1403 ld $03,y 7809 ld(hi('REENTER'),Y) #33, 20e1 e0cb jmp y,$cb 7810 jmp(Y,'REENTER') #34, 20e2 00ed ld $ed 7811 ld(-38/2) #35, 7812 7813 20e3 0200 nop 7814 fillers(until=0xff) 20e4 0200 nop 20e5 0200 nop * 28 times 20ff 0200 nop 7815 align(0x100, size=0x100) 7816 7817 #----------------------------------------------------------------------- 7818 # More sys implementations, (0x2100) 7819 #----------------------------------------------------------------------- 7820 # SYS_RestoreSprite_vX_124 7821 label('SYS_RestoreSprite_vX_124') SYS_RestoreSprite_vX_124: 2100 0186 ld [$86] 7822 ld([0x86]) #15, spriteEnable 7823 bmi('.sys_restoresprite_18') #16, 2101 e877 blt .sys_restoresprite_18 2102 1587 ld [$87],y 7824 ld([0x87],Y) #17, spriteData 2103 09a0 ld [y,$a0] 7825 ld([Y,0xA0]) #18, spriteOldX 2104 1200 ld ac,x 7826 ld(AC,X) #19, 2105 09a1 ld [y,$a1] 7827 ld([Y,0xA1]) #20, spriteOldY 2106 c21d st [$1d] 7828 st([vTmp]) #21, 7829 2107 09a2 ld [y,$a2] 7830 ld([Y,0xA2]) #22, load back0 2108 151d ld [$1d],y 7831 ld([vTmp],Y) #23, spriteOldY 2109 de00 st [y,x++] 7832 st([Y,Xpp]) #24, restore back0 7833 210a 1587 ld [$87],y 7834 ld([0x87],Y) #25, spriteData 210b 09a4 ld [y,$a4] 7835 ld([Y,0xA4]) #26, load back1 210c 151d ld [$1d],y 7836 ld([vTmp],Y) #27, spriteOldY 210d de00 st [y,x++] 7837 st([Y,Xpp]) #28, restore back1 7838 210e 1587 ld [$87],y 7839 ld([0x87],Y) #29, spriteData 210f 09a6 ld [y,$a6] 7840 ld([Y,0xA6]) #30, load back2 2110 151d ld [$1d],y 7841 ld([vTmp],Y) #31, spriteOldY 2111 de00 st [y,x++] 7842 st([Y,Xpp]) #32, restore back2 7843 2112 1587 ld [$87],y 7844 ld([0x87],Y) #33, spriteData 2113 09a8 ld [y,$a8] 7845 ld([Y,0xA8]) #34, load back3 2114 151d ld [$1d],y 7846 ld([vTmp],Y) #35, spriteOldY 2115 de00 st [y,x++] 7847 st([Y,Xpp]) #36, restore back3 7848 2116 1587 ld [$87],y 7849 ld([0x87],Y) #37, spriteData 2117 09aa ld [y,$aa] 7850 ld([Y,0xAA]) #38, load back4 2118 151d ld [$1d],y 7851 ld([vTmp],Y) #39, spriteOldY 2119 de00 st [y,x++] 7852 st([Y,Xpp]) #40, restore back4 7853 211a 1587 ld [$87],y 7854 ld([0x87],Y) #41, spriteData 211b 09ac ld [y,$ac] 7855 ld([Y,0xAC]) #42, load back5 211c 151d ld [$1d],y 7856 ld([vTmp],Y) #43, spriteOldY 211d de00 st [y,x++] 7857 st([Y,Xpp]) #44, restore back5 7858 211e 1587 ld [$87],y 7859 ld([0x87],Y) #45, spriteData 211f 09ae ld [y,$ae] 7860 ld([Y,0xAE]) #46, load back6 2120 151d ld [$1d],y 7861 ld([vTmp],Y) #47, spriteOldY 2121 de00 st [y,x++] 7862 st([Y,Xpp]) #48, restore back6 7863 2122 1587 ld [$87],y 7864 ld([0x87],Y) #49, spriteData 2123 09b0 ld [y,$b0] 7865 ld([Y,0xB0]) #50, load back7 2124 151d ld [$1d],y 7866 ld([vTmp],Y) #51, spriteOldY 2125 de00 st [y,x++] 7867 st([Y,Xpp]) #52, restore back7 7868 2126 1587 ld [$87],y 7869 ld([0x87],Y) #53, spriteData 2127 09b2 ld [y,$b2] 7870 ld([Y,0xB2]) #54, load back8 2128 151d ld [$1d],y 7871 ld([vTmp],Y) #55, spriteOldY 2129 de00 st [y,x++] 7872 st([Y,Xpp]) #56, restore back8 7873 212a 0187 ld [$87] 7874 ld([0x87]) #57, 212b 8001 adda $01 7875 adda(1) #58, 212c d687 st [$87],y 7876 st([0x87],Y) #59, spriteData++ 7877 212d 09a0 ld [y,$a0] 7878 ld([Y,0xA0]) #60, spriteOldX 212e 1200 ld ac,x 7879 ld(AC,X) #61, 212f 09a1 ld [y,$a1] 7880 ld([Y,0xA1]) #62, spriteOldY 2130 c21d st [$1d] 7881 st([vTmp]) #63, 7882 2131 09a2 ld [y,$a2] 7883 ld([Y,0xA2]) #64, load back0 2132 151d ld [$1d],y 7884 ld([vTmp],Y) #65, spriteOldY 2133 de00 st [y,x++] 7885 st([Y,Xpp]) #66, restore back0 7886 2134 1587 ld [$87],y 7887 ld([0x87],Y) #67, spriteData 2135 09a4 ld [y,$a4] 7888 ld([Y,0xA4]) #68, load back1 2136 151d ld [$1d],y 7889 ld([vTmp],Y) #69, spriteOldY 2137 de00 st [y,x++] 7890 st([Y,Xpp]) #70, restore back1 7891 2138 1587 ld [$87],y 7892 ld([0x87],Y) #71, spriteData 2139 09a6 ld [y,$a6] 7893 ld([Y,0xA6]) #72, load back2 213a 151d ld [$1d],y 7894 ld([vTmp],Y) #73, spriteOldY 213b de00 st [y,x++] 7895 st([Y,Xpp]) #74, restore back2 7896 213c 1587 ld [$87],y 7897 ld([0x87],Y) #75, spriteData 213d 09a8 ld [y,$a8] 7898 ld([Y,0xA8]) #76, load back3 213e 151d ld [$1d],y 7899 ld([vTmp],Y) #77, spriteOldY 213f de00 st [y,x++] 7900 st([Y,Xpp]) #78, restore back3 7901 2140 1587 ld [$87],y 7902 ld([0x87],Y) #79, spriteData 2141 09aa ld [y,$aa] 7903 ld([Y,0xAA]) #80, load back4 2142 151d ld [$1d],y 7904 ld([vTmp],Y) #81, spriteOldY 2143 de00 st [y,x++] 7905 st([Y,Xpp]) #82, restore back4 7906 2144 1587 ld [$87],y 7907 ld([0x87],Y) #83, spriteData 2145 09ac ld [y,$ac] 7908 ld([Y,0xAC]) #84, load back5 2146 151d ld [$1d],y 7909 ld([vTmp],Y) #85, spriteOldY 2147 de00 st [y,x++] 7910 st([Y,Xpp]) #86, restore back5 7911 2148 1587 ld [$87],y 7912 ld([0x87],Y) #87, spriteData 2149 09ae ld [y,$ae] 7913 ld([Y,0xAE]) #88, load back6 214a 151d ld [$1d],y 7914 ld([vTmp],Y) #89, spriteOldY 214b de00 st [y,x++] 7915 st([Y,Xpp]) #90, restore back6 7916 214c 1587 ld [$87],y 7917 ld([0x87],Y) #91, spriteData 214d 09b0 ld [y,$b0] 7918 ld([Y,0xB0]) #92, load back7 214e 151d ld [$1d],y 7919 ld([vTmp],Y) #93, spriteOldY 214f de00 st [y,x++] 7920 st([Y,Xpp]) #94, restore back7 7921 2150 1587 ld [$87],y 7922 ld([0x87],Y) #95, spriteData 2151 09b2 ld [y,$b2] 7923 ld([Y,0xB2]) #96, load back8 2152 151d ld [$1d],y 7924 ld([vTmp],Y) #97, spriteOldY 2153 de00 st [y,x++] 7925 st([Y,Xpp]) #98, restore back8 7926 2154 0186 ld [$86] 7927 ld([0x86]) #99, 2155 a002 suba $02 7928 suba(2) #100, 2156 c286 st [$86] 7929 st([0x86]) #101, scanLines -= 2 7930 beq('.sys_restoresprite_104') #102, 2157 f061 beq .sys_restoresprite_104 2158 0187 ld [$87] 7931 ld([0x87]) #103, 2159 8001 adda $01 7932 adda(1) #104, 215a c287 st [$87] 7933 st([0x87]) #105, spriteData++ 215b 0116 ld [$16] 7934 ld([vPC]) #106, 215c a002 suba $02 7935 suba(2) #107, 215d c216 st [$16] 7936 st([vPC]) #108, restart 215e 1403 ld $03,y 7937 ld(hi('REENTER'),Y) #109, 215f e0cb jmp y,$cb 7938 jmp(Y,'REENTER') #110, 2160 00c7 ld $c7 7939 ld(-114/2) #111, 7940 label('.sys_restoresprite_104') .sys_restoresprite_104: 2161 01a0 ld [$a0] 7941 ld([0xA0]) #104, 2162 a004 suba $04 7942 suba(4) #105, 2163 d2a0 st [$a0],x 7943 st([0xA0],X) #106, register15 -= 4 2164 15a1 ld [$a1],y 7944 ld([0xA1],Y) #107, 2165 0d00 ld [y,x] 7945 ld([Y,X]) #108, peek(register15 + 2) 2166 c286 st [$86] 7946 st([0x86]) #109, spriteHeight 2167 de00 st [y,x++] 7947 st([Y,Xpp]) #110, X++ 2168 0d00 ld [y,x] 7948 ld([Y,X]) #111, peek(register15 + 3) 2169 c287 st [$87] 7949 st([0x87]) #112, spriteData 216a 0188 ld [$88] 7950 ld([0x88]) #113, 216b a001 suba $01 7951 suba(1) #114, 216c c288 st [$88] 7952 st([0x88]) #115, numSprites-- 7953 beq('.sys_restoresprite_118') #116, 216d f074 beq .sys_restoresprite_118 216e 0116 ld [$16] 7954 ld([vPC]) #117, 216f a002 suba $02 7955 suba(2) #118, 2170 c216 st [$16] 7956 st([vPC]) #119, restart 2171 1403 ld $03,y 7957 ld(hi('NEXTY'),Y) #120, 2172 e000 jmp y,$00 7958 jmp(Y,'NEXTY') #121, 2173 00c2 ld $c2 7959 ld(-124/2) #122, 7960 label('.sys_restoresprite_118') .sys_restoresprite_118: 2174 1403 ld $03,y 7961 ld(hi('NEXTY'),Y) #118, 2175 e000 jmp y,$00 7962 jmp(Y,'NEXTY') #119, 2176 00c3 ld $c3 7963 ld(-122/2) #120, 7964 7965 label('.sys_restoresprite_18') .sys_restoresprite_18: 2177 01a0 ld [$a0] 7966 ld([0xA0]) #18, 2178 a004 suba $04 7967 suba(4) #19, 2179 d2a0 st [$a0],x 7968 st([0xA0],X) #20, register15 -= 4 217a 15a1 ld [$a1],y 7969 ld([0xA1],Y) #21, 217b 0d00 ld [y,x] 7970 ld([Y,X]) #22, peek(register15 + 2) 217c c286 st [$86] 7971 st([0x86]) #23, spriteHeight 217d de00 st [y,x++] 7972 st([Y,Xpp]) #24, X++ 217e 0d00 ld [y,x] 7973 ld([Y,X]) #25, peek(register15 + 3) 217f c287 st [$87] 7974 st([0x87]) #26, spriteData 2180 0188 ld [$88] 7975 ld([0x88]) #27, 2181 a001 suba $01 7976 suba(1) #28, 2182 c288 st [$88] 7977 st([0x88]) #29, numSprites-- 7978 beq('.sys_restoresprite_32') #30, 2183 f08a beq .sys_restoresprite_32 2184 0116 ld [$16] 7979 ld([vPC]) #31, 2185 a002 suba $02 7980 suba(2) #32, 2186 c216 st [$16] 7981 st([vPC]) #33, restart 2187 1403 ld $03,y 7982 ld(hi('NEXTY'),Y) #34, 2188 e000 jmp y,$00 7983 jmp(Y,'NEXTY') #35, 2189 00ed ld $ed 7984 ld(-38/2) #36, 7985 label('.sys_restoresprite_32') .sys_restoresprite_32: 218a 1403 ld $03,y 7986 ld(hi('NEXTY'),Y) #32, 218b e000 jmp y,$00 7987 jmp(Y,'NEXTY') #33, 218c 00ee ld $ee 7988 ld(-36/2) #34, 7989 7990 218d 0200 nop 7991 fillers(until=0xa0) 218e 0200 nop 218f 0200 nop * 19 times 7992 7993 # SYS_ScrollRectVTableY_vX_44, sysArgs0=scrollOffset, sysArgs1=scanCount, sysArgs2,3=videoTable, 7994 # sysArgs4,5=scrollStart,scrollEnd 7995 label('SYS_ScrollRectVTableY_vX_44') SYS_ScrollRectVTableY_vX_44: 21a0 0125 ld [$25] 7996 ld([sysArgs+1]) #15, 21a1 a001 suba $01 7997 suba(1) #16, 21a2 c225 st [$25] 7998 st([sysArgs+1]) #17, scanCount-- 7999 bge('.sys_scrollrectvty_20') #18, 21a3 f4a8 bge .sys_scrollrectvty_20 21a4 1527 ld [$27],y 8000 ld([sysArgs+3],Y) #19, VTable.hi 21a5 1403 ld $03,y 8001 ld(hi('NEXTY'),Y) #20, 21a6 e000 jmp y,$00 8002 jmp(Y,'NEXTY') #21, 21a7 00f4 ld $f4 8003 ld(-24/2) #22, 8004 label('.sys_scrollrectvty_20') .sys_scrollrectvty_20: 21a8 1126 ld [$26],x 8005 ld([sysArgs+2],X) #20, VTable.low 21a9 0d00 ld [y,x] 8006 ld([Y,X]) #21, scanline = peek [VTable] 21aa 8124 adda [$24] 8007 adda([sysArgs+0]) #22, scanline += scrollOffset 21ab c21d st [$1d] 8008 st([vTmp]) #23, 21ac a128 suba [$28] 8009 suba([sysArgs+4]) #24, 8010 bge('.sys_scrollrectvty_27') #25, 21ad f4b9 bge .sys_scrollrectvty_27 21ae 8129 adda [$29] 8011 adda([sysArgs+5]) #26, 21af ce00 st [y,x] 8012 st([Y,X]) #27, 21b0 0126 ld [$26] 8013 ld([sysArgs+2]) #28, 21b1 8002 adda $02 8014 adda(2) #29, 21b2 c226 st [$26] 8015 st([sysArgs+2]) #30, 21b3 0116 ld [$16] 8016 ld([vPC]) #31, 21b4 a002 suba $02 8017 suba(2) #32, 21b5 c216 st [$16] 8018 st([vPC]) #33, restart 21b6 1403 ld $03,y 8019 ld(hi('NEXTY'),Y) #34, 21b7 e000 jmp y,$00 8020 jmp(Y,'NEXTY') #35, 21b8 00ed ld $ed 8021 ld(-38/2) #36, 8022 8023 label('.sys_scrollrectvty_27') .sys_scrollrectvty_27: 21b9 011d ld [$1d] 8024 ld([vTmp]) #27, 21ba a129 suba [$29] 8025 suba([sysArgs+5]) #28, 8026 blt('.sys_scrollrectvty_31') #29, 21bb e8c7 blt .sys_scrollrectvty_31 21bc 8128 adda [$28] 8027 adda([sysArgs+4]) #30, 21bd ce00 st [y,x] 8028 st([Y,X]) #31, 21be 0126 ld [$26] 8029 ld([sysArgs+2]) #32, 21bf 8002 adda $02 8030 adda(2) #33, 21c0 c226 st [$26] 8031 st([sysArgs+2]) #34, 21c1 0116 ld [$16] 8032 ld([vPC]) #35, 21c2 a002 suba $02 8033 suba(2) #36, 21c3 c216 st [$16] 8034 st([vPC]) #37, restart 21c4 1403 ld $03,y 8035 ld(hi('NEXTY'),Y) #38, 21c5 e000 jmp y,$00 8036 jmp(Y,'NEXTY') #39, 21c6 00eb ld $eb 8037 ld(-42/2) #40, 8038 8039 label('.sys_scrollrectvty_31') .sys_scrollrectvty_31: 21c7 011d ld [$1d] 8040 ld([vTmp]) #31, 21c8 ce00 st [y,x] 8041 st([Y,X]) #32, 21c9 0126 ld [$26] 8042 ld([sysArgs+2]) #33, 21ca 8002 adda $02 8043 adda(2) #34, 21cb c226 st [$26] 8044 st([sysArgs+2]) #35, 21cc 0116 ld [$16] 8045 ld([vPC]) #36, 21cd a002 suba $02 8046 suba(2) #37, 21ce c216 st [$16] 8047 st([vPC]) #38, restart 21cf 1403 ld $03,y 8048 ld(hi('REENTER'),Y) #39, 21d0 e0cb jmp y,$cb 8049 jmp(Y,'REENTER') #40, 21d1 00ea ld $ea 8050 ld(-44/2) #41, 8051 8052 21d2 0200 nop 8053 fillers(until=0xff) 21d3 0200 nop 21d4 0200 nop * 45 times 8054 8055 #----------------------------------------------------------------------- 8056 # PREFX3 instruction page, (0x2200), PREFIX ARG1 OPCODE ARG0 8057 #----------------------------------------------------------------------- 8058 # Original idea by lb3361, see https://forum.gigatron.io/viewtopic.php?p=2099#p2099 8059 # 8060 label('PREFX3_PAGE') PREFX3_PAGE: 21ff fc03 bra $2203 8061 bra('.next2') #0 Enter at '.next2' (so no startup overhead) 8062 # --- Page boundary --- 8063 align(0x100,size=0x100) 2200 1517 ld [$17],y 8064 ld([vPC+1],Y) #1 8065 8066 # Fetch next instruction and execute it, but only if there are sufficient 8067 # ticks left for the slowest instruction. 2201 8115 adda [$15] 8068 adda([vTicks]) #0 Track elapsed ticks (actually counting down: AC<0) 2202 e80b blt $220b 8069 blt('EXIT') #1 Escape near time out 2203 c215 st [$15] 8070 st([vTicks]) #2 2204 1116 ld [$16],x 8071 ld([vPC],X) #3 PREFIX+ARG1 is 2 bytes, vPC has been incremented by 2 2205 0200 nop 8072 nop() #4 2206 c002 st $02,[$02] 8073 st(vCpuSelect,[vCpuSelect]) #5 Reset to default vCPU page 2207 0d00 ld [y,x] 8074 ld([Y,X]) #6 Fetch opcode (actually a branch target) 2208 de00 st [y,x++] 8075 st([Y,Xpp]) #7 Just X++ 2209 fe00 bra ac 8076 bra(AC) #8 Dispatch 220a 0d00 ld [y,x] 8077 ld([Y,X]) #9 Prefetch operand 8078 8079 # Resync with video driver and transfer control 220b 800f adda $0f 8080 adda(maxTicks) #3 220c e40c bgt $220c 8081 bgt(pc()&255) #4 Resync 220d a001 suba $01 8082 suba(1) #5 220e 1401 ld $01,y 8083 ld(hi('vBlankStart'),Y) #6 220f e11e jmp y,[$1e] 8084 jmp(Y,[vReturn]) #7 To video driver 2210 0000 ld $00 8085 ld(0) #8 AC should be 0 already. Still.. 8086 assert vCPU_overhead == 9 8087 8088 # pc = 0x2211, Opcode = 0x11 8089 # Instruction STB2: Store vAC.lo into 16bit immediate address, 22 + 20 cycles 8090 # Original idea by lb3361, see https://forum.gigatron.io/viewtopic.php?p=2135#p2135 8091 label('STB2') STB2: 2211 1425 ld $25,y 8092 ld(hi('stb2#13'),Y) #10 2212 e000 jmp y,$00 8093 jmp(Y,'stb2#13') #11 2213 1200 ld ac,x 8094 ld(AC,X) #12 8095 8096 # pc = 0x2214, Opcode = 0x14 8097 # Instruction STW2: Store vAC into 16bit immediate address, 22 + 22 cycles 8098 # Original idea by lb3361, see https://forum.gigatron.io/viewtopic.php?p=2135#p2135 8099 label('STW2') STW2: 2214 1425 ld $25,y 8100 ld(hi('stw2#13'),Y) #10 2215 e006 jmp y,$06 8101 jmp(Y,'stw2#13') #11 2216 1200 ld ac,x 8102 ld(AC,X) #12 8103 8104 # pc = 0x2217, Opcode = 0x17 8105 # Instruction XCHGB: Exchange two zero byte variables, 22 + 28 cycles 8106 label('XCHGB') XCHGB: 2217 1425 ld $25,y 8107 ld(hi('xchgb#13'),Y) #10 2218 e00e jmp y,$0e 8108 jmp(Y,'xchgb#13') #11 8109 # dummy #12 Overlap 8110 # 8111 # pc = 0x2219, Opcode = 0x19 8112 # Instruction MOVW: Move 16bits from src zero page var to dst zero page var, 22 + 30 cycles 8113 label('MOVW') MOVW: 2219 1425 ld $25,y 8114 ld(hi('movw#13'),Y) #10 221a e040 jmp y,$40 8115 jmp(Y,'movw#13') #11 8116 # dummy #12 Overlap 8117 # 8118 # pc = 0x221b, Opcode = 0x1b 8119 # Instruction ADDWI: vAC += imm16, 22 + 28 cycles 8120 label('ADDWI') ADDWI: 221b 1425 ld $25,y 8121 ld(hi('addwi#13'),Y) #10 #12 221c e050 jmp y,$50 8122 jmp(Y,'addwi#13') #11 8123 # dummy #12 Overlap 8124 # 8125 # pc = 0x221d, Opcode = 0x1d 8126 # Instruction SUBWI: vAC -= imm16, 22 + 28 cycles 8127 label('SUBWI') SUBWI: 221d 1425 ld $25,y 8128 ld(hi('subwi#13'),Y) #10 #12 221e e06b jmp y,$6b 8129 jmp(Y,'subwi#13') #11 8130 # dummy #12 Overlap 8131 # 8132 # pc = 0x221f, Opcode = 0x1f 8133 # Instruction ANDWI: vAC &= imm16, 22 + 22 cycles 8134 label('ANDWI') ANDWI: 221f 1425 ld $25,y 8135 ld(hi('andwi#13'),Y) #10 #12 2220 e09d jmp y,$9d 8136 jmp(Y,'andwi#13') #11 8137 # dummy #12 Overlap 8138 # 8139 # pc = 0x2221, Opcode = 0x21 8140 # Instruction ORWI: vAC |= imm16, 22 + 22 cycles 8141 label('ORWI') ORWI: 2221 1425 ld $25,y 8142 ld(hi('orwi#13'),Y) #10 #12 2222 e0a5 jmp y,$a5 8143 jmp(Y,'orwi#13') #11 8144 # dummy #12 Overlap 8145 # 8146 # pc = 0x2223, Opcode = 0x23 8147 # Instruction XORWI: vAC ^= imm16, 22 + 22 cycles 8148 label('XORWI') XORWI: 2223 1425 ld $25,y 8149 ld(hi('xorwi#13'),Y) #10 #12 2224 e0ad jmp y,$ad 8150 jmp(Y,'xorwi#13') #11 8151 # dummy #12 Overlap 8152 # 8153 # pc = 0x2225, Opcode = 0x25 8154 # Instruction FNT6X8: fontTable = FNT6X8(char), vAC = index(char), 22 + 42 cycles 8155 label('FNT6X8') FNT6X8: 2225 1435 ld $35,y 8156 ld(hi('fnt6x8#13'),Y) #10 2226 e02a jmp y,$2a 8157 jmp(Y,'fnt6x8#13') #11 2227 c22a st [$2a] 8158 st([sysArgs+6]) #12 fontChr addr 8159 8160 # pc = 0x2228, Opcode = 0x28 8161 # Instruction FNT4X6: fontTable = FNT4X6(char), vAC = index(char), 22 + 42 cycles 8162 label('FNT4X6') FNT4X6: 2228 1435 ld $35,y 8163 ld(hi('fnt4x6#13'),Y) #10 2229 e051 jmp y,$51 8164 jmp(Y,'fnt4x6#13') #11 8165 # dummy #12 Overlap 8166 # 8167 # pc = 0x222a, Opcode = 0x2a 8168 # Instruction CONDII: chooses immediate operand based on condition, (vAC == 0), 22 + 26 cycles 8169 label('CONDII') CONDII: 222a 1425 ld $25,y 8170 ld(hi('condii#13'),Y) #10 #12 222b e0b5 jmp y,$b5 8171 jmp(Y,'condii#13') #11 8172 # dummy #12 Overlap 8173 # 8174 # pc = 0x222c, Opcode = 0x2c 8175 # Instruction CONDBB: chooses zero page byte var based on condition, (vAC == 0), 22 + 26 cycles 8176 label('CONDBB') CONDBB: 222c 1425 ld $25,y 8177 ld(hi('condbb#13'),Y) #10 #12 222d e0c2 jmp y,$c2 8178 jmp(Y,'condbb#13') #11 222e 1200 ld ac,x 8179 ld(AC,X) #12 8180 8181 # pc = 0x222f, Opcode = 0x2f 8182 # Instruction CONDIB: chooses between imm and zero page byte var based on condition, (vAC == 0), 22 + 26 cycles 8183 label('CONDIB') CONDIB: 222f 1425 ld $25,y 8184 ld(hi('condib#13'),Y) #10 2230 e0d1 jmp y,$d1 8185 jmp(Y,'condib#13') #11 2231 c21d st [$1d] 8186 st([vTmp]) #12 8187 8188 # pc = 0x2232, Opcode = 0x32 8189 # Instruction CONDBI: chooses between zero page byte var and imm based on condition, (vAC == 0), 22 + 26 cycles 8190 label('CONDBI') CONDBI: 2232 1425 ld $25,y 8191 ld(hi('condbi#13'),Y) #10 2233 e0de jmp y,$de 8192 jmp(Y,'condbi#13') #11 8193 # dummy #12 Overlap 8194 # 8195 # pc = 0x2234, Opcode = 0x34 8196 # Instruction XCHGW: Exchange two zero word variables, 22 + 46 cycles 8197 label('XCHGW') XCHGW: 2234 1425 ld $25,y 8198 ld(hi('xchgw#13'),Y) #10 #12 2235 e01c jmp y,$1c 8199 jmp(Y,'xchgw#13') #11 2236 c22a st [$2a] 8200 st([sysArgs+6]) #12 var1 8201 8202 # pc = 0x2237, Opcode = 0x37 8203 # Instruction OSCPX: 8204 label('OSCPX') OSCPX: 2237 1428 ld $28,y 8205 ld(hi('oscpx#13'),Y) #10 2238 e0d4 jmp y,$d4 8206 jmp(Y,'oscpx#13') #11 8207 # dummy #12 Overlap 8208 # 8209 # pc = 0x2239, Opcode = 0x39 8210 # Instruction SWAPB: Swap two bytes in memory, 22 + 46 cycles 8211 label('SWAPB') SWAPB: 2239 1429 ld $29,y 8212 ld(hi('swapb#13'),Y) #10 #12 223a e093 jmp y,$93 8213 jmp(Y,'swapb#13') #11 223b 1200 ld ac,x 8214 ld(AC,X) #12 var1 8215 # 8216 # pc = 0x223c, Opcode = 0x3c 8217 # Instruction SWAPW: Swap two words in memory, 22 + 58 cycles 8218 label('SWAPW') SWAPW: 223c 1429 ld $29,y 8219 ld(hi('swapw#13'),Y) #10 223d e0b8 jmp y,$b8 8220 jmp(Y,'swapw#13') #11 223e 1200 ld ac,x 8221 ld(AC,X) #12 var1 8222 8223 # pc = 0x223f, Opcode = 0x3f 8224 # Instruction NEEKA: Peek bytes from [vAC] into [var], 22 + 34*n + 24 cycles 8225 label('NEEKA') NEEKA: 223f 142a ld $2a,y 8226 ld(hi('neeka#13'),Y) #10 2240 e06e jmp y,$6e 8227 jmp(Y,'neeka#13') #11 2241 c22a st [$2a] 8228 st([sysArgs+6]) #12 var 8229 8230 # pc = 0x2242, Opcode = 0x42 8231 # Instruction NOKEA: Poke bytes from [var] into [vAC], 22 + 34*n + 24 cycles 8232 label('NOKEA') NOKEA: 2242 142a ld $2a,y 8233 ld(hi('nokea#13'),Y) #10 2243 e08a jmp y,$8a 8234 jmp(Y,'nokea#13') #11 2244 c22a st [$2a] 8235 st([sysArgs+6]) #12 var 8236 8237 # pc = 0x2245, Opcode = 0x45 8238 # Instruction ADDVL: Add two 32bit zero page vars, dst += src, 22 + 78 cycles 8239 label('ADDVL') ADDVL: 2245 142b ld $2b,y 8240 ld(hi('addvl#13'),Y) #10 2246 e02f jmp y,$2f 8241 jmp(Y,'addvl#13') #11 2247 d22a st [$2a],x 8242 st([sysArgs+6],X) #12 src var 8243 8244 # pc = 0x2248, Opcode = 0x48 8245 # Instruction SUBVL: Subtract two 32bit zero page vars, dst -= src, 22 + 74 cycles 8246 label('SUBVL') SUBVL: 2248 142b ld $2b,y 8247 ld(hi('subvl#13'),Y) #10 2249 e079 jmp y,$79 8248 jmp(Y,'subvl#13') #11 224a d22a st [$2a],x 8249 st([sysArgs+6],X) #12 src var 8250 8251 # pc = 0x224c, Opcode = 0x4c 8252 # Instruction ANDVL: And two 32bit zero page vars, dst &= src, 22 + 46 cycles 8253 label('ANDVL') ANDVL: 224b 142b ld $2b,y 8254 ld(hi('andvl#13'),Y) #10 224c e0c5 jmp y,$c5 8255 jmp(Y,'andvl#13') #11 224d 1200 ld ac,x 8256 ld(AC,X) #12 src var 8257 8258 # pc = 0x224e, Opcode = 0x4e 8259 # Instruction ORVL: Or two 32bit zero page vars, dst |= src, 22 + 46 cycles 8260 label('ORVL') ORVL: 224e 142c ld $2c,y 8261 ld(hi('orvl#13'),Y) #10 224f e000 jmp y,$00 8262 jmp(Y,'orvl#13') #11 2250 1200 ld ac,x 8263 ld(AC,X) #12 src var 8264 8265 # pc = 0x2251, Opcode = 0x51 8266 # Instruction XORVL: Xor two 32bit zero page vars, dst ^= src, 22 + 76 cycles 8267 label('XORVL') XORVL: 2251 142c ld $2c,y 8268 ld(hi('xorvl#13'),Y) #10 2252 e024 jmp y,$24 8269 jmp(Y,'xorvl#13') #11 2253 1200 ld ac,x 8270 ld(AC,X) #12 src var 8271 8272 # pc = 0x2254, Opcode = 0x54 8273 # Instruction JEQL: 22 + 40 cycles 8274 label('JEQL') JEQL: 2254 142d ld $2d,y 8275 ld(hi('jeql#13'),Y) #10 2255 e000 jmp y,$00 8276 jmp(Y,'jeql#13') #11 2256 c22a st [$2a] 8277 st([sysArgs+6]) #12 jump.hi 8278 8279 # pc = 0x2257, Opcode = 0x57 8280 # Instruction JNEL: 22 + 40 cycles 8281 label('JNEL') JNEL: 2257 142d ld $2d,y 8282 ld(hi('jnel#13'),Y) #10 2258 e022 jmp y,$22 8283 jmp(Y,'jnel#13') #11 2259 c22a st [$2a] 8284 st([sysArgs+6]) #12 jump.hi 8285 8286 # pc = 0x225a, Opcode = 0x5a 8287 # Instruction JLTL: 22 + 26 cycles 8288 label('JLTL') JLTL: 225a 142d ld $2d,y 8289 ld(hi('jltl#13'),Y) #10 225b e044 jmp y,$44 8290 jmp(Y,'jltl#13') #11 225c c22a st [$2a] 8291 st([sysArgs+6]) #12 jump.hi 8292 8293 # pc = 0x225d, Opcode = 0x5d 8294 # Instruction JGTL: 22 + 42 cycles 8295 label('JGTL') JGTL: 225d 142d ld $2d,y 8296 ld(hi('jgtl#13'),Y) #10 225e e053 jmp y,$53 8297 jmp(Y,'jgtl#13') #11 225f c22a st [$2a] 8298 st([sysArgs+6]) #12 jump.hi 8299 8300 # pc = 0x2260, Opcode = 0x60 8301 # Instruction JLEL: 22 + 42 cycles 8302 label('JLEL') JLEL: 2260 142d ld $2d,y 8303 ld(hi('jlel#13'),Y) #10 2261 e07a jmp y,$7a 8304 jmp(Y,'jlel#13') #11 2262 c22a st [$2a] 8305 st([sysArgs+6]) #12 jump.hi 8306 8307 # pc = 0x2263, Opcode = 0x63 8308 # Instruction JGEL: 22 + 26 cycles 8309 label('JGEL') JGEL: 2263 142d ld $2d,y 8310 ld(hi('jgel#13'),Y) #10 2264 e0a5 jmp y,$a5 8311 jmp(Y,'jgel#13') #11 2265 c22a st [$2a] 8312 st([sysArgs+6]) #12 jump.hi 8313 8314 # pc = 0x2266, Opcode = 0x66 8315 # Instruction ANDBI: And immediate byte with byte var, result in byte var, 22 + 20 cycles 8316 label('ANDBI') ANDBI: 2266 142e ld $2e,y 8317 ld(hi('andbi#13'),Y) #10 2267 e000 jmp y,$00 8318 jmp(Y,'andbi#13') #11 2268 1200 ld ac,x 8319 ld(AC,X) #12 address of var 8320 8321 # pc = 0x2269, Opcode = 0x69 8322 # Instruction ORBI: OR immediate byte with byte var, result in byte var, 22 + 20 cycles 8323 label('ORBI') ORBI: 2269 142e ld $2e,y 8324 ld(hi('orbi#13'),Y) #10 226a e006 jmp y,$06 8325 jmp(Y,'orbi#13') #11 226b 1200 ld ac,x 8326 ld(AC,X) #12 address of var 8327 8328 # pc = 0x226c, Opcode = 0x6c 8329 # Instruction XORBI: var.lo ^= imm, 22 + 20 cycles 8330 label('XORBI') XORBI: 226c 142e ld $2e,y 8331 ld(hi('xorbi#13'),Y) #10 226d e00c jmp y,$0c 8332 jmp(Y,'xorbi#13') #11 226e 1200 ld ac,x 8333 ld(AC,X) #12 address of var 8334 8335 # pc = 0x226f, Opcode = 0x6f 8336 # Instruction ANDBK: vAC.hi = 0, vAC.lo = var.lo & imm, 22 + 22 cycles 8337 label('ANDBK') ANDBK: 226f 142e ld $2e,y 8338 ld(hi('andbk#13'),Y) #10 2270 e012 jmp y,$12 8339 jmp(Y,'andbk#13') #11 2271 1200 ld ac,x 8340 ld(AC,X) #12 address of var 8341 8342 # pc = 0x2272, Opcode = 0x72 8343 # Instruction ORBK: vAC.lo = var.lo | imm, 22 + 22 cycles 8344 label('ORBK') ORBK: 2272 142e ld $2e,y 8345 ld(hi('orbk#13'),Y) #10 2273 e01a jmp y,$1a 8346 jmp(Y,'orbk#13') #11 2274 1200 ld ac,x 8347 ld(AC,X) #12 address of var 8348 8349 # pc = 0x2275, Opcode = 0x75 8350 # Instruction XORBK: vAC.lo = var.lo ^ imm, 22 + 22 cycles 8351 label('XORBK') XORBK: 2275 142e ld $2e,y 8352 ld(hi('xorbk#13'),Y) #10 2276 e022 jmp y,$22 8353 jmp(Y,'xorbk#13') #11 2277 1200 ld ac,x 8354 ld(AC,X) #12 address of var 8355 8356 # pc = 0x2278, Opcode = 0x78 8357 # Instruction JMPI, (lb3361): Jump to 16bit address, preserve vLR, 22 + 20 cycles 8358 label('JMPI') JMPI: 2278 1428 ld $28,y 8359 ld(hi('jmpi#13'),Y) #10 2279 e05e jmp y,$5e 8360 jmp(Y,'jmpi#13') #11 227a a002 suba $02 8361 suba(2) #12 8362 8363 # pc = 0x227b, Opcode = 0x7b 8364 # Instruction SUBIW: vAC = imm16 - vAC, 22 + 28 cycles 8365 label('SUBIW') SUBIW: 227b 1425 ld $25,y 8366 ld(hi('subiw#13'),Y) #10 #12 227c e083 jmp y,$83 8367 jmp(Y,'subiw#13') #11 8368 # dummy #12 Overlap 8369 # 8370 # pc = 0x227d, Opcode = 0x7d 8371 # Instruction VADDBW: dst.0 += src.0, dst.1 += src.1, 22 + 30 cycles 8372 label('VADDBW') VADDBW: 227d 142e ld $2e,y 8373 ld(hi('vaddbw#13'),Y) #10 overlap 227e e02a jmp y,$2a 8374 jmp(Y,'vaddbw#13') #11 227f 1200 ld ac,x 8375 ld(AC,X) #12 src var 8376 8377 # pc = 0x2280, Opcode = 0x80 8378 # Instruction VSUBBW: dst.0 -= src.0, dst.1 -= src.1, 22 + 30 cycles 8379 label('VSUBBW') VSUBBW: 2280 142e ld $2e,y 8380 ld(hi('vsubbw#13'),Y) #10 2281 e03a jmp y,$3a 8381 jmp(Y,'vsubbw#13') #11 2282 1200 ld ac,x 8382 ld(AC,X) #12 src var 8383 8384 # pc = 0x2283, Opcode = 0x83 8385 # Instruction VADDBL: dst.0 += src.0, dst.1 += src.1, dst.2 += src.2, dst.3 += src.3, 22 + 46 cycles 8386 label('VADDBL') VADDBL: 2283 1434 ld $34,y 8387 ld(hi('vaddbl#13'),Y) #10 2284 e0aa jmp y,$aa 8388 jmp(Y,'vaddbl#13') #11 2285 1200 ld ac,x 8389 ld(AC,X) #12 src var 8390 8391 # pc = 0x2286, Opcode = 0x86 8392 # Instruction VSUBBL: dst.0 -= src.0, dst.1 -= src.1, dst.2 -= src.2, dst.3 -= src.3, 22 + 46 cycles 8393 label('VSUBBL') VSUBBL: 2286 1434 ld $34,y 8394 ld(hi('vsubbl#13'),Y) #10 2287 e0cf jmp y,$cf 8395 jmp(Y,'vsubbl#13') #11 2288 1200 ld ac,x 8396 ld(AC,X) #12 src var 8397 8398 # pc = 0x2289 Opcode = 0x89 8399 # Instruction CMPII: if vAC < imm0 vAC=-1, if vAC >= imm1 vAC=1, else vAC=0, 22 + 28 cycles 8400 label('CMPII') CMPII: 2289 1436 ld $36,y 8401 ld(hi('cmpii#13'),Y) #10 228a e00e jmp y,$0e 8402 jmp(Y,'cmpii#13') #11 8403 # dummy #12 Overlap 8404 # 8405 # pc = 0x228b, Opcode = 0x8b 8406 # Instruction IMIDI: init midi, var midiStream, var midiDelay, 22 + 40 cycles 8407 label('IMIDI') IMIDI: 228b 1431 ld $31,y 8408 ld(hi('imidi#13'),Y) #10 228c e048 jmp y,$48 8409 jmp(Y,'imidi#13') #11 228d d22a st [$2a],x 8410 st([sysArgs+6],X) #12 midi stream 8411 8412 # pc = 0x228e, Opcode = 0x8e 8413 # Instruction PMIDI: play midi without volume, var midiStream, var midiDelay, 22 + 88 cycles 8414 label('PMIDI') PMIDI: 228e 1431 ld $31,y 8415 ld(hi('pmidi#13'),Y) #10 228f e06e jmp y,$6e 8416 jmp(Y,'pmidi#13') #11 2290 d22a st [$2a],x 8417 st([sysArgs+6],X) #12 midi stream 8418 8419 # pc = 0x2291, Opcode = 0x91 8420 # Instruction PMIDIV: play midi with volume, var midiStream, var midiDelay, 22 + 106 cycles 8421 label('PMIDIV') PMIDIV: 2291 1437 ld $37,y 8422 ld(hi('pmidiv#13'),Y) #10 2292 e000 jmp y,$00 8423 jmp(Y,'pmidiv#13') #11 2293 d22a st [$2a],x 8424 st([sysArgs+6],X) #12 midi stream 8425 8426 # pc = 0x2294, Opcode = 0x94 8427 # Instruction MERGE4: merge four arrays into one, 22 + 126 cycles 8428 label('MERGE4') MERGE4: 2294 1439 ld $39,y 8429 ld(hi('merge4#13'),Y) #10 2295 e000 jmp y,$00 8430 jmp(Y,'merge4#13') #11 2296 c22a st [$2a] 8431 st([sysArgs+6]) #12 output.lo 8432 8433 # SYS calls and instruction implementations rely on these 2297 0200 nop 8434 fillers(until=0xca) 2298 0200 nop 2299 0200 nop * 51 times 22ca 00f2 ld $f2 8435 ld(-28/2) #25 22cb fc01 bra $2201 8436 bra('NEXT') #26 Return from SYS calls 22cc 1517 ld [$17],y 8437 ld([vPC+1],Y) #27 8438 8439 # pc = 0x22cd, Opcode = 0xcd 8440 # Instruction MOVL (lb3361): Move long variable. 22+40 cycles 8441 label('MOVL') MOVL: 22cd 1432 ld $32,y 8442 ld(hi('movl#13'),Y) #10 22ce e000 jmp y,$00 8443 jmp(Y,'movl#13') #11 22cf c22a st [$2a] 8444 st([sysArgs+6]) #12 8445 8446 # pc = 0x22d0, Opcode = 0xd0 8447 # Instruction MOVF (lb3361): Move float variable. 22+46 cycles 8448 label('MOVF') MOVF: 22d0 1432 ld $32,y 8449 ld(hi('movf#13'),Y) #10 22d1 e01f jmp y,$1f 8450 jmp(Y,'movf#13') #11 22d2 c22a st [$2a] 8451 st([sysArgs+6]) #12 8452 8453 # pc = 0x22d3 Opcode = 0xd3 8454 # Instruction NROL (lb3361): Left rotate n bytes. 22+18+n*18 8455 # Shift vACsign<-bit(8n-1)<-...<-bit(0)<-vACsign. Destroys vAC 8456 # Encoding: [0xc7,v,0xd3,v+n] 8457 label('NROL') NROL: 22d3 1434 ld $34,y 8458 ld(hi('nrol#13'),Y) #10 22d4 e010 jmp y,$10 8459 jmp(Y,'nrol#13') #11 22d5 c22a st [$2a] 8460 st([sysArgs+6]) #12 8461 8462 # pc = 0x22d6 Opcode = 0xd6 8463 # Instruction NROR (lb3361): Right rotate n bytes. 22+26+n*32 8464 # Shift vACsign->bit(8n-1)->...->bit(0)->vACsign. Destroys vAC 8465 # Encoding: [0xc7,v+n,0xd6,v] 8466 label('NROR') NROR: 22d6 1434 ld $34,y 8467 ld(hi('nror#13'),Y) #10 22d7 e034 jmp y,$34 8468 jmp(Y,'nror#13') #11 22d8 c22a st [$2a] 8469 st([sysArgs+6]) #12 8470 8471 8472 22d9 0200 nop 8473 fillers(until=0xff) 22da 0200 nop 22db 0200 nop * 38 times 8474 8475 #----------------------------------------------------------------------- 8476 # PREFX2 instruction page, (0x2300), PREFIX ARG0 OPCODE 8477 #----------------------------------------------------------------------- 8478 # 8479 label('PREFX2_PAGE') PREFX2_PAGE: 22ff fc03 bra $2303 8480 bra('.next2') #0 Enter at '.next2' (so no startup overhead) 8481 # --- Page boundary --- 8482 align(0x100,size=0x100) 2300 1517 ld [$17],y 8483 ld([vPC+1],Y) #1 8484 8485 # Fetch next instruction and execute it, but only if there are sufficient 8486 # ticks left for the slowest instruction. 2301 8115 adda [$15] 8487 adda([vTicks]) #0 Track elapsed ticks (actually counting down: AC<0) 2302 e80b blt $230b 8488 blt('EXIT') #1 Escape near time out 2303 c215 st [$15] 8489 st([vTicks]) #2 2304 0116 ld [$16] 8490 ld([vPC]) #3 PREFIX+ARG0 is 2 bytes, vPC has been incremented by 1 2305 9001 adda $01,x 8491 adda(1,X) #4 point to opcode 2306 c002 st $02,[$02] 8492 st(vCpuSelect,[vCpuSelect]) #5 Reset to default vCPU page 2307 0d00 ld [y,x] 8493 ld([Y,X]) #6 Fetch opcode (actually a branch target) 2308 de00 st [y,x++] 8494 st([Y,Xpp]) #7 Just X++ 2309 fe00 bra ac 8495 bra(AC) #8 Dispatch 230a 012b ld [$2b] 8496 ld([sysArgs+7]) #9 Operand 8497 8498 # Resync with video driver and transfer control 230b 800f adda $0f 8499 adda(maxTicks) #3 230c e40c bgt $230c 8500 bgt(pc()&255) #4 Resync 230d a001 suba $01 8501 suba(1) #5 230e 1401 ld $01,y 8502 ld(hi('vBlankStart'),Y) #6 230f e11e jmp y,[$1e] 8503 jmp(Y,[vReturn]) #7 To video driver 2310 0000 ld $00 8504 ld(0) #8 AC should be 0 already. Still.. 8505 assert vCPU_overhead == 9 8506 8507 # pc = 0x2311, Opcode = 0x11 8508 # Instruction LSLN: Logical shift left vAC, (16bit), n times, 22 + 30*n + 20 cycles 8509 label('LSLN') LSLN: 2311 1426 ld $26,y 8510 ld(hi('lsln#13'),Y) #10 2312 e000 jmp y,$00 8511 jmp(Y,'lsln#13') #11 8512 # dummy #12 Overlap 8513 # 8514 # pc = 0x2313, Opcode = 0x13 8515 # Instruction SEXT: Sign extend vAC based on a variable mask, 22 + 24 cycles 8516 label('SEXT') SEXT: 2313 1426 ld $26,y 8517 ld(hi('sext#13'),Y) #10 #12 2314 e013 jmp y,$13 8518 jmp(Y,'sext#13') #11 8519 # dummy #12 Overlap 8520 # 8521 # pc = 0x2315, Opcode = 0x15 8522 # Instruction NOTW: Boolean invert var, 22 + 26 cycles 8523 label('NOTW') NOTW: 2315 1426 ld $26,y 8524 ld(hi('notw#13'),Y) #10 #12 2316 e020 jmp y,$20 8525 jmp(Y,'notw#13') #11 8526 # dummy #12 Overlap 8527 # 8528 # pc = 0x2317, Opcode = 0x17 8529 # Instruction NEGW: Arithmetic negate var, 22 + 28 cycles 8530 label('NEGW') NEGW: 2317 1426 ld $26,y 8531 ld(hi('negw#13'),Y) #10 #12 2318 e02b jmp y,$2b 8532 jmp(Y,'negw#13') #11 8533 # dummy #12 Overlap 8534 # 8535 # pc = 0x2319, Opcode = 0x19 8536 # Instruction ANDBA: vAC &= var.lo, 22 + 22 cycles 8537 label('ANDBA') ANDBA: 2319 1426 ld $26,y 8538 ld(hi('andba#13'),Y) #10 #12 231a e03f jmp y,$3f 8539 jmp(Y,'andba#13') #11 231b 1200 ld ac,x 8540 ld(AC,X) #12 8541 8542 # pc = 0x231c, Opcode = 0x1c 8543 # Instruction ORBA: vAC |= var.lo, 22 + 20 cycles 8544 label('ORBA') ORBA: 231c 1426 ld $26,y 8545 ld(hi('orba#13'),Y) #10 231d e047 jmp y,$47 8546 jmp(Y,'orba#13') #11 231e 1200 ld ac,x 8547 ld(AC,X) #12 8548 8549 # pc = 0x231f, Opcode = 0x1f 8550 # Instruction XORBA: vAC ^= var.lo, 22 + 20 cycles 8551 label('XORBA') XORBA: 231f 1426 ld $26,y 8552 ld(hi('xorba#13'),Y) #10 2320 e04d jmp y,$4d 8553 jmp(Y,'xorba#13') #11 2321 1200 ld ac,x 8554 ld(AC,X) #12 8555 8556 # pc = 0x2322, Opcode = 0x22 8557 # Instruction FREQM: [(((chan & 3) + 1) <<8) | 0x00FC] = vAC, chan var = [0..3], 22 + 26 cycles 8558 label('FREQM') FREQM: 2322 1426 ld $26,y 8559 ld(hi('freqm#13'),Y) #10 2323 e053 jmp y,$53 8560 jmp(Y,'freqm#13') #11 8561 # dummy #12 Overlap 8562 # 8563 # pc = 0x2324, Opcode = 0x24 8564 # Instruction FREQA: [((((chan - 1) & 3) + 1) <<8) | 0x00FC] = vAC, chan var = [1..4], 22 + 26 cycles 8565 label('FREQA') FREQA: 2324 1426 ld $26,y 8566 ld(hi('freqa#13'),Y) #10 #12 2325 e05f jmp y,$5f 8567 jmp(Y,'freqa#13') #11 2326 1200 ld ac,x 8568 ld(AC,X) #12 8569 8570 # pc = 0x2327, Opcode = 0x27 8571 # Instruction FREQI: [(((imm & 3) + 1) <<8) | 0x00FC] = vAC, chan imm = [0..3], 22 + 24 cycles 8572 label('FREQI') FREQI: 2327 1426 ld $26,y 8573 ld(hi('freqi#13'),Y) #10 2328 e06b jmp y,$6b 8574 jmp(Y,'freqi#13') #11 8575 # dummy #12 Overlap 8576 # 8577 # pc = 0x2329, Opcode = 0x29 8578 # Instruction VOLM: [(((chan & 3) + 1) <<8) | 0x00FA] = vAC.low, chan var = [0..3], 22 + 24 cycles 8579 label('VOLM') VOLM: 2329 1426 ld $26,y 8580 ld(hi('volm#13'),Y) #10 #12 232a e075 jmp y,$75 8581 jmp(Y,'volm#13') #11 232b 1200 ld ac,x 8582 ld(AC,X) #12 8583 8584 # pc = 0x232c, Opcode = 0x2c 8585 # Instruction VOLA: [((((chan - 1) & 3) + 1) <<8) | 0x00FA] = 63 - vAC.low + 64, chan var = [1..4], 22 + 26 cycles 8586 label('VOLA') VOLA: 232c 1426 ld $26,y 8587 ld(hi('vola#13'),Y) #10 232d e07e jmp y,$7e 8588 jmp(Y,'vola#13') #11 232e 1200 ld ac,x 8589 ld(AC,X) #12 8590 8591 # pc = 0x232f, Opcode = 0x2f 8592 # Instruction MODA: [((((chan - 1) & 3) + 1) <<8) | 0x00FB] = vAC.low, chan var = [1..4], 22 + 24 cycles 8593 label('MODA') MODA: 232f 1426 ld $26,y 8594 ld(hi('moda#13'),Y) #10 2330 e08a jmp y,$8a 8595 jmp(Y,'moda#13') #11 2331 1200 ld ac,x 8596 ld(AC,X) #12 8597 8598 # pc = 0x2332, Opcode = 0x32 8599 # Instruction MODI: [(((imm & 3) + 1) <<8) | 0x00FA] = (vAC.lo <<8) | 0, chan imm = [0..3], 22 + 24 cycles 8600 label('MODI') MODI: 2332 1426 ld $26,y 8601 ld(hi('modi#13'),Y) #10 2333 e094 jmp y,$94 8602 jmp(Y,'modi#13') #11 8603 # dummy #12 Overlap 8604 # 8605 # pc = 0x2334, Opcode = 0x34 8606 # Instruction SMPCPY: 8607 label('SMPCPY') SMPCPY: 2334 1426 ld $26,y 8608 ld(hi('smpcpy#13'),Y) #10 #12 2335 e0a5 jmp y,$a5 8609 jmp(Y,'smpcpy#13') #11 2336 1200 ld ac,x 8610 ld(AC,X) #12 8611 8612 # pc = 0x2337, Opcode = 0x37 8613 # Instruction CMPHS: Adjust high byte for signed compare (vACH=XXX), 22 + 26 cycles 8614 label('CMPHS') CMPHS: 2337 1426 ld $26,y 8615 ld(hi('cmphs#13'),Y) #10 2338 e0e0 jmp y,$e0 8616 jmp(Y,'cmphs#13') #11 2339 1200 ld ac,x 8617 ld(AC,X) #12 8618 8619 # pc = 0x233a, Opcode = 0x3a 8620 # Instruction CMPHU: Adjust high byte for unsigned compare (vACH=XXX), 22 + 26 cycles 8621 label('CMPHU') CMPHU: 233a 1426 ld $26,y 8622 ld(hi('cmphu#13'),Y) #10 233b e0ed jmp y,$ed 8623 jmp(Y,'cmphu#13') #11 233c 1200 ld ac,x 8624 ld(AC,X) #12 8625 8626 # pc = 0x233d, Opcode = 0x3d 8627 # Instruction LEEKA: 8628 label('LEEKA') LEEKA: 233d 1429 ld $29,y 8629 ld(hi('leeka#13'),Y) #10 233e e000 jmp y,$00 8630 jmp(Y,'leeka#13') #11 8631 # dummy #12 Overlap 8632 # 8633 # pc = 0x233f, Opcode = 0x3f 8634 # Instruction LOKEA: 8635 label('LOKEA') LOKEA: 233f 1429 ld $29,y 8636 ld(hi('lokea#13'),Y) #10 #12 2340 e023 jmp y,$23 8637 jmp(Y,'lokea#13') #11 8638 # dummy #12 Overlap 8639 # 8640 # pc = 0x2341, Opcode = 0x41 8641 # Instruction FEEKA: 8642 label('FEEKA') FEEKA: 2341 1429 ld $29,y 8643 ld(hi('feeka#13'),Y) #10 #12 2342 e045 jmp y,$45 8644 jmp(Y,'feeka#13') #11 8645 # dummy #12 Overlap 8646 # 8647 # pc = 0x2343, Opcode = 0x43 8648 # Instruction FOKEA: 8649 label('FOKEA') FOKEA: 2343 1429 ld $29,y 8650 ld(hi('fokea#13'),Y) #10 #12 2344 e06c jmp y,$6c 8651 jmp(Y,'fokea#13') #11 8652 # dummy #12 Overlap 8653 # 8654 # pc = 0x2345, Opcode = 0x45 8655 # Instruction MEEKA: Peek 8 bytes from [vAC] to [var], 22 + 64 cycles 8656 label('MEEKA') MEEKA: 2345 142a ld $2a,y 8657 ld(hi('meeka#13'),Y) #10 #12 2346 e000 jmp y,$00 8658 jmp(Y,'meeka#13') #11 8659 # dummy #12 Overlap 8660 # 8661 # pc = 0x2347, Opcode = 0x47 8662 # Instruction MOKEA: Poke 8 bytes from [var] to [vAC], 22 + 64 cycles 8663 label('MOKEA') MOKEA: 2347 142a ld $2a,y 8664 ld(hi('mokea#13'),Y) #10 #12 2348 e037 jmp y,$37 8665 jmp(Y,'mokea#13') #11 8666 # dummy #12 Overlap 8667 # 8668 # pc = 0x2349, Opcode = 0x49 8669 # Instruction LSRVL: Logical shift right var long, 22 + 104 cycles 8670 label('LSRVL') LSRVL: 2349 142c ld $2c,y 8671 ld(hi('lsrvl#13'),Y) #10 #12 234a e06a jmp y,$6a 8672 jmp(Y,'lsrvl#13') #11 234b 1200 ld ac,x 8673 ld(AC,X) #12 8674 8675 # pc = 0x234c, Opcode = 0x4c 8676 # Instruction LSLVL: Logical shift left var long, 22 + 56 cycles 8677 label('LSLVL') LSLVL: 234c 142c ld $2c,y 8678 ld(hi('lslvl#13'),Y) #10 234d e0af jmp y,$af 8679 jmp(Y,'lslvl#13') #11 234e 1200 ld ac,x 8680 ld(AC,X) #12 8681 8682 # pc = 0x234f, Opcode = 0x4f 8683 # Instruction INCL: Increment var long, 22 + 36 cycles 8684 label('INCL') INCL: 234f 1434 ld $34,y 8685 ld(hi('incl#13'),Y) #10 2350 e047 jmp y,$47 8686 jmp(Y,'incl#13') #11 2351 1200 ld ac,x 8687 ld(AC,X) #12 8688 8689 # pc = 0x2352, Opcode = 0x52 8690 # Instruction DECL: Decrement var long, 22 + 40 cycles 8691 label('DECL') DECL: 2352 1434 ld $34,y 8692 ld(hi('decl#13'),Y) #10 2353 e06b jmp y,$6b 8693 jmp(Y,'decl#13') #11 8694 # dummy #12 Overlap 8695 # 8696 # pc = 0x2354 Opcode = 0x54 8697 # Instruction STPX: [vAC.xy] = var, scanline table y taken into account, 22 + 28 cycles 8698 label('STPX') STPX: 2354 1429 ld $29,y 8699 ld(hi('stpx#13'),Y) #10 #12 2355 e0e9 jmp y,$e9 8700 jmp(Y,'stpx#13') #11 2356 1200 ld ac,x 8701 ld(AC,X) #12 8702 8703 # pc = 0x2357, Opcode = 0x57 8704 # Instruction PRN4X6: print 4x6 font char to screen from var, 22 + 102 cycles 8705 # sysArgs01 = FG/BG COLOUR, sysArgs2 = 3, (LUP count), var = textFont address, vAC = dest addr 8706 label('PRN4X6') PRN4X6: 2357 1435 ld $35,y 8707 ld(hi('prn4x6#13'),Y) #10 #12 2358 e078 jmp y,$78 8708 jmp(Y,'prn4x6#13') #11 8709 # dummy #12 Overlap 8710 # 8711 # pc = 0x2359, Opcode = 0x59 8712 # Instruction VTBL: var = VTBL(vAC), 22 + 28 cycles 8713 label('VTBL') VTBL: 2359 1436 ld $36,y 8714 ld(hi('vtbl#13'),Y) #10 #12 235a e000 jmp y,$00 8715 jmp(Y,'vtbl#13') #11 235b 0119 ld [$19] 8716 ld([vAC+1]) #12 y 8717 8718 # pc = 0x235c, Opcode = 0x5c 8719 # Instruction OSCZ: [(((imm & 3) + 1) <<8) | 0x00FE] = 0, chan imm = [0..3], 22 + 22 cycles 8720 label('OSCZ') OSCZ: 235c 1426 ld $26,y 8721 ld(hi('oscz#13'),Y) #10 #12 235d e09d jmp y,$9d 8722 jmp(Y,'oscz#13') #11 8723 # dummy #12 Overlap 8724 # 8725 # pc = 0x235e, Opcode = 0x5e 8726 # Instruction LSL8: vAC.hi = var.lo, vAC.lo = 0, 22 + 22 cycles 8727 label('LSL8') LSL8: 235e 1427 ld $27,y 8728 ld(hi('lsl8#13'),Y) #10 #12 235f e0d7 jmp y,$d7 8729 jmp(Y,'lsl8#13') #11 8730 # dummy #12 Overlap 8731 # 8732 # pc = 0x2360, Opcode = 0x60 8733 # Instruction ADDBA: vAC += var.lo, 22 + 28 cycles 8734 label('ADDBA') ADDBA: 2360 1417 ld $17,y 8735 ld(hi('addba#13'),Y) #10 #12 2361 e086 jmp y,$86 8736 jmp(Y,'addba#13') #11 8737 # dummy #12 Overlap 8738 # 8739 # pc = 0x2362, Opcode = 0x62 8740 # Instruction SUBBA: vAC -= var.lo, 22 + 28 cycles 8741 label('SUBBA') SUBBA: 2362 1417 ld $17,y 8742 ld(hi('subba#13'),Y) #10 #12 2363 e09c jmp y,$9c 8743 jmp(Y,'subba#13') #11 8744 # dummy #12 Overlap 8745 # 8746 # pc = 0x2364, Opcode = 0x64 8747 # Instruction NOTB: var.lo = ~var.lo, 22 + 20 cycles 8748 label('NOTB') NOTB: 2364 1416 ld $16,y 8749 ld(hi('notb#13'),Y) #10 #12 2365 e037 jmp y,$37 8750 jmp(Y,'notb#13') #11 2366 1200 ld ac,x 8751 ld(AC,X) #12 address of var 8752 8753 # pc = 0x2367, Opcode = 0x67 8754 # Instruction ABSVW: var = abs(var), 22 + 34 cycles 8755 label('ABSVW') ABSVW: 2367 1431 ld $31,y 8756 ld(hi('absvw#13'),Y) #10 2368 e000 jmp y,$00 8757 jmp(Y,'absvw#13') #11 2369 c21d st [$1d] 8758 st([vTmp]) #12 address of var.lo 8759 8760 # pc = 0x236a, Opcode = 0x6a 8761 # Instruction INCW: Increment word var, 22 + 24-26 cycles 8762 label('INCW') INCW: 236a 1415 ld $15,y 8763 ld(hi('incw#13'),Y) #10 #12 236b e034 jmp y,$34 8764 jmp(Y,'incw#13') #11 8765 # dummy #12 Overlap 8766 # 8767 # pc = 0x236c, Opcode = 0x6c 8768 # Instruction DECW: Decrement word var, 22 + 24-28 cycles 8769 label('DECW') DECW: 236c 1415 ld $15,y 8770 ld(hi('decw#13'),Y) #10 #12 236d e043 jmp y,$43 8771 jmp(Y,'decw#13') #11 8772 # dummy #12 Overlap 8773 # 8774 # pc = 0x236e, Opcode = 0x6e 8775 # Instruction WAITVV: more robust WAITVB, 22 + 24 cycles 8776 label('WAITVV') WAITVV: 236e 1427 ld $27,y 8777 ld(hi('waitvv#13'),Y) #10 #12 236f e0ea jmp y,$ea 8778 jmp(Y,'waitvv#13') #11 2370 1200 ld ac,x 8779 ld(AC,X) #12 8780 8781 # pc = 0x2371, Opcode = 0x71 8782 # Instruction POKEA+: Poke a byte from var to [vAC], incw vAC, 22 + (26 to 30) cycles 8783 label('POKEA+') POKEA+: 2371 1428 ld $28,y 8784 ld(hi('pokea+#13'),Y) #10 2372 e064 jmp y,$64 8785 jmp(Y,'pokea+#13') #11 8786 # dummy #12 Overlap 8787 # 8788 # pc = 0x2373, Opcode = 0x73 8789 # Instruction LSRV: Logical shift right word var, 22 + 56 cycles 8790 label('LSRV') LSRV: 2373 142c ld $2c,y 8791 ld(hi('lsrv#13'),Y) #10 #12 2374 e048 jmp y,$48 8792 jmp(Y,'lsrv#13') #11 8793 # dummy #12 Overlap 8794 # 8795 # pc = 0x2375, Opcode = 0x75 8796 # Instruction DEEKRI: vAC = DEEK[vAC + imm*2], 22 + 42 cycles 8797 label('DEEKRI') DEEKRI: 2375 1438 ld $38,y 8798 ld(hi('deekri#13'),Y) #10 #12 2376 e0ac jmp y,$ac 8799 jmp(Y,'deekri#13') #11 8800 # dummy #12 Overlap 8801 # 8802 # pc = 0x2377, Opcode = 0x77 8803 # Instruction SCRLH: poke 0x0101 with peek(0x0101) + scroll, 22 + 22 cycles 8804 label('SCRLH') SCRLH: 2377 1416 ld $16,y 8805 ld(hi('scrlh#13'),Y) #10 #12 2378 e0e3 jmp y,$e3 8806 jmp(Y,'scrlh#13') #11 2379 1200 ld ac,x 8807 ld(AC,X) #12 8808 8809 # pc = 0x227a, Opcode = 0x7a 8810 # Instruction MULB: vAC.lo = vAC.lo * src.lo, vAC.hi = 0, 22 + 16 + min(vAC.lo, src.lo) cycles 8811 label('MULB') MULB: 237a 1439 ld $39,y 8812 ld(hi('mulb#13'),Y) #10 237b e080 jmp y,$80 8813 jmp(Y,'mulb#13') #11 237c 1200 ld ac,x 8814 ld(AC,X) #12 src.lo address 8815 8816 # SYS calls and instruction implementations rely on these 237d 0200 nop 8817 fillers(until=0xca) 237e 0200 nop 237f 0200 nop * 77 times 23ca 00f2 ld $f2 8818 ld(-28/2) #25 23cb fc01 bra $2301 8819 bra('NEXT') #26 Return from SYS calls 23cc 1517 ld [$17],y 8820 ld([vPC+1],Y) #27 8821 8822 # pc = 0x23cd, Opcode = 0xcd 8823 # Instruction NCOPY (lb3361): copy n bytes from [vAC] to [vDST]. vAC+=n. vDST+=n 8824 label('NCOPY') NCOPY: 23cd 1433 ld $33,y 8825 ld(hi('ncopy#13'),Y) #10 23ce e007 jmp y,$07 8826 jmp(Y,'ncopy#13') #11 23cf 0115 ld [$15] 8827 ld([vTicks]) #12 8828 8829 8830 # pc = 0x23d0, Opcode = 0xd0 8831 # Instruction STLU (lb3361): store zero extended vAC into long var. 22+26 cycles 8832 label('STLU') STLU: 23d0 1433 ld $33,y 8833 ld(hi('stlu#13'),Y) #10 23d1 e073 jmp y,$73 8834 jmp(Y,'stlu#13') #11 23d2 1200 ld ac,x 8835 ld(AC,X) #12 8836 8837 # pc = 0x23d3, Opcode = 0xd3 8838 # Instruction STLS (lb3361): store sign extended vAC into long var. 22+28 cycles 8839 label('STLS') STLS: 23d3 1433 ld $33,y 8840 ld(hi('stls#13'),Y) #10 23d4 e07d jmp y,$7d 8841 jmp(Y,'stls#13') #11 8842 # dummy #12 Overlap 8843 # 8844 # pc = 0x23d5, Opcode = 0xd5 8845 # Instruction NOTL (lb3361): complement long var. 22+30 cycles 8846 label('NOTL') NOTL: 23d5 1434 ld $34,y 8847 ld(hi('notl#13'),Y) #10 #12 23d6 e000 jmp y,$00 8848 jmp(Y,'notl#13') #11 23d7 1200 ld ac,x 8849 ld(AC,X) #12 8850 8851 # pc = 0x23d8, Opcode = 0xd8 8852 # Instruction NEGL (lb3361): negate long var. 22+58(max) cycles 8853 label('NEGL') NEGL: 23d8 1434 ld $34,y 8854 ld(hi('negl#13'),Y) #10 23d9 e093 jmp y,$93 8855 jmp(Y,'negl#13') #11 23da 1200 ld ac,x 8856 ld(AC,X) #12 8857 23db 0200 nop 8858 fillers(until=0xff) 23dc 0200 nop 23dd 0200 nop * 36 times 8859 8860 #----------------------------------------------------------------------- 8861 # PREFX1 instruction page, (0x2400), PREFIX OPCODE 8862 #----------------------------------------------------------------------- 8863 # 8864 label('PREFX1_PAGE') PREFX1_PAGE: 23ff fc03 bra $2403 8865 bra('.next2') #0 Enter at '.next2' (so no startup overhead) 8866 # --- Page boundary --- 8867 align(0x100,size=0x100) 2400 1517 ld [$17],y 8868 ld([vPC+1],Y) #1 8869 8870 # Fetch next instruction and execute it, but only if there are sufficient 8871 # ticks left for the slowest instruction. 2401 8115 adda [$15] 8872 adda([vTicks]) #0 Track elapsed ticks (actually counting down: AC<0) 2402 e80b blt $240b 8873 blt('EXIT') #1 Escape near time out 2403 c215 st [$15] 8874 st([vTicks]) #2 2404 0116 ld [$16] 8875 ld([vPC]) #3 PREFIX is 1 byte, vPC hasn't been incremented 2405 9001 adda $01,x 8876 adda(1,X) #4 2406 c002 st $02,[$02] 8877 st(vCpuSelect,[vCpuSelect]) #5 Reset to default vCPU page 2407 0d00 ld [y,x] 8878 ld([Y,X]) #6 Fetch opcode (actually a branch target) 2408 de00 st [y,x++] 8879 st([Y,Xpp]) #7 Just X++ 2409 fe00 bra ac 8880 bra(AC) #8 Dispatch 240a 0d00 ld [y,x] 8881 ld([Y,X]) #9 Prefetch operand 8882 8883 # Resync with video driver and transfer control 240b 800f adda $0f 8884 adda(maxTicks) #3 240c e40c bgt $240c 8885 bgt(pc()&255) #4 Resync 240d a001 suba $01 8886 suba(1) #5 240e 1401 ld $01,y 8887 ld(hi('vBlankStart'),Y) #6 240f e11e jmp y,[$1e] 8888 jmp(Y,[vReturn]) #7 To video driver 2410 0000 ld $00 8889 ld(0) #8 AC should be 0 already. Still.. 8890 assert vCPU_overhead == 9 8891 8892 # pc = 0x2411, Opcode = 0x11 8893 # Instruction NOTE: vAC = ROM:[NotesTable + vAC.lo*2], 18 + 48 cycles 8894 label('NOTE') NOTE: 2411 1427 ld $27,y 8895 ld(hi('note#13'),Y) #10 2412 e000 jmp y,$00 8896 jmp(Y,'note#13') #11 2413 000b ld $0b 8897 ld('.note#30') #12 low byte of low note return address 8898 8899 # pc = 0x2414, Opcode = 0x14 8900 # Instruction MIDI: vAC = ROM:[NotesTable + (vAC.lo - 11)*2], 18 + 50 cycles 8901 label('MIDI') MIDI: 2414 1427 ld $27,y 8902 ld(hi('midi#13'),Y) #10 2415 e01b jmp y,$1b 8903 jmp(Y,'midi#13') #11 2416 0027 ld $27 8904 ld('.midi#31') #12 low byte of low midi return address 8905 8906 # pc = 0x2417, Opcode = 0x17 8907 # Instruction XLA, (lb3361): Exchange vLR with vAC, 18 + 28 cycles 8908 label('XLA') XLA: 2417 1427 ld $27,y 8909 ld(hi('xla#13'),Y) #10 2418 e037 jmp y,$37 8910 jmp(Y,'xla#13') #11 2419 0118 ld [$18] 8911 ld([vAC]) #12 8912 8913 # pc = 0x241a Opcode = 0x1a 8914 # Instruction ADDLP (lb3361): vLAC += [vAC]. 18 + 66 cycles 8915 label('ADDLP') ADDLP: 241a 1432 ld $32,y 8916 ld(hi('addlp#13'),Y) #10 241b e03f jmp y,$3f 8917 jmp(Y,'addlp#13') #11 241c 0115 ld [$15] 8918 ld([vTicks]) #12 8919 8920 # pc = 0x241d Opcode = 0x1d 8921 # Instruction SUBLP (lb3361): vLAC -= [vAC]. 18 + 60 cycles 8922 label('SUBLP') SUBLP: 241d 1432 ld $32,y 8923 ld(hi('sublp#13'),Y) #10 241e e07f jmp y,$7f 8924 jmp(Y,'sublp#13') #11 241f 0115 ld [$15] 8925 ld([vTicks]) #12 8926 8927 # pc = 0x2420 Opcode = 0x20 8928 # Instruction ANDLP (lb3361): vLAC &= [vAC]. 18 + 42 cycles 8929 # On return vAC>0 (resp =0, <0) iff LAC>0 (resp =0, <0) 8930 label('ANDLP') ANDLP: 2420 1432 ld $32,y 8931 ld(hi('andlp#13'),Y) #10 2421 e0b8 jmp y,$b8 8932 jmp(Y,'andlp#13') #11 2422 0115 ld [$15] 8933 ld([vTicks]) #12 8934 8935 # pc = 0x2423 Opcode = 0x23 8936 # Instruction ORLP (lb3361): vLAC |= [vAC]. 18 + 42 cycles 8937 # On return vAC>0 (resp =0, <0) iff LAC>0 (resp =0, <0) 8938 label('ORLP') ORLP: 2423 1432 ld $32,y 8939 ld(hi('orlp#13'),Y) #10 2424 e0d4 jmp y,$d4 8940 jmp(Y,'orlp#13') #11 2425 0115 ld [$15] 8941 ld([vTicks]) #12 8942 8943 # pc = 0x2426 Opcode = 0x26 8944 # Instruction XORLP (lb3361): vLAC ^= [vAC]. 18 + 42 cycles 8945 # On return vAC>0 (resp =0, <0) iff LAC>0 (resp =0, <0) 8946 label('XORLP') XORLP: 2426 1432 ld $32,y 8947 ld(hi('xorlp#13'),Y) #10 2427 e0e7 jmp y,$e7 8948 jmp(Y,'xorlp#13') #11 2428 0115 ld [$15] 8949 ld([vTicks]) #12 8950 8951 # pc = 0x2429 Opcode = 0x29 8952 # Instruction CMPLPU (lb3361): compare vLAC and [vAC] unsigned. 18 + 72(max) cycles 8953 # On return vAC>0 (resp =0, <0) 8954 label('CMPLPU') CMPLPU: 2429 1433 ld $33,y 8955 ld(hi('cmplpu#13'),Y) #10 242a e0a0 jmp y,$a0 8956 jmp(Y,'cmplpu#13') #11 242b 0115 ld [$15] 8957 ld([vTicks]) #12 8958 8959 # pc = 0x242c Opcode = 0x2c 8960 # Instruction CMPLPS (lb3361): compare vLAC and [vAC] signed. 18 + 72(max) cycles 8961 # On return vAC>0 (resp =0, <0) 8962 label('CMPLPS') CMPLPS: 242c 1433 ld $33,y 8963 ld(hi('cmplps#13'),Y) #10 242d e0e0 jmp y,$e0 8964 jmp(Y,'cmplps#13') #11 242e 0115 ld [$15] 8965 ld([vTicks]) #12 8966 8967 # pc = 0x242f Opcode = 0x2f 8968 # Instruction RANDW: vAC = rand(65535), uses Marcel's algorithm from SYS_Random_34, 18 + 30 cycles 8969 label('RANDW') RANDW: 242f 1427 ld $27,y 8970 ld(hi('randw#13'),Y) #10 2430 e045 jmp y,$45 8971 jmp(Y,'randw#13') #11 8972 # dummy #12 Overlap 8973 # 8974 # pc = 0x2431 Opcode = 0x31 8975 # Instruction LDPX: vAC = [vAC.xy], scanline table y taken into account, 18 + 28 cycles 8976 label('LDPX') LDPX: 2431 1427 ld $27,y 8977 ld(hi('ldpx#13'),Y) #10 #12 2432 e056 jmp y,$56 8978 jmp(Y,'ldpx#13') #11 8979 # dummy #12 Overlap 8980 # 8981 # pc = 0x2433 Opcode = 0x33 8982 # Instruction ABSW: vAC = abs(vAC), 18 + (18 or 28) cycles 8983 label('ABSW') ABSW: 2433 1427 ld $27,y 8984 ld(hi('absw#13'),Y) #10 #12 2434 e064 jmp y,$64 8985 jmp(Y,'absw#13') #11 2435 0119 ld [$19] 8986 ld([vAC+1]) #12 8987 8988 # pc = 0x2436 Opcode = 0x36 8989 # Instruction SGNW: vAC = sgn(vAC), 18 + (20, 22 or 26) cycles 8990 label('SGNW') SGNW: 2436 1427 ld $27,y 8991 ld(hi('sgnw#13'),Y) #10 2437 e07a jmp y,$7a 8992 jmp(Y,'sgnw#13') #11 2438 0119 ld [$19] 8993 ld([vAC+1]) #12 8994 8995 # pc = 0x2439 Opcode = 0x39 8996 # Instruction MULB3: vAC = vAC.lo * 3, 18 + 24 cycles 8997 label('MULB3') MULB3: 2439 1427 ld $27,y 8998 ld(hi('mulb3#13'),Y) #10 243a e08d jmp y,$8d 8999 jmp(Y,'mulb3#13') #11 9000 # dummy #12 Overlap 9001 # 9002 # pc = 0x243b Opcode = 0x3b 9003 # Instruction MULB5: vAC = vAC.lo * 5, 18 + 24 cycles 9004 label('MULB5') MULB5: 243b 1427 ld $27,y 9005 ld(hi('mulb5#13'),Y) #10 #12 243c e096 jmp y,$96 9006 jmp(Y,'mulb5#13') #11 9007 # dummy #12 Overlap 9008 # 9009 # pc = 0x243d Opcode = 0x3d 9010 # Instruction MULB6: vAC = vAC.lo * 6, 18 + 26 cycles 9011 label('MULB6') MULB6: 243d 1427 ld $27,y 9012 ld(hi('mulb6#13'),Y) #10 #12 243e e0a0 jmp y,$a0 9013 jmp(Y,'mulb6#13') #11 9014 # dummy #12 Overlap 9015 # 9016 # pc = 0x243f Opcode = 0x3f 9017 # Instruction MULB7: vAC = vAC.lo * 7, 18 + 26 cycles 9018 label('MULB7') MULB7: 243f 1427 ld $27,y 9019 ld(hi('mulb7#13'),Y) #10 #12 2440 e0ab jmp y,$ab 9020 jmp(Y,'mulb7#13') #11 9021 # dummy #12 Overlap 9022 # 9023 # pc = 0x2441 Opcode = 0x41 9024 # Instruction MULB8: vAC = vAC.lo * 8, 18 + 24 cycles 9025 label('MULB8') MULB8: 2441 1427 ld $27,y 9026 ld(hi('mulb8#13'),Y) #10 #12 2442 e0b6 jmp y,$b6 9027 jmp(Y,'mulb8#13') #11 9028 # dummy #12 Overlap 9029 # 9030 # pc = 0x2443 Opcode = 0x43 9031 # Instruction MULB9: vAC = vAC.lo * 9, 18 + 26 cycles 9032 label('MULB9') MULB9: 2443 1427 ld $27,y 9033 ld(hi('mulb9#13'),Y) #10 #12 2444 e0c0 jmp y,$c0 9034 jmp(Y,'mulb9#13') #11 9035 # dummy #12 Overlap 9036 # 9037 # pc = 0x2445 Opcode = 0x45 9038 # Instruction MULB10: vAC = vAC.lo * 10, 18 + 26 cycles 9039 label('MULB10') MULB10: 2445 1427 ld $27,y 9040 ld(hi('mulb10#13'),Y) #10 #12 2446 e0cb jmp y,$cb 9041 jmp(Y,'mulb10#13') #11 9042 # dummy #12 Overlap 9043 # 9044 # pc = 0x2447 Opcode = 0x47 9045 # Instruction WAITVB: wait for VBlank, 18 + 22 cycles 9046 label('WAITVB') WAITVB: 2447 1427 ld $27,y 9047 ld(hi('waitvb#13'),Y) #10 #12 2448 e0df jmp y,$df 9048 jmp(Y,'waitvb#13') #11 9049 # dummy #12 Overlap 9050 # 9051 # pc = 0x2449 Opcode = 0x49 9052 # Instruction MULW3: vAC = vAC * 3, 18 + 40 cycles 9053 label('MULW3') MULW3: 2449 1436 ld $36,y 9054 ld(hi('mulw3#13'),Y) #10 #12 244a e0a7 jmp y,$a7 9055 jmp(Y,'mulw3#13') #11 9056 # dummy #12 Overlap 9057 # 9058 # pc = 0x244b Opcode = 0x4b 9059 # Instruction MULW5: vAC = vAC * 5, 18 + 48 cycles 9060 label('MULW5') MULW5: 244b 1436 ld $36,y 9061 ld(hi('mulw5#13'),Y) #10 #12 244c e0c8 jmp y,$c8 9062 jmp(Y,'mulw5#13') #11 9063 # dummy #12 Overlap 9064 # 9065 # pc = 0x244d Opcode = 0x4d 9066 # Instruction MULW6: vAC = vAC * 6, 18 + 50 cycles 9067 label('MULW6') MULW6: 244d 1437 ld $37,y 9068 ld(hi('mulw6#13'),Y) #10 #12 244e e091 jmp y,$91 9069 jmp(Y,'mulw6#13') #11 9070 # dummy #12 Overlap 9071 # 9072 # pc = 0x244f Opcode = 0x4f 9073 # Instruction MULW7: vAC = vAC * 7, 18 + 58 cycles 9074 label('MULW7') MULW7: 244f 1437 ld $37,y 9075 ld(hi('mulw7#13'),Y) #10 #12 2450 e0bc jmp y,$bc 9076 jmp(Y,'mulw7#13') #11 9077 # dummy #12 Overlap 9078 # 9079 # pc = 0x2451 Opcode = 0x51 9080 # Instruction MULW8: vAC = vAC * 8, 18 + 44 cycles 9081 label('MULW8') MULW8: 2451 1438 ld $38,y 9082 ld(hi('mulw8#13'),Y) #10 #12 2452 e000 jmp y,$00 9083 jmp(Y,'mulw8#13') #11 9084 # dummy #12 Overlap 9085 # 9086 # pc = 0x2453 Opcode = 0x53 9087 # Instruction MULW9: vAC = vAC * 9, 18 + 56 cycles 9088 label('MULW9') MULW9: 2453 1438 ld $38,y 9089 ld(hi('mulw9#13'),Y) #10 #12 2454 e023 jmp y,$23 9090 jmp(Y,'mulw9#13') #11 9091 # dummy #12 Overlap 9092 # 9093 # pc = 0x2455 Opcode = 0x55 9094 # Instruction MULW10: vAC = vAC * 10, 18 + 58 cycles 9095 label('MULW10') MULW10: 2455 1438 ld $38,y 9096 ld(hi('mulw10#13'),Y) #10 #12 2456 e054 jmp y,$54 9097 jmp(Y,'mulw10#13') #11 9098 # dummy #12 Overlap 9099 9100 9101 # SYS calls and instruction implementations rely on these 2457 0200 nop 9102 fillers(until=0xca) 2458 0200 nop 2459 0200 nop * 115 times 24ca 00f2 ld $f2 9103 ld(-28/2) #25 24cb fc01 bra $2401 9104 bra('NEXT') #26 Return from SYS calls 24cc 1517 ld [$17],y 9105 ld([vPC+1],Y) #27 9106 9107 24cd 0200 nop 9108 fillers(until=0xff) 24ce 0200 nop 24cf 0200 nop * 50 times 24ff 0200 nop 9109 align(0x100, size=0x100) 9110 9111 #----------------------------------------------------------------------- 9112 # PREFX3 implementation page, (0x2500) 9113 #----------------------------------------------------------------------- 9114 # Original idea by lb3361, see https://forum.gigatron.io/viewtopic.php?p=2099#p2099 9115 # 9116 # STB2 implementation 9117 # Original idea by lb3361, see https://forum.gigatron.io/viewtopic.php?p=2135#p2135 9118 label('stb2#13') stb2#13: 2500 152b ld [$2b],y 9119 ld([sysArgs+7],Y) #13 Second operand 2501 0118 ld [$18] 9120 ld([vAC]) #14 2502 ce00 st [y,x] 9121 st([Y,X]) #15 2503 1403 ld $03,y 9122 ld(hi('NEXTY'),Y) #16 2504 e000 jmp y,$00 9123 jmp(Y,'NEXTY') #17 2505 00f6 ld $f6 9124 ld(-20/2) #18 9125 9126 # STW2 implementation 9127 # Original idea by lb3361, see https://forum.gigatron.io/viewtopic.php?p=2135#p2135 9128 label('stw2#13') stw2#13: 2506 152b ld [$2b],y 9129 ld([sysArgs+7],Y) #13 Second operand 2507 0118 ld [$18] 9130 ld([vAC]) #14 2508 de00 st [y,x++] 9131 st([Y,Xpp]) #15 2509 0119 ld [$19] 9132 ld([vAC+1]) #16 250a ce00 st [y,x] 9133 st([Y,X]) #17 250b 1403 ld $03,y 9134 ld(hi('NEXTY'),Y) #18 250c e000 jmp y,$00 9135 jmp(Y,'NEXTY') #19 250d 00f5 ld $f5 9136 ld(-22/2) #20 9137 9138 # XCHGB implementation 9139 label('xchgb#13') xchgb#13: 250e c22a st [$2a] 9140 st([sysArgs+6]) #13 1st var 250f 112b ld [$2b],x 9141 ld([sysArgs+7],X) #14 2nd var 2510 0500 ld [x] 9142 ld([X]) #15 2511 c21d st [$1d] 9143 st([vTmp]) #16 2512 112a ld [$2a],x 9144 ld([sysArgs+6],X) #17 2513 0500 ld [x] 9145 ld([X]) #18 2514 112b ld [$2b],x 9146 ld([sysArgs+7],X) #19 2515 c600 st [x] 9147 st([X]) #20 2516 112a ld [$2a],x 9148 ld([sysArgs+6],X) #21 2517 011d ld [$1d] 9149 ld([vTmp]) #22 2518 c600 st [x] 9150 st([X]) #23 2519 1403 ld $03,y 9151 ld(hi('NEXTY'),Y) #24 251a e000 jmp y,$00 9152 jmp(Y,'NEXTY') #25 251b 00f2 ld $f2 9153 ld(-28/2) #26 9154 9155 # XCHGW implementation 9156 label('xchgw#13') xchgw#13: 251c 00f8 ld $f8 9157 ld(min(0,maxTicks-46/2)) #13 251d 8115 adda [$15] 9158 adda([vTicks]) #14 251e e83b blt .xchgw#17 9159 blt('.xchgw#17') #15 not enough time left, so retry 251f 1400 ld $00,y 9160 ld(0,Y) #16 2520 112b ld [$2b],x 9161 ld([sysArgs+7],X) #17 2521 0500 ld [x] 9162 ld([X]) #18 2522 c21d st [$1d] 9163 st([vTmp]) #19 vTmp = var2.lo 2523 112a ld [$2a],x 9164 ld([sysArgs+6],X) #20 2524 0500 ld [x] 9165 ld([X]) #21 AC = var1.lo 2525 112b ld [$2b],x 9166 ld([sysArgs+7],X) #22 2526 c600 st [x] 9167 st([X]) #23 var2.lo = AC 2527 112a ld [$2a],x 9168 ld([sysArgs+6],X) #24 2528 011d ld [$1d] 9169 ld([vTmp]) #25 2529 c600 st [x] 9170 st([X]) #26 var1.lo = vTmp 252a 012b ld [$2b] 9171 ld([sysArgs+7]) #27 252b 8001 adda $01 9172 adda(1) #28 252c d22b st [$2b],x 9173 st([sysArgs+7],X) #29 inc sysArgs+7 252d 0500 ld [x] 9174 ld([X]) #30 252e c21d st [$1d] 9175 st([vTmp]) #31 vTmp = var2.hi 252f 012a ld [$2a] 9176 ld([sysArgs+6]) #32 2530 9001 adda $01,x 9177 adda(1,X) #33 2531 0500 ld [x] 9178 ld([X]) #34 AC = var1.hi 2532 112b ld [$2b],x 9179 ld([sysArgs+7],X) #35 2533 c600 st [x] 9180 st([X]) #36 var2.hi = AC 2534 012a ld [$2a] 9181 ld([sysArgs+6]) #37 2535 9001 adda $01,x 9182 adda(1,X) #38 2536 011d ld [$1d] 9183 ld([vTmp]) #39 2537 c600 st [x] 9184 st([X]) #40 var1.hi = vTmp 2538 1403 ld $03,y 9185 ld(hi('REENTER'),Y) #41 2539 e0cb jmp y,$cb 9186 jmp(Y,'REENTER') #42 253a 00e9 ld $e9 9187 ld(-46/2) #43 9188 label('.xchgw#17') .xchgw#17: 253b 0021 ld $21 9189 ld(hi('PREFX3_PAGE')) #17 ENTER is at $(n-1)ff, where n = instruction page 253c c202 st [$02] 9190 st([vCpuSelect]) #18 restore PREFX3 instruction page 253d 9401 adda $01,y 9191 adda(1,Y) #19 retry instruction 253e e0cb jmp y,$cb 9192 jmp(Y,'REENTER') #20 253f 00f4 ld $f4 9193 ld(-24/2) #21 9194 9195 # MOVW implementation 9196 label('movw#13') movw#13: 2540 1200 ld ac,x 9197 ld(AC,X) #13 2541 8001 adda $01 9198 adda(1) #14 2542 c21d st [$1d] 9199 st([vTmp]) #15 address of src.hi 2543 0500 ld [x] 9200 ld([X]) #16 src.lo 2544 112b ld [$2b],x 9201 ld([sysArgs+7],X) #17 address of dst.lo 2545 c600 st [x] 9202 st([X]) #18 dst.lo = src.lo 2546 111d ld [$1d],x 9203 ld([vTmp],X) #19 2547 0500 ld [x] 9204 ld([X]) #20 src.hi 2548 c21d st [$1d] 9205 st([vTmp]) #21 2549 012b ld [$2b] 9206 ld([sysArgs+7]) #22 254a 9001 adda $01,x 9207 adda(1,X) #23 address of dst.hi 254b 011d ld [$1d] 9208 ld([vTmp]) #24 254c c600 st [x] 9209 st([X]) #25 dst.hi = src.hi 254d 1403 ld $03,y 9210 ld(hi('NEXTY'),Y) #26 254e e000 jmp y,$00 9211 jmp(Y,'NEXTY') #27 254f 00f1 ld $f1 9212 ld(-30/2) #28 9213 9214 # ADDWI implementation 9215 label('addwi#13') addwi#13: 2550 c21d st [$1d] 9216 st([vTmp]) #13 save imm.lo 2551 8118 adda [$18] 9217 adda([vAC]) #14 2552 c218 st [$18] 9218 st([vAC]) #15 vAC.lo += imm.lo 2553 e85d blt .addwi#18 9219 bmi('.addwi#18') #16 overflow 2554 a11d suba [$1d] 9220 suba([vTmp]) #17 restore vAC.lo 2555 411d ora [$1d] 9221 ora([vTmp]) #18 imm.lo | vAC.lo 2556 e865 blt .addwi#21 9222 bmi('.addwi#21') #19 if carry == 1 2557 012b ld [$2b] 9223 ld([sysArgs+7]) #20 imm.hi 2558 8119 adda [$19] 9224 adda([vAC+1]) #21 carry = 0 2559 c219 st [$19] 9225 st([vAC+1]) #22 vAC.hi += imm.hi 255a 1403 ld $03,y 9226 ld(hi('REENTER'),Y) #23 255b e0cb jmp y,$cb 9227 jmp(Y,'REENTER') #24 255c 00f2 ld $f2 9228 ld(-28/2) #25 9229 label('.addwi#18') .addwi#18: 255d 211d anda [$1d] 9230 anda([vTmp]) #18 imm.lo & vAC.lo 255e e865 blt .addwi#21 9231 bmi('.addwi#21') #19 If carry == 1 255f 012b ld [$2b] 9232 ld([sysArgs+7]) #20 imm.hi 2560 8119 adda [$19] 9233 adda([vAC+1]) #21 carry = 0 2561 c219 st [$19] 9234 st([vAC+1]) #22 vAC.hi += imm.hi 2562 1403 ld $03,y 9235 ld(hi('REENTER'),Y) #23 2563 e0cb jmp y,$cb 9236 jmp(Y,'REENTER') #24 2564 00f2 ld $f2 9237 ld(-28/2) #25 9238 label('.addwi#21') .addwi#21: 2565 8001 adda $01 9239 adda(1) #21 carry = 1 2566 8119 adda [$19] 9240 adda([vAC+1]) #22 2567 c219 st [$19] 9241 st([vAC+1]) #23 vAC.hi = vAC.hi + carry + imm.hi 2568 1403 ld $03,y 9242 ld(hi('NEXTY'),Y) #24 2569 e000 jmp y,$00 9243 jmp(Y,'NEXTY') #25 256a 00f2 ld $f2 9244 ld(-28/2) #26 9245 9246 # SUBWI implementation 9247 label('subwi#13') subwi#13: 256b c21d st [$1d] 9248 st([vTmp]) #13 save imm.lo 256c 0118 ld [$18] 9249 ld([vAC]) #14 256d e879 blt .subwi#17 9250 bmi('.subwi#17') #15 is -ve? 256e a11d suba [$1d] 9251 suba([vTmp]) #16 256f c218 st [$18] 9252 st([vAC]) #17 vAC.lo -= imm.lo 2570 411d ora [$1d] 9253 ora([vTmp]) #18 borrow in bit 7 2571 3080 anda $80,x 9254 anda(0x80,X) #19 move borrow to bit 0 2572 0119 ld [$19] 9255 ld([vAC+1]) #20 2573 a500 suba [x] 9256 suba([X]) #21 2574 a12b suba [$2b] 9257 suba([sysArgs+7]) #22 2575 c219 st [$19] 9258 st([vAC+1]) #23 vAC.hi = vAC.hi - borrow - imm.hi 2576 1403 ld $03,y 9259 ld(hi('NEXTY'),Y) #24 2577 e000 jmp y,$00 9260 jmp(Y,'NEXTY') #25 2578 00f2 ld $f2 9261 ld(-28/2) #26 9262 label('.subwi#17') .subwi#17: 2579 c218 st [$18] 9263 st([vAC]) #17 vAC.lo -= imm.lo 257a 211d anda [$1d] 9264 anda([vTmp]) #18 borrow in bit 7 257b 3080 anda $80,x 9265 anda(0x80,X) #19 move borrow to bit 0 257c 0119 ld [$19] 9266 ld([vAC+1]) #20 257d a500 suba [x] 9267 suba([X]) #21 257e a12b suba [$2b] 9268 suba([sysArgs+7]) #22 257f c219 st [$19] 9269 st([vAC+1]) #23 vAC.hi = vAC.hi - borrow - imm.hi 2580 1403 ld $03,y 9270 ld(hi('NEXTY'),Y) #24 2581 e000 jmp y,$00 9271 jmp(Y,'NEXTY') #25 2582 00f2 ld $f2 9272 ld(-28/2) #26 9273 9274 # SUBIW implementation 9275 label('subiw#13') subiw#13: 2583 e891 blt .subiw#15 9276 bmi('.subiw#15') #13 is -ve? 2584 a118 suba [$18] 9277 suba([vAC]) #14 2585 c21d st [$1d] 9278 st([vTmp]) #15 vAC.lo = imm.lo - vAC.lo 2586 4118 ora [$18] 9279 ora([vAC]) #16 borrow in bit 7 2587 3080 anda $80,x 9280 anda(0x80,X) #17 move borrow to bit 0 2588 011d ld [$1d] 9281 ld([vTmp]) #18 2589 c218 st [$18] 9282 st([vAC]) #19 vAC.lo 258a 012b ld [$2b] 9283 ld([sysArgs+7]) #20 imm.hi 258b a500 suba [x] 9284 suba([X]) #21 258c a119 suba [$19] 9285 suba([vAC+1]) #22 258d c219 st [$19] 9286 st([vAC+1]) #23 vAC.hi = imm.hi - borrow - vAC.hi 258e 1403 ld $03,y 9287 ld(hi('NEXTY'),Y) #24 258f e000 jmp y,$00 9288 jmp(Y,'NEXTY') #25 2590 00f2 ld $f2 9289 ld(-28/2) #26 9290 label('.subiw#15') .subiw#15: 2591 c21d st [$1d] 9291 st([vTmp]) #15 vAC.lo = imm.lo - vAC.lo 2592 2118 anda [$18] 9292 anda([vAC]) #16 borrow in bit 7 2593 3080 anda $80,x 9293 anda(0x80,X) #17 move borrow to bit 0 2594 011d ld [$1d] 9294 ld([vTmp]) #18 2595 c218 st [$18] 9295 st([vAC]) #19 vAC.lo 2596 012b ld [$2b] 9296 ld([sysArgs+7]) #20 imm.hi 2597 a500 suba [x] 9297 suba([X]) #21 2598 a119 suba [$19] 9298 suba([vAC+1]) #22 2599 c219 st [$19] 9299 st([vAC+1]) #23 vAC.hi = imm.hi - borrow - vAC.hi 259a 1403 ld $03,y 9300 ld(hi('NEXTY'),Y) #24 259b e000 jmp y,$00 9301 jmp(Y,'NEXTY') #25 259c 00f2 ld $f2 9302 ld(-28/2) #26 9303 9304 # ANDWI implementation 9305 label('andwi#13') andwi#13: 259d 2118 anda [$18] 9306 anda([vAC]) #13 259e c218 st [$18] 9307 st([vAC]) #14 vAC.lo &= imm.lo 259f 012b ld [$2b] 9308 ld([sysArgs+7]) #15 25a0 2119 anda [$19] 9309 anda([vAC+1]) #16 25a1 c219 st [$19] 9310 st([vAC+1]) #17 vAC.hi &= imm.hi 25a2 1403 ld $03,y 9311 ld(hi('NEXTY'),Y) #18 25a3 e000 jmp y,$00 9312 jmp(Y,'NEXTY') #19 25a4 00f5 ld $f5 9313 ld(-22/2) #20 9314 9315 # ORWI implementation 9316 label('orwi#13') orwi#13: 25a5 4118 ora [$18] 9317 ora([vAC]) #13 25a6 c218 st [$18] 9318 st([vAC]) #14 vAC.lo |= imm.lo 25a7 012b ld [$2b] 9319 ld([sysArgs+7]) #15 25a8 4119 ora [$19] 9320 ora([vAC+1]) #16 25a9 c219 st [$19] 9321 st([vAC+1]) #17 vAC.hi |= imm.hi 25aa 1403 ld $03,y 9322 ld(hi('NEXTY'),Y) #18 25ab e000 jmp y,$00 9323 jmp(Y,'NEXTY') #19 25ac 00f5 ld $f5 9324 ld(-22/2) #20 9325 9326 # XORWI implementation 9327 label('xorwi#13') xorwi#13: 25ad 6118 xora [$18] 9328 xora([vAC]) #13 25ae c218 st [$18] 9329 st([vAC]) #14 vAC.lo ^= imm.lo 25af 012b ld [$2b] 9330 ld([sysArgs+7]) #15 25b0 6119 xora [$19] 9331 xora([vAC+1]) #16 25b1 c219 st [$19] 9332 st([vAC+1]) #17 vAC.hi ^= imm.hi 25b2 1403 ld $03,y 9333 ld(hi('NEXTY'),Y) #18 25b3 e000 jmp y,$00 9334 jmp(Y,'NEXTY') #19 25b4 00f5 ld $f5 9335 ld(-22/2) #20 9336 9337 # CONDII implementation 9338 label('condii#13') condii#13: 25b5 c21d st [$1d] 9339 st([vTmp]) #13 25b6 0118 ld [$18] 9340 ld([vAC]) #14 25b7 4119 ora [$19] 9341 ora([vAC+1]) #15 25b8 ecbb bne $25bb 9342 bne(pc()+3) #16 25b9 fcbc bra $25bc 9343 bra(pc()+3) #17 25ba 012b ld [$2b] 9344 ld([sysArgs+7]) #18 get result cond == 0 25bb 011d ld [$1d] 9345 ld([vTmp]) #18 get result cond != 0 25bc c218 st [$18] 9346 st([vAC]) #19 result.lo 25bd 0000 ld $00 9347 ld(0) #20 25be c219 st [$19] 9348 st([vAC+1]) #21 result.hi = 0 25bf 1403 ld $03,y 9349 ld(hi('NEXTY'),Y) #22 25c0 e000 jmp y,$00 9350 jmp(Y,'NEXTY') #23 25c1 00f3 ld $f3 9351 ld(-26/2) #24 9352 9353 # CONDBB implementation 9354 label('condbb#13') condbb#13: 25c2 0500 ld [x] 9355 ld([X]) #13 25c3 c21d st [$1d] 9356 st([vTmp]) #14 25c4 112b ld [$2b],x 9357 ld([sysArgs+7],X) #15 get result cond=0 25c5 0118 ld [$18] 9358 ld([vAC]) #16 25c6 4119 ora [$19] 9359 ora([vAC+1]) #17 25c7 ecca bne $25ca 9360 bne(pc()+3) #18 25c8 fccb bra $25cb 9361 bra(pc()+3) #19 25c9 0500 ld [x] 9362 ld([X]) #20 get result cond == 0 25ca 011d ld [$1d] 9363 ld([vTmp]) #20 get result cond != 0 25cb c218 st [$18] 9364 st([vAC]) #21 result.lo 25cc 0000 ld $00 9365 ld(0) #22 25cd c219 st [$19] 9366 st([vAC+1]) #23 result.hi = 0 25ce 1403 ld $03,y 9367 ld(hi('NEXTY'),Y) #24 25cf e000 jmp y,$00 9368 jmp(Y,'NEXTY') #25 25d0 00f2 ld $f2 9369 ld(-28/2) #26 9370 9371 # CONDIB implementation 9372 label('condib#13') condib#13: 25d1 112b ld [$2b],x 9373 ld([sysArgs+7],X) #13 get result cond=0 25d2 0118 ld [$18] 9374 ld([vAC]) #14 25d3 4119 ora [$19] 9375 ora([vAC+1]) #15 25d4 ecd7 bne $25d7 9376 bne(pc()+3) #16 25d5 fcd8 bra $25d8 9377 bra(pc()+3) #17 25d6 0500 ld [x] 9378 ld([X]) #18 get result cond == 0 25d7 011d ld [$1d] 9379 ld([vTmp]) #18 get result cond != 0 25d8 c218 st [$18] 9380 st([vAC]) #19 result.lo 25d9 0000 ld $00 9381 ld(0) #20 25da c219 st [$19] 9382 st([vAC+1]) #21 result.hi = 0 25db 1403 ld $03,y 9383 ld(hi('NEXTY'),Y) #22 25dc e000 jmp y,$00 9384 jmp(Y,'NEXTY') #23 25dd 00f3 ld $f3 9385 ld(-26/2) #24 9386 9387 # CONDBI implementation 9388 label('condbi#13') condbi#13: 25de 1200 ld ac,x 9389 ld(AC,X) #13 25df 0118 ld [$18] 9390 ld([vAC]) #14 25e0 4119 ora [$19] 9391 ora([vAC+1]) #15 25e1 ece4 bne $25e4 9392 bne(pc()+3) #16 25e2 fce5 bra $25e5 9393 bra(pc()+3) #17 25e3 012b ld [$2b] 9394 ld([sysArgs+7]) #18 get result cond == 0 25e4 0500 ld [x] 9395 ld([X]) #18 get result cond != 0 25e5 c218 st [$18] 9396 st([vAC]) #19 result.lo 25e6 0000 ld $00 9397 ld(0) #20 25e7 c219 st [$19] 9398 st([vAC+1]) #21 result.hi = 0 25e8 1403 ld $03,y 9399 ld(hi('NEXTY'),Y) #22 25e9 e000 jmp y,$00 9400 jmp(Y,'NEXTY') #23 25ea 00f3 ld $f3 9401 ld(-26/2) #24 9402 9403 25eb 0200 nop 9404 fillers(until=0xff) 25ec 0200 nop 25ed 0200 nop * 20 times 25ff 0200 nop 9405 align(0x100, size=0x100) 9406 9407 #----------------------------------------------------------------------- 9408 # PREFX2 implementation page, (0x2600) 9409 #----------------------------------------------------------------------- 9410 # 9411 # LSLN implementation 9412 label('lsln#13') lsln#13: 2600 a001 suba $01 9413 suba(1) #13 2601 f406 bge .lsln#16 9414 bge('.lsln#16') #14 2602 c22b st [$2b] 9415 st([sysArgs+7]) #15 2603 1403 ld $03,y 9416 ld(hi('NEXTY'),Y) #16 exit PREFX2 instruction page 2604 e000 jmp y,$00 9417 jmp(Y,'NEXTY') #17 2605 00f6 ld $f6 9418 ld(-20/2) #18 9419 label('.lsln#16') .lsln#16: 2606 0118 ld [$18] 9420 ld([vAC]) #16 2607 3080 anda $80,x 9421 anda(128,X) #17 2608 8118 adda [$18] 9422 adda([vAC]) #18 2609 c218 st [$18] 9423 st([vAC]) #19 260a 0500 ld [x] 9424 ld([X]) #20 260b 8119 adda [$19] 9425 adda([vAC+1]) #21 260c 8119 adda [$19] 9426 adda([vAC+1]) #22 260d c219 st [$19] 9427 st([vAC+1]) #23 260e 0022 ld $22 9428 ld(hi('PREFX2_PAGE')) #24 ENTER is at $(n-1)ff, where n = instruction page 260f c202 st [$02] 9429 st([vCpuSelect]) #25 restore PREFX2 instruction page 2610 9401 adda $01,y 9430 adda(1,Y) #26 restart instruction 2611 e000 jmp y,$00 9431 jmp(Y,'NEXTY') #27 2612 00f1 ld $f1 9432 ld(-30/2) #28 9433 9434 # SEXT implementation 9435 label('sext#13') sext#13: 2613 2119 anda [$19] 9436 anda([vAC+1]) #13 2614 ec19 bne .sext#16 9437 bne('.sext#16') #14 check mask 2615 012b ld [$2b] 9438 ld([sysArgs+7]) #15 2616 1403 ld $03,y 9439 ld(hi('NEXTY'),Y) #16 2617 e000 jmp y,$00 9440 jmp(Y,'NEXTY') #17 2618 00f6 ld $f6 9441 ld(-20/2) #18 9442 label('.sext#16') .sext#16: 2619 60ff xora $ff 9443 xora(255) #16 261a 8001 adda $01 9444 adda(1) #17 mask = (~mask) + 1 261b 4119 ora [$19] 9445 ora([vAC+1]) #18 261c c219 st [$19] 9446 st([vAC+1]) #19 set sign bits 261d 1403 ld $03,y 9447 ld(hi('NEXTY'),Y) #20 261e e000 jmp y,$00 9448 jmp(Y,'NEXTY') #21 261f 00f4 ld $f4 9449 ld(-24/2) #22 9450 9451 # NOTW implementation 9452 label('notw#13') notw#13: 2620 112b ld [$2b],x 9453 ld([sysArgs+7],X) #13 PREFX2 saves operand in [sysArgs+7] 2621 1400 ld $00,y 9454 ld(0,Y) #14 2622 0500 ld [x] 9455 ld([X]) #15 2623 60ff xora $ff 9456 xora(255) #16 2624 de00 st [y,x++] 9457 st([Y,Xpp]) #17 2625 0500 ld [x] 9458 ld([X]) #18 2626 60ff xora $ff 9459 xora(255) #19 2627 c600 st [x] 9460 st([X]) #20 2628 1403 ld $03,y 9461 ld(hi('REENTER'),Y) #21 2629 e0cb jmp y,$cb 9462 jmp(Y,'REENTER') #22 262a 00f3 ld $f3 9463 ld(-26/2) #23 9464 9465 # NEGW implementation 9466 label('negw#13') negw#13: 262b 1400 ld $00,y 9467 ld(0,Y) #13 262c 112b ld [$2b],x 9468 ld([sysArgs+7],X) #14 var addr 262d 0500 ld [x] 9469 ld([X]) #15 262e 60ff xora $ff 9470 xora(255) #16 262f 8001 adda $01 9471 adda(1) #17 2630 f038 beq .negw#20 9472 beq('.negw#20') #18 2631 de00 st [y,x++] 9473 st([Y,Xpp]) #19 2632 0500 ld [x] 9474 ld([X]) #20 2633 60ff xora $ff 9475 xora(255) #21 2634 c600 st [x] 9476 st([X]) #22 2635 1403 ld $03,y 9477 ld(hi('REENTER'),Y) #23 2636 e0cb jmp y,$cb 9478 jmp(Y,'REENTER') #24 2637 00f2 ld $f2 9479 ld(-28/2) #25 9480 label('.negw#20') .negw#20: 2638 0500 ld [x] 9481 ld([X]) #20 2639 60ff xora $ff 9482 xora(255) #21 263a 8001 adda $01 9483 adda(1) #22 263b c600 st [x] 9484 st([X]) #23 263c 1403 ld $03,y 9485 ld(hi('NEXTY'),Y) #24 263d e000 jmp y,$00 9486 jmp(Y,'NEXTY') #25 263e 00f2 ld $f2 9487 ld(-28/2) #26 9488 9489 # ANDBA implementation 9490 label('andba#13') andba#13: 263f 0118 ld [$18] 9491 ld([vAC]) #13 2640 2500 anda [x] 9492 anda([X]) #14 2641 c218 st [$18] 9493 st([vAC]) #15 vAC.lo &= var.lo 2642 0000 ld $00 9494 ld(0) #16 2643 c219 st [$19] 9495 st([vAC+1]) #17 Store high result 2644 1403 ld $03,y 9496 ld(hi('NEXTY'),Y) #18 2645 e000 jmp y,$00 9497 jmp(Y,'NEXTY') #19 2646 00f5 ld $f5 9498 ld(-22/2) #20 9499 9500 # ORBA implementation 9501 label('orba#13') orba#13: 2647 0118 ld [$18] 9502 ld([vAC]) #13 2648 4500 ora [x] 9503 ora([X]) #14 2649 c218 st [$18] 9504 st([vAC]) #15 vAC.lo |= var.lo 264a 1403 ld $03,y 9505 ld(hi('NEXTY'),Y) #16 264b e000 jmp y,$00 9506 jmp(Y,'NEXTY') #17 264c 00f6 ld $f6 9507 ld(-20/2) #18 9508 9509 # XORBA implementation 9510 label('xorba#13') xorba#13: 264d 0118 ld [$18] 9511 ld([vAC]) #13 264e 6500 xora [x] 9512 xora([X]) #14 264f c218 st [$18] 9513 st([vAC]) #15 vAC.lo ^= var.lo 2650 1403 ld $03,y 9514 ld(hi('NEXTY'),Y) #16 2651 e000 jmp y,$00 9515 jmp(Y,'NEXTY') #17 2652 00f6 ld $f6 9516 ld(-20/2) #18 9517 9518 # FREQM implementation, (frequency control for static data in the correct format, i.e. MIDI) 9519 label('freqm#13') freqm#13: 2653 112b ld [$2b],x 9520 ld([sysArgs+7],X) #13 chan var, (operand from PREFX2) 2654 0500 ld [x] 9521 ld([X]) #14 2655 2003 anda $03 9522 anda(3) #15 2656 9401 adda $01,y 9523 adda(1,Y) #16 2657 10fc ld $fc,x 9524 ld(0xFC,X) #17 2658 0118 ld [$18] 9525 ld([vAC]) #18 2659 de00 st [y,x++] 9526 st([Y,Xpp]) #19 265a 0119 ld [$19] 9527 ld([vAC+1]) #20 265b ce00 st [y,x] 9528 st([Y,X]) #21 265c 1403 ld $03,y 9529 ld(hi('NEXTY'),Y) #22 265d e000 jmp y,$00 9530 jmp(Y,'NEXTY') #23 265e 00f3 ld $f3 9531 ld(-26/2) #24 9532 9533 # FREQA implementation 9534 label('freqa#13') freqa#13: 265f 0500 ld [x] 9535 ld([X]) #13 2660 a001 suba $01 9536 suba(1) #14 2661 2003 anda $03 9537 anda(3) #15 2662 9401 adda $01,y 9538 adda(1,Y) #16 2663 10fc ld $fc,x 9539 ld(0xFC,X) #17 2664 0118 ld [$18] 9540 ld([vAC]) #18 2665 de00 st [y,x++] 9541 st([Y,Xpp]) #19 2666 0119 ld [$19] 9542 ld([vAC+1]) #20 2667 ce00 st [y,x] 9543 st([Y,X]) #21 2668 1403 ld $03,y 9544 ld(hi('NEXTY'),Y) #22 2669 e000 jmp y,$00 9545 jmp(Y,'NEXTY') #23 266a 00f3 ld $f3 9546 ld(-26/2) #24 9547 9548 # FREQI implementation 9549 label('freqi#13') freqi#13: 266b 2003 anda $03 9550 anda(3) #13 channel 266c 9401 adda $01,y 9551 adda(1,Y) #14 266d 10fc ld $fc,x 9552 ld(0xFC,X) #15 266e 0118 ld [$18] 9553 ld([vAC]) #16 266f de00 st [y,x++] 9554 st([Y,Xpp]) #17 2670 0119 ld [$19] 9555 ld([vAC+1]) #18 2671 ce00 st [y,x] 9556 st([Y,X]) #19 2672 1403 ld $03,y 9557 ld(hi('NEXTY'),Y) #20 2673 e000 jmp y,$00 9558 jmp(Y,'NEXTY') #21 2674 00f4 ld $f4 9559 ld(-24/2) #22 9560 9561 # VOLM implementation, (volume control for static data in the correct format, i.e. MIDI) 9562 label('volm#13') volm#13: 2675 0500 ld [x] 9563 ld([X]) #13 chan var, (operand from PREFX2) 2676 2003 anda $03 9564 anda(3) #14 2677 9401 adda $01,y 9565 adda(1,Y) #15 2678 10fa ld $fa,x 9566 ld(0xFA,X) #16 2679 0118 ld [$18] 9567 ld([vAC]) #17 267a ce00 st [y,x] 9568 st([Y,X]) #18 267b 1403 ld $03,y 9569 ld(hi('REENTER'),Y) #19 267c e0cb jmp y,$cb 9570 jmp(Y,'REENTER') #20 267d 00f4 ld $f4 9571 ld(-24/2) #21 9572 9573 # VOLA implementation 9574 label('vola#13') vola#13: 267e 0500 ld [x] 9575 ld([X]) #13 267f a001 suba $01 9576 suba(1) #14 2680 2003 anda $03 9577 anda(3) #15 2681 9401 adda $01,y 9578 adda(1,Y) #16 2682 10fa ld $fa,x 9579 ld(0xFA,X) #17 2683 003f ld $3f 9580 ld(63) #18 2684 a118 suba [$18] 9581 suba([vAC]) #19 2685 8040 adda $40 9582 adda(64) #20 2686 ce00 st [y,x] 9583 st([Y,X]) #21 2687 1403 ld $03,y 9584 ld(hi('NEXTY'),Y) #22 2688 e000 jmp y,$00 9585 jmp(Y,'NEXTY') #23 2689 00f3 ld $f3 9586 ld(-26/2) #24 9587 9588 # MODA implementation 9589 label('moda#13') moda#13: 268a 0500 ld [x] 9590 ld([X]) #13 268b a001 suba $01 9591 suba(1) #14 268c 2003 anda $03 9592 anda(3) #15 268d 9401 adda $01,y 9593 adda(1,Y) #16 268e 10fb ld $fb,x 9594 ld(0xFB,X) #17 268f 0118 ld [$18] 9595 ld([vAC]) #18 2690 ce00 st [y,x] 9596 st([Y,X]) #19 2691 1403 ld $03,y 9597 ld(hi('NEXTY'),Y) #20 2692 e000 jmp y,$00 9598 jmp(Y,'NEXTY') #21 2693 00f4 ld $f4 9599 ld(-24/2) #22 9600 9601 # MODI implementation 9602 label('modi#13') modi#13: 2694 2003 anda $03 9603 anda(3) #13 2695 9401 adda $01,y 9604 adda(1,Y) #14 2696 10fa ld $fa,x 9605 ld(0xFA,X) #15 2697 dc00 st $00,[y,x++] 9606 st(0,[Y,Xpp]) #16 2698 0118 ld [$18] 9607 ld([vAC]) #17 2699 ce00 st [y,x] 9608 st([Y,X]) #18 269a 1403 ld $03,y 9609 ld(hi('REENTER'),Y) #19 269b e0cb jmp y,$cb 9610 jmp(Y,'REENTER') #20 269c 00f4 ld $f4 9611 ld(-24/2) #21 9612 9613 # OSCZ implementation 9614 label('oscz#13') oscz#13: 269d 2003 anda $03 9615 anda(3) #13 channel 269e 9401 adda $01,y 9616 adda(1,Y) #14 269f 10fe ld $fe,x 9617 ld(0xFE,X) #15 26a0 dc00 st $00,[y,x++] 9618 st(0,[Y,Xpp]) #16 26a1 cc00 st $00,[y,x] 9619 st(0,[Y,X]) #17 26a2 1403 ld $03,y 9620 ld(hi('NEXTY'),Y) #18 26a3 e000 jmp y,$00 9621 jmp(Y,'NEXTY') #19 26a4 00f5 ld $f5 9622 ld(-22/2) #20 9623 9624 9625 # SMPCPY implementation 9626 label('smpcpy#13') smpcpy#13: 26a5 1400 ld $00,y 9627 ld(0,Y) #13 26a6 00f1 ld $f1 9628 ld(min(0,maxTicks-60/2)) #14 26a7 8115 adda [$15] 9629 adda([vTicks]) #15 26a8 e8db blt .smpcpy#18 9630 blt('.smpcpy#18') #16 not enough time left, so retry 26a9 0500 ld [x] 9631 ld([X]) #17 dst address = [dst var] 26aa de00 st [y,x++] 9632 st([Y,Xpp]) #18 26ab c2b0 st [$b0] 9633 st([0xB0]) #19 26ac 0500 ld [x] 9634 ld([X]) #20 26ad c2b1 st [$b1] 9635 st([0xB1]) #21 26ae 1118 ld [$18],x 9636 ld([vAC],X) #22 low byte of src address 26af 1519 ld [$19],y 9637 ld([vAC+1],Y) #23 high byte of arc address 26b0 0d00 ld [y,x] 9638 ld([Y,X]) #24 26b1 c21d st [$1d] 9639 st([vTmp]) #25 packed sample, 4:4 26b2 1407 ld $07,y 9640 ld(soundTable>>8,Y) #26 26b3 20f0 anda $f0 9641 anda(0xF0) #27 high nibble 26b4 5003 ora $03,x 9642 ora(0x03,X) #28 26b5 0d00 ld [y,x] 9643 ld([Y,X]) #29 high nibble >>2 26b6 11b0 ld [$b0],x 9644 ld([0xB0],X) #30 low byte dst address 26b7 15b1 ld [$b1],y 9645 ld([0xB1],Y) #31 high byte dst address 26b8 ce00 st [y,x] 9646 st([Y,X]) #32 [0x0702 + i] = 6bit sample 26b9 01b0 ld [$b0] 9647 ld([0xB0]) #33 26ba 9004 adda $04,x 9648 adda(4,X) #34 26bb 8008 adda $08 9649 adda(8) #35 26bc c2b0 st [$b0] 9650 st([0xB0]) #36 26bd 011d ld [$1d] 9651 ld([vTmp]) #37 packed sample, 4:4 26be 200f anda $0f 9652 anda(0x0F) #38 low nibble 26bf 8200 adda ac 9653 adda(AC) #39 26c0 8200 adda ac 9654 adda(AC) #40 low nibble <<2 26c1 ce00 st [y,x] 9655 st([Y,X]) #41 [0x0706 + i] = 6bit sample 26c2 112b ld [$2b],x 9656 ld([sysArgs+7],X) #42 26c3 01b0 ld [$b0] 9657 ld([0xB0]) #43 26c4 c600 st [x] 9658 st([X]) #44 26c5 a002 suba $02 9659 suba(0x02) #45 26c6 f0d8 beq .smpcpy#48 9660 beq('.smpcpy#48') #46 check for end sample 26c7 0118 ld [$18] 9661 ld([vAC]) #47 26c8 8001 adda $01 9662 adda(1) #48 26c9 ecd3 bne .smpcpy#51 9663 bne('.smpcpy#51') #49 26ca c218 st [$18] 9664 st([vAC]) #50 26cb 0119 ld [$19] 9665 ld([vAC+1]) #51 26cc 8001 adda $01 9666 adda(1) #52 26cd c219 st [$19] 9667 st([vAC+1]) #53 26ce 0022 ld $22 9668 ld(hi('PREFX2_PAGE')) #54 ENTER is at $(n-1)ff, where n = instruction page 26cf c202 st [$02] 9669 st([vCpuSelect]) #55 restore PREFX2 instruction page 26d0 9401 adda $01,y 9670 adda(1,Y) #56 restart instruction 26d1 e000 jmp y,$00 9671 jmp(Y,'NEXTY') #57 26d2 00e2 ld $e2 9672 ld(-60/2) #58 9673 9674 label('.smpcpy#51') .smpcpy#51: 26d3 0022 ld $22 9675 ld(hi('PREFX2_PAGE')) #51 ENTER is at $(n-1)ff, where n = instruction page 26d4 c202 st [$02] 9676 st([vCpuSelect]) #52 restore PREFX2 instruction page 26d5 9401 adda $01,y 9677 adda(1,Y) #53 restart instruction 26d6 e0cb jmp y,$cb 9678 jmp(Y,'REENTER') #54 26d7 00e3 ld $e3 9679 ld(-58/2) #55 9680 9681 label('.smpcpy#48') .smpcpy#48: 26d8 1403 ld $03,y 9682 ld(hi('NEXTY'),Y) #48 26d9 e000 jmp y,$00 9683 jmp(Y,'NEXTY') #49 26da 00e6 ld $e6 9684 ld(-52/2) #50 9685 9686 label('.smpcpy#18') .smpcpy#18: 26db 0022 ld $22 9687 ld(hi('PREFX2_PAGE')) #18 ENTER is at $(n-1)ff, where n = instruction page 26dc c202 st [$02] 9688 st([vCpuSelect]) #19 restore PREFX2 instruction page 26dd 9401 adda $01,y 9689 adda(1,Y) #20 retry instruction 26de e000 jmp y,$00 9690 jmp(Y,'NEXTY') #21 26df 00f4 ld $f4 9691 ld(-24/2) #22 9692 9693 9694 # ------------------------------------------------------------- 9695 # vCPU instructions for comparisons between two 16-bit operands 9696 # ------------------------------------------------------------- 9697 # 9698 # vCPU's conditional branching (BCC) always compares vAC against 0, 9699 # treating vAC as a two's complement 16-bit number. When we need to 9700 # compare two arbitrary numnbers we normally first take their difference 9701 # with SUBW. However, when this difference is too large, the subtraction 9702 # overflows and we get the wrong outcome. To get it right over the 9703 # entire range, an elaborate sequence is needed. TinyBASIC uses this 9704 # blurp for its relational operators. (It compares stack variable $02 9705 # with zero page variable $3a.) 9706 # 9707 # 0461 ee 02 LDLW $02 9708 # 0463 fc 3a XORW $3a 9709 # 0465 35 53 6a BGE $046c 9710 # 0468 ee 02 LDLW $02 9711 # 046a 90 6e BRA $0470 9712 # 046c ee 02 LDLW $02 9713 # 046e b8 3a SUBW $3a 9714 # 0470 35 56 73 BLE $0475 9715 # 9716 # The CMPHS and CMPHU instructions were introduced to simplify this. 9717 # They inspect both operands to see if there is an overflow risk. If 9718 # so, they modify vAC such that their difference gets smaller, while 9719 # preserving the relation between the two operands. After that, the 9720 # SUBW instruction can't overflow and we achieve a correct comparison. 9721 # Use CMPHS for signed comparisons and CMPHU for unsigned. With these, 9722 # the sequence above becomes: 9723 # 9724 # 0461 ee 02 LDLW $02 9725 # 0463 1f 3b CMPHS $3b Note: high byte of operand 9726 # 0465 b8 3a SUBW $3a 9727 # 0467 35 56 73 BLE $0475 9728 # 9729 # CMPHS/CMPHU don't make much sense other than in combination with 9730 # SUBW. These modify vACH, if needed, as given in the following table: 9731 # 9732 # vACH varH | vACH 9733 # bit7 bit7 | CMPHS CMPHU 9734 # --------------------------- 9735 # 0 0 | vACH vACH no change needed 9736 # 0 1 | varH+1 varH-1 narrowing the range 9737 # 1 0 | varH-1 varH+1 narrowing the range 9738 # 1 1 | vACH vACH no change needed 9739 # --------------------------- 9740 9741 # CMPHS implementation 9742 label('cmphs#13') cmphs#13: 26e0 0500 ld [x] 9743 ld([X]) #13 26e1 6119 xora [$19] 9744 xora([vAC+1]) #14 26e2 f4f4 bge .cmphu#17 9745 bpl('.cmphu#17') #15 Skip if same sign 26e3 0119 ld [$19] 9746 ld([vAC+1]) #16 26e4 e8e7 blt $26e7 9747 bmi(pc()+3) #17 26e5 fce8 bra .cmphs#20 9748 bra(pc()+3) #18 9749 9750 label('.cmphs#19') .cmphs#19: 26e6 0001 ld $01 9751 ld(+1) #19 vAC < variable 26e7 00ff ld $ff 9752 ld(-1) #19(!) vAC > variable 9753 9754 label('.cmphs#20') .cmphs#20: 26e8 8500 adda [x] 9755 adda([X]) #20 26e9 c219 st [$19] 9756 st([vAC+1]) #21 26ea 1403 ld $03,y 9757 ld(hi('NEXTY'),Y) #22 26eb e000 jmp y,$00 9758 jmp(Y,'NEXTY') #23 26ec 00f3 ld $f3 9759 ld(-26/2) #24 9760 9761 # CMPHU implementation 9762 label('cmphu#13') cmphu#13: 26ed 0500 ld [x] 9763 ld([X]) #13 26ee 6119 xora [$19] 9764 xora([vAC+1]) #14 26ef f4f4 bge .cmphu#17 9765 bpl('.cmphu#17') #15 Skip if same sign 26f0 0119 ld [$19] 9766 ld([vAC+1]) #16 26f1 e8e6 blt .cmphs#19 9767 bmi('.cmphs#19') #17 26f2 fce8 bra .cmphs#20 9768 bra('.cmphs#20') #18 26f3 00ff ld $ff 9769 ld(-1) #19 vAC > variable 9770 9771 # No-operation for CMPHS/CMPHU when high bits are equal 9772 label('.cmphu#17') .cmphu#17: 26f4 1403 ld $03,y 9773 ld(hi('REENTER'),Y) #17 26f5 e0cb jmp y,$cb 9774 jmp(Y,'REENTER') #18 26f6 00f5 ld $f5 9775 ld(-22/2) #19 9776 9777 26f7 0200 nop 9778 fillers(until=0xff) 26f8 0200 nop 26f9 0200 nop * 8 times 26ff 0200 nop 9779 align(0x100, size=0x100) 9780 9781 #----------------------------------------------------------------------- 9782 # PREFX1 implementation page, (0x2700) 9783 #----------------------------------------------------------------------- 9784 # 9785 # NOTE implementation: vAC = ROM:[NotesTable + vAC.lo*2], 22 + 46 cycles 9786 label('note#13') note#13: 2700 c21d st [$1d] 9787 st([vTmp]) #13 low byte of low note return address 2701 00f7 ld $f7 9788 ld(min(0,maxTicks-48/2)) #14 2702 8115 adda [$15] 9789 adda([vTicks]) #15 2703 e816 blt .note#18 9790 blt('.note#18') #16 not enough time left, so retry 2704 0027 ld $27 9791 ld(hi('note#13')) #17 2705 c2c1 st [$c1] 9792 st([0xC1]) #18 2706 1409 ld $09,y 9793 ld(hi('noteTrampoline'),Y) #19 2707 0118 ld [$18] 9794 ld([vAC]) #20 vAC.lo = note index 2708 8200 adda ac 9795 adda(AC) #21 vAC.lo*2, (low note byte) 2709 e0c0 jmp y,$c0 9796 jmp(Y,'noteTrampoline') #22 270a c219 st [$19] 9797 st([vAC+1]) #23 vAC.hi = vAC.lo*2 9798 label('.note#30') .note#30: 270b c218 st [$18] 9799 st([vAC]) #30 vAC.lo = note.lo 270c 0012 ld $12 9800 ld('.note#43') #31 270d c21d st [$1d] 9801 st([vTmp]) #32 low byte of high note return address 270e 1409 ld $09,y 9802 ld(hi('noteTrampoline'),Y) #33 270f 0119 ld [$19] 9803 ld([vAC+1]) #34 2710 e0c0 jmp y,$c0 9804 jmp(Y,'noteTrampoline') #35 2711 8001 adda $01 9805 adda(1) #36 vAC.lo*2 + 1, (high note byte) 9806 label('.note#43') .note#43: 2712 c219 st [$19] 9807 st([vAC+1]) #43 2713 1403 ld $03,y 9808 ld(hi('NEXTY'),Y) #44 2714 e000 jmp y,$00 9809 jmp(Y,'NEXTY') #45 2715 00e8 ld $e8 9810 ld(-48/2) #46 9811 label('.note#18') .note#18: 2716 0023 ld $23 9812 ld(hi('PREFX1_PAGE')) #18 ENTER is at $(n-1)ff, where n = instruction page 2717 c202 st [$02] 9813 st([vCpuSelect]) #19 restore PREFX1 instruction page 2718 9401 adda $01,y 9814 adda(1,Y) #20 retry instruction 2719 e000 jmp y,$00 9815 jmp(Y,'NEXTY') #21 271a 00f4 ld $f4 9816 ld(-24/2) #22 9817 9818 # MIDI implementation: vAC = ROM:[NotesTable + (vAC.lo - 11)*2], 22 + 48 cycles 9819 label('midi#13') midi#13: 271b c21d st [$1d] 9820 st([vTmp]) #13 low byte of low midi return address 271c 00f6 ld $f6 9821 ld(min(0,maxTicks-50/2)) #14 271d 8115 adda [$15] 9822 adda([vTicks]) #15 271e e832 blt .midi#18 9823 blt('.midi#18') #16 not enough time left, so retry 271f 0027 ld $27 9824 ld(hi('midi#13')) #17 2720 c2c1 st [$c1] 9825 st([0xC1]) #18 2721 1409 ld $09,y 9826 ld(hi('noteTrampoline'),Y) #19 2722 0118 ld [$18] 9827 ld([vAC]) #20 vAC.lo = midi index 2723 a00b suba $0b 9828 suba(11) #21 vAC.lo -= 11 2724 8200 adda ac 9829 adda(AC) #22 vAC.lo*2, (low midi byte) 2725 e0c0 jmp y,$c0 9830 jmp(Y,'noteTrampoline') #23 2726 c219 st [$19] 9831 st([vAC+1]) #24 vAC.hi = vAC.lo*2 9832 label('.midi#31') .midi#31: 2727 c218 st [$18] 9833 st([vAC]) #31 vAC.lo = midi.lo 2728 002e ld $2e 9834 ld('.midi#44') #32 2729 c21d st [$1d] 9835 st([vTmp]) #33 low byte of high midi return address 272a 1409 ld $09,y 9836 ld(hi('noteTrampoline'),Y) #34 272b 0119 ld [$19] 9837 ld([vAC+1]) #35 272c e0c0 jmp y,$c0 9838 jmp(Y,'noteTrampoline') #36 272d 8001 adda $01 9839 adda(1) #37 vAC.lo*2 + 1, (high midi byte) 9840 label('.midi#44') .midi#44: 272e c219 st [$19] 9841 st([vAC+1]) #44 272f 1403 ld $03,y 9842 ld(hi('REENTER'),Y) #45 2730 e0cb jmp y,$cb 9843 jmp(Y,'REENTER') #46 2731 00e7 ld $e7 9844 ld(-50/2) #47 9845 label('.midi#18') .midi#18: 2732 0023 ld $23 9846 ld(hi('PREFX1_PAGE')) #18 ENTER is at $(n-1)ff, where n = instruction page 2733 c202 st [$02] 9847 st([vCpuSelect]) #19 restore PREFX1 instruction page 2734 9401 adda $01,y 9848 adda(1,Y) #20 retry instruction 2735 e000 jmp y,$00 9849 jmp(Y,'NEXTY') #21 2736 00f4 ld $f4 9850 ld(-24/2) #22 9851 9852 # XLA implementation, (lb3361) 9853 label('xla#13') xla#13: 2737 c21d st [$1d] 9854 st([vTmp]) #13 2738 011a ld [$1a] 9855 ld([vLR]) #14 2739 c218 st [$18] 9856 st([vAC]) #15 273a 011d ld [$1d] 9857 ld([vTmp]) #16 273b c21a st [$1a] 9858 st([vLR]) #17 273c 0119 ld [$19] 9859 ld([vAC+1]) #18 273d c21d st [$1d] 9860 st([vTmp]) #19 273e 011b ld [$1b] 9861 ld([vLR+1]) #20 273f c219 st [$19] 9862 st([vAC+1]) #21 2740 011d ld [$1d] 9863 ld([vTmp]) #22 2741 c21b st [$1b] 9864 st([vLR+1]) #23 2742 1403 ld $03,y 9865 ld(hi('NEXTY'),Y) #24 2743 e000 jmp y,$00 9866 jmp(Y,'NEXTY') #25 2744 00f2 ld $f2 9867 ld(-28/2) #26 9868 9869 # RANDW implementation: uses Marcel's algorithm from SYS_Random_34 9870 label('randw#13') randw#13: 2745 010e ld [$0e] 9871 ld([frameCount]) #13 2746 6107 xora [$07] 9872 xora([entropy+1]) #14 2747 610f xora [$0f] 9873 xora([serialRaw]) #15 2748 8106 adda [$06] 9874 adda([entropy+0]) #16 2749 c206 st [$06] 9875 st([entropy+0]) #17 274a c218 st [$18] 9876 st([vAC+0]) #18 274b 8116 adda [$16] 9877 adda([vPC]) #19 274c e84f blt $274f 9878 bmi(pc()+3) #20 274d fc50 bra $2750 9879 bra(pc()+3) #21 274e 6053 xora $53 9880 xora(64+16+2+1) #22 274f 606c xora $6c 9881 xora(64+32+8+4) #22(!) 2750 8107 adda [$07] 9882 adda([entropy+1]) #23 2751 c207 st [$07] 9883 st([entropy+1]) #24 2752 c219 st [$19] 9884 st([vAC+1]) #25 2753 1403 ld $03,y 9885 ld(hi('NEXTY'),Y) #26 2754 e000 jmp y,$00 9886 jmp(Y,'NEXTY') #27 2755 00f1 ld $f1 9887 ld(-30/2) #28 9888 9889 # LDPX implementation 9890 label('ldpx#13') ldpx#13: 2756 0119 ld [$19] 9891 ld([vAC+1]) #13 y 2757 8119 adda [$19] 9892 adda([vAC+1]) #14 y*2 2758 1200 ld ac,x 9893 ld(AC,X) #15 2759 1401 ld $01,y 9894 ld(1,Y) #16 Y,X = 0x0100 + 2*y, (0 >= y <= 127) 275a 0d00 ld [y,x] 9895 ld([Y,X]) #17 275b 1600 ld ac,y 9896 ld(AC,Y) #18 Y = [Y,X] 275c 1118 ld [$18],x 9897 ld([vAC],X) #19 275d 0d00 ld [y,x] 9898 ld([Y,X]) #20 colour = [Y,X] 275e c218 st [$18] 9899 st([vAC]) #21 275f 0000 ld $00 9900 ld(0) #22 2760 c219 st [$19] 9901 st([vAC+1]) #23 2761 1403 ld $03,y 9902 ld(hi('NEXTY'),Y) #24 2762 e000 jmp y,$00 9903 jmp(Y,'NEXTY') #25 2763 00f2 ld $f2 9904 ld(-28/2) #26 9905 9906 9907 # ABSW implementation 9908 label('absw#13') absw#13: 2764 e868 blt .absw#15 9909 bmi('.absw#15') #13 2765 1403 ld $03,y 9910 ld(hi('NEXTY'),Y) #14 2766 e000 jmp y,$00 9911 jmp(Y,'NEXTY') #15 2767 00f7 ld $f7 9912 ld(-18/2) #16 9913 9914 label('.absw#15') .absw#15: 2768 0118 ld [$18] 9915 ld([vAC]) #15 2769 60ff xora $ff 9916 xora(0xFF) #16 276a 8001 adda $01 9917 adda(1) #17 276b f073 beq .absw#20 9918 beq('.absw#20') #18 276c c218 st [$18] 9919 st([vAC]) #19 276d 0119 ld [$19] 9920 ld([vAC+1]) #20 276e 60ff xora $ff 9921 xora(255) #21 276f c219 st [$19] 9922 st([vAC+1]) #22 2770 1403 ld $03,y 9923 ld(hi('REENTER'),Y) #23 2771 e0cb jmp y,$cb 9924 jmp(Y,'REENTER') #24 2772 00f2 ld $f2 9925 ld(-28/2) #25 9926 9927 label('.absw#20') .absw#20: 2773 0119 ld [$19] 9928 ld([vAC+1]) #20 2774 60ff xora $ff 9929 xora(255) #21 2775 8001 adda $01 9930 adda(1) #22 2776 c219 st [$19] 9931 st([vAC+1]) #23 2777 1403 ld $03,y 9932 ld(hi('NEXTY'),Y) #24 2778 e000 jmp y,$00 9933 jmp(Y,'NEXTY') #25 2779 00f2 ld $f2 9934 ld(-28/2) #26 9935 9936 9937 # SGNW implementation 9938 label('sgnw#13') sgnw#13: 277a e880 blt .sgnw#15 9939 bmi('.sgnw#15') #13 277b 4118 ora [$18] 9940 ora([vAC]) #14 277c ec86 bne .sgnw#17 9941 bne('.sgnw#17') #15 277d 1403 ld $03,y 9942 ld(hi('NEXTY'),Y) #16 sgn(vAC) = 0 277e e000 jmp y,$00 9943 jmp(Y,'NEXTY') #17 277f 00f6 ld $f6 9944 ld(-20/2) #18 9945 9946 label('.sgnw#15') .sgnw#15: 2780 00ff ld $ff 9947 ld(0xFF) #15 2781 c218 st [$18] 9948 st([vAC]) #16 2782 c219 st [$19] 9949 st([vAC+1]) #17 2783 1403 ld $03,y 9950 ld(hi('NEXTY'),Y) #18 sgn(vAC) = -1 2784 e000 jmp y,$00 9951 jmp(Y,'NEXTY') #19 2785 00f5 ld $f5 9952 ld(-22/2) #20 9953 9954 label('.sgnw#17') .sgnw#17: 2786 0001 ld $01 9955 ld(1) #17 2787 c218 st [$18] 9956 st([vAC]) #18 2788 0000 ld $00 9957 ld(0) #19 2789 c219 st [$19] 9958 st([vAC+1]) #20 278a 1403 ld $03,y 9959 ld(hi('REENTER'),Y) #21 sgn(vAC) = 1 278b e0cb jmp y,$cb 9960 jmp(Y,'REENTER') #22 278c 00f3 ld $f3 9961 ld(-26/2) #23 9962 9963 9964 # MULB3 implementation 9965 label('mulb3#13') mulb3#13: 278d 0118 ld [$18] 9966 ld([vAC]) #13 278e 8200 adda ac 9967 adda(AC) #14 278f 8118 adda [$18] 9968 adda([vAC]) #15 2790 c218 st [$18] 9969 st([vAC]) #16 2791 0000 ld $00 9970 ld(0) #17 2792 c219 st [$19] 9971 st([vAC+1]) #18 2793 1403 ld $03,y 9972 ld(hi('REENTER'),Y) #19 2794 e0cb jmp y,$cb 9973 jmp(Y,'REENTER') #20 2795 00f4 ld $f4 9974 ld(-24/2) #21 9975 9976 # MULB5 implementation 9977 label('mulb5#13') mulb5#13: 2796 0118 ld [$18] 9978 ld([vAC]) #13 2797 8200 adda ac 9979 adda(AC) #14 2798 8200 adda ac 9980 adda(AC) #15 2799 8118 adda [$18] 9981 adda([vAC]) #16 279a c218 st [$18] 9982 st([vAC]) #17 279b 0000 ld $00 9983 ld(0) #18 279c c219 st [$19] 9984 st([vAC+1]) #19 279d 1403 ld $03,y 9985 ld(hi('NEXTY'),Y) #20 279e e000 jmp y,$00 9986 jmp(Y,'NEXTY') #21 279f 00f4 ld $f4 9987 ld(-24/2) #22 9988 9989 # MULB6 implementation 9990 label('mulb6#13') mulb6#13: 27a0 0118 ld [$18] 9991 ld([vAC]) #13 27a1 8200 adda ac 9992 adda(AC) #14 27a2 8200 adda ac 9993 adda(AC) #15 27a3 8118 adda [$18] 9994 adda([vAC]) #16 27a4 8118 adda [$18] 9995 adda([vAC]) #17 27a5 c218 st [$18] 9996 st([vAC]) #18 27a6 0000 ld $00 9997 ld(0) #19 27a7 c219 st [$19] 9998 st([vAC+1]) #20 27a8 1403 ld $03,y 9999 ld(hi('REENTER'),Y) #21 27a9 e0cb jmp y,$cb 10000 jmp(Y,'REENTER') #22 27aa 00f3 ld $f3 10001 ld(-26/2) #23 10002 10003 # MULB7 implementation, (overflows at the same rate as MULB8) 10004 label('mulb7#13') mulb7#13: 27ab 0118 ld [$18] 10005 ld([vAC]) #13 27ac 8200 adda ac 10006 adda(AC) #14 27ad 8200 adda ac 10007 adda(AC) #15 27ae 8200 adda ac 10008 adda(AC) #16 27af a118 suba [$18] 10009 suba([vAC]) #17 27b0 c218 st [$18] 10010 st([vAC]) #18 27b1 0000 ld $00 10011 ld(0) #19 27b2 c219 st [$19] 10012 st([vAC+1]) #20 27b3 1403 ld $03,y 10013 ld(hi('REENTER'),Y) #21 27b4 e0cb jmp y,$cb 10014 jmp(Y,'REENTER') #22 27b5 00f3 ld $f3 10015 ld(-26/2) #23 10016 10017 # MULB8 implementation 10018 label('mulb8#13') mulb8#13: 27b6 0118 ld [$18] 10019 ld([vAC]) #13 27b7 8200 adda ac 10020 adda(AC) #14 27b8 8200 adda ac 10021 adda(AC) #15 27b9 8200 adda ac 10022 adda(AC) #16 27ba c218 st [$18] 10023 st([vAC]) #17 27bb 0000 ld $00 10024 ld(0) #18 27bc c219 st [$19] 10025 st([vAC+1]) #19 27bd 1403 ld $03,y 10026 ld(hi('NEXTY'),Y) #20 27be e000 jmp y,$00 10027 jmp(Y,'NEXTY') #21 27bf 00f4 ld $f4 10028 ld(-24/2) #22 10029 10030 # MULB9 implementation 10031 label('mulb9#13') mulb9#13: 27c0 0118 ld [$18] 10032 ld([vAC]) #13 27c1 8200 adda ac 10033 adda(AC) #14 27c2 8200 adda ac 10034 adda(AC) #15 27c3 8200 adda ac 10035 adda(AC) #16 27c4 8118 adda [$18] 10036 adda([vAC]) #17 27c5 c218 st [$18] 10037 st([vAC]) #18 27c6 0000 ld $00 10038 ld(0) #19 27c7 c219 st [$19] 10039 st([vAC+1]) #20 27c8 1403 ld $03,y 10040 ld(hi('REENTER'),Y) #21 27c9 e0cb jmp y,$cb 10041 jmp(Y,'REENTER') #22 27ca 00f3 ld $f3 10042 ld(-26/2) #23 10043 10044 # MULB10 implementation 10045 label('mulb10#13') mulb10#13: 27cb 0118 ld [$18] 10046 ld([vAC]) #13 27cc 8200 adda ac 10047 adda(AC) #14 27cd 8200 adda ac 10048 adda(AC) #15 27ce 8200 adda ac 10049 adda(AC) #16 27cf 8118 adda [$18] 10050 adda([vAC]) #17 27d0 8118 adda [$18] 10051 adda([vAC]) #18 27d1 c218 st [$18] 10052 st([vAC]) #19 27d2 0000 ld $00 10053 ld(0) #20 27d3 c219 st [$19] 10054 st([vAC+1]) #21 27d4 1403 ld $03,y 10055 ld(hi('NEXTY'),Y) #22 27d5 e000 jmp y,$00 10056 jmp(Y,'NEXTY') #23 27d6 00f3 ld $f3 10057 ld(-26/2) #24 10058 10059 # LSL8 implementation 10060 label('lsl8#13') lsl8#13: 27d7 1200 ld ac,x 10061 ld(AC,X) #13 27d8 0500 ld [x] 10062 ld([X]) #14 27d9 c219 st [$19] 10063 st([vAC+1]) #15 27da 0000 ld $00 10064 ld(0) #16 27db c218 st [$18] 10065 st([vAC]) #17 27dc 1403 ld $03,y 10066 ld(hi('NEXTY'),Y) #18 27dd e000 jmp y,$00 10067 jmp(Y,'NEXTY') #19 27de 00f5 ld $f5 10068 ld(-22/2) #20 10069 10070 # WAITVB implementation 10071 label('waitvb#13') waitvb#13: 27df 0109 ld [$09] 10072 ld([videoY]) #13 27e0 60b3 xora $b3 10073 xora(videoYline0) #14 27e1 f0e7 beq .waitvb#17 10074 beq('.waitvb#17') #15 27e2 0023 ld $23 10075 ld(hi('PREFX1_PAGE')) #16 ENTER is at $(n-1)ff, where n = instruction page 27e3 c202 st [$02] 10076 st([vCpuSelect]) #17 restore PREFX1 instruction page 27e4 9401 adda $01,y 10077 adda(1,Y) #18 retry instruction 27e5 e000 jmp y,$00 10078 jmp(Y,'NEXTY') #19 27e6 00f5 ld $f5 10079 ld(-22/2) #20 10080 label('.waitvb#17') .waitvb#17: 27e7 1403 ld $03,y 10081 ld(hi('REENTER'),Y) #17 27e8 e0cb jmp y,$cb 10082 jmp(Y,'REENTER') #18 27e9 00f5 ld $f5 10083 ld(-22/2) #19 10084 10085 # WAITVV implementation 10086 label('waitvv#13') waitvv#13: 27ea 012d ld [$2d] 10087 ld([jiffiesTick]) #13 27eb 6500 xora [x] 10088 xora([X]) #14 27ec ecf2 bne .waitvv#17 10089 bne('.waitvv#17') #15 27ed 0022 ld $22 10090 ld(hi('PREFX2_PAGE')) #16 ENTER is at $(n-1)ff, where n = instruction page 27ee c202 st [$02] 10091 st([vCpuSelect]) #17 restore PREFX2 instruction page 27ef 9401 adda $01,y 10092 adda(1,Y) #18 retry instruction 27f0 e000 jmp y,$00 10093 jmp(Y,'NEXTY') #19 27f1 00f5 ld $f5 10094 ld(-22/2) #20 10095 label('.waitvv#17') .waitvv#17: 27f2 012d ld [$2d] 10096 ld([jiffiesTick]) #17 27f3 c600 st [x] 10097 st([X]) #18 27f4 1403 ld $03,y 10098 ld(hi('REENTER'),Y) #19 27f5 e0cb jmp y,$cb 10099 jmp(Y,'REENTER') #20 27f6 00f4 ld $f4 10100 ld(-24/2) #21 10101 10102 27f7 0200 nop 10103 fillers(until=0xff) 27f8 0200 nop 27f9 0200 nop * 8 times 27ff 0200 nop 10104 align(0x100, size=0x100) 10105 10106 #----------------------------------------------------------------------- 10107 # More vCPU instruction implementations, (0x2800) 10108 #----------------------------------------------------------------------- 10109 # 10110 # ADDVI implementation 10111 label('addvi#13') addvi#13: 2800 1517 ld [$17],y 10112 ld([vPC+1],Y) #13 vPC.hi 2801 de00 st [y,x++] 10113 st([Y,Xpp]) #14 X++ 2802 c22a st [$2a] 10114 st([sysArgs+6]) #15 immediate 8bit 2803 00f4 ld $f4 10115 ld(min(0,maxTicks-54/2)) #16 2804 8115 adda [$15] 10116 adda([vTicks]) #17 2805 e829 blt .addvi#20 10117 blt('.addvi#20') #18 not enough time left, so retry 2806 0d00 ld [y,x] 10118 ld([Y,X]) #19 2807 de00 st [y,x++] 10119 st([Y,Xpp]) #20 X++ 2808 c22b st [$2b] 10120 st([sysArgs+7]) #21 dst var addr 2809 0d00 ld [y,x] 10121 ld([Y,X]) #22 280a 1200 ld ac,x 10122 ld(AC,X) #23 src addr 280b 1400 ld $00,y 10123 ld(0,Y) #24 280c 0500 ld [x] 10124 ld([X]) #25 280d c218 st [$18] 10125 st([vAC]) #26 vAC.lo = src.lo 280e de00 st [y,x++] 10126 st([Y,Xpp]) #27 280f 0500 ld [x] 10127 ld([X]) #28 2810 c219 st [$19] 10128 st([vAC+1]) #29 vAC.hi = src.hi 2811 0118 ld [$18] 10129 ld([vAC]) #30 2812 812a adda [$2a] 10130 adda([sysArgs+6]) #31 2813 c218 st [$18] 10131 st([vAC]) #32 vAC.lo = src0.lo + src1.lo 2814 e818 blt .addvi#35 10132 bmi('.addvi#35') #33 calculate carry 2815 a12a suba [$2a] 10133 suba([sysArgs+6]) #34 2816 fc1a bra .addvi#37 10134 bra('.addvi#37') #35 2817 412a ora [$2a] 10135 ora([sysArgs+6]) #36 carry in bit 7 10136 10137 label('.addvi#35') .addvi#35: 2818 212a anda [$2a] 10138 anda([sysArgs+6]) #35 carry in bit 7 2819 0200 nop 10139 nop() #36 10140 10141 label('.addvi#37') .addvi#37: 281a 3080 anda $80,x 10142 anda(0x80,X) #37 281b 0500 ld [x] 10143 ld([X]) #38 carry in bit 0 281c 8119 adda [$19] 10144 adda([vAC+1]) #39 281d c219 st [$19] 10145 st([vAC+1]) #40 281e 112b ld [$2b],x 10146 ld([sysArgs+7],X) #41 281f 0118 ld [$18] 10147 ld([vAC]) #42 2820 de00 st [y,x++] 10148 st([Y,Xpp]) #43 2821 0119 ld [$19] 10149 ld([vAC+1]) #44 2822 ce00 st [y,x] 10150 st([Y,X]) #45 2823 0116 ld [$16] 10151 ld([vPC]) #46 2824 8002 adda $02 10152 adda(2) #47 2825 c216 st [$16] 10153 st([vPC]) #48 2826 1403 ld $03,y 10154 ld(hi('REENTER'),Y) #49 2827 e0cb jmp y,$cb 10155 jmp(Y,'REENTER') #50 2828 00e5 ld $e5 10156 ld(-54/2) #51 10157 10158 label('.addvi#20') .addvi#20: 2829 0116 ld [$16] 10159 ld([vPC]) #20 retry instruction 282a a002 suba $02 10160 suba(2) #21 282b c216 st [$16] 10161 st([vPC]) #22 282c 1403 ld $03,y 10162 ld(hi('REENTER'),Y) #23 282d e0cb jmp y,$cb 10163 jmp(Y,'REENTER') #24 282e 00f2 ld $f2 10164 ld(-28/2) #25 10165 10166 10167 # SUBVI implementation 10168 label('subvi#13') subvi#13: 282f 1517 ld [$17],y 10169 ld([vPC+1],Y) #13 vPC.hi 2830 de00 st [y,x++] 10170 st([Y,Xpp]) #14 X++ 2831 c22a st [$2a] 10171 st([sysArgs+6]) #15 immediate 8bit 2832 00f5 ld $f5 10172 ld(min(0,maxTicks-52/2)) #16 2833 8115 adda [$15] 10173 adda([vTicks]) #17 2834 e858 blt .subvi#20 10174 blt('.subvi#20') #18 not enough time left, so retry 2835 0d00 ld [y,x] 10175 ld([Y,X]) #19 2836 de00 st [y,x++] 10176 st([Y,Xpp]) #20 X++ 2837 c22b st [$2b] 10177 st([sysArgs+7]) #21 dst var addr 2838 0d00 ld [y,x] 10178 ld([Y,X]) #22 2839 1200 ld ac,x 10179 ld(AC,X) #23 src addr 283a 1400 ld $00,y 10180 ld(0,Y) #24 283b 0500 ld [x] 10181 ld([X]) #25 283c c218 st [$18] 10182 st([vAC]) #26 vAC.lo = src.lo 283d de00 st [y,x++] 10183 st([Y,Xpp]) #27 283e 0500 ld [x] 10184 ld([X]) #28 283f c219 st [$19] 10185 st([vAC+1]) #29 vAC.hi = src.hi 2840 0118 ld [$18] 10186 ld([vAC]) #30 2841 e846 blt .subvi#33 10187 bmi('.subvi#33') #31 2842 a12a suba [$2a] 10188 suba([sysArgs+6]) #32 2843 c218 st [$18] 10189 st([vAC]) #33 store low result 2844 fc49 bra .subvi#36 10190 bra('.subvi#36') #34 2845 412a ora [$2a] 10191 ora([sysArgs+6]) #35 borrow in bit 7 10192 10193 label('.subvi#33') .subvi#33: 2846 c218 st [$18] 10194 st([vAC]) #33 store low result 2847 212a anda [$2a] 10195 anda([sysArgs+6]) #34 borrow in bit 7 2848 0200 nop 10196 nop() #35 10197 10198 label('.subvi#36') .subvi#36: 2849 3080 anda $80,x 10199 anda(0x80,X) #36 move borrow to bit 0 284a 0119 ld [$19] 10200 ld([vAC+1]) #37 284b a500 suba [x] 10201 suba([X]) #38 284c c219 st [$19] 10202 st([vAC+1]) #39 store high result 284d 112b ld [$2b],x 10203 ld([sysArgs+7],X) #40 284e 0118 ld [$18] 10204 ld([vAC]) #41 284f de00 st [y,x++] 10205 st([Y,Xpp]) #42 2850 0119 ld [$19] 10206 ld([vAC+1]) #43 2851 c600 st [x] 10207 st([X]) #44 2852 0116 ld [$16] 10208 ld([vPC]) #45 2853 8002 adda $02 10209 adda(2) #46 2854 c216 st [$16] 10210 st([vPC]) #47 2855 1403 ld $03,y 10211 ld(hi('NEXTY'),Y) #48 2856 e000 jmp y,$00 10212 jmp(Y,'NEXTY') #49 2857 00e6 ld $e6 10213 ld(-52/2) #50 10214 10215 label('.subvi#20') .subvi#20: 2858 0116 ld [$16] 10216 ld([vPC]) #20 retry instruction 2859 a002 suba $02 10217 suba(2) #21 285a c216 st [$16] 10218 st([vPC]) #22 285b 1403 ld $03,y 10219 ld(hi('REENTER'),Y) #23 285c e0cb jmp y,$cb 10220 jmp(Y,'REENTER') #24 285d 00f2 ld $f2 10221 ld(-28/2) #25 10222 10223 10224 # JMPI implementation, (lb3361) 10225 label('jmpi#13') jmpi#13: 285e c216 st [$16] 10226 st([vPC]) #13 285f 012b ld [$2b] 10227 ld([sysArgs+7]) #14 2860 c217 st [$17] 10228 st([vPC+1]) #15 2861 1403 ld $03,y 10229 ld(hi('NEXTY'),Y) #16 2862 e000 jmp y,$00 10230 jmp(Y,'NEXTY') #17 2863 00f6 ld $f6 10231 ld(-20/2) #18 10232 10233 10234 # POKEA+ implementation 10235 label('pokea+#13') pokea+#13: 2864 1200 ld ac,x 10236 ld(AC,X) #13 2865 0500 ld [x] 10237 ld([X]) #14 var.lo 2866 1118 ld [$18],x 10238 ld([vAC],X) #15 2867 1519 ld [$19],y 10239 ld([vAC+1],Y) #16 2868 ce00 st [y,x] 10240 st([Y,X]) #17 poke [vAC], var.lo 2869 0118 ld [$18] 10241 ld([vAC]) #18 286a 8001 adda $01 10242 adda(1) #19 286b f070 beq .pokea+#22 10243 beq('.pokea+#22') #20 if low byte is 0x00 286c c218 st [$18] 10244 st([vAC]) #21 286d 1403 ld $03,y 10245 ld(hi('NEXTY'),Y) #22 286e e000 jmp y,$00 10246 jmp(Y,'NEXTY') #23 286f 00f3 ld $f3 10247 ld(-26/2) #24 10248 10249 label('.pokea+#22') .pokea+#22: 2870 0119 ld [$19] 10250 ld([vAC+1]) #22 2871 8001 adda $01 10251 adda(1) #23 2872 c219 st [$19] 10252 st([vAC+1]) #24 2873 1403 ld $03,y 10253 ld(hi('REENTER'),Y) #25 2874 e0cb jmp y,$cb 10254 jmp(Y,'REENTER') #26 2875 00f1 ld $f1 10255 ld(-30/2) #27 10256 10257 10258 # ARRW implementation 10259 label('arrw#13') arrw#13: 2876 1517 ld [$17],y 10260 ld([vPC+1],Y) #13 vPC.hi 2877 de00 st [y,x++] 10261 st([Y,Xpp]) #14 X++ 2878 c22a st [$2a] 10262 st([sysArgs+6]) #15 imm.lo 2879 00f7 ld $f7 10263 ld(min(0,maxTicks-48/2)) #16 287a 8115 adda [$15] 10264 adda([vTicks]) #17 287b e89a blt .arrw#20 10265 blt('.arrw#20') #18 not enough time left, so retry 287c 0d00 ld [y,x] 10266 ld([Y,X]) #19 287d c22b st [$2b] 10267 st([sysArgs+7]) #20 imm.hi 287e 0118 ld [$18] 10268 ld([vAC]) #21 idx.lo 287f 3080 anda $80,x 10269 anda(0x80,X) #22 2880 8118 adda [$18] 10270 adda([vAC]) #23 2881 c218 st [$18] 10271 st([vAC]) #24 idx.lo*2 2882 0500 ld [x] 10272 ld([X]) #25 msb idx.lo 2883 8119 adda [$19] 10273 adda([vAC+1]) #26 2884 8119 adda [$19] 10274 adda([vAC+1]) #27 2885 c219 st [$19] 10275 st([vAC+1]) #28 idx.hi*2 2886 0118 ld [$18] 10276 ld([vAC]) #29 2887 812a adda [$2a] 10277 adda([sysArgs+6]) #30 2888 c218 st [$18] 10278 st([vAC]) #31 vAC = imm.lo + idx.lo 2889 e88d blt .arrw#34 10279 bmi('.arrw#34') #32 check carry 288a a12a suba [$2a] 10280 suba([sysArgs+6]) #33 restore idx.lo 288b fc8f bra .arrw#36 10281 bra('.arrw#36') #34 288c 412a ora [$2a] 10282 ora([sysArgs+6]) #35 carry in bit 7 10283 10284 label('.arrw#34') .arrw#34: 288d 212a anda [$2a] 10285 anda([sysArgs+6]) #34 carry in bit 7 288e 0200 nop 10286 nop() #35 10287 10288 label('.arrw#36') .arrw#36: 288f 3080 anda $80,x 10289 anda(0x80,X) #36 2890 0500 ld [x] 10290 ld([X]) #37 carry in bit 0 2891 8119 adda [$19] 10291 adda([vAC+1]) #38 2892 812b adda [$2b] 10292 adda([sysArgs+7]) #39 2893 c219 st [$19] 10293 st([vAC+1]) #40 vAC.hi = imm.hi + idx.hi + carry 2894 0116 ld [$16] 10294 ld([vPC]) #41 2895 8001 adda $01 10295 adda(1) #42 2896 c216 st [$16] 10296 st([vPC]) #43 2897 1403 ld $03,y 10297 ld(hi('NEXTY'),Y) #44 2898 e000 jmp y,$00 10298 jmp(Y,'NEXTY') #45 2899 00e8 ld $e8 10299 ld(-48/2) #46 10300 10301 label('.arrw#20') .arrw#20: 289a 0116 ld [$16] 10302 ld([vPC]) #20 retry instruction 289b a002 suba $02 10303 suba(2) #21 289c c216 st [$16] 10304 st([vPC]) #22 289d 1403 ld $03,y 10305 ld(hi('REENTER'),Y) #23 289e e0cb jmp y,$cb 10306 jmp(Y,'REENTER') #24 289f 00f2 ld $f2 10307 ld(-28/2) #25 10308 10309 10310 # ARRVW implementation 10311 label('arrvw#13') arrvw#13: 28a0 1517 ld [$17],y 10312 ld([vPC+1],Y) #13 vPC.hi 28a1 de00 st [y,x++] 10313 st([Y,Xpp]) #14 X++ 28a2 c21d st [$1d] 10314 st([vTmp]) #15 var 28a3 00f2 ld $f2 10315 ld(min(0,maxTicks-58/2)) #16 28a4 8115 adda [$15] 10316 adda([vTicks]) #17 28a5 e8ce blt .arrvw#20 10317 blt('.arrvw#20') #18 not enough time left, so retry 28a6 0d00 ld [y,x] 10318 ld([Y,X]) #19 28a7 de00 st [y,x++] 10319 st([Y,Xpp]) #20 X++ 28a8 c218 st [$18] 10320 st([vAC]) #21 imm.lo 28a9 0d00 ld [y,x] 10321 ld([Y,X]) #22 28aa c219 st [$19] 10322 st([vAC+1]) #23 imm.hi 28ab 1400 ld $00,y 10323 ld(0,Y) #24 28ac 111d ld [$1d],x 10324 ld([vTmp],X) #25 28ad 0500 ld [x] 10325 ld([X]) #26 28ae de00 st [y,x++] 10326 st([Y,Xpp]) #27 X++ 28af c22a st [$2a] 10327 st([sysArgs+6]) #28 idx.lo 28b0 0500 ld [x] 10328 ld([X]) #29 28b1 c22b st [$2b] 10329 st([sysArgs+7]) #30 idx.hi 28b2 012a ld [$2a] 10330 ld([sysArgs+6]) #31 28b3 3080 anda $80,x 10331 anda(0x80,X) #32 28b4 812a adda [$2a] 10332 adda([sysArgs+6]) #33 28b5 c22a st [$2a] 10333 st([sysArgs+6]) #34 idx.lo*2 28b6 0500 ld [x] 10334 ld([X]) #35 msb idx.lo 28b7 812b adda [$2b] 10335 adda([sysArgs+7]) #36 28b8 812b adda [$2b] 10336 adda([sysArgs+7]) #37 28b9 c22b st [$2b] 10337 st([sysArgs+7]) #38 idx.hi*2 28ba 0118 ld [$18] 10338 ld([vAC]) #39 28bb 812a adda [$2a] 10339 adda([sysArgs+6]) #40 28bc c218 st [$18] 10340 st([vAC]) #41 vAC = vAC.lo + idx.lo 28bd e8c1 blt .arrvw#44 10341 bmi('.arrvw#44') #42 check carry 28be a12a suba [$2a] 10342 suba([sysArgs+6]) #43 restore vAC.lo 28bf fcc3 bra .arrvw#46 10343 bra('.arrvw#46') #44 28c0 412a ora [$2a] 10344 ora([sysArgs+6]) #45 carry in bit 7 10345 10346 label('.arrvw#44') .arrvw#44: 28c1 212a anda [$2a] 10347 anda([sysArgs+6]) #44 carry in bit 7 28c2 0200 nop 10348 nop() #45 10349 10350 label('.arrvw#46') .arrvw#46: 28c3 3080 anda $80,x 10351 anda(0x80,X) #46 28c4 0500 ld [x] 10352 ld([X]) #47 carry in bit 0 28c5 8119 adda [$19] 10353 adda([vAC+1]) #48 28c6 812b adda [$2b] 10354 adda([sysArgs+7]) #49 28c7 c219 st [$19] 10355 st([vAC+1]) #50 vAC.hi = vAC.hi + idx.hi + carry 28c8 0116 ld [$16] 10356 ld([vPC]) #51 28c9 8002 adda $02 10357 adda(2) #52 28ca c216 st [$16] 10358 st([vPC]) #53 28cb 1403 ld $03,y 10359 ld(hi('NEXTY'),Y) #54 28cc e000 jmp y,$00 10360 jmp(Y,'NEXTY') #55 28cd 00e3 ld $e3 10361 ld(-58/2) #56 10362 10363 label('.arrvw#20') .arrvw#20: 28ce 0116 ld [$16] 10364 ld([vPC]) #20 retry instruction 28cf a002 suba $02 10365 suba(2) #21 28d0 c216 st [$16] 10366 st([vPC]) #22 28d1 1403 ld $03,y 10367 ld(hi('REENTER'),Y) #23 28d2 e0cb jmp y,$cb 10368 jmp(Y,'REENTER') #24 28d3 00f2 ld $f2 10369 ld(-28/2) #25 10370 10371 10372 # OSCPX implementation 10373 label('oscpx#13') oscpx#13: 28d4 d22a st [$2a],x 10374 st([sysArgs+6],X) #13 sample address var 28d5 00fa ld $fa 10375 ld(min(0,maxTicks-42/2)) #14 28d6 8115 adda [$15] 10376 adda([vTicks]) #15 28d7 e8f0 blt .oscpx#18 10377 blt('.oscpx#18') #16 not enough time left, so retry 28d8 0500 ld [x] 10378 ld([X]) #17 sample address low byte 28d9 112b ld [$2b],x 10379 ld([sysArgs+7],X) #18 index var 28da 8500 adda [x] 10380 adda([X]) #19 sample address low byte + index 28db c21d st [$1d] 10381 st([vTmp]) #20 28dc 012a ld [$2a] 10382 ld([sysArgs+6]) #21 28dd 9001 adda $01,x 10383 adda(1,X) #22 28de 0500 ld [x] 10384 ld([X]) #23 28df 1600 ld ac,y 10385 ld(AC,Y) #24 sample address high byte 28e0 111d ld [$1d],x 10386 ld([vTmp],X) #25 28e1 0d00 ld [y,x] 10387 ld([Y,X]) #26 28e2 20fc anda $fc 10388 anda(0xfc) #27 6bit sample in upper 8bits 28e3 1407 ld $07,y 10389 ld(soundTable>>8,Y) #28 28e4 5003 ora $03,x 10390 ora(0x03,X) #29 28e5 0d00 ld [y,x] 10391 ld([Y,X]) #30 6bit sample, (>>2) 28e6 9519 adda [$19],y 10392 adda([vAC+1],Y) #31 dest pixel address high byte 28e7 0118 ld [$18] 10393 ld([vAC]) #32 dest pixel address low byte 28e8 112b ld [$2b],x 10394 ld([sysArgs+7],X) #33 index 28e9 8500 adda [x] 10395 adda([X]) #34 sample address low byte + index 28ea 1200 ld ac,x 10396 ld(AC,X) #35 28eb 01a3 ld [$a3] 10397 ld([0xA3]) #36 pixel colour 28ec ce00 st [y,x] 10398 st([Y,X]) #37 28ed 1403 ld $03,y 10399 ld(hi('NEXTY'),Y) #38 28ee e000 jmp y,$00 10400 jmp(Y,'NEXTY') #39 28ef 00eb ld $eb 10401 ld(-42/2) #40 10402 10403 label('.oscpx#18') .oscpx#18: 28f0 0021 ld $21 10404 ld(hi('PREFX3_PAGE')) #18 ENTER is at $(n-1)ff, where n = instruction page 28f1 c202 st [$02] 10405 st([vCpuSelect]) #19 restore PREFX3 instruction page 28f2 9401 adda $01,y 10406 adda(1,Y) #20 retry instruction 28f3 e000 jmp y,$00 10407 jmp(Y,'NEXTY') #21 28f4 00f4 ld $f4 10408 ld(-24/2) #22 10409 10410 28f5 0200 nop 10411 fillers(until=0xff) 28f6 0200 nop 28f7 0200 nop * 10 times 28ff 0200 nop 10412 align(0x100, size=0x100) 10413 10414 #----------------------------------------------------------------------- 10415 # More vCPU instruction implementations, (0x2900) 10416 #----------------------------------------------------------------------- 10417 # 10418 # LEEKA implementation 10419 label('leeka#13') leeka#13: 2900 c21d st [$1d] 10420 st([vTmp]) #13 2901 00f9 ld $f9 10421 ld(min(0,maxTicks-44/2)) #14 2902 8115 adda [$15] 10422 adda([vTicks]) #15 2903 e81e blt .leeka#18 10423 blt('.leeka#18') #16 not enough time left, so retry 2904 1519 ld [$19],y 10424 ld([vAC+1],Y) #17 2905 1118 ld [$18],x 10425 ld([vAC],X) #18 2906 0d00 ld [y,x] 10426 ld([Y,X]) #19 peek [vAC] 2907 de00 st [y,x++] 10427 st([Y,Xpp]) #20 2908 c2c8 st [$c8] 10428 st([vTmpL+0]) #21 2909 0d00 ld [y,x] 10429 ld([Y,X]) #22 peek [vAC+1] 290a de00 st [y,x++] 10430 st([Y,Xpp]) #23 290b c2c9 st [$c9] 10431 st([vTmpL+1]) #24 290c 0d00 ld [y,x] 10432 ld([Y,X]) #25 peek [vAC+2] 290d de00 st [y,x++] 10433 st([Y,Xpp]) #26 290e c2ca st [$ca] 10434 st([vTmpL+2]) #27 290f 0d00 ld [y,x] 10435 ld([Y,X]) #28 peek [vAC+3] 2910 c2cb st [$cb] 10436 st([vTmpL+3]) #29 2911 1400 ld $00,y 10437 ld(0,Y) #30 2912 111d ld [$1d],x 10438 ld([vTmp],X) #31 dst var 2913 01c8 ld [$c8] 10439 ld([vTmpL+0]) #32 2914 de00 st [y,x++] 10440 st([Y,Xpp]) #33 [var.0] = peek [vAC] 2915 01c9 ld [$c9] 10441 ld([vTmpL+1]) #34 2916 de00 st [y,x++] 10442 st([Y,Xpp]) #35 [var.1] = peek [vAC+1] 2917 01ca ld [$ca] 10443 ld([vTmpL+2]) #36 2918 de00 st [y,x++] 10444 st([Y,Xpp]) #37 [var.2] = peek [vAC+2] 2919 01cb ld [$cb] 10445 ld([vTmpL+3]) #38 291a ce00 st [y,x] 10446 st([Y,X]) #39 [var.3] = peek [vAC+3] 291b 1403 ld $03,y 10447 ld(hi('NEXTY'),Y) #40 291c e000 jmp y,$00 10448 jmp(Y,'NEXTY') #41 291d 00ea ld $ea 10449 ld(-44/2) #42 10450 10451 label('.leeka#18') .leeka#18: 291e 0022 ld $22 10452 ld(hi('PREFX2_PAGE')) #18 ENTER is at $(n-1)ff, where n = instruction page 291f c202 st [$02] 10453 st([vCpuSelect]) #19 restore PREFX2 instruction page 2920 9401 adda $01,y 10454 adda(1,Y) #20 retry instruction 2921 e000 jmp y,$00 10455 jmp(Y,'NEXTY') #21 2922 00f4 ld $f4 10456 ld(-24/2) #22 10457 10458 10459 # LOKEA implementation 10460 label('lokea#13') lokea#13: 2923 1200 ld ac,x 10461 ld(AC,X) #13 2924 00f9 ld $f9 10462 ld(min(0,maxTicks-44/2)) #14 2925 8115 adda [$15] 10463 adda([vTicks]) #15 2926 e840 blt .lokea#18 10464 blt('.lokea#18') #16 not enough time left, so retry 2927 1400 ld $00,y 10465 ld(0,Y) #17 2928 0500 ld [x] 10466 ld([X]) #18 var.0 2929 de00 st [y,x++] 10467 st([Y,Xpp]) #19 292a c2c8 st [$c8] 10468 st([vTmpL+0]) #20 292b 0500 ld [x] 10469 ld([X]) #21 var.1 292c de00 st [y,x++] 10470 st([Y,Xpp]) #22 292d c2c9 st [$c9] 10471 st([vTmpL+1]) #23 292e 0500 ld [x] 10472 ld([X]) #24 var.2 292f de00 st [y,x++] 10473 st([Y,Xpp]) #25 2930 c2ca st [$ca] 10474 st([vTmpL+2]) #26 2931 0500 ld [x] 10475 ld([X]) #27 var.3 2932 c2cb st [$cb] 10476 st([vTmpL+3]) #28 2933 1118 ld [$18],x 10477 ld([vAC],X) #29 2934 1519 ld [$19],y 10478 ld([vAC+1],Y) #30 2935 01c8 ld [$c8] 10479 ld([vTmpL+0]) #31 2936 de00 st [y,x++] 10480 st([Y,Xpp]) #32 poke [vAC], var.0 2937 01c9 ld [$c9] 10481 ld([vTmpL+1]) #33 2938 de00 st [y,x++] 10482 st([Y,Xpp]) #34 poke [vAC], var.1 2939 01ca ld [$ca] 10483 ld([vTmpL+2]) #35 293a de00 st [y,x++] 10484 st([Y,Xpp]) #36 poke [vAC], var.2 293b 01cb ld [$cb] 10485 ld([vTmpL+3]) #37 293c ce00 st [y,x] 10486 st([Y,X]) #38 poke [vAC], var.3 293d 1403 ld $03,y 10487 ld(hi('REENTER'),Y) #39 293e e0cb jmp y,$cb 10488 jmp(Y,'REENTER') #40 293f 00ea ld $ea 10489 ld(-44/2) #41 10490 10491 label('.lokea#18') .lokea#18: 2940 0022 ld $22 10492 ld(hi('PREFX2_PAGE')) #18 ENTER is at $(n-1)ff, where n = instruction page 2941 c202 st [$02] 10493 st([vCpuSelect]) #19 restore PREFX2 instruction page 2942 9401 adda $01,y 10494 adda(1,Y) #20 retry instruction 2943 e000 jmp y,$00 10495 jmp(Y,'NEXTY') #21 2944 00f4 ld $f4 10496 ld(-24/2) #22 10497 10498 10499 # FEEKA implementation 10500 label('feeka#13') feeka#13: 2945 1519 ld [$19],y 10501 ld([vAC+1],Y) #13 2946 00f7 ld $f7 10502 ld(min(0,maxTicks-48/2)) #14 2947 8115 adda [$15] 10503 adda([vTicks]) #15 2948 e867 blt .feeka#18 10504 blt('.feeka#18') #16 not enough time left, so retry 2949 1118 ld [$18],x 10505 ld([vAC],X) #17 294a 0d00 ld [y,x] 10506 ld([Y,X]) #18 peek [vAC] 294b de00 st [y,x++] 10507 st([Y,Xpp]) #19 294c c2b0 st [$b0] 10508 st([0xB0]) #20 294d 0d00 ld [y,x] 10509 ld([Y,X]) #21 peek [vAC+1] 294e de00 st [y,x++] 10510 st([Y,Xpp]) #22 294f c2b1 st [$b1] 10511 st([0xB1]) #23 2950 0d00 ld [y,x] 10512 ld([Y,X]) #24 peek [vAC+2] 2951 de00 st [y,x++] 10513 st([Y,Xpp]) #25 2952 c2b2 st [$b2] 10514 st([0xB2]) #26 2953 0d00 ld [y,x] 10515 ld([Y,X]) #27 peek [vAC+3] 2954 de00 st [y,x++] 10516 st([Y,Xpp]) #28 2955 c2b3 st [$b3] 10517 st([0xB3]) #29 2956 0d00 ld [y,x] 10518 ld([Y,X]) #30 peek [vAC+4] 2957 c2b4 st [$b4] 10519 st([0xB4]) #31 2958 1400 ld $00,y 10520 ld(0,Y) #32 2959 112b ld [$2b],x 10521 ld([sysArgs+7],X) #33 dst var 295a 01b0 ld [$b0] 10522 ld([0xB0]) #34 295b de00 st [y,x++] 10523 st([Y,Xpp]) #35 [var.0] = peek [vAC] 295c 01b1 ld [$b1] 10524 ld([0xB1]) #36 295d de00 st [y,x++] 10525 st([Y,Xpp]) #37 [var.1] = peek [vAC+1] 295e 01b2 ld [$b2] 10526 ld([0xB2]) #38 295f de00 st [y,x++] 10527 st([Y,Xpp]) #39 [var.2] = peek [vAC+2] 2960 01b3 ld [$b3] 10528 ld([0xB3]) #40 2961 ce00 st [y,x] 10529 st([Y,X]) #41 [var.3] = peek [vAC+3] 2962 01b4 ld [$b4] 10530 ld([0xB4]) #42 2963 ce00 st [y,x] 10531 st([Y,X]) #43 [var.4] = peek [vAC+4] 2964 1403 ld $03,y 10532 ld(hi('NEXTY'),Y) #44 2965 e000 jmp y,$00 10533 jmp(Y,'NEXTY') #45 2966 00e8 ld $e8 10534 ld(-48/2) #46 10535 10536 label('.feeka#18') .feeka#18: 2967 0022 ld $22 10537 ld(hi('PREFX2_PAGE')) #18 ENTER is at $(n-1)ff, where n = instruction page 2968 c202 st [$02] 10538 st([vCpuSelect]) #19 restore PREFX2 instruction page 2969 9401 adda $01,y 10539 adda(1,Y) #20 retry instruction 296a e000 jmp y,$00 10540 jmp(Y,'NEXTY') #21 296b 00f4 ld $f4 10541 ld(-24/2) #22 10542 10543 10544 # FOKEA implementation 10545 label('fokea#13') fokea#13: 296c 112b ld [$2b],x 10546 ld([sysArgs+7],X) #13 var address 296d 00f7 ld $f7 10547 ld(min(0,maxTicks-48/2)) #14 296e 8115 adda [$15] 10548 adda([vTicks]) #15 296f e88e blt .fokea#18 10549 blt('.fokea#18') #16 not enough time left, so retry 2970 1400 ld $00,y 10550 ld(0,Y) #17 2971 0500 ld [x] 10551 ld([X]) #18 [var.0] 2972 de00 st [y,x++] 10552 st([Y,Xpp]) #19 2973 c2b0 st [$b0] 10553 st([0xB0]) #20 2974 0500 ld [x] 10554 ld([X]) #21 [var.1] 2975 de00 st [y,x++] 10555 st([Y,Xpp]) #22 2976 c2b1 st [$b1] 10556 st([0xB1]) #23 2977 0500 ld [x] 10557 ld([X]) #24 [var.2] 2978 de00 st [y,x++] 10558 st([Y,Xpp]) #25 2979 c2b2 st [$b2] 10559 st([0xB2]) #26 297a 0500 ld [x] 10560 ld([X]) #27 [var.3] 297b de00 st [y,x++] 10561 st([Y,Xpp]) #28 297c c2b3 st [$b3] 10562 st([0xB3]) #29 297d 0500 ld [x] 10563 ld([X]) #30 [var.4] 297e c2b4 st [$b4] 10564 st([0xB4]) #31 297f 1118 ld [$18],x 10565 ld([vAC],X) #32 2980 1519 ld [$19],y 10566 ld([vAC+1],Y) #33 2981 01b0 ld [$b0] 10567 ld([0xB0]) #34 2982 de00 st [y,x++] 10568 st([Y,Xpp]) #35 poke [vAC], [var.0] 2983 01b1 ld [$b1] 10569 ld([0xB1]) #36 2984 de00 st [y,x++] 10570 st([Y,Xpp]) #37 poke [vAC], [var.1] 2985 01b2 ld [$b2] 10571 ld([0xB2]) #38 2986 de00 st [y,x++] 10572 st([Y,Xpp]) #39 poke [vAC], [var.2] 2987 01b3 ld [$b3] 10573 ld([0xB3]) #40 2988 ce00 st [y,x] 10574 st([Y,X]) #41 poke [vAC], [var.3] 2989 01b4 ld [$b4] 10575 ld([0xB4]) #42 298a ce00 st [y,x] 10576 st([Y,X]) #43 poke [vAC], [var.4] 298b 1403 ld $03,y 10577 ld(hi('NEXTY'),Y) #44 298c e000 jmp y,$00 10578 jmp(Y,'NEXTY') #45 298d 00e8 ld $e8 10579 ld(-48/2) #46 10580 10581 label('.fokea#18') .fokea#18: 298e 0022 ld $22 10582 ld(hi('PREFX2_PAGE')) #18 ENTER is at $(n-1)ff, where n = instruction page 298f c202 st [$02] 10583 st([vCpuSelect]) #19 restore PREFX2 instruction page 2990 9401 adda $01,y 10584 adda(1,Y) #20 retry instruction 2991 e000 jmp y,$00 10585 jmp(Y,'NEXTY') #21 2992 00f4 ld $f4 10586 ld(-24/2) #22 10587 10588 10589 # SWAPB implementation 10590 label('swapb#13') swapb#13: 2993 00f8 ld $f8 10591 ld(min(0,maxTicks-46/2)) #13 2994 8115 adda [$15] 10592 adda([vTicks]) #14 2995 e8b3 blt .swapb#17 10593 blt('.swapb#17') #15 not enough time left, so retry 2996 1400 ld $00,y 10594 ld(0,Y) #16 2997 0500 ld [x] 10595 ld([X]) #17 2998 de00 st [y,x++] 10596 st([Y,Xpp]) #18 2999 c2b2 st [$b2] 10597 st([0xB2]) #19 var1.lo 299a 0500 ld [x] 10598 ld([X]) #20 299b c2b3 st [$b3] 10599 st([0xB3]) #21 var1.hi 299c 112b ld [$2b],x 10600 ld([sysArgs+7],X) #22 var0 299d 0500 ld [x] 10601 ld([X]) #23 299e de00 st [y,x++] 10602 st([Y,Xpp]) #24 299f c2b4 st [$b4] 10603 st([0xB4]) #25 var0.lo 29a0 0500 ld [x] 10604 ld([X]) #26 29a1 c2b5 st [$b5] 10605 st([0xB5]) #27 var0.hi 29a2 11b2 ld [$b2],x 10606 ld([0xB2],X) #28 29a3 15b3 ld [$b3],y 10607 ld([0xB3],Y) #29 29a4 0d00 ld [y,x] 10608 ld([Y,X]) #30 29a5 c2b1 st [$b1] 10609 st([0xB1]) #31 tmp1 = [var1] 29a6 11b4 ld [$b4],x 10610 ld([0xB4],X) #32 29a7 15b5 ld [$b5],y 10611 ld([0xB5],Y) #33 29a8 0d00 ld [y,x] 10612 ld([Y,X]) #34 29a9 c2b0 st [$b0] 10613 st([0xB0]) #35 tmp0 = [var0] 29aa 01b1 ld [$b1] 10614 ld([0xB1]) #36 29ab ce00 st [y,x] 10615 st([Y,X]) #37 [var0] = tmp1 29ac 11b2 ld [$b2],x 10616 ld([0xB2],X) #38 29ad 15b3 ld [$b3],y 10617 ld([0xB3],Y) #39 29ae 01b0 ld [$b0] 10618 ld([0xB0]) #40 29af ce00 st [y,x] 10619 st([Y,X]) #41 [var1] = tmp0 29b0 1403 ld $03,y 10620 ld(hi('NEXTY'),Y) #42 29b1 e000 jmp y,$00 10621 jmp(Y,'NEXTY') #43 29b2 00e9 ld $e9 10622 ld(-46/2) #44 10623 10624 label('.swapb#17') .swapb#17: 29b3 0021 ld $21 10625 ld(hi('PREFX3_PAGE')) #17 ENTER is at $(n-1)ff, where n = instruction page 29b4 c202 st [$02] 10626 st([vCpuSelect]) #18 restore PREFX3 instruction page 29b5 9401 adda $01,y 10627 adda(1,Y) #19 retry instruction 29b6 e0cb jmp y,$cb 10628 jmp(Y,'REENTER') #20 29b7 00f4 ld $f4 10629 ld(-24/2) #21 10630 10631 10632 # SWAPW implementation 10633 label('swapw#13') swapw#13: 29b8 00f2 ld $f2 10634 ld(min(0,maxTicks-58/2)) #13 29b9 8115 adda [$15] 10635 adda([vTicks]) #14 29ba e8e4 blt .swapw#17 10636 blt('.swapw#17') #15 not enough time left, so retry 29bb 1400 ld $00,y 10637 ld(0,Y) #16 29bc 0500 ld [x] 10638 ld([X]) #17 29bd de00 st [y,x++] 10639 st([Y,Xpp]) #18 29be c2b2 st [$b2] 10640 st([0xB2]) #19 var1.lo 29bf 0500 ld [x] 10641 ld([X]) #20 29c0 c2b3 st [$b3] 10642 st([0xB3]) #21 var1.hi 29c1 112b ld [$2b],x 10643 ld([sysArgs+7],X) #22 var0 29c2 0500 ld [x] 10644 ld([X]) #23 29c3 de00 st [y,x++] 10645 st([Y,Xpp]) #24 29c4 c2b4 st [$b4] 10646 st([0xB4]) #25 var0.lo 29c5 0500 ld [x] 10647 ld([X]) #26 29c6 c2b5 st [$b5] 10648 st([0xB5]) #27 var0.hi 29c7 11b2 ld [$b2],x 10649 ld([0xB2],X) #28 29c8 15b3 ld [$b3],y 10650 ld([0xB3],Y) #29 29c9 0d00 ld [y,x] 10651 ld([Y,X]) #30 29ca de00 st [y,x++] 10652 st([Y,Xpp]) #31 29cb c2b0 st [$b0] 10653 st([0xB0]) #32 temp.lo = var1.lo 29cc 0d00 ld [y,x] 10654 ld([Y,X]) #33 29cd c2b1 st [$b1] 10655 st([0xB1]) #34 temp.hi = var1.hi 29ce 11b4 ld [$b4],x 10656 ld([0xB4],X) #35 29cf 15b5 ld [$b5],y 10657 ld([0xB5],Y) #36 29d0 0d00 ld [y,x] 10658 ld([Y,X]) #37 29d1 de00 st [y,x++] 10659 st([Y,Xpp]) #38 29d2 c218 st [$18] 10660 st([vAC]) #39 29d3 0d00 ld [y,x] 10661 ld([Y,X]) #40 29d4 c219 st [$19] 10662 st([vAC+1]) #41 29d5 11b2 ld [$b2],x 10663 ld([0xB2],X) #42 29d6 15b3 ld [$b3],y 10664 ld([0xB3],Y) #43 29d7 0118 ld [$18] 10665 ld([vAC]) #44 29d8 de00 st [y,x++] 10666 st([Y,Xpp]) #45 var1.lo = var0.lo 29d9 0119 ld [$19] 10667 ld([vAC+1]) #46 29da ce00 st [y,x] 10668 st([Y,X]) #47 var1.lo = var0.lo 29db 11b4 ld [$b4],x 10669 ld([0xB4],X) #48 29dc 15b5 ld [$b5],y 10670 ld([0xB5],Y) #49 29dd 01b0 ld [$b0] 10671 ld([0xB0]) #50 29de de00 st [y,x++] 10672 st([Y,Xpp]) #51 var0.lo = temp.lo 29df 01b1 ld [$b1] 10673 ld([0xB1]) #52 29e0 ce00 st [y,x] 10674 st([Y,X]) #53 var0.hi = temp.hi 29e1 1403 ld $03,y 10675 ld(hi('NEXTY'),Y) #54 29e2 e000 jmp y,$00 10676 jmp(Y,'NEXTY') #55 29e3 00e3 ld $e3 10677 ld(-58/2) #56 10678 10679 label('.swapw#17') .swapw#17: 29e4 0021 ld $21 10680 ld(hi('PREFX3_PAGE')) #17 ENTER is at $(n-1)ff, where n = instruction page 29e5 c202 st [$02] 10681 st([vCpuSelect]) #18 restore PREFX3 instruction page 29e6 9401 adda $01,y 10682 adda(1,Y) #19 retry instruction 29e7 e0cb jmp y,$cb 10683 jmp(Y,'REENTER') #20 29e8 00f4 ld $f4 10684 ld(-24/2) #21 10685 10686 10687 # STPX implementation 10688 label('stpx#13') stpx#13: 29e9 0500 ld [x] 10689 ld([X]) #13 29ea c21d st [$1d] 10690 st([vTmp]) #14 colour 29eb 0119 ld [$19] 10691 ld([vAC+1]) #15 y 29ec 8119 adda [$19] 10692 adda([vAC+1]) #16 y*2 29ed 1200 ld ac,x 10693 ld(AC,X) #17 29ee 1401 ld $01,y 10694 ld(1,Y) #18 Y,X = 0x0100 + 2*y, (0 >= y <= 127) 29ef 0d00 ld [y,x] 10695 ld([Y,X]) #19 29f0 1600 ld ac,y 10696 ld(AC,Y) #20 Y = [Y,X] 29f1 1118 ld [$18],x 10697 ld([vAC],X) #21 29f2 011d ld [$1d] 10698 ld([vTmp]) #22 29f3 ce00 st [y,x] 10699 st([Y,X]) #23 [Y,X] = colour 29f4 1403 ld $03,y 10700 ld(hi('NEXTY'),Y) #24 29f5 e000 jmp y,$00 10701 jmp(Y,'NEXTY') #25 29f6 00f2 ld $f2 10702 ld(-28/2) #26 10703 10704 29f7 0200 nop 10705 fillers(until=0xff) 29f8 0200 nop 29f9 0200 nop * 8 times 29ff 0200 nop 10706 align(0x100, size=0x100) 10707 10708 #----------------------------------------------------------------------- 10709 # More vCPU instruction implementations, (0x2A00) 10710 #----------------------------------------------------------------------- 10711 # 10712 # MEEKA implementation 10713 label('meeka#13') meeka#13: 2a00 c21d st [$1d] 10714 st([vTmp]) #13 2a01 00ef ld $ef 10715 ld(min(0,maxTicks-64/2)) #14 2a02 8115 adda [$15] 10716 adda([vTicks]) #15 2a03 e832 blt .meeka#18 10717 blt('.meeka#18') #16 not enough time left, so retry 2a04 1519 ld [$19],y 10718 ld([vAC+1],Y) #17 2a05 1118 ld [$18],x 10719 ld([vAC],X) #18 2a06 0d00 ld [y,x] 10720 ld([Y,X]) #19 peek [vAC] 2a07 de00 st [y,x++] 10721 st([Y,Xpp]) #20 2a08 c2b0 st [$b0] 10722 st([0xB0]) #21 2a09 0d00 ld [y,x] 10723 ld([Y,X]) #22 peek [vAC+1] 2a0a de00 st [y,x++] 10724 st([Y,Xpp]) #23 2a0b c2b1 st [$b1] 10725 st([0xB1]) #24 2a0c 0d00 ld [y,x] 10726 ld([Y,X]) #25 peek [vAC+2] 2a0d de00 st [y,x++] 10727 st([Y,Xpp]) #26 2a0e c2b2 st [$b2] 10728 st([0xB2]) #27 2a0f 0d00 ld [y,x] 10729 ld([Y,X]) #28 peek [vAC+3] 2a10 de00 st [y,x++] 10730 st([Y,Xpp]) #29 2a11 c2b3 st [$b3] 10731 st([0xB3]) #30 2a12 0d00 ld [y,x] 10732 ld([Y,X]) #31 peek [vAC+4] 2a13 de00 st [y,x++] 10733 st([Y,Xpp]) #32 2a14 c2b4 st [$b4] 10734 st([0xB4]) #33 2a15 0d00 ld [y,x] 10735 ld([Y,X]) #34 peek [vAC+5] 2a16 de00 st [y,x++] 10736 st([Y,Xpp]) #35 2a17 c2b5 st [$b5] 10737 st([0xB5]) #36 2a18 0d00 ld [y,x] 10738 ld([Y,X]) #37 peek [vAC+6] 2a19 de00 st [y,x++] 10739 st([Y,Xpp]) #38 2a1a c2b6 st [$b6] 10740 st([0xB6]) #39 2a1b 0d00 ld [y,x] 10741 ld([Y,X]) #40 peek [vAC+7] 2a1c c2b7 st [$b7] 10742 st([0xB7]) #41 2a1d 1400 ld $00,y 10743 ld(0,Y) #42 2a1e 111d ld [$1d],x 10744 ld([vTmp],X) #43 dst var 2a1f 01b0 ld [$b0] 10745 ld([0xB0]) #44 2a20 de00 st [y,x++] 10746 st([Y,Xpp]) #45 [var.0] = peek [vAC] 2a21 01b1 ld [$b1] 10747 ld([0xB1]) #46 2a22 de00 st [y,x++] 10748 st([Y,Xpp]) #47 [var.1] = peek [vAC+1] 2a23 01b2 ld [$b2] 10749 ld([0xB2]) #48 2a24 de00 st [y,x++] 10750 st([Y,Xpp]) #49 [var.2] = peek [vAC+2] 2a25 01b3 ld [$b3] 10751 ld([0xB3]) #50 2a26 de00 st [y,x++] 10752 st([Y,Xpp]) #51 [var.3] = peek [vAC+3] 2a27 01b4 ld [$b4] 10753 ld([0xB4]) #52 2a28 de00 st [y,x++] 10754 st([Y,Xpp]) #53 [var.0] = peek [vAC+4] 2a29 01b5 ld [$b5] 10755 ld([0xB5]) #54 2a2a de00 st [y,x++] 10756 st([Y,Xpp]) #55 [var.1] = peek [vAC+5] 2a2b 01b6 ld [$b6] 10757 ld([0xB6]) #56 2a2c de00 st [y,x++] 10758 st([Y,Xpp]) #57 [var.2] = peek [vAC+6] 2a2d 01b7 ld [$b7] 10759 ld([0xB7]) #58 2a2e ce00 st [y,x] 10760 st([Y,X]) #59 [var.3] = peek [vAC+7] 2a2f 1403 ld $03,y 10761 ld(hi('NEXTY'),Y) #60 2a30 e000 jmp y,$00 10762 jmp(Y,'NEXTY') #61 2a31 00e0 ld $e0 10763 ld(-64/2) #62 10764 10765 label('.meeka#18') .meeka#18: 2a32 0022 ld $22 10766 ld(hi('PREFX2_PAGE')) #18 ENTER is at $(n-1)ff, where n = instruction page 2a33 c202 st [$02] 10767 st([vCpuSelect]) #19 restore PREFX2 instruction page 2a34 9401 adda $01,y 10768 adda(1,Y) #20 retry instruction 2a35 e000 jmp y,$00 10769 jmp(Y,'NEXTY') #21 2a36 00f4 ld $f4 10770 ld(-24/2) #22 10771 10772 10773 # MOKEA 10774 label('mokea#13') mokea#13: 2a37 112b ld [$2b],x 10775 ld([sysArgs+7],X) #13 var address 2a38 00ef ld $ef 10776 ld(min(0,maxTicks-64/2)) #14 2a39 8115 adda [$15] 10777 adda([vTicks]) #15 2a3a e869 blt .mokea#18 10778 blt('.mokea#18') #16 not enough time left, so retry 2a3b 1400 ld $00,y 10779 ld(0,Y) #17 2a3c 0500 ld [x] 10780 ld([X]) #18 var.0 2a3d de00 st [y,x++] 10781 st([Y,Xpp]) #19 2a3e c2b0 st [$b0] 10782 st([0xB0]) #20 2a3f 0500 ld [x] 10783 ld([X]) #21 var.1 2a40 de00 st [y,x++] 10784 st([Y,Xpp]) #22 2a41 c2b1 st [$b1] 10785 st([0xB1]) #23 2a42 0500 ld [x] 10786 ld([X]) #24 var.2 2a43 de00 st [y,x++] 10787 st([Y,Xpp]) #25 2a44 c2b2 st [$b2] 10788 st([0xB2]) #26 2a45 0500 ld [x] 10789 ld([X]) #27 var.3 2a46 de00 st [y,x++] 10790 st([Y,Xpp]) #28 2a47 c2b3 st [$b3] 10791 st([0xB3]) #29 2a48 0500 ld [x] 10792 ld([X]) #30 var.4 2a49 de00 st [y,x++] 10793 st([Y,Xpp]) #31 2a4a c2b4 st [$b4] 10794 st([0xB4]) #32 2a4b 0500 ld [x] 10795 ld([X]) #33 var.5 2a4c de00 st [y,x++] 10796 st([Y,Xpp]) #34 2a4d c2b5 st [$b5] 10797 st([0xB5]) #35 2a4e 0500 ld [x] 10798 ld([X]) #36 var.6 2a4f de00 st [y,x++] 10799 st([Y,Xpp]) #37 2a50 c2b6 st [$b6] 10800 st([0xB6]) #38 2a51 0500 ld [x] 10801 ld([X]) #39 var.7 2a52 de00 st [y,x++] 10802 st([Y,Xpp]) #40 2a53 c2b7 st [$b7] 10803 st([0xB7]) #41 2a54 1118 ld [$18],x 10804 ld([vAC],X) #42 2a55 1519 ld [$19],y 10805 ld([vAC+1],Y) #43 2a56 01b0 ld [$b0] 10806 ld([0xB0]) #44 2a57 de00 st [y,x++] 10807 st([Y,Xpp]) #45 poke [vAC], var.0 2a58 01b1 ld [$b1] 10808 ld([0xB1]) #46 2a59 de00 st [y,x++] 10809 st([Y,Xpp]) #47 poke [vAC], var.1 2a5a 01b2 ld [$b2] 10810 ld([0xB2]) #48 2a5b de00 st [y,x++] 10811 st([Y,Xpp]) #49 poke [vAC], var.2 2a5c 01b3 ld [$b3] 10812 ld([0xB3]) #50 2a5d de00 st [y,x++] 10813 st([Y,Xpp]) #51 poke [vAC], var.3 2a5e 01b4 ld [$b4] 10814 ld([0xB4]) #52 2a5f de00 st [y,x++] 10815 st([Y,Xpp]) #53 poke [vAC], var.4 2a60 01b5 ld [$b5] 10816 ld([0xB5]) #54 2a61 de00 st [y,x++] 10817 st([Y,Xpp]) #55 poke [vAC], var.5 2a62 01b6 ld [$b6] 10818 ld([0xB6]) #56 2a63 de00 st [y,x++] 10819 st([Y,Xpp]) #57 poke [vAC], var.6 2a64 01b7 ld [$b7] 10820 ld([0xB7]) #58 2a65 de00 st [y,x++] 10821 st([Y,Xpp]) #59 poke [vAC], var.7 2a66 1403 ld $03,y 10822 ld(hi('NEXTY'),Y) #60 2a67 e000 jmp y,$00 10823 jmp(Y,'NEXTY') #61 2a68 00e0 ld $e0 10824 ld(-64/2) #62 10825 10826 label('.mokea#18') .mokea#18: 2a69 0022 ld $22 10827 ld(hi('PREFX2_PAGE')) #18 ENTER is at $(n-1)ff, where n = instruction page 2a6a c202 st [$02] 10828 st([vCpuSelect]) #19 restore PREFX2 instruction page 2a6b 9401 adda $01,y 10829 adda(1,Y) #20 retry instruction 2a6c e000 jmp y,$00 10830 jmp(Y,'NEXTY') #21 2a6d 00f4 ld $f4 10831 ld(-24/2) #22 10832 10833 10834 # NEEKA implementation 10835 label('neeka#13') neeka#13: 2a6e 00fe ld $fe 10836 ld(min(0,maxTicks-34/2)) #13 2a6f 8115 adda [$15] 10837 adda([vTicks]) #14 2a70 e885 blt .neeka#17 10838 blt('.neeka#17') #15 not enough time left, so retry 2a71 012b ld [$2b] 10839 ld([sysArgs+7]) #16 number of bytes to peek 2a72 a001 suba $01 10840 suba(1) #17 2a73 f478 bge .neeka#20 10841 bge('.neeka#20') #18 2a74 c22b st [$2b] 10842 st([sysArgs+7]) #19 2a75 1403 ld $03,y 10843 ld(hi('NEXTY'),Y) #20 done 2a76 e000 jmp y,$00 10844 jmp(Y,'NEXTY') #21 2a77 00f4 ld $f4 10845 ld(-24/2) #22 10846 10847 label('.neeka#20') .neeka#20: 2a78 1519 ld [$19],y 10848 ld([vAC+1],Y) #20 2a79 9118 adda [$18],x 10849 adda([vAC],X) #21 2a7a 0d00 ld [y,x] 10850 ld([Y,X]) #22 peek [vAC + index] 2a7b c21d st [$1d] 10851 st([vTmp]) #23 2a7c 012a ld [$2a] 10852 ld([sysArgs+6]) #24 2a7d 912b adda [$2b],x 10853 adda([sysArgs+7],X) #25 var + index 2a7e 011d ld [$1d] 10854 ld([vTmp]) #26 2a7f c600 st [x] 10855 st([X]) #27 [var + index] = peek [vAC + index] 2a80 0021 ld $21 10856 ld(hi('PREFX3_PAGE')) #28 ENTER is at $(n-1)ff, where n = instruction page 2a81 c202 st [$02] 10857 st([vCpuSelect]) #29 restore PREFX3 instruction page 2a82 9401 adda $01,y 10858 adda(1,Y) #30 restart instruction 2a83 e000 jmp y,$00 10859 jmp(Y,'NEXTY') #31 2a84 00ef ld $ef 10860 ld(-34/2) #32 10861 10862 label('.neeka#17') .neeka#17: 2a85 0021 ld $21 10863 ld(hi('PREFX3_PAGE')) #17 ENTER is at $(n-1)ff, where n = instruction page 2a86 c202 st [$02] 10864 st([vCpuSelect]) #18 restore PREFX3 instruction page 2a87 9401 adda $01,y 10865 adda(1,Y) #19 retry instruction 2a88 e0cb jmp y,$cb 10866 jmp(Y,'REENTER') #20 2a89 00f4 ld $f4 10867 ld(-24/2) #21 10868 10869 10870 # NOKEA implementation 10871 label('nokea#13') nokea#13: 2a8a 00fe ld $fe 10872 ld(min(0,maxTicks-34/2)) #13 2a8b 8115 adda [$15] 10873 adda([vTicks]) #14 2a8c e8a1 blt .nokea#17 10874 blt('.nokea#17') #15 not enough time left, so retry 2a8d 012b ld [$2b] 10875 ld([sysArgs+7]) #16 number of bytes to peek 2a8e a001 suba $01 10876 suba(1) #17 2a8f f494 bge .nokea#20 10877 bge('.nokea#20') #18 2a90 c22b st [$2b] 10878 st([sysArgs+7]) #19 2a91 1403 ld $03,y 10879 ld(hi('NEXTY'),Y) #20 done 2a92 e000 jmp y,$00 10880 jmp(Y,'NEXTY') #21 2a93 00f4 ld $f4 10881 ld(-24/2) #22 10882 10883 label('.nokea#20') .nokea#20: 2a94 912a adda [$2a],x 10884 adda([sysArgs+6],X) #20 var + index 2a95 0500 ld [x] 10885 ld([X]) #21 2a96 c21d st [$1d] 10886 st([vTmp]) #22 2a97 1519 ld [$19],y 10887 ld([vAC+1],Y) #23 2a98 012b ld [$2b] 10888 ld([sysArgs+7]) #24 2a99 9118 adda [$18],x 10889 adda([vAC],X) #25 vAC + index 2a9a 011d ld [$1d] 10890 ld([vTmp]) #26 2a9b ce00 st [y,x] 10891 st([Y,X]) #27 [vAC + index] = peek [var + index] 2a9c 0021 ld $21 10892 ld(hi('PREFX3_PAGE')) #28 ENTER is at $(n-1)ff, where n = instruction page 2a9d c202 st [$02] 10893 st([vCpuSelect]) #29 restore PREFX3 instruction page 2a9e 9401 adda $01,y 10894 adda(1,Y) #30 restart instruction 2a9f e000 jmp y,$00 10895 jmp(Y,'NEXTY') #31 2aa0 00ef ld $ef 10896 ld(-34/2) #32 10897 10898 label('.nokea#17') .nokea#17: 2aa1 0021 ld $21 10899 ld(hi('PREFX3_PAGE')) #17 ENTER is at $(n-1)ff, where n = instruction page 2aa2 c202 st [$02] 10900 st([vCpuSelect]) #18 restore PREFX3 instruction page 2aa3 9401 adda $01,y 10901 adda(1,Y) #19 retry instruction 2aa4 e0cb jmp y,$cb 10902 jmp(Y,'REENTER') #20 2aa5 00f4 ld $f4 10903 ld(-24/2) #21 10904 10905 10906 # DBGE implementation 10907 label('dbge#13') dbge#13: 2aa6 1517 ld [$17],y 10908 ld([vPC+1],Y) #13 vPC.hi 2aa7 c21d st [$1d] 10909 st([vTmp]) #14 branch offset 2aa8 de00 st [y,x++] 10910 st([Y,Xpp]) #15 X++, address of counter 2aa9 0d00 ld [y,x] 10911 ld([Y,X]) #16 2aaa 1200 ld ac,x 10912 ld(AC,X) #17 fetch counter 2aab 0500 ld [x] 10913 ld([X]) #18 2aac a001 suba $01 10914 suba(1) #19 decrement counter 2aad e8b4 blt .dbge#22 10915 blt('.dbge#22') #20 if < 0 BRA 2aae c600 st [x] 10916 st([X]) #21 2aaf 011d ld [$1d] 10917 ld([vTmp]) #22 2ab0 c216 st [$16] 10918 st([vPC]) #23 BRA to branch offset 2ab1 1403 ld $03,y 10919 ld(hi('NEXTY'),Y) #24 2ab2 e000 jmp y,$00 10920 jmp(Y,'NEXTY') #25 2ab3 00f2 ld $f2 10921 ld(-28/2) #26 10922 10923 label('.dbge#22') .dbge#22: 2ab4 0116 ld [$16] 10924 ld([vPC]) #22 2ab5 8001 adda $01 10925 adda(1) #23 2ab6 c216 st [$16] 10926 st([vPC]) #24 advance vPC by 1 2ab7 1403 ld $03,y 10927 ld(hi('REENTER'),Y) #25 2ab8 e0cb jmp y,$cb 10928 jmp(Y,'REENTER') #26 2ab9 00f1 ld $f1 10929 ld(-30/2) #27 10930 10931 10932 # DJNE implementation 10933 label('djne#13') djne#13: 2aba de00 st [y,x++] 10934 st([Y,Xpp]) #13 X++ 2abb c21d st [$1d] 10935 st([vTmp]) #14 var 2abc 00f8 ld $f8 10936 ld(min(0,maxTicks-46/2)) #15 2abd 8115 adda [$15] 10937 adda([vTicks]) #16 2abe e8e7 blt .djne#19 10938 blt('.djne#19') #17 not enough time left, so retry 2abf 0d00 ld [y,x] 10939 ld([Y,X]) #18 2ac0 de00 st [y,x++] 10940 st([Y,Xpp]) #19 X++ 2ac1 c22a st [$2a] 10941 st([sysArgs+6]) #20 jump addr.lo 2ac2 0d00 ld [y,x] 10942 ld([Y,X]) #21 2ac3 c22b st [$2b] 10943 st([sysArgs+7]) #22 jump addr.hi 2ac4 1400 ld $00,y 10944 ld(0,Y) #23 2ac5 111d ld [$1d],x 10945 ld([vTmp],X) #24 2ac6 0500 ld [x] 10946 ld([X]) #25 count.lo 2ac7 a001 suba $01 10947 suba(1) #26 2ac8 de00 st [y,x++] 10948 st([Y,Xpp]) #27 count.lo-- X++ 2ac9 4500 ora [x] 10949 ora([X]) #28 count.lo | count.hi 2aca f0da beq .djne#31 10950 beq('.djne#31') #19 count = 0 2acb 111d ld [$1d],x 10951 ld([vTmp],X) #30 2acc 0500 ld [x] 10952 ld([X]) #31 count.lo 2acd de00 st [y,x++] 10953 st([Y,Xpp]) #32 X++ 2ace 60ff xora $ff 10954 xora(0xFF) #33 if low byte is 0xFF 2acf ece0 bne .djne#36 10955 bne('.djne#36') #34 2ad0 0500 ld [x] 10956 ld([X]) #35 count.hi 2ad1 a001 suba $01 10957 suba(1) #36 2ad2 c600 st [x] 10958 st([X]) #37 2ad3 012a ld [$2a] 10959 ld([sysArgs+6]) #38 jump 2ad4 c216 st [$16] 10960 st([vPC]) #39 2ad5 012b ld [$2b] 10961 ld([sysArgs+7]) #40 2ad6 c217 st [$17] 10962 st([vPC+1]) #41 2ad7 1403 ld $03,y 10963 ld(hi('NEXTY'),Y) #42 2ad8 e000 jmp y,$00 10964 jmp(Y,'NEXTY') #43 2ad9 00e9 ld $e9 10965 ld(-46/2) #44 10966 10967 label('.djne#31') .djne#31: 2ada 0116 ld [$16] 10968 ld([vPC]) #31 done 2adb 8002 adda $02 10969 adda(2) #32 2adc c216 st [$16] 10970 st([vPC]) #33 2add 1403 ld $03,y 10971 ld(hi('NEXTY'),Y) #34 2ade e000 jmp y,$00 10972 jmp(Y,'NEXTY') #35 2adf 00ed ld $ed 10973 ld(-38/2) #36 10974 10975 label('.djne#36') .djne#36: 2ae0 012a ld [$2a] 10976 ld([sysArgs+6]) #36 jump 2ae1 c216 st [$16] 10977 st([vPC]) #37 2ae2 012b ld [$2b] 10978 ld([sysArgs+7]) #38 2ae3 c217 st [$17] 10979 st([vPC+1]) #39 2ae4 1403 ld $03,y 10980 ld(hi('NEXTY'),Y) #40 2ae5 e000 jmp y,$00 10981 jmp(Y,'NEXTY') #41 2ae6 00ea ld $ea 10982 ld(-44/2) #42 10983 10984 label('.djne#19') .djne#19: 2ae7 0116 ld [$16] 10985 ld([vPC]) #19 retry 2ae8 a002 suba $02 10986 suba(2) #20 2ae9 c216 st [$16] 10987 st([vPC]) #21 2aea 1403 ld $03,y 10988 ld(hi('NEXTY'),Y) #22 2aeb e000 jmp y,$00 10989 jmp(Y,'NEXTY') #23 2aec 00f3 ld $f3 10990 ld(-26/2) #24 10991 10992 2aed 0200 nop 10993 fillers(until=0xff) 2aee 0200 nop 2aef 0200 nop * 18 times 2aff 0200 nop 10994 align(0x100, size=0x100) 10995 10996 #----------------------------------------------------------------------- 10997 # More vCPU instruction implementations, (0x2B00) 10998 #----------------------------------------------------------------------- 10999 # 11000 # DJGE implementation 11001 label('djge#13') djge#13: 2b00 de00 st [y,x++] 11002 st([Y,Xpp]) #13 2b01 c21d st [$1d] 11003 st([vTmp]) #14 var 2b02 00fa ld $fa 11004 ld(min(0,maxTicks-42/2)) #15 2b03 8115 adda [$15] 11005 adda([vTicks]) #16 2b04 e829 blt .djge#19 11006 blt('.djge#19') #17 not enough time left, so retry 2b05 0d00 ld [y,x] 11007 ld([Y,X]) #18 2b06 de00 st [y,x++] 11008 st([Y,Xpp]) #19 2b07 c22a st [$2a] 11009 st([sysArgs+6]) #20 jump addr.lo 2b08 0d00 ld [y,x] 11010 ld([Y,X]) #21 2b09 c22b st [$2b] 11011 st([sysArgs+7]) #22 jump addr.hi 2b0a 1400 ld $00,y 11012 ld(0,Y) #23 2b0b 111d ld [$1d],x 11013 ld([vTmp],X) #24 2b0c 0500 ld [x] 11014 ld([X]) #25 count.lo 2b0d a001 suba $01 11015 suba(1) #26 2b0e de00 st [y,x++] 11016 st([Y,Xpp]) #27 count.lo-- X++ 2b0f 60ff xora $ff 11017 xora(0xFF) #28 if low byte is 0xFF 2b10 ec1c bne .djge#31 11018 bne('.djge#31') #29 2b11 0500 ld [x] 11019 ld([X]) #30 count.hi 2b12 f023 beq .djge#33 11020 beq('.djge#33') #31 2b13 a001 suba $01 11021 suba(1) #32 2b14 c600 st [x] 11022 st([X]) #33 2b15 012a ld [$2a] 11023 ld([sysArgs+6]) #34 jump 2b16 c216 st [$16] 11024 st([vPC]) #35 2b17 012b ld [$2b] 11025 ld([sysArgs+7]) #36 2b18 c217 st [$17] 11026 st([vPC+1]) #37 2b19 1403 ld $03,y 11027 ld(hi('NEXTY'),Y) #38 2b1a e000 jmp y,$00 11028 jmp(Y,'NEXTY') #39 2b1b 00eb ld $eb 11029 ld(-42/2) #40 11030 11031 label('.djge#31') .djge#31: 2b1c 012a ld [$2a] 11032 ld([sysArgs+6]) #31 jump 2b1d c216 st [$16] 11033 st([vPC]) #32 2b1e 012b ld [$2b] 11034 ld([sysArgs+7]) #33 2b1f c217 st [$17] 11035 st([vPC+1]) #34 2b20 1403 ld $03,y 11036 ld(hi('REENTER'),Y) #35 2b21 e0cb jmp y,$cb 11037 jmp(Y,'REENTER') #36 2b22 00ec ld $ec 11038 ld(-40/2) #37 11039 11040 label('.djge#33') .djge#33: 2b23 0116 ld [$16] 11041 ld([vPC]) #33 done 2b24 8002 adda $02 11042 adda(2) #34 2b25 c216 st [$16] 11043 st([vPC]) #35 2b26 1403 ld $03,y 11044 ld(hi('NEXTY'),Y) #36 2b27 e000 jmp y,$00 11045 jmp(Y,'NEXTY') #37 2b28 00ec ld $ec 11046 ld(-40/2) #38 11047 11048 label('.djge#19') .djge#19: 2b29 0116 ld [$16] 11049 ld([vPC]) #19 retry 2b2a a002 suba $02 11050 suba(2) #20 2b2b c216 st [$16] 11051 st([vPC]) #21 2b2c 1403 ld $03,y 11052 ld(hi('NEXTY'),Y) #22 2b2d e000 jmp y,$00 11053 jmp(Y,'NEXTY') #23 2b2e 00f3 ld $f3 11054 ld(-26/2) #24 11055 11056 11057 # ADDVL 11058 label('addvl#13') addvl#13: 2b2f 0500 ld [x] 11059 ld([X]) #13 2b30 c21d st [$1d] 11060 st([vTmp]) #14 save src.0 2b31 112b ld [$2b],x 11061 ld([sysArgs+7],X) #15 dst.0 2b32 00e8 ld $e8 11062 ld(min(0,maxTicks-78/2)) #16 2b33 8115 adda [$15] 11063 adda([vTicks]) #17 2b34 e874 blt .addvl#20 11064 blt('.addvl#20') #18 not enough time left, so retry 2b35 011d ld [$1d] 11065 ld([vTmp]) #19 src.0 2b36 8500 adda [x] 11066 adda([X]) #20 2b37 c600 st [x] 11067 st([X]) #21 dst.0 += src.0 2b38 e83c blt .addvl#24 11068 bmi('.addvl#24') #22 carry 2b39 a11d suba [$1d] 11069 suba([vTmp]) #23 original dst.0 2b3a fc3e bra .addvl#26 11070 bra('.addvl#26') #24 2b3b 411d ora [$1d] 11071 ora([vTmp]) #25 carry in bit 7 11072 11073 label('.addvl#24') .addvl#24: 2b3c 211d anda [$1d] 11074 anda([vTmp]) #24 carry in bit 7 2b3d 0200 nop 11075 nop() #25 11076 11077 label('.addvl#26') .addvl#26: 2b3e 3080 anda $80,x 11078 anda(0x80,X) #26 carry to bit 0 2b3f 0500 ld [x] 11079 ld([X]) #27 2b40 c21d st [$1d] 11080 st([vTmp]) #28 store carry 2b41 012a ld [$2a] 11081 ld([sysArgs+6]) #29 2b42 9001 adda $01,x 11082 adda(1,X) #30 src.1 2b43 011d ld [$1d] 11083 ld([vTmp]) #31 2b44 8500 adda [x] 11084 adda([X]) #32 2b45 c21d st [$1d] 11085 st([vTmp]) #33 src.1 += carry 2b46 012b ld [$2b] 11086 ld([sysArgs+7]) #34 2b47 9001 adda $01,x 11087 adda(1,X) #35 2b48 011d ld [$1d] 11088 ld([vTmp]) #36 2b49 8500 adda [x] 11089 adda([X]) #37 2b4a c600 st [x] 11090 st([X]) #38 dst.1 += src.1 2b4b e84f blt .addvl#41 11091 bmi('.addvl#41') #39 carry 2b4c a11d suba [$1d] 11092 suba([vTmp]) #40 original dst.1 2b4d fc51 bra .addvl#43 11093 bra('.addvl#43') #41 2b4e 411d ora [$1d] 11094 ora([vTmp]) #42 carry in bit 7 11095 11096 label('.addvl#41') .addvl#41: 2b4f 211d anda [$1d] 11097 anda([vTmp]) #41 carry in bit 7 2b50 0200 nop 11098 nop() #42 11099 11100 label('.addvl#43') .addvl#43: 2b51 3080 anda $80,x 11101 anda(0x80,X) #43 carry to bit 0 2b52 0500 ld [x] 11102 ld([X]) #44 2b53 c21d st [$1d] 11103 st([vTmp]) #45 store carry 2b54 012a ld [$2a] 11104 ld([sysArgs+6]) #46 2b55 9002 adda $02,x 11105 adda(2,X) #47 src.2 2b56 011d ld [$1d] 11106 ld([vTmp]) #48 2b57 8500 adda [x] 11107 adda([X]) #49 2b58 c21d st [$1d] 11108 st([vTmp]) #50 src.2 += carry 2b59 012b ld [$2b] 11109 ld([sysArgs+7]) #51 2b5a 9002 adda $02,x 11110 adda(2,X) #52 2b5b 011d ld [$1d] 11111 ld([vTmp]) #53 2b5c 8500 adda [x] 11112 adda([X]) #54 2b5d c600 st [x] 11113 st([X]) #55 dst.2 += src.2 2b5e e862 blt .addvl#58 11114 bmi('.addvl#58') #56 carry 2b5f a11d suba [$1d] 11115 suba([vTmp]) #57 original dst.2 2b60 fc64 bra .addvl#60 11116 bra('.addvl#60') #58 2b61 411d ora [$1d] 11117 ora([vTmp]) #59 carry in bit 7 11118 11119 label('.addvl#58') .addvl#58: 2b62 211d anda [$1d] 11120 anda([vTmp]) #58 carry in bit 7 2b63 0200 nop 11121 nop() #59 11122 11123 label('.addvl#60') .addvl#60: 2b64 3080 anda $80,x 11124 anda(0x80,X) #60 carry to bit 0 2b65 0500 ld [x] 11125 ld([X]) #61 2b66 c21d st [$1d] 11126 st([vTmp]) #62 store carry 2b67 012a ld [$2a] 11127 ld([sysArgs+6]) #63 2b68 9003 adda $03,x 11128 adda(3,X) #64 src.3 2b69 011d ld [$1d] 11129 ld([vTmp]) #65 2b6a 8500 adda [x] 11130 adda([X]) #66 2b6b c21d st [$1d] 11131 st([vTmp]) #67 src.3 += carry 2b6c 012b ld [$2b] 11132 ld([sysArgs+7]) #68 2b6d 9003 adda $03,x 11133 adda(3,X) #69 2b6e 011d ld [$1d] 11134 ld([vTmp]) #70 2b6f 8500 adda [x] 11135 adda([X]) #71 2b70 c600 st [x] 11136 st([X]) #72 dst.3 += src.3 2b71 1403 ld $03,y 11137 ld(hi('REENTER'),Y) #73 2b72 e0cb jmp y,$cb 11138 jmp(Y,'REENTER') #74 2b73 00d9 ld $d9 11139 ld(-78/2) #75 11140 11141 label('.addvl#20') .addvl#20: 2b74 0021 ld $21 11142 ld(hi('PREFX3_PAGE')) #20 ENTER is at $(n-1)ff, where n = instruction page 2b75 c202 st [$02] 11143 st([vCpuSelect]) #21 restore PREFX3 instruction page 2b76 9401 adda $01,y 11144 adda(1,Y) #22 retry instruction 2b77 e000 jmp y,$00 11145 jmp(Y,'NEXTY') #23 2b78 00f3 ld $f3 11146 ld(-26/2) #24 11147 11148 11149 # SUBVL 11150 label('subvl#13') subvl#13: 2b79 0500 ld [x] 11151 ld([X]) #13 2b7a c21d st [$1d] 11152 st([vTmp]) #14 save src.0 2b7b 112b ld [$2b],x 11153 ld([sysArgs+7],X) #15 dst.0 2b7c 00ea ld $ea 11154 ld(min(0,maxTicks-74/2)) #16 2b7d 8115 adda [$15] 11155 adda([vTicks]) #17 2b7e e8c0 blt .subvl#20 11156 blt('.subvl#20') #18 not enough time left, so retry 2b7f 0500 ld [x] 11157 ld([X]) #19 dst.0 2b80 e885 blt .subvl#22 11158 bmi('.subvl#22') #20 2b81 a11d suba [$1d] 11159 suba([vTmp]) #21 2b82 c600 st [x] 11160 st([X]) #22 dst.0 -= src.0 2b83 fc88 bra .subvl#25 11161 bra('.subvl#25') #23 2b84 411d ora [$1d] 11162 ora([vTmp]) #24 borrow in bit 7 11163 11164 label('.subvl#22') .subvl#22: 2b85 c600 st [x] 11165 st([X]) #22 dst.0 -= src.0 2b86 211d anda [$1d] 11166 anda([vTmp]) #23 borrow in bit 7 2b87 0200 nop 11167 nop() #24 11168 11169 label('.subvl#25') .subvl#25: 2b88 3080 anda $80,x 11170 anda(0x80,X) #25 borrow to bit 0 2b89 0500 ld [x] 11171 ld([X]) #26 2b8a c2b0 st [$b0] 11172 st([0xB0]) #27 store borrow 2b8b 012a ld [$2a] 11173 ld([sysArgs+6]) #28 2b8c 9001 adda $01,x 11174 adda(1,X) #29 2b8d 0500 ld [x] 11175 ld([X]) #30 2b8e c21d st [$1d] 11176 st([vTmp]) #31 src.1 2b8f 012b ld [$2b] 11177 ld([sysArgs+7]) #32 2b90 9001 adda $01,x 11178 adda(1,X) #33 2b91 0500 ld [x] 11179 ld([X]) #34 dst.1 2b92 e898 blt .subvl#37 11180 bmi('.subvl#37') #35 2b93 a11d suba [$1d] 11181 suba([vTmp]) #36 2b94 a1b0 suba [$b0] 11182 suba([0xB0]) #37 2b95 c600 st [x] 11183 st([X]) #38 dst.1 = dst.1 - src.1 - borrow 2b96 fc9c bra .subvl#41 11184 bra('.subvl#41') #39 2b97 411d ora [$1d] 11185 ora([vTmp]) #40 borrow in bit 7 11186 11187 label('.subvl#37') .subvl#37: 2b98 a1b0 suba [$b0] 11188 suba([0xB0]) #37 2b99 c600 st [x] 11189 st([X]) #38 dst.1 = dst.1 - src.1 - borrow 2b9a 211d anda [$1d] 11190 anda([vTmp]) #39 borrow in bit 7 2b9b 0200 nop 11191 nop() #40 11192 11193 label('.subvl#41') .subvl#41: 2b9c 3080 anda $80,x 11194 anda(0x80,X) #41 borrow to bit 0 2b9d 0500 ld [x] 11195 ld([X]) #42 2b9e c2b0 st [$b0] 11196 st([0xB0]) #43 store borrow 2b9f 012a ld [$2a] 11197 ld([sysArgs+6]) #44 2ba0 9002 adda $02,x 11198 adda(2,X) #45 2ba1 0500 ld [x] 11199 ld([X]) #46 2ba2 c21d st [$1d] 11200 st([vTmp]) #47 src.2 2ba3 012b ld [$2b] 11201 ld([sysArgs+7]) #48 2ba4 9002 adda $02,x 11202 adda(2,X) #49 2ba5 0500 ld [x] 11203 ld([X]) #50 dst.2 2ba6 e8ac blt .subvl#53 11204 bmi('.subvl#53') #51 2ba7 a11d suba [$1d] 11205 suba([vTmp]) #52 2ba8 a1b0 suba [$b0] 11206 suba([0xB0]) #53 2ba9 c600 st [x] 11207 st([X]) #54 dst.2 = dst.2 - src.2 - borrow 2baa fcb0 bra .subvl#57 11208 bra('.subvl#57') #55 2bab 411d ora [$1d] 11209 ora([vTmp]) #56 borrow in bit 7 11210 11211 label('.subvl#53') .subvl#53: 2bac a1b0 suba [$b0] 11212 suba([0xB0]) #53 2bad c600 st [x] 11213 st([X]) #54 dst.2 = dst.2 - src.2 - borrow 2bae 211d anda [$1d] 11214 anda([vTmp]) #55 borrow in bit 7 2baf 0200 nop 11215 nop() #56 11216 11217 label('.subvl#57') .subvl#57: 2bb0 3080 anda $80,x 11218 anda(0x80,X) #57 borrow to bit 0 2bb1 0500 ld [x] 11219 ld([X]) #58 2bb2 c2b0 st [$b0] 11220 st([0xB0]) #59 store borrow 2bb3 012a ld [$2a] 11221 ld([sysArgs+6]) #60 2bb4 9003 adda $03,x 11222 adda(3,X) #61 2bb5 0500 ld [x] 11223 ld([X]) #62 2bb6 c21d st [$1d] 11224 st([vTmp]) #63 src.3 2bb7 012b ld [$2b] 11225 ld([sysArgs+7]) #64 2bb8 9003 adda $03,x 11226 adda(3,X) #65 dst.3 2bb9 0500 ld [x] 11227 ld([X]) #66 2bba a11d suba [$1d] 11228 suba([vTmp]) #67 2bbb a1b0 suba [$b0] 11229 suba([0xB0]) #68 2bbc c600 st [x] 11230 st([X]) #69 dst.3 = dst.3 - src.3 - borrow 2bbd 1403 ld $03,y 11231 ld(hi('NEXTY'),Y) #70 2bbe e000 jmp y,$00 11232 jmp(Y,'NEXTY') #71 2bbf 00db ld $db 11233 ld(-74/2) #72 11234 11235 label('.subvl#20') .subvl#20: 2bc0 0021 ld $21 11236 ld(hi('PREFX3_PAGE')) #20 ENTER is at $(n-1)ff, where n = instruction page 2bc1 c202 st [$02] 11237 st([vCpuSelect]) #21 restore PREFX3 instruction page 2bc2 9401 adda $01,y 11238 adda(1,Y) #22 retry instruction 2bc3 e000 jmp y,$00 11239 jmp(Y,'NEXTY') #23 2bc4 00f3 ld $f3 11240 ld(-26/2) #24 11241 11242 11243 # ANDVL 11244 label('andvl#13') andvl#13: 2bc5 1400 ld $00,y 11245 ld(0,Y) #13 2bc6 00f8 ld $f8 11246 ld(min(0,maxTicks-46/2)) #14 2bc7 8115 adda [$15] 11247 adda([vTicks]) #15 2bc8 e8e4 blt .andvl#18 11248 blt('.andvl#18') #16 not enough time left, so retry 2bc9 0d00 ld [y,x] 11249 ld([Y,X]) #17 src.0 2bca de00 st [y,x++] 11250 st([Y,Xpp]) #18 2bcb c2b0 st [$b0] 11251 st([0xB0]) #19 2bcc 0d00 ld [y,x] 11252 ld([Y,X]) #20 src.1 2bcd de00 st [y,x++] 11253 st([Y,Xpp]) #21 2bce c2b1 st [$b1] 11254 st([0xB1]) #22 2bcf 0d00 ld [y,x] 11255 ld([Y,X]) #23 src.2 2bd0 de00 st [y,x++] 11256 st([Y,Xpp]) #24 2bd1 c2b2 st [$b2] 11257 st([0xB2]) #25 2bd2 0500 ld [x] 11258 ld([X]) #26 src.3 2bd3 c2b3 st [$b3] 11259 st([0xB3]) #27 2bd4 112b ld [$2b],x 11260 ld([sysArgs+7],X) #28 2bd5 0500 ld [x] 11261 ld([X]) #29 dst.0 2bd6 21b0 anda [$b0] 11262 anda([0xB0]) #30 2bd7 de00 st [y,x++] 11263 st([Y,Xpp]) #31 dst.0 &= src.0 2bd8 0500 ld [x] 11264 ld([X]) #32 dst.1 2bd9 21b1 anda [$b1] 11265 anda([0xB1]) #33 2bda de00 st [y,x++] 11266 st([Y,Xpp]) #34 dst.1 &= src.1 2bdb 0500 ld [x] 11267 ld([X]) #35 dst.2 2bdc 21b2 anda [$b2] 11268 anda([0xB2]) #36 2bdd de00 st [y,x++] 11269 st([Y,Xpp]) #37 dst.2 &= src.2 2bde 0500 ld [x] 11270 ld([X]) #38 dst.3 2bdf 21b3 anda [$b3] 11271 anda([0xB3]) #39 2be0 de00 st [y,x++] 11272 st([Y,Xpp]) #40 dst.3 &= src.3 2be1 1403 ld $03,y 11273 ld(hi('REENTER'),Y) #41 2be2 e0cb jmp y,$cb 11274 jmp(Y,'REENTER') #42 2be3 00e9 ld $e9 11275 ld(-46/2) #43 11276 11277 label('.andvl#18') .andvl#18: 2be4 0021 ld $21 11278 ld(hi('PREFX3_PAGE')) #18 ENTER is at $(n-1)ff, where n = instruction page 2be5 c202 st [$02] 11279 st([vCpuSelect]) #19 restore PREFX3 instruction page 2be6 9401 adda $01,y 11280 adda(1,Y) #20 retry instruction 2be7 e000 jmp y,$00 11281 jmp(Y,'NEXTY') #21 2be8 00f4 ld $f4 11282 ld(-24/2) #22 11283 11284 2be9 0200 nop 11285 fillers(until=0xff) 2bea 0200 nop 2beb 0200 nop * 22 times 2bff 0200 nop 11286 align(0x100, size=0x100) 11287 11288 #----------------------------------------------------------------------- 11289 # More vCPU instruction implementations, (0x2C00) 11290 #----------------------------------------------------------------------- 11291 # 11292 # ORVL 11293 label('orvl#13') orvl#13: 2c00 1400 ld $00,y 11294 ld(0,Y) #13 2c01 00f8 ld $f8 11295 ld(min(0,maxTicks-46/2)) #14 2c02 8115 adda [$15] 11296 adda([vTicks]) #15 2c03 e81f blt .orvl#18 11297 blt('.orvl#18') #16 not enough time left, so retry 2c04 0d00 ld [y,x] 11298 ld([Y,X]) #17 src.0 2c05 de00 st [y,x++] 11299 st([Y,Xpp]) #18 2c06 c2b0 st [$b0] 11300 st([0xB0]) #19 2c07 0d00 ld [y,x] 11301 ld([Y,X]) #20 src.1 2c08 de00 st [y,x++] 11302 st([Y,Xpp]) #21 2c09 c2b1 st [$b1] 11303 st([0xB1]) #22 2c0a 0d00 ld [y,x] 11304 ld([Y,X]) #23 src.2 2c0b de00 st [y,x++] 11305 st([Y,Xpp]) #24 2c0c c2b2 st [$b2] 11306 st([0xB2]) #25 2c0d 0500 ld [x] 11307 ld([X]) #26 src.3 2c0e c2b3 st [$b3] 11308 st([0xB3]) #27 2c0f 112b ld [$2b],x 11309 ld([sysArgs+7],X) #28 2c10 0500 ld [x] 11310 ld([X]) #29 dst.0 2c11 41b0 ora [$b0] 11311 ora([0xB0]) #30 2c12 de00 st [y,x++] 11312 st([Y,Xpp]) #31 dst.0 |= src.0 2c13 0500 ld [x] 11313 ld([X]) #32 dst.1 2c14 41b1 ora [$b1] 11314 ora([0xB1]) #33 2c15 de00 st [y,x++] 11315 st([Y,Xpp]) #34 dst.1 |= src.1 2c16 0500 ld [x] 11316 ld([X]) #35 dst.2 2c17 41b2 ora [$b2] 11317 ora([0xB2]) #36 2c18 de00 st [y,x++] 11318 st([Y,Xpp]) #37 dst.2 |= src.2 2c19 0500 ld [x] 11319 ld([X]) #38 dst.3 2c1a 41b3 ora [$b3] 11320 ora([0xB3]) #39 2c1b de00 st [y,x++] 11321 st([Y,Xpp]) #40 dst.3 |= src.3 2c1c 1403 ld $03,y 11322 ld(hi('REENTER'),Y) #41 2c1d e0cb jmp y,$cb 11323 jmp(Y,'REENTER') #42 2c1e 00e9 ld $e9 11324 ld(-46/2) #43 11325 11326 label('.orvl#18') .orvl#18: 2c1f 0021 ld $21 11327 ld(hi('PREFX3_PAGE')) #18 ENTER is at $(n-1)ff, where n = instruction page 2c20 c202 st [$02] 11328 st([vCpuSelect]) #19 restore PREFX3 instruction page 2c21 9401 adda $01,y 11329 adda(1,Y) #20 retry instruction 2c22 e000 jmp y,$00 11330 jmp(Y,'NEXTY') #21 2c23 00f4 ld $f4 11331 ld(-24/2) #22 11332 11333 11334 # XORVL 11335 label('xorvl#13') xorvl#13: 2c24 1400 ld $00,y 11336 ld(0,Y) #13 2c25 00f8 ld $f8 11337 ld(min(0,maxTicks-46/2)) #14 2c26 8115 adda [$15] 11338 adda([vTicks]) #15 2c27 e843 blt .xorvl#18 11339 blt('.xorvl#18') #16 not enough time left, so retry 2c28 0d00 ld [y,x] 11340 ld([Y,X]) #17 src.0 2c29 de00 st [y,x++] 11341 st([Y,Xpp]) #18 2c2a c2b0 st [$b0] 11342 st([0xB0]) #19 2c2b 0d00 ld [y,x] 11343 ld([Y,X]) #20 src.1 2c2c de00 st [y,x++] 11344 st([Y,Xpp]) #21 2c2d c2b1 st [$b1] 11345 st([0xB1]) #22 2c2e 0d00 ld [y,x] 11346 ld([Y,X]) #23 src.2 2c2f de00 st [y,x++] 11347 st([Y,Xpp]) #24 2c30 c2b2 st [$b2] 11348 st([0xB2]) #25 2c31 0500 ld [x] 11349 ld([X]) #26 src.3 2c32 c2b3 st [$b3] 11350 st([0xB3]) #27 2c33 112b ld [$2b],x 11351 ld([sysArgs+7],X) #28 2c34 0500 ld [x] 11352 ld([X]) #29 dst.0 2c35 61b0 xora [$b0] 11353 xora([0xB0]) #30 2c36 de00 st [y,x++] 11354 st([Y,Xpp]) #31 dst.0 ^= src.0 2c37 0500 ld [x] 11355 ld([X]) #32 dst.1 2c38 61b1 xora [$b1] 11356 xora([0xB1]) #33 2c39 de00 st [y,x++] 11357 st([Y,Xpp]) #34 dst.1 ^= src.1 2c3a 0500 ld [x] 11358 ld([X]) #35 dst.2 2c3b 61b2 xora [$b2] 11359 xora([0xB2]) #36 2c3c de00 st [y,x++] 11360 st([Y,Xpp]) #37 dst.2 ^= src.2 2c3d 0500 ld [x] 11361 ld([X]) #38 dst.3 2c3e 61b3 xora [$b3] 11362 xora([0xB3]) #39 2c3f de00 st [y,x++] 11363 st([Y,Xpp]) #40 dst.3 ^= src.3 2c40 1403 ld $03,y 11364 ld(hi('REENTER'),Y) #41 2c41 e0cb jmp y,$cb 11365 jmp(Y,'REENTER') #42 2c42 00e9 ld $e9 11366 ld(-46/2) #43 11367 11368 label('.xorvl#18') .xorvl#18: 2c43 0021 ld $21 11369 ld(hi('PREFX3_PAGE')) #18 ENTER is at $(n-1)ff, where n = instruction page 2c44 c202 st [$02] 11370 st([vCpuSelect]) #19 restore PREFX3 instruction page 2c45 9401 adda $01,y 11371 adda(1,Y) #20 retry instruction 2c46 e000 jmp y,$00 11372 jmp(Y,'NEXTY') #21 2c47 00f4 ld $f4 11373 ld(-24/2) #22 11374 11375 11376 # LSRV implementation 11377 label('lsrv#13') lsrv#13: 2c48 d22b st [$2b],x 11378 st([sysArgs+7],X) #13 var address 2c49 00f3 ld $f3 11379 ld(min(0,maxTicks-56/2)) #14 2c4a 8115 adda [$15] 11380 adda([vTicks]) #15 2c4b e865 blt .lsrv#18 11381 blt('.lsrv#18') #16 not enough time left, so retry 2c4c 1405 ld $05,y 11382 ld(hi('shiftTable'),Y) #17 (ac >> 1) table 2c4d 00bd ld $bd 11383 ld('.lsrv#27') #18 continuation address 2c4e c21d st [$1d] 11384 st([vTmp]) #19 2c4f 0500 ld [x] 11385 ld([X]) #20 load byte from var 2c50 20fe anda $fe 11386 anda(0xfe) #21 2c51 e200 jmp y,ac 11387 jmp(Y,AC) #22 2c52 fcff bra $ff 11388 bra(255) #23 bra shiftTable+255 11389 # continues in page 0x0600 at label('.lsrv#27') fetching shifted byte from 0x0500 11390 11391 label('.lsrv#30') .lsrv#30: 2c53 012b ld [$2b] 11392 ld([sysArgs+7]) #30 low byte address 2c54 8001 adda $01 11393 adda(1) #31 2c55 d22a st [$2a],x 11394 st([sysArgs+6],X) #32 high byte address 2c56 0500 ld [x] 11395 ld([X]) #33 bit 0 of high byte 2c57 2001 anda $01 11396 anda(1) #34 2c58 807f adda $7f 11397 adda(127) #35 2c59 2080 anda $80 11398 anda(128) #36 2c5a 112b ld [$2b],x 11399 ld([sysArgs+7],X) #37 2c5b 4500 ora [x] 11400 ora([X]) #38 2c5c c600 st [x] 11401 st([X]) #39 transfer to bit 7 of low byte 2c5d 1405 ld $05,y 11402 ld(hi('shiftTable'),Y) #40 (ac >> 1) table 2c5e 00c0 ld $c0 11403 ld('.lsrv#51') #41 continuation address 2c5f c21d st [$1d] 11404 st([vTmp]) #42 2c60 112a ld [$2a],x 11405 ld([sysArgs+6],X) #43 2c61 0500 ld [x] 11406 ld([X]) #44 2c62 20fe anda $fe 11407 anda(0b11111110) #45 2c63 e200 jmp y,ac 11408 jmp(Y,AC) #46 2c64 fcff bra $ff 11409 bra(255) #47 bra shiftTable+255 11410 # continues in page 0x0600 at label('.lsrv#51') fetching shifted byte from 0x0500 11411 11412 label('.lsrv#18') .lsrv#18: 2c65 0022 ld $22 11413 ld(hi('PREFX2_PAGE')) #18 ENTER is at $(n-1)ff, where n = instruction page 2c66 c202 st [$02] 11414 st([vCpuSelect]) #19 restore PREFX2 instruction page 2c67 9401 adda $01,y 11415 adda(1,Y) #20 retry instruction 2c68 e000 jmp y,$00 11416 jmp(Y,'NEXTY') #21 2c69 00f4 ld $f4 11417 ld(-24/2) #22 11418 #ld([vPC]) #18 retry instruction 11419 #suba(2) #19 11420 #st([vPC]) #20 11421 #ld(hi('REENTER'),Y) #21 11422 #jmp(Y,'REENTER') #22 11423 #ld(-26/2) #23 11424 11425 11426 # LSRVL implementation 11427 label('lsrvl#13') lsrvl#13: 2c6a 1405 ld $05,y 11428 ld(hi('shiftTable'),Y) #13 (ac >> 1) table 2c6b 00db ld $db 11429 ld(min(0,maxTicks-104/2)) #14 2c6c 8115 adda [$15] 11430 adda([vTicks]) #15 2c6d e8aa blt .lsrvl#18 11431 blt('.lsrvl#18') #16 not enough time left, so retry 2c6e 00c4 ld $c4 11432 ld('.lsrvl#26') #17 continuation address 2c6f c21d st [$1d] 11433 st([vTmp]) #18 2c70 0500 ld [x] 11434 ld([X]) #19 load byte 0 from var 2c71 20fe anda $fe 11435 anda(0xfe) #20 2c72 e200 jmp y,ac 11436 jmp(Y,AC) #21 2c73 fcff bra $ff 11437 bra(255) #22 bra shiftTable+255 11438 # continues in page 0x0600 at label('.lsrvl#26') fetching shifted byte from 0x0500 11439 11440 label('.lsrvl#29') .lsrvl#29: 2c74 012b ld [$2b] 11441 ld([sysArgs+7]) #29 byte 0 address 2c75 8001 adda $01 11442 adda(1) #30 2c76 d2b0 st [$b0],x 11443 st([0xB0],X) #31 byte 1 address 2c77 8001 adda $01 11444 adda(1) #32 2c78 c2b1 st [$b1] 11445 st([0xB1]) #33 byte 2 address 2c79 8001 adda $01 11446 adda(1) #34 2c7a c2b2 st [$b2] 11447 st([0xB2]) #35 byte 3 address 2c7b 0500 ld [x] 11448 ld([X]) #36 bit 0 of byte 1 2c7c 2001 anda $01 11449 anda(1) #37 2c7d 807f adda $7f 11450 adda(127) #38 2c7e 2080 anda $80 11451 anda(128) #39 2c7f 112b ld [$2b],x 11452 ld([sysArgs+7],X) #40 byte 0 address 2c80 4500 ora [x] 11453 ora([X]) #41 2c81 c600 st [x] 11454 st([X]) #42 transfer to bit 7 of byte 0 2c82 1405 ld $05,y 11455 ld(hi('shiftTable'),Y) #43 (ac >> 1) table 2c83 00c7 ld $c7 11456 ld('.lsrvl#54') #44 continuation address 2c84 c21d st [$1d] 11457 st([vTmp]) #45 2c85 11b0 ld [$b0],x 11458 ld([0xB0],X) #46 byte 1 address 2c86 0500 ld [x] 11459 ld([X]) #47 2c87 20fe anda $fe 11460 anda(0b11111110) #48 2c88 e200 jmp y,ac 11461 jmp(Y,AC) #49 2c89 fcff bra $ff 11462 bra(255) #50 bra shiftTable+255 11463 # continues in page 0x0600 at label('.lsrvl#54') fetching shifted byte from 0x0500 11464 11465 label('.lsrvl#57') .lsrvl#57: 2c8a 11b1 ld [$b1],x 11466 ld([0xB1],X) #57 byte 2 address 2c8b 0500 ld [x] 11467 ld([X]) #58 bit 0 of byte 2 2c8c 2001 anda $01 11468 anda(1) #59 2c8d 807f adda $7f 11469 adda(127) #60 2c8e 2080 anda $80 11470 anda(128) #61 2c8f 11b0 ld [$b0],x 11471 ld([0xB0],X) #62 byte 1 address 2c90 4500 ora [x] 11472 ora([X]) #63 2c91 c600 st [x] 11473 st([X]) #64 transfer to bit 7 of byte 1 2c92 1405 ld $05,y 11474 ld(hi('shiftTable'),Y) #65 (ac >> 1) table 2c93 00ca ld $ca 11475 ld('.lsrvl#76') #66 continuation address 2c94 c21d st [$1d] 11476 st([vTmp]) #67 2c95 11b1 ld [$b1],x 11477 ld([0xB1],X) #68 byte 2 address 2c96 0500 ld [x] 11478 ld([X]) #69 2c97 20fe anda $fe 11479 anda(0b11111110) #70 2c98 e200 jmp y,ac 11480 jmp(Y,AC) #71 2c99 fcff bra $ff 11481 bra(255) #72 bra shiftTable+255 11482 # continues in page 0x0600 at label('.lsrvl#76') fetching shifted byte from 0x0500 11483 11484 label('.lsrvl#79') .lsrvl#79: 2c9a 11b2 ld [$b2],x 11485 ld([0xB2],X) #79 byte 3 address 2c9b 0500 ld [x] 11486 ld([X]) #80 bit 0 of byte 3 2c9c 2001 anda $01 11487 anda(1) #81 2c9d 807f adda $7f 11488 adda(127) #82 2c9e 2080 anda $80 11489 anda(128) #83 2c9f 11b1 ld [$b1],x 11490 ld([0xB1],X) #84 byte 2 address 2ca0 4500 ora [x] 11491 ora([X]) #85 2ca1 c600 st [x] 11492 st([X]) #86 transfer to bit 7 of byte 2 2ca2 1405 ld $05,y 11493 ld(hi('shiftTable'),Y) #87 (ac >> 1) table 2ca3 00cd ld $cd 11494 ld('.lsrvl#98') #88 continuation address 2ca4 c21d st [$1d] 11495 st([vTmp]) #89 2ca5 11b2 ld [$b2],x 11496 ld([0xB2],X) #90 byte 3 address 2ca6 0500 ld [x] 11497 ld([X]) #91 2ca7 20fe anda $fe 11498 anda(0b11111110) #92 2ca8 e200 jmp y,ac 11499 jmp(Y,AC) #93 2ca9 fcff bra $ff 11500 bra(255) #94 bra shiftTable+255 11501 # continues in page 0x0600 at label('.lsrvl#98') fetching shifted byte from 0x0500 11502 11503 label('.lsrvl#18') .lsrvl#18: 2caa 0022 ld $22 11504 ld(hi('PREFX2_PAGE')) #18 ENTER is at $(n-1)ff, where n = instruction page 2cab c202 st [$02] 11505 st([vCpuSelect]) #19 restore PREFX2 instruction page 2cac 9401 adda $01,y 11506 adda(1,Y) #20 retry instruction 2cad e000 jmp y,$00 11507 jmp(Y,'NEXTY') #21 2cae 00f4 ld $f4 11508 ld(-24/2) #22 11509 11510 11511 # LSLVL implementation 11512 label('lslvl#13') lslvl#13: 2caf 1400 ld $00,y 11513 ld(0,Y) #13 2cb0 00f3 ld $f3 11514 ld(min(0,maxTicks-56/2)) #14 2cb1 8115 adda [$15] 11515 adda([vTicks]) #15 2cb2 e8dd blt .lslvl#18 11516 blt('.lslvl#18') #16 not enough time left, so retry 2cb3 0500 ld [x] 11517 ld([X]) #17 2cb4 f4b7 bge $2cb7 11518 bge(pc()+3) #18 2cb5 fcb8 bra $2cb8 11519 bra(pc()+3) #19 2cb6 0001 ld $01 11520 ld(1) #20 2cb7 0000 ld $00 11521 ld(0) #20 2cb8 c2b0 st [$b0] 11522 st([0xB0]) #21 (var.0 & 0x80) >>7 2cb9 0500 ld [x] 11523 ld([X]) #22 2cba 8500 adda [x] 11524 adda([X]) #23 2cbb de00 st [y,x++] 11525 st([Y,Xpp]) #24 var.0 <<1 2cbc 0500 ld [x] 11526 ld([X]) #25 2cbd f4c0 bge $2cc0 11527 bge(pc()+3) #26 2cbe fcc1 bra $2cc1 11528 bra(pc()+3) #27 2cbf 0001 ld $01 11529 ld(1) #28 2cc0 0000 ld $00 11530 ld(0) #28 2cc1 c2b1 st [$b1] 11531 st([0xB1]) #29 (var.1 & 0x80) >>7 2cc2 0500 ld [x] 11532 ld([X]) #30 2cc3 8500 adda [x] 11533 adda([X]) #31 2cc4 41b0 ora [$b0] 11534 ora([0xB0]) #32 2cc5 de00 st [y,x++] 11535 st([Y,Xpp]) #33 (var.1 <<1) | [0xB0] 2cc6 0500 ld [x] 11536 ld([X]) #34 2cc7 f4ca bge $2cca 11537 bge(pc()+3) #35 2cc8 fccb bra $2ccb 11538 bra(pc()+3) #36 2cc9 0001 ld $01 11539 ld(1) #37 2cca 0000 ld $00 11540 ld(0) #37 2ccb c2b0 st [$b0] 11541 st([0xB0]) #38 (var.2 & 0x80) >>7 2ccc 0500 ld [x] 11542 ld([X]) #39 2ccd 8500 adda [x] 11543 adda([X]) #40 2cce 41b1 ora [$b1] 11544 ora([0xB1]) #41 2ccf de00 st [y,x++] 11545 st([Y,Xpp]) #42 (var.2 <<1) | [0xB1] 2cd0 0500 ld [x] 11546 ld([X]) #43 2cd1 f4d4 bge $2cd4 11547 bge(pc()+3) #44 2cd2 fcd5 bra $2cd5 11548 bra(pc()+3) #45 2cd3 0001 ld $01 11549 ld(1) #46 2cd4 0000 ld $00 11550 ld(0) #46 2cd5 c2b1 st [$b1] 11551 st([0xB1]) #47 (var.3 & 0x80) >>7 2cd6 0500 ld [x] 11552 ld([X]) #48 2cd7 8500 adda [x] 11553 adda([X]) #49 2cd8 41b0 ora [$b0] 11554 ora([0xB0]) #50 2cd9 de00 st [y,x++] 11555 st([Y,Xpp]) #51 (var.3 <<1) | [0xB0] 2cda 1403 ld $03,y 11556 ld(hi('NEXTY'),Y) #52 2cdb e000 jmp y,$00 11557 jmp(Y,'NEXTY') #53 2cdc 00e4 ld $e4 11558 ld(-56/2) #54 11559 11560 label('.lslvl#18') .lslvl#18: 2cdd 0022 ld $22 11561 ld(hi('PREFX2_PAGE')) #18 ENTER is at $(n-1)ff, where n = instruction page 2cde c202 st [$02] 11562 st([vCpuSelect]) #19 restore PREFX2 instruction page 2cdf 9401 adda $01,y 11563 adda(1,Y) #20 retry instruction 2ce0 e000 jmp y,$00 11564 jmp(Y,'NEXTY') #21 2ce1 00f4 ld $f4 11565 ld(-24/2) #22 11566 11567 2ce2 0200 nop 11568 fillers(until=0xff) 2ce3 0200 nop 2ce4 0200 nop * 29 times 2cff 0200 nop 11569 align(0x100, size=0x100) 11570 11571 #----------------------------------------------------------------------- 11572 # More vCPU instruction implementations, (0x2D00) 11573 #----------------------------------------------------------------------- 11574 # 11575 # JEQL implementation 11576 label('jeql#13') jeql#13: 2d00 1519 ld [$19],y 11577 ld([vAC+1],Y) #13 2d01 00fb ld $fb 11578 ld(min(0,maxTicks-40/2)) #14 2d02 8115 adda [$15] 11579 adda([vTicks]) #15 2d03 e81d blt .jeql#18 11580 blt('.jeql#18') #16 not enough time left, so retry 2d04 1118 ld [$18],x 11581 ld([vAC],X) #17 2d05 0d00 ld [y,x] 11582 ld([Y,X]) #18 2d06 de00 st [y,x++] 11583 st([Y,Xpp]) #19 2d07 c2b0 st [$b0] 11584 st([0xB0]) #20 [vAC].0 2d08 0d00 ld [y,x] 11585 ld([Y,X]) #21 2d09 de00 st [y,x++] 11586 st([Y,Xpp]) #22 2d0a c2b1 st [$b1] 11587 st([0xB1]) #23 [vAC].1 2d0b 0d00 ld [y,x] 11588 ld([Y,X]) #24 2d0c de00 st [y,x++] 11589 st([Y,Xpp]) #25 2d0d c2b2 st [$b2] 11590 st([0xB2]) #26 [vAC].2 2d0e 0d00 ld [y,x] 11591 ld([Y,X]) #27 [vAC].3 2d0f 41b2 ora [$b2] 11592 ora([0xB2]) #28 2d10 41b1 ora [$b1] 11593 ora([0xB1]) #29 2d11 41b0 ora [$b0] 11594 ora([0xB0]) #30 2d12 ec1a bne .jeql#33 11595 bne('.jeql#33') #31 if (vAC.3 OR vAC.2 OR vAC.1 OR vAC.0) != 0 2d13 012b ld [$2b] 11596 ld([sysArgs+7]) #32 address of branch destination 2d14 c216 st [$16] 11597 st([vPC]) #33 2d15 012a ld [$2a] 11598 ld([sysArgs+6]) #34 2d16 c217 st [$17] 11599 st([vPC+1]) #35 2d17 1403 ld $03,y 11600 ld(hi('NEXTY'),Y) #36 2d18 e000 jmp y,$00 11601 jmp(Y,'NEXTY') #37 2d19 00ec ld $ec 11602 ld(-40/2) #38 11603 11604 label('.jeql#33') .jeql#33: 2d1a 1403 ld $03,y 11605 ld(hi('REENTER'),Y) #33 2d1b e0cb jmp y,$cb 11606 jmp(Y,'REENTER') #34 2d1c 00ed ld $ed 11607 ld(-38/2) #35 11608 11609 label('.jeql#18') .jeql#18: 2d1d 0021 ld $21 11610 ld(hi('PREFX3_PAGE')) #18 ENTER is at $(n-1)ff, where n = instruction page 2d1e c202 st [$02] 11611 st([vCpuSelect]) #19 restore PREFX3 instruction page 2d1f 9401 adda $01,y 11612 adda(1,Y) #20 retry instruction 2d20 e000 jmp y,$00 11613 jmp(Y,'NEXTY') #21 2d21 00f4 ld $f4 11614 ld(-24/2) #22 11615 11616 11617 # JNEL implementation 11618 label('jnel#13') jnel#13: 2d22 1519 ld [$19],y 11619 ld([vAC+1],Y) #13 2d23 00fb ld $fb 11620 ld(min(0,maxTicks-40/2)) #14 2d24 8115 adda [$15] 11621 adda([vTicks]) #15 2d25 e83f blt .jnel#18 11622 blt('.jnel#18') #16 not enough time left, so retry 2d26 1118 ld [$18],x 11623 ld([vAC],X) #17 2d27 0d00 ld [y,x] 11624 ld([Y,X]) #18 2d28 de00 st [y,x++] 11625 st([Y,Xpp]) #19 2d29 c2b0 st [$b0] 11626 st([0xB0]) #20 [vAC].0 2d2a 0d00 ld [y,x] 11627 ld([Y,X]) #21 2d2b de00 st [y,x++] 11628 st([Y,Xpp]) #22 2d2c c2b1 st [$b1] 11629 st([0xB1]) #23 [vAC].1 2d2d 0d00 ld [y,x] 11630 ld([Y,X]) #24 2d2e de00 st [y,x++] 11631 st([Y,Xpp]) #25 2d2f c2b2 st [$b2] 11632 st([0xB2]) #26 [vAC].2 2d30 0d00 ld [y,x] 11633 ld([Y,X]) #27 [vAC].3 2d31 41b2 ora [$b2] 11634 ora([0xB2]) #28 2d32 41b1 ora [$b1] 11635 ora([0xB1]) #29 2d33 41b0 ora [$b0] 11636 ora([0xB0]) #30 2d34 f03c beq .jnel#33 11637 beq('.jnel#33') #31 if (vAC.3 OR vAC.2 OR vAC.1 OR vAC.0) == 0 2d35 012b ld [$2b] 11638 ld([sysArgs+7]) #32 address of branch destination 2d36 c216 st [$16] 11639 st([vPC]) #33 2d37 012a ld [$2a] 11640 ld([sysArgs+6]) #34 2d38 c217 st [$17] 11641 st([vPC+1]) #35 2d39 1403 ld $03,y 11642 ld(hi('NEXTY'),Y) #36 2d3a e000 jmp y,$00 11643 jmp(Y,'NEXTY') #37 2d3b 00ec ld $ec 11644 ld(-40/2) #38 11645 11646 label('.jnel#33') .jnel#33: 2d3c 1403 ld $03,y 11647 ld(hi('REENTER'),Y) #33 2d3d e0cb jmp y,$cb 11648 jmp(Y,'REENTER') #34 2d3e 00ed ld $ed 11649 ld(-38/2) #35 11650 11651 label('.jnel#18') .jnel#18: 2d3f 0021 ld $21 11652 ld(hi('PREFX3_PAGE')) #18 ENTER is at $(n-1)ff, where n = instruction page 2d40 c202 st [$02] 11653 st([vCpuSelect]) #19 restore PREFX3 instruction page 2d41 9401 adda $01,y 11654 adda(1,Y) #20 retry instruction 2d42 e000 jmp y,$00 11655 jmp(Y,'NEXTY') #21 2d43 00f4 ld $f4 11656 ld(-24/2) #22 11657 11658 11659 # JLTL implementation 11660 label('jltl#13') jltl#13: 2d44 1519 ld [$19],y 11661 ld([vAC+1],Y) #13 2d45 0118 ld [$18] 11662 ld([vAC]) #14 2d46 9003 adda $03,x 11663 adda(3,X) #15 2d47 0d00 ld [y,x] 11664 ld([Y,X]) #16 2d48 e84d blt .jltl#19 11665 blt('.jltl#19') #17 if [vAC.3] < 0 2d49 012b ld [$2b] 11666 ld([sysArgs+7]) #18 address of branch destination 2d4a 1403 ld $03,y 11667 ld(hi('REENTER'),Y) #19 2d4b e0cb jmp y,$cb 11668 jmp(Y,'REENTER') #20 2d4c 00f4 ld $f4 11669 ld(-24/2) #21 11670 11671 label('.jltl#19') .jltl#19: 2d4d c216 st [$16] 11672 st([vPC]) #19 2d4e 012a ld [$2a] 11673 ld([sysArgs+6]) #20 2d4f c217 st [$17] 11674 st([vPC+1]) #21 2d50 1403 ld $03,y 11675 ld(hi('NEXTY'),Y) #22 2d51 e000 jmp y,$00 11676 jmp(Y,'NEXTY') #23 2d52 00f3 ld $f3 11677 ld(-26/2) #24 11678 11679 11680 # JGTL implementation 11681 label('jgtl#13') jgtl#13: 2d53 1519 ld [$19],y 11682 ld([vAC+1],Y) #13 2d54 00fa ld $fa 11683 ld(min(0,maxTicks-42/2)) #14 2d55 8115 adda [$15] 11684 adda([vTicks]) #15 2d56 e875 blt .jgtl#18 11685 blt('.jgtl#18') #16 not enough time left, so retry 2d57 1118 ld [$18],x 11686 ld([vAC],X) #17 2d58 0d00 ld [y,x] 11687 ld([Y,X]) #18 2d59 de00 st [y,x++] 11688 st([Y,Xpp]) #19 2d5a c2b0 st [$b0] 11689 st([0xB0]) #20 [vAC].0 2d5b 0d00 ld [y,x] 11690 ld([Y,X]) #21 2d5c de00 st [y,x++] 11691 st([Y,Xpp]) #22 2d5d c2b1 st [$b1] 11692 st([0xB1]) #23 [vAC].1 2d5e 0d00 ld [y,x] 11693 ld([Y,X]) #24 2d5f de00 st [y,x++] 11694 st([Y,Xpp]) #25 2d60 c2b2 st [$b2] 11695 st([0xB2]) #26 [vAC].2 2d61 0d00 ld [y,x] 11696 ld([Y,X]) #27 2d62 c2b3 st [$b3] 11697 st([0xB3]) #28 [vAC].3 2d63 e86c blt .jgtl#31 11698 blt('.jgtl#31') #29 if [vAC.3] < 0 2d64 41b2 ora [$b2] 11699 ora([0xB2]) #30 2d65 41b1 ora [$b1] 11700 ora([0xB1]) #31 2d66 41b0 ora [$b0] 11701 ora([0xB0]) #32 2d67 ec6f bne .jgtl#35 11702 bne('.jgtl#35') #33 if (vAC.3 OR vAC.2 OR vAC.1 OR vAC.0) != 0 2d68 012b ld [$2b] 11703 ld([sysArgs+7]) #34 address of branch destination 2d69 1403 ld $03,y 11704 ld(hi('REENTER'),Y) #35 2d6a e0cb jmp y,$cb 11705 jmp(Y,'REENTER') #36 2d6b 00ec ld $ec 11706 ld(-40/2) #37 11707 11708 label('.jgtl#31') .jgtl#31: 2d6c 1403 ld $03,y 11709 ld(hi('REENTER'),Y) #31 2d6d e0cb jmp y,$cb 11710 jmp(Y,'REENTER') #32 2d6e 00ee ld $ee 11711 ld(-36/2) #33 11712 11713 label('.jgtl#35') .jgtl#35: 2d6f c216 st [$16] 11714 st([vPC]) #35 2d70 012a ld [$2a] 11715 ld([sysArgs+6]) #36 2d71 c217 st [$17] 11716 st([vPC+1]) #37 2d72 1403 ld $03,y 11717 ld(hi('NEXTY'),Y) #38 2d73 e000 jmp y,$00 11718 jmp(Y,'NEXTY') #39 2d74 00eb ld $eb 11719 ld(-42/2) #40 11720 11721 label('.jgtl#18') .jgtl#18: 2d75 0021 ld $21 11722 ld(hi('PREFX3_PAGE')) #18 ENTER is at $(n-1)ff, where n = instruction page 2d76 c202 st [$02] 11723 st([vCpuSelect]) #19 restore PREFX3 instruction page 2d77 9401 adda $01,y 11724 adda(1,Y) #20 retry instruction 2d78 e000 jmp y,$00 11725 jmp(Y,'NEXTY') #21 2d79 00f4 ld $f4 11726 ld(-24/2) #22 11727 11728 11729 # JLEL implementation 11730 label('jlel#13') jlel#13: 2d7a 1519 ld [$19],y 11731 ld([vAC+1],Y) #13 2d7b 00fa ld $fa 11732 ld(min(0,maxTicks-42/2)) #14 2d7c 8115 adda [$15] 11733 adda([vTicks]) #15 2d7d e8a0 blt .jlel#18 11734 blt('.jlel#18') #16 not enough time left, so retry 2d7e 1118 ld [$18],x 11735 ld([vAC],X) #17 2d7f 0d00 ld [y,x] 11736 ld([Y,X]) #18 2d80 de00 st [y,x++] 11737 st([Y,Xpp]) #19 2d81 c2b0 st [$b0] 11738 st([0xB0]) #20 [vAC].0 2d82 0d00 ld [y,x] 11739 ld([Y,X]) #21 2d83 de00 st [y,x++] 11740 st([Y,Xpp]) #22 2d84 c2b1 st [$b1] 11741 st([0xB1]) #23 [vAC].1 2d85 0d00 ld [y,x] 11742 ld([Y,X]) #24 2d86 de00 st [y,x++] 11743 st([Y,Xpp]) #25 2d87 c2b2 st [$b2] 11744 st([0xB2]) #26 [vAC].2 2d88 0d00 ld [y,x] 11745 ld([Y,X]) #27 2d89 c2b3 st [$b3] 11746 st([0xB3]) #28 [vAC].3 2d8a e893 blt .jlel#31 11747 blt('.jlel#31') #29 if [vAC.3] < 0 2d8b 41b2 ora [$b2] 11748 ora([0xB2]) #30 2d8c 41b1 ora [$b1] 11749 ora([0xB1]) #31 2d8d 41b0 ora [$b0] 11750 ora([0xB0]) #32 2d8e f09a beq .jlel#35 11751 beq('.jlel#35') #33 if (vAC.3 OR vAC.2 OR vAC.1 OR vAC.0) == 0 2d8f 012b ld [$2b] 11752 ld([sysArgs+7]) #34 address of branch destination 2d90 1403 ld $03,y 11753 ld(hi('REENTER'),Y) #35 2d91 e0cb jmp y,$cb 11754 jmp(Y,'REENTER') #36 2d92 00ec ld $ec 11755 ld(-40/2) #37 11756 11757 label('.jlel#31') .jlel#31: 2d93 012b ld [$2b] 11758 ld([sysArgs+7]) #31 address of branch destination 2d94 c216 st [$16] 11759 st([vPC]) #32 2d95 012a ld [$2a] 11760 ld([sysArgs+6]) #33 2d96 c217 st [$17] 11761 st([vPC+1]) #34 2d97 1403 ld $03,y 11762 ld(hi('REENTER'),Y) #35 2d98 e0cb jmp y,$cb 11763 jmp(Y,'REENTER') #36 2d99 00ec ld $ec 11764 ld(-40/2) #37 11765 11766 label('.jlel#35') .jlel#35: 2d9a c216 st [$16] 11767 st([vPC]) #35 2d9b 012a ld [$2a] 11768 ld([sysArgs+6]) #36 2d9c c217 st [$17] 11769 st([vPC+1]) #37 2d9d 1403 ld $03,y 11770 ld(hi('NEXTY'),Y) #38 2d9e e000 jmp y,$00 11771 jmp(Y,'NEXTY') #39 2d9f 00eb ld $eb 11772 ld(-42/2) #40 11773 11774 label('.jlel#18') .jlel#18: 2da0 0021 ld $21 11775 ld(hi('PREFX3_PAGE')) #18 ENTER is at $(n-1)ff, where n = instruction page 2da1 c202 st [$02] 11776 st([vCpuSelect]) #19 restore PREFX3 instruction page 2da2 9401 adda $01,y 11777 adda(1,Y) #20 retry instruction 2da3 e000 jmp y,$00 11778 jmp(Y,'NEXTY') #21 2da4 00f4 ld $f4 11779 ld(-24/2) #22 11780 11781 11782 # JGEL implementation 11783 label('jgel#13') jgel#13: 2da5 1519 ld [$19],y 11784 ld([vAC+1],Y) #13 2da6 0118 ld [$18] 11785 ld([vAC]) #14 2da7 9003 adda $03,x 11786 adda(3,X) #15 2da8 0d00 ld [y,x] 11787 ld([Y,X]) #16 2da9 e8b1 blt .jgel#19 11788 blt('.jgel#19') #17 if [vAC.3] < 0 2daa 012b ld [$2b] 11789 ld([sysArgs+7]) #18 address of branch destination 2dab c216 st [$16] 11790 st([vPC]) #19 2dac 012a ld [$2a] 11791 ld([sysArgs+6]) #20 2dad c217 st [$17] 11792 st([vPC+1]) #21 2dae 1403 ld $03,y 11793 ld(hi('NEXTY'),Y) #22 2daf e000 jmp y,$00 11794 jmp(Y,'NEXTY') #23 2db0 00f3 ld $f3 11795 ld(-26/2) #24 11796 11797 label('.jgel#19') .jgel#19: 2db1 1403 ld $03,y 11798 ld(hi('REENTER'),Y) #19 2db2 e0cb jmp y,$cb 11799 jmp(Y,'REENTER') #20 2db3 00f4 ld $f4 11800 ld(-24/2) #21 11801 11802 11803 # ADDVB implementation 11804 label('addvb#13') addvb#13: 2db4 1517 ld [$17],y 11805 ld([vPC+1],Y) #13 2db5 c21d st [$1d] 11806 st([vTmp]) #14 dst addr 2db6 de00 st [y,x++] 11807 st([Y,Xpp]) #15 2db7 00fd ld $fd 11808 ld(min(0,maxTicks-36/2)) #16 2db8 8115 adda [$15] 11809 adda([vTicks]) #17 2db9 e8ca blt .addvb#20 11810 blt('.addvb#20') #18 not enough time left, so retry 2dba 0d00 ld [y,x] 11811 ld([Y,X]) #19 2dbb de00 st [y,x++] 11812 st([Y,Xpp]) #20 2dbc c22b st [$2b] 11813 st([sysArgs+7]) #21 src1 addr 2dbd 0d00 ld [y,x] 11814 ld([Y,X]) #22 src0 addr 2dbe 1200 ld ac,x 11815 ld(AC,X) #23 2dbf 0500 ld [x] 11816 ld([X]) #24 src0.lo 2dc0 112b ld [$2b],x 11817 ld([sysArgs+7],X) #25 2dc1 8500 adda [x] 11818 adda([X]) #26 src0.lo + src1.lo 2dc2 111d ld [$1d],x 11819 ld([vTmp],X) #27 2dc3 c600 st [x] 11820 st([X]) #28 dst.lo = src0.lo + src1.lo 2dc4 0116 ld [$16] 11821 ld([vPC]) #29 2dc5 8002 adda $02 11822 adda(2) #30 2dc6 c216 st [$16] 11823 st([vPC]) #31 advance vPC by 2 2dc7 1403 ld $03,y 11824 ld(hi('NEXTY'),Y) #32 2dc8 e000 jmp y,$00 11825 jmp(Y,'NEXTY') #33 2dc9 00ee ld $ee 11826 ld(-36/2) #34 11827 11828 label('.addvb#20') .addvb#20: 2dca 0116 ld [$16] 11829 ld([vPC]) #20 retry instruction 2dcb a002 suba $02 11830 suba(2) #21 2dcc c216 st [$16] 11831 st([vPC]) #22 2dcd 1403 ld $03,y 11832 ld(hi('REENTER'),Y) #23 2dce e0cb jmp y,$cb 11833 jmp(Y,'REENTER') #24 2dcf 00f2 ld $f2 11834 ld(-28/2) #25 11835 11836 11837 # SUBVB implementation 11838 label('subvb#13') subvb#13: 2dd0 1517 ld [$17],y 11839 ld([vPC+1],Y) #13 2dd1 c21d st [$1d] 11840 st([vTmp]) #14 dst addr 2dd2 de00 st [y,x++] 11841 st([Y,Xpp]) #15 2dd3 00fd ld $fd 11842 ld(min(0,maxTicks-36/2)) #16 2dd4 8115 adda [$15] 11843 adda([vTicks]) #17 2dd5 e8ca blt .addvb#20 11844 blt('.addvb#20') #18 not enough time left, so retry, (reuse '.addvb#20') 2dd6 0d00 ld [y,x] 11845 ld([Y,X]) #19 2dd7 de00 st [y,x++] 11846 st([Y,Xpp]) #20 2dd8 c22b st [$2b] 11847 st([sysArgs+7]) #21 src1 addr 2dd9 0d00 ld [y,x] 11848 ld([Y,X]) #22 src0 addr 2dda 1200 ld ac,x 11849 ld(AC,X) #23 2ddb 0500 ld [x] 11850 ld([X]) #24 src0.lo 2ddc 112b ld [$2b],x 11851 ld([sysArgs+7],X) #25 2ddd a500 suba [x] 11852 suba([X]) #26 src0.lo - src1.lo 2dde 111d ld [$1d],x 11853 ld([vTmp],X) #27 2ddf c600 st [x] 11854 st([X]) #28 dst.lo = src0.lo - src1.lo 2de0 0116 ld [$16] 11855 ld([vPC]) #29 2de1 8002 adda $02 11856 adda(2) #30 2de2 c216 st [$16] 11857 st([vPC]) #31 advance vPC by 2 2de3 1403 ld $03,y 11858 ld(hi('NEXTY'),Y) #32 2de4 e000 jmp y,$00 11859 jmp(Y,'NEXTY') #33 2de5 00ee ld $ee 11860 ld(-36/2) #34 11861 11862 2de6 0200 nop 11863 fillers(until=0xff) 2de7 0200 nop 2de8 0200 nop * 25 times 2dff 0200 nop 11864 align(0x100, size=0x100) 11865 11866 #----------------------------------------------------------------------- 11867 # More vCPU instruction implementations, (0x2E00) 11868 #----------------------------------------------------------------------- 11869 # 11870 # ANDBI implementation 11871 label('andbi#13') andbi#13: 2e00 0500 ld [x] 11872 ld([X]) #13 2e01 212b anda [$2b] 11873 anda([sysArgs+7]) #14 immediate value 2e02 c600 st [x] 11874 st([X]) #15 2e03 1403 ld $03,y 11875 ld(hi('NEXTY'),Y) #16 2e04 e000 jmp y,$00 11876 jmp(Y,'NEXTY') #17 2e05 00f6 ld $f6 11877 ld(-20/2) #18 11878 11879 # ORBI implementation 11880 label('orbi#13') orbi#13: 2e06 0500 ld [x] 11881 ld([X]) #13 2e07 412b ora [$2b] 11882 ora([sysArgs+7]) #14 immediate value 2e08 c600 st [x] 11883 st([X]) #15 2e09 1403 ld $03,y 11884 ld(hi('NEXTY'),Y) #16 2e0a e000 jmp y,$00 11885 jmp(Y,'NEXTY') #17 2e0b 00f6 ld $f6 11886 ld(-20/2) #18 11887 11888 # XORBI implementation 11889 label('xorbi#13') xorbi#13: 2e0c 0500 ld [x] 11890 ld([X]) #13 2e0d 612b xora [$2b] 11891 xora([sysArgs+7]) #14 immediate value 2e0e c600 st [x] 11892 st([X]) #15 2e0f 1403 ld $03,y 11893 ld(hi('NEXTY'),Y) #16 2e10 e000 jmp y,$00 11894 jmp(Y,'NEXTY') #17 2e11 00f6 ld $f6 11895 ld(-20/2) #18 11896 11897 # ANDBK implementation 11898 label('andbk#13') andbk#13: 2e12 0500 ld [x] 11899 ld([X]) #13 2e13 212b anda [$2b] 11900 anda([sysArgs+7]) #14 immediate value 2e14 c218 st [$18] 11901 st([vAC]) #15 2e15 0000 ld $00 11902 ld(0) #16 2e16 c219 st [$19] 11903 st([vAC+1]) #17 clear high result 2e17 1403 ld $03,y 11904 ld(hi('NEXTY'),Y) #18 2e18 e000 jmp y,$00 11905 jmp(Y,'NEXTY') #19 2e19 00f5 ld $f5 11906 ld(-22/2) #20 11907 11908 # ORBK implementation 11909 label('orbk#13') orbk#13: 2e1a 0500 ld [x] 11910 ld([X]) #13 2e1b 412b ora [$2b] 11911 ora([sysArgs+7]) #14 immediate value 2e1c c218 st [$18] 11912 st([vAC]) #15 2e1d 0000 ld $00 11913 ld(0) #16 2e1e c219 st [$19] 11914 st([vAC+1]) #17 clear high result 2e1f 1403 ld $03,y 11915 ld(hi('NEXTY'),Y) #18 2e20 e000 jmp y,$00 11916 jmp(Y,'NEXTY') #19 2e21 00f5 ld $f5 11917 ld(-22/2) #20 11918 11919 # XORBK implementation 11920 label('xorbk#13') xorbk#13: 2e22 0500 ld [x] 11921 ld([X]) #13 2e23 612b xora [$2b] 11922 xora([sysArgs+7]) #14 immediate value 2e24 c218 st [$18] 11923 st([vAC]) #15 2e25 0000 ld $00 11924 ld(0) #16 2e26 c219 st [$19] 11925 st([vAC+1]) #17 clear high result 2e27 1403 ld $03,y 11926 ld(hi('NEXTY'),Y) #18 2e28 e000 jmp y,$00 11927 jmp(Y,'NEXTY') #19 2e29 00f5 ld $f5 11928 ld(-22/2) #20 11929 11930 # VADDBW implementation 11931 label('vaddbw#13') vaddbw#13: 2e2a 1400 ld $00,y 11932 ld(0,Y) #13 2e2b 0500 ld [x] 11933 ld([X]) #14 2e2c de00 st [y,x++] 11934 st([Y,Xpp]) #15 2e2d c2b0 st [$b0] 11935 st([0xB0]) #16 src.0 2e2e 0500 ld [x] 11936 ld([X]) #17 2e2f c2b1 st [$b1] 11937 st([0xB1]) #18 src.1 2e30 112b ld [$2b],x 11938 ld([sysArgs+7],X) #19 2e31 0500 ld [x] 11939 ld([X]) #20 2e32 81b0 adda [$b0] 11940 adda([0xB0]) #21 2e33 de00 st [y,x++] 11941 st([Y,Xpp]) #22 dst.0 += src.0 2e34 0500 ld [x] 11942 ld([X]) #23 2e35 81b1 adda [$b1] 11943 adda([0xB1]) #24 2e36 c600 st [x] 11944 st([X]) #25 dst.1 += src.1 2e37 1403 ld $03,y 11945 ld(hi('NEXTY'),Y) #26 2e38 e000 jmp y,$00 11946 jmp(Y,'NEXTY') #27 2e39 00f1 ld $f1 11947 ld(-30/2) #28 11948 11949 # VSUBBW implementation 11950 label('vsubbw#13') vsubbw#13: 2e3a 1400 ld $00,y 11951 ld(0,Y) #13 2e3b 0500 ld [x] 11952 ld([X]) #14 2e3c de00 st [y,x++] 11953 st([Y,Xpp]) #15 2e3d c2b0 st [$b0] 11954 st([0xB0]) #16 src.0 2e3e 0500 ld [x] 11955 ld([X]) #17 2e3f c2b1 st [$b1] 11956 st([0xB1]) #18 src.1 2e40 112b ld [$2b],x 11957 ld([sysArgs+7],X) #19 2e41 0500 ld [x] 11958 ld([X]) #20 2e42 a1b0 suba [$b0] 11959 suba([0xB0]) #21 2e43 de00 st [y,x++] 11960 st([Y,Xpp]) #22 dst.0 -= src.0 2e44 0500 ld [x] 11961 ld([X]) #23 2e45 a1b1 suba [$b1] 11962 suba([0xB1]) #24 2e46 c600 st [x] 11963 st([X]) #25 dst.1 -= src.1 2e47 1403 ld $03,y 11964 ld(hi('NEXTY'),Y) #26 2e48 e000 jmp y,$00 11965 jmp(Y,'NEXTY') #27 2e49 00f1 ld $f1 11966 ld(-30/2) #28 11967 11968 # PACKAW implementation 11969 label('packaw#13') packaw#13: 2e4a c21d st [$1d] 11970 st([vTmp]) #13 src1 addr 2e4b 1517 ld [$17],y 11971 ld([vPC+1],Y) #14 2e4c de00 st [y,x++] 11972 st([Y,Xpp]) #15 2e4d 0d00 ld [y,x] 11973 ld([Y,X]) #16 src0 addr 2e4e 1200 ld ac,x 11974 ld(AC,X) #17 2e4f 0500 ld [x] 11975 ld([X]) #18 2e50 c218 st [$18] 11976 st([vAC]) #19 vAC.lo = src0.lo 2e51 111d ld [$1d],x 11977 ld([vTmp],X) #20 2e52 0500 ld [x] 11978 ld([X]) #21 2e53 c219 st [$19] 11979 st([vAC+1]) #22 vAC.hi = src1.lo 2e54 0116 ld [$16] 11980 ld([vPC]) #23 2e55 8001 adda $01 11981 adda(1) #24 2e56 c216 st [$16] 11982 st([vPC]) #25 advance vPC by 1 2e57 1403 ld $03,y 11983 ld(hi('NEXTY'),Y) #26 2e58 e000 jmp y,$00 11984 jmp(Y,'NEXTY') #27 2e59 00f1 ld $f1 11985 ld(-30/2) #28 11986 11987 11988 # PACKVW implementation 11989 label('packvw#13') packvw#13: 2e5a 1517 ld [$17],y 11990 ld([vPC+1],Y) #13 2e5b c21d st [$1d] 11991 st([vTmp]) #14 var addr 2e5c de00 st [y,x++] 11992 st([Y,Xpp]) #15 2e5d 00fa ld $fa 11993 ld(min(0,maxTicks-42/2)) #16 2e5e 8115 adda [$15] 11994 adda([vTicks]) #17 2e5f e876 blt .packvw#20 11995 blt('.packvw#20') #18 not enough time left, so retry 2e60 0d00 ld [y,x] 11996 ld([Y,X]) #19 src1 addr 2e61 de00 st [y,x++] 11997 st([Y,Xpp]) #20 2e62 c2b1 st [$b1] 11998 st([0xB1]) #21 0xB1 = src1 addr 2e63 0d00 ld [y,x] 11999 ld([Y,X]) #22 src0 addr 2e64 1200 ld ac,x 12000 ld(AC,X) #23 2e65 0500 ld [x] 12001 ld([X]) #24 2e66 c2b0 st [$b0] 12002 st([0xB0]) #25 src0.lo 2e67 11b1 ld [$b1],x 12003 ld([0xB1],X) #26 2e68 0500 ld [x] 12004 ld([X]) #27 2e69 c2b1 st [$b1] 12005 st([0xB1]) #28 src1.lo 2e6a 1400 ld $00,y 12006 ld(0,Y) #29 2e6b 111d ld [$1d],x 12007 ld([vTmp],X) #30 2e6c 01b0 ld [$b0] 12008 ld([0xB0]) #31 2e6d de00 st [y,x++] 12009 st([Y,Xpp]) #32 var.lo = src0.lo 2e6e 01b1 ld [$b1] 12010 ld([0xB1]) #33 2e6f c600 st [x] 12011 st([X]) #34 var.hi = src1.lo 2e70 0116 ld [$16] 12012 ld([vPC]) #35 2e71 8002 adda $02 12013 adda(2) #36 2e72 c216 st [$16] 12014 st([vPC]) #37 advance vPC by 2 2e73 1403 ld $03,y 12015 ld(hi('NEXTY'),Y) #38 2e74 e000 jmp y,$00 12016 jmp(Y,'NEXTY') #39 2e75 00eb ld $eb 12017 ld(-42/2) #40 12018 12019 label('.packvw#20') .packvw#20: 2e76 0116 ld [$16] 12020 ld([vPC]) #20 retry instruction 2e77 a002 suba $02 12021 suba(2) #21 2e78 c216 st [$16] 12022 st([vPC]) #22 2e79 1403 ld $03,y 12023 ld(hi('REENTER'),Y) #23 2e7a e0cb jmp y,$cb 12024 jmp(Y,'REENTER') #24 2e7b 00f2 ld $f2 12025 ld(-28/2) #25 12026 12027 12028 # CNVXY implementation 12029 label('cnvxy#13') cnvxy#13: 2e7c 1517 ld [$17],y 12030 ld([vPC+1],Y) #13 2e7d c21d st [$1d] 12031 st([vTmp]) #14 var addr 2e7e de00 st [y,x++] 12032 st([Y,Xpp]) #15 2e7f 00f9 ld $f9 12033 ld(min(0,maxTicks-44/2)) #16 2e80 8115 adda [$15] 12034 adda([vTicks]) #17 2e81 e899 blt .cnvxy#20 12035 blt('.cnvxy#20') #18 not enough time left, so retry 2e82 0d00 ld [y,x] 12036 ld([Y,X]) #19 src1 addr 2e83 de00 st [y,x++] 12037 st([Y,Xpp]) #20 2e84 c2b1 st [$b1] 12038 st([0xB1]) #21 0xB1 = src1 addr 2e85 0d00 ld [y,x] 12039 ld([Y,X]) #22 src0 addr 2e86 1200 ld ac,x 12040 ld(AC,X) #23 2e87 0500 ld [x] 12041 ld([X]) #24 2e88 c2b0 st [$b0] 12042 st([0xB0]) #25 src0.lo 2e89 11b1 ld [$b1],x 12043 ld([0xB1],X) #26 2e8a 0500 ld [x] 12044 ld([X]) #27 2e8b c2b1 st [$b1] 12045 st([0xB1]) #28 src1.lo 2e8c 1400 ld $00,y 12046 ld(0,Y) #29 2e8d 111d ld [$1d],x 12047 ld([vTmp],X) #30 2e8e 01b0 ld [$b0] 12048 ld([0xB0]) #31 2e8f de00 st [y,x++] 12049 st([Y,Xpp]) #32 var.lo = src0.lo 2e90 01b1 ld [$b1] 12050 ld([0xB1]) #33 2e91 8008 adda $08 12051 adda(8) #34 2e92 c600 st [x] 12052 st([X]) #35 var.hi = src1.lo + 8 2e93 0116 ld [$16] 12053 ld([vPC]) #36 2e94 8002 adda $02 12054 adda(2) #37 2e95 c216 st [$16] 12055 st([vPC]) #38 advance vPC by 2 2e96 1403 ld $03,y 12056 ld(hi('REENTER'),Y) #39 2e97 e0cb jmp y,$cb 12057 jmp(Y,'REENTER') #40 2e98 00ea ld $ea 12058 ld(-44/2) #41 12059 12060 label('.cnvxy#20') .cnvxy#20: 2e99 0116 ld [$16] 12061 ld([vPC]) #20 retry instruction 2e9a a002 suba $02 12062 suba(2) #21 2e9b c216 st [$16] 12063 st([vPC]) #22 2e9c 1403 ld $03,y 12064 ld(hi('REENTER'),Y) #23 2e9d e0cb jmp y,$cb 12065 jmp(Y,'REENTER') #24 2e9e 00f2 ld $f2 12066 ld(-28/2) #25 12067 12068 12069 # LDWM implementation 12070 label('ldwm#13') ldwm#13: 2e9f c21d st [$1d] 12071 st([vTmp]) #13 addr.lo 2ea0 de00 st [y,x++] 12072 st([Y,Xpp]) #14 2ea1 0d00 ld [y,x] 12073 ld([Y,X]) #15 2ea2 1600 ld ac,y 12074 ld(AC,Y) #16 addr.hi 2ea3 111d ld [$1d],x 12075 ld([vTmp],X) #17 2ea4 0d00 ld [y,x] 12076 ld([Y,X]) #18 2ea5 c218 st [$18] 12077 st([vAC]) #19 vAC.lo = peek(addr + 0) 2ea6 de00 st [y,x++] 12078 st([Y,Xpp]) #20 2ea7 0d00 ld [y,x] 12079 ld([Y,X]) #21 2ea8 c219 st [$19] 12080 st([vAC+1]) #22 vAC.hi = peek(addr + 1) 2ea9 0116 ld [$16] 12081 ld([vPC]) #23 2eaa 8001 adda $01 12082 adda(1) #24 2eab c216 st [$16] 12083 st([vPC]) #25 2eac 1403 ld $03,y 12084 ld(hi('NEXTY'),Y) #26 2ead e000 jmp y,$00 12085 jmp(Y,'NEXTY') #27 2eae 00f1 ld $f1 12086 ld(-30/2) #28 12087 12088 # STWM implementation 12089 label('stwm#13') stwm#13: 2eaf 1517 ld [$17],y 12090 ld([vPC+1],Y) #13 vPC.hi 2eb0 c21d st [$1d] 12091 st([vTmp]) #14 addr.lo 2eb1 de00 st [y,x++] 12092 st([Y,Xpp]) #15 2eb2 0d00 ld [y,x] 12093 ld([Y,X]) #16 2eb3 1600 ld ac,y 12094 ld(AC,Y) #17 addr.hi 2eb4 111d ld [$1d],x 12095 ld([vTmp],X) #18 2eb5 0118 ld [$18] 12096 ld([vAC]) #19 2eb6 de00 st [y,x++] 12097 st([Y,Xpp]) #20 2eb7 0119 ld [$19] 12098 ld([vAC+1]) #21 2eb8 ce00 st [y,x] 12099 st([Y,X]) #22 2eb9 0116 ld [$16] 12100 ld([vPC]) #23 2eba 8001 adda $01 12101 adda(1) #24 2ebb c216 st [$16] 12102 st([vPC]) #25 2ebc 1403 ld $03,y 12103 ld(hi('NEXTY'),Y) #26 2ebd e000 jmp y,$00 12104 jmp(Y,'NEXTY') #27 2ebe 00f1 ld $f1 12105 ld(-30/2) #28 12106 12107 12108 # DEEKR implementation 12109 label('deekr#13') deekr#13: 2ebf 1400 ld $00,y 12110 ld(0,Y) #13 2ec0 1200 ld ac,x 12111 ld(AC,X) #14 index var 2ec1 00f5 ld $f5 12112 ld(min(0,maxTicks-52/2)) #15 2ec2 8115 adda [$15] 12113 adda([vTicks]) #16 2ec3 e8e7 blt .deekr#19 12114 blt('.deekr#19') #17 not enough time left, so retry 2ec4 0500 ld [x] 12115 ld([X]) #18 2ec5 de00 st [y,x++] 12116 st([Y,Xpp]) #19 2ec6 c22a st [$2a] 12117 st([sysArgs+6]) #20 index.lo 2ec7 0500 ld [x] 12118 ld([X]) #21 2ec8 c22b st [$2b] 12119 st([sysArgs+7]) #22 index.hi 2ec9 012a ld [$2a] 12120 ld([sysArgs+6]) #23 2eca 3080 anda $80,x 12121 anda(0x80,X) #24 2ecb 812a adda [$2a] 12122 adda([sysArgs+6]) #25 2ecc c22a st [$2a] 12123 st([sysArgs+6]) #26 index.lo*2 2ecd 0500 ld [x] 12124 ld([X]) #27 msb index.lo 2ece 812b adda [$2b] 12125 adda([sysArgs+7]) #28 2ecf 812b adda [$2b] 12126 adda([sysArgs+7]) #29 2ed0 c22b st [$2b] 12127 st([sysArgs+7]) #30 index.hi*2 2ed1 0118 ld [$18] 12128 ld([vAC]) #31 2ed2 812a adda [$2a] 12129 adda([sysArgs+6]) #32 2ed3 c21d st [$1d] 12130 st([vTmp]) #33 vTmp = vAC.lo + index.lo 2ed4 e8d8 blt .deekr#36 12131 bmi('.deekr#36') #34 check carry 2ed5 a12a suba [$2a] 12132 suba([sysArgs+6]) #35 restore vAC.lo 2ed6 fcda bra .deekr#38 12133 bra('.deekr#38') #36 2ed7 412a ora [$2a] 12134 ora([sysArgs+6]) #37 carry in bit 7 12135 12136 label('.deekr#36') .deekr#36: 2ed8 212a anda [$2a] 12137 anda([sysArgs+6]) #36 carry in bit 7 2ed9 0200 nop 12138 nop() #37 12139 12140 label('.deekr#38') .deekr#38: 2eda 3080 anda $80,x 12141 anda(0x80,X) #38 2edb 0500 ld [x] 12142 ld([X]) #39 carry in bit 0 2edc 8119 adda [$19] 12143 adda([vAC+1]) #40 2edd 952b adda [$2b],y 12144 adda([sysArgs+7],Y) #41 Y = vAC.hi + index.hi + carry 2ede 111d ld [$1d],x 12145 ld([vTmp],X) #42 2edf 0d00 ld [y,x] 12146 ld([Y,X]) #43 2ee0 c218 st [$18] 12147 st([vAC]) #44 2ee1 de00 st [y,x++] 12148 st([Y,Xpp]) #45 2ee2 0d00 ld [y,x] 12149 ld([Y,X]) #46 2ee3 c219 st [$19] 12150 st([vAC+1]) #47 2ee4 1403 ld $03,y 12151 ld(hi('NEXTY'),Y) #48 2ee5 e000 jmp y,$00 12152 jmp(Y,'NEXTY') #49 2ee6 00e6 ld $e6 12153 ld(-52/2) #50 12154 12155 label('.deekr#19') .deekr#19: 2ee7 0116 ld [$16] 12156 ld([vPC]) #19 retry instruction 2ee8 a002 suba $02 12157 suba(2) #20 2ee9 c216 st [$16] 12158 st([vPC]) #21 2eea 1403 ld $03,y 12159 ld(hi('NEXTY'),Y) #22 2eeb e000 jmp y,$00 12160 jmp(Y,'NEXTY') #23 2eec 00f3 ld $f3 12161 ld(-26/2) #24 12162 12163 12164 # DOKER implementation 12165 #label('doker#13') 12166 #ld([vPC+1],Y) #13 vPC.hi 12167 #st([vTmp]) #14 var addr 12168 #st([Y,Xpp]) #15 12169 #ld(min(0,maxTicks-62/2)) #16 12170 #adda([vTicks]) #17 12171 #blt('.doker#20') #18 not enough time left, so retry 12172 #ld([Y,X]) #19 12173 #ld(AC,X) #20 idx addr 12174 #ld(0,Y) #21 12175 #ld([X]) #22 12176 #st([sysArgs+6]) #23 idx.lo 12177 #st([Y,Xpp]) #24 X++ 12178 #ld([X]) #25 12179 #st([sysArgs+7]) #26 idx.hi 12180 #ld([sysArgs+6]) #27 12181 #anda(0x80,X) #28 12182 #adda([sysArgs+6]) #29 12183 #st([sysArgs+6]) #30 idx.lo*2 12184 #ld([X]) #31 msb idx.lo 12185 #adda([sysArgs+7]) #32 12186 #adda([sysArgs+7]) #33 12187 #st([sysArgs+7]) #34 idx.hi*2 12188 #ld([vAC]) #35 12189 #adda([sysArgs+6]) #36 12190 #st([vAC]) #37 vAC.lo = vAC.lo + index.lo 12191 #bmi('.doker#40') #38 check carry 12192 #suba([sysArgs+6]) #39 restore vAC.lo 12193 #bra('.doker#42') #40 12194 #ora([sysArgs+6]) #41 carry in bit 7 12195 # 12196 #label('.doker#40') 12197 #anda([sysArgs+6]) #40 carry in bit 7 12198 #nop() #41 12199 # 12200 #label('.doker#42') 12201 #anda(0x80,X) #42 12202 #ld([X]) #43 carry in bit 0 12203 #adda([vAC+1]) #44 12204 #adda([sysArgs+7],Y) #45 Y = vAC.hi + index.hi + carry 12205 #st([vAC+1]) #46 for consistancy 12206 #ld([vTmp],X) #47 12207 #ld([X]) #48 var.lo 12208 #ld([vAC],X) #49 12209 #st([Y,X]) #50 poke [vAC], var.lo 12210 #ld([vTmp]) #51 12211 #adda(1,X) #52 12212 #ld([X]) #53 var.hi 12213 #st([vTmp]) #54 12214 #ld([vAC]) #55 12215 #adda(1,X) #56 12216 #ld([vTmp]) #57 12217 #st([Y,X]) #58 poke [vAC+1], var.hi 12218 #ld([vPC]) #59 12219 #adda(1) #60 12220 #st([vPC]) #61 12221 #ld(hi('NEXTY'),Y) #62 12222 #jmp(Y,'NEXTY') #63 12223 #ld(-66/2) #64 12224 # 12225 #label('.doker#20') 12226 #ld([vPC]) #20 retry instruction 12227 #suba(2) #21 12228 #st([vPC]) #22 12229 #ld(hi('REENTER'),Y) #23 12230 #jmp(Y,'REENTER') #24 12231 #ld(-28/2) #25 12232 12233 2eed 0200 nop 12234 fillers(until=0xff) 2eee 0200 nop 2eef 0200 nop * 18 times 2eff 0200 nop 12235 align(0x100, size=0x100) 12236 12237 #----------------------------------------------------------------------- 12238 # Implementation of SYS_CopyMemory[Ext], (0x2F00) 12239 #----------------------------------------------------------------------- 12240 # 12241 # SYS_CopyMemory_vX_80 implementation, (lb3361) 12242 label('sys_CopyMemory') sys_CopyMemory: 2f00 f83e ble .sysCm#20 12243 ble('.sysCm#20') #18 goto burst6 2f01 a006 suba $06 12244 suba(6) #19 2f02 f440 bge .sysCm#22 12245 bge('.sysCm#22') #20 goto burst6 2f03 1527 ld [$27],y 12246 ld([sysArgs+3],Y) #21 2f04 8003 adda $03 12247 adda(3) #22 2f05 f41d bge .sysCm#25 12248 bge('.sysCm#25') #23 goto burst3 2f06 1126 ld [$26],x 12249 ld([sysArgs+2],X) #24 12250 2f07 8002 adda $02 12251 adda(2) #25 single 2f08 c218 st [$18] 12252 st([vAC]) #26 2f09 0d00 ld [y,x] 12253 ld([Y,X]) #27 2f0a 1525 ld [$25],y 12254 ld([sysArgs+1],Y) #28 2f0b 1124 ld [$24],x 12255 ld([sysArgs+0],X) #29 2f0c ce00 st [y,x] 12256 st([Y,X]) #30 2f0d 0124 ld [$24] 12257 ld([sysArgs+0]) #31 2f0e 8001 adda $01 12258 adda(1) #32 2f0f c224 st [$24] 12259 st([sysArgs+0]) #33 2f10 0126 ld [$26] 12260 ld([sysArgs+2]) #34 2f11 8001 adda $01 12261 adda(1) #35 2f12 c226 st [$26] 12262 st([sysArgs+2]) #36 2f13 0118 ld [$18] 12263 ld([vAC]) #37 2f14 f017 beq $2f17 12264 beq(pc()+3) #38 2f15 fc18 bra $2f18 12265 bra(pc()+3) #39 2f16 00fe ld $fe 12266 ld(-2) #40 2f17 0000 ld $00 12267 ld(0) #40! 2f18 8116 adda [$16] 12268 adda([vPC]) #41 2f19 c216 st [$16] 12269 st([vPC]) #42 2f1a 1403 ld $03,y 12270 ld(hi('REENTER'),Y) #43 2f1b e0cb jmp y,$cb 12271 jmp(Y,'REENTER') #44 2f1c 00e8 ld $e8 12272 ld(-48/2) #45 12273 12274 label('.sysCm#25') .sysCm#25: 2f1d c218 st [$18] 12275 st([vAC]) #25 burst3 12276 for i in range(3): 2f1e 0d00 ld [y,x] 12277 ld([Y,X]) #26+3*i 2f1f c228 st [$28] 12278 st([sysArgs+4+i]) #27+3*i 2f20 de00 st [y,x++] 12279 st([Y,Xpp]) if i<2 else None #28+3*i 2f21 0d00 ld [y,x] 2f22 c229 st [$29] 2f23 de00 st [y,x++] 2f24 0d00 ld [y,x] 2f25 c22a st [$2a] 2f26 1525 ld [$25],y 12280 ld([sysArgs+1],Y) #34 2f27 1124 ld [$24],x 12281 ld([sysArgs+0],X) #35 12282 for i in range(3): 2f28 0128 ld [$28] 12283 ld([sysArgs+4+i]) #36+2*i 2f29 de00 st [y,x++] 12284 st([Y,Xpp]) #37+2*i 2f2a 0129 ld [$29] 2f2b de00 st [y,x++] 2f2c 012a ld [$2a] 2f2d de00 st [y,x++] 2f2e 0124 ld [$24] 12285 ld([sysArgs+0]) #42 2f2f 8003 adda $03 12286 adda(3) #43 2f30 c224 st [$24] 12287 st([sysArgs+0]) #44 2f31 0126 ld [$26] 12288 ld([sysArgs+2]) #45 2f32 8003 adda $03 12289 adda(3) #46 2f33 c226 st [$26] 12290 st([sysArgs+2]) #47 2f34 0118 ld [$18] 12291 ld([vAC]) #48 2f35 f038 beq $2f38 12292 beq(pc()+3) #49 2f36 fc39 bra $2f39 12293 bra(pc()+3) #50 2f37 00fe ld $fe 12294 ld(-2) #51 2f38 0000 ld $00 12295 ld(0) #51! 2f39 8116 adda [$16] 12296 adda([vPC]) #52 2f3a c216 st [$16] 12297 st([vPC]) #53 2f3b 1403 ld $03,y 12298 ld(hi('NEXTY'),Y) #54 2f3c e000 jmp y,$00 12299 jmp(Y,'NEXTY') #55 2f3d 00e3 ld $e3 12300 ld(-58/2) #56 12301 12302 label('.sysCm#20') .sysCm#20: 2f3e 0200 nop 12303 nop() #20 burst6 2f3f 1527 ld [$27],y 12304 ld([sysArgs+3],Y) #21 12305 label('.sysCm#22') .sysCm#22: 2f40 c218 st [$18] 12306 st([vAC]) #22 burst6 2f41 1126 ld [$26],x 12307 ld([sysArgs+2],X) #23 12308 for i in range(6): 2f42 0d00 ld [y,x] 12309 ld([Y,X]) #24+i*3 2f43 c21a st [$1a] 12310 st([vLR+i if i<2 else sysArgs+2+i]) #25+i*3 2f44 de00 st [y,x++] 12311 st([Y,Xpp]) if i<5 else None #26+i*3 if i<5 2f45 0d00 ld [y,x] 2f46 c21b st [$1b] 2f47 de00 st [y,x++] 2f48 0d00 ld [y,x] 2f49 c228 st [$28] 2f4a de00 st [y,x++] 2f4b 0d00 ld [y,x] 2f4c c229 st [$29] 2f4d de00 st [y,x++] 2f4e 0d00 ld [y,x] 2f4f c22a st [$2a] 2f50 de00 st [y,x++] 2f51 0d00 ld [y,x] 2f52 c22b st [$2b] 2f53 1525 ld [$25],y 12312 ld([sysArgs+1],Y) #41 2f54 1124 ld [$24],x 12313 ld([sysArgs+0],X) #42 12314 for i in range(6): 2f55 011a ld [$1a] 12315 ld([vLR+i if i<2 else sysArgs+2+i]) #43+i*2 2f56 de00 st [y,x++] 12316 st([Y,Xpp]) #44+i*2 2f57 011b ld [$1b] 2f58 de00 st [y,x++] 2f59 0128 ld [$28] 2f5a de00 st [y,x++] 2f5b 0129 ld [$29] 2f5c de00 st [y,x++] 2f5d 012a ld [$2a] 2f5e de00 st [y,x++] 2f5f 012b ld [$2b] 2f60 de00 st [y,x++] 2f61 0124 ld [$24] 12317 ld([sysArgs+0]) #55 2f62 8006 adda $06 12318 adda(6) #56 2f63 c224 st [$24] 12319 st([sysArgs+0]) #57 2f64 0126 ld [$26] 12320 ld([sysArgs+2]) #58 2f65 8006 adda $06 12321 adda(6) #59 2f66 c226 st [$26] 12322 st([sysArgs+2]) #60 12323 2f67 0118 ld [$18] 12324 ld([vAC]) #61 2f68 ec6c bne .sysCm#64 12325 bne('.sysCm#64') #62 2f69 1403 ld $03,y 12326 ld(hi('REENTER'),Y) #63 2f6a e0cb jmp y,$cb 12327 jmp(Y,'REENTER') #64 2f6b 00de ld $de 12328 ld(-68/2) #65 12329 12330 label('.sysCm#64') .sysCm#64: 2f6c 00e6 ld $e6 12331 ld(-52/2) #64 2f6d 8115 adda [$15] 12332 adda([vTicks]) #13 = 65 - 52 2f6e c215 st [$15] 12333 st([vTicks]) #14 2f6f 80e8 adda $e8 12334 adda(min(0,maxTicks-(26+52)/2)) #15 could probably be min(0,maxTicks-(26+52)/2) 12335 bge('sys_CopyMemory') #16 2f70 f400 bge sys_CopyMemory 2f71 0118 ld [$18] 12336 ld([vAC]) #17 2f72 00fe ld $fe 12337 ld(-2) #18 notime 2f73 8116 adda [$16] 12338 adda([vPC]) #19 2f74 c216 st [$16] 12339 st([vPC]) #20 2f75 1403 ld $03,y 12340 ld(hi('REENTER'),Y) #21 2f76 e0cb jmp y,$cb 12341 jmp(Y,'REENTER') #22 2f77 00f3 ld $f3 12342 ld(-26/2) #23 12343 12344 12345 # SYS_CopyMemoryExt_vX_100 implementation, (lb3361) 12346 label('sys_CopyMemoryExt') sys_CopyMemoryExt: 2f78 8200 adda ac 12347 adda(AC) #18 2f79 8200 adda ac 12348 adda(AC) #19 2f7a 403c ora $3c 12349 ora(0x3c) #20 2f7b c21d st [$1d] 12350 st([vTmp]) #21 [vTmp] = src ctrl value 2f7c 0119 ld [$19] 12351 ld([vAC+1]) #22 2f7d 20fc anda $fc 12352 anda(0xfc) #23 2f7e 403c ora $3c 12353 ora(0x3c) #24 2f7f c21a st [$1a] 12354 st([vLR]) #25 [vLR] = dest ctrl value 12355 12356 label('.sysCme#26') .sysCme#26: 2f80 0118 ld [$18] 12357 ld([vAC]) #26 2f81 f8a4 ble .sysCme#29 12358 ble('.sysCme#29') #27 goto burst5 2f82 a005 suba $05 12359 suba(5) #28 2f83 f4a6 bge .sysCme#31 12360 bge('.sysCme#31') #29 goto burst5 2f84 1527 ld [$27],y 12361 ld([sysArgs+3],Y) #30 2f85 8004 adda $04 12362 adda(4) #31 12363 2f86 c218 st [$18] 12364 st([vAC]) #32 single 2f87 111d ld [$1d],x 12365 ld([vTmp],X) #33 2f88 c500 ctrl x 12366 ctrl(X) #34 2f89 1126 ld [$26],x 12367 ld([sysArgs+2],X) #35 2f8a 0d00 ld [y,x] 12368 ld([Y,X]) #36 2f8b 111a ld [$1a],x 12369 ld([vLR],X) #37 2f8c c500 ctrl x 12370 ctrl(X) #38 2f8d 1525 ld [$25],y 12371 ld([sysArgs+1],Y) #39 2f8e 1124 ld [$24],x 12372 ld([sysArgs+0],X) #40 2f8f ce00 st [y,x] 12373 st([Y,X]) #41 2f90 1401 ld $01,y 12374 ld(hi(ctrlBits), Y) #42 2f91 09f8 ld [y,$f8] 12375 ld([Y,ctrlBits]) #43 2f92 1200 ld ac,x 12376 ld(AC,X) #44 2f93 c500 ctrl x 12377 ctrl(X) #45 2f94 0124 ld [$24] 12378 ld([sysArgs+0]) #46 2f95 8001 adda $01 12379 adda(1) #47 2f96 c224 st [$24] 12380 st([sysArgs+0]) #48 2f97 0126 ld [$26] 12381 ld([sysArgs+2]) #49 2f98 8001 adda $01 12382 adda(1) #50 2f99 c226 st [$26] 12383 st([sysArgs+2]) #51 2f9a 0118 ld [$18] 12384 ld([vAC]) #52 done? 2f9b f09e beq $2f9e 12385 beq(pc()+3) #53 2f9c fc9f bra $2f9f 12386 bra(pc()+3) #54 2f9d 00fe ld $fe 12387 ld(-2) #55 restart 2f9e 0000 ld $00 12388 ld(0) #55! finished 2f9f 8116 adda [$16] 12389 adda([vPC]) #56 2fa0 c216 st [$16] 12390 st([vPC]) #57 2fa1 1403 ld $03,y 12391 ld(hi('NEXTY'),Y) #58 2fa2 e000 jmp y,$00 12392 jmp(Y,'NEXTY') #59 2fa3 00e1 ld $e1 12393 ld(-62/2) #60 12394 12395 label('.sysCme#29') .sysCme#29: 2fa4 0200 nop 12396 nop() #29 burst5 2fa5 1527 ld [$27],y 12397 ld([sysArgs+3],Y) #30 12398 label('.sysCme#31') .sysCme#31: 2fa6 c218 st [$18] 12399 st([vAC]) #31 burst5 2fa7 111d ld [$1d],x 12400 ld([vTmp],X) #32 2fa8 c500 ctrl x 12401 ctrl(X) #33 2fa9 1126 ld [$26],x 12402 ld([sysArgs+2],X) #34 12403 for i in range(5): 2faa 0d00 ld [y,x] 12404 ld([Y,X]) #35+i*3 2fab c21b st [$1b] 12405 st([vLR+1 if i<1 else sysArgs+3+i]) #36+i*3 2fac de00 st [y,x++] 12406 st([Y,Xpp]) if i<4 else None #37+i*3 if i<4 2fad 0d00 ld [y,x] 2fae c228 st [$28] 2faf de00 st [y,x++] 2fb0 0d00 ld [y,x] 2fb1 c229 st [$29] 2fb2 de00 st [y,x++] 2fb3 0d00 ld [y,x] 2fb4 c22a st [$2a] 2fb5 de00 st [y,x++] 2fb6 0d00 ld [y,x] 2fb7 c22b st [$2b] 2fb8 111a ld [$1a],x 12407 ld([vLR],X) #49 2fb9 c500 ctrl x 12408 ctrl(X) #50 2fba 1525 ld [$25],y 12409 ld([sysArgs+1],Y) #51 2fbb 1124 ld [$24],x 12410 ld([sysArgs+0],X) #52 12411 for i in range(5): 2fbc 011b ld [$1b] 12412 ld([vLR+1 if i<1 else sysArgs+3+i]) #53+i*2 2fbd de00 st [y,x++] 12413 st([Y,Xpp]) #54+i*2 2fbe 0128 ld [$28] 2fbf de00 st [y,x++] 2fc0 0129 ld [$29] 2fc1 de00 st [y,x++] 2fc2 012a ld [$2a] 2fc3 de00 st [y,x++] 2fc4 012b ld [$2b] 2fc5 de00 st [y,x++] 2fc6 0124 ld [$24] 12414 ld([sysArgs+0]) #63 2fc7 8005 adda $05 12415 adda(5) #64 2fc8 c224 st [$24] 12416 st([sysArgs+0]) #65 2fc9 0126 ld [$26] 12417 ld([sysArgs+2]) #66 2fca 8005 adda $05 12418 adda(5) #67 2fcb c226 st [$26] 12419 st([sysArgs+2]) #68 12420 2fcc 0118 ld [$18] 12421 ld([vAC]) #69 2fcd ecd6 bne .sysCme#72 12422 bne('.sysCme#72') #70 2fce 1401 ld $01,y 12423 ld(hi(ctrlBits), Y) #71 we're done! 2fcf 09f8 ld [y,$f8] 12424 ld([Y,ctrlBits]) #72 2fd0 30fc anda $fc,x 12425 anda(0xfc,X) #73 2fd1 c500 ctrl x 12426 ctrl(X) #74 2fd2 011d ld [$1d] 12427 ld([vTmp]) #75 always read after ctrl 2fd3 1403 ld $03,y 12428 ld(hi('NEXTY'),Y) #76 2fd4 e000 jmp y,$00 12429 jmp(Y,'NEXTY') #77 2fd5 00d8 ld $d8 12430 ld(-80/2) #78 12431 12432 label('.sysCme#72') .sysCme#72: 2fd6 00e6 ld $e6 12433 ld(-52/2) #72 2fd7 8115 adda [$15] 12434 adda([vTicks]) #21 = 72 - 52 2fd8 c215 st [$15] 12435 st([vTicks]) #22 2fd9 80e1 adda $e1 12436 adda(min(0,maxTicks-(40+52)/2)) #23 2fda f480 bge .sysCme#26 12437 bge('.sysCme#26') #24 enough time for another loop 2fdb 00fe ld $fe 12438 ld(-2) #25 2fdc 8116 adda [$16] 12439 adda([vPC]) #26 restart 2fdd c216 st [$16] 12440 st([vPC]) #27 2fde 1401 ld $01,y 12441 ld(hi(ctrlBits), Y) #28 2fdf 09f8 ld [y,$f8] 12442 ld([Y,ctrlBits]) #29 2fe0 30fc anda $fc,x 12443 anda(0xfc,X) #30 2fe1 c500 ctrl x 12444 ctrl(X) #31 2fe2 011d ld [$1d] 12445 ld([vTmp]) #32 always read after ctrl 2fe3 1403 ld $03,y 12446 ld(hi('REENTER'),Y) #33 2fe4 e0cb jmp y,$cb 12447 jmp(Y,'REENTER') #34 2fe5 00ed ld $ed 12448 ld(-38/2) #35 max: 38 + 52 = 90 cycles 12449 12450 2fe6 0200 nop 12451 fillers(until=0xff) 2fe7 0200 nop 2fe8 0200 nop * 25 times 2fff 0200 nop 12452 align(0x100, size=0x100) 12453 12454 #----------------------------------------------------------------------- 12455 # Implementation of SYS_ScanMemory[Ext], (0x3000) 12456 #----------------------------------------------------------------------- 12457 # 12458 # SYS_ScanMemory_vX_50 implementation, (lb3361) 12459 label('sys_ScanMemory') sys_ScanMemory: 3000 1124 ld [$24],x 12460 ld([sysArgs+0],X) #18 3001 0d00 ld [y,x] 12461 ld([Y,X]) #19 12462 label('.sysSme#20') .sysSme#20: 3002 6126 xora [$26] 12463 xora([sysArgs+2]) #20 3003 f01e beq .sysSme#23 12464 beq('.sysSme#23') #21 3004 0d00 ld [y,x] 12465 ld([Y,X]) #22 3005 6127 xora [$27] 12466 xora([sysArgs+3]) #23 3006 f021 beq .sysSme#26 12467 beq('.sysSme#26') #24 3007 0124 ld [$24] 12468 ld([sysArgs+0]) #25 3008 8001 adda $01 12469 adda(1); #26 3009 d224 st [$24],x 12470 st([sysArgs+0],X) #27 300a 0118 ld [$18] 12471 ld([vAC]) #28 300b a001 suba $01 12472 suba(1) #29 300c f01a beq .sysSme#32 12473 beq('.sysSme#32') #30 return zero 300d c218 st [$18] 12474 st([vAC]) #31 300e 00f7 ld $f7 12475 ld(-18/2) #14 = 32 - 18 300f 8115 adda [$15] 12476 adda([vTicks]) #15 3010 c215 st [$15] 12477 st([vTicks]) #16 3011 80f8 adda $f8 12478 adda(min(0,maxTicks -(28+18)/2)) #17 3012 f402 bge .sysSme#20 12479 bge('.sysSme#20') #18 3013 0d00 ld [y,x] 12480 ld([Y,X]) #19 3014 00fe ld $fe 12481 ld(-2) #20 restart 3015 8116 adda [$16] 12482 adda([vPC]) #21 3016 c216 st [$16] 12483 st([vPC]) #22 3017 1403 ld $03,y 12484 ld(hi('REENTER'),Y) #23 3018 e0cb jmp y,$cb 12485 jmp(Y,'REENTER') #24 3019 00f2 ld $f2 12486 ld(-28/2) #25 12487 12488 label('.sysSme#32') .sysSme#32: 301a c219 st [$19] 12489 st([vAC+1]) #32 return zero 301b 1403 ld $03,y 12490 ld(hi('REENTER'),Y) #33 301c e0cb jmp y,$cb 12491 jmp(Y,'REENTER') #34 301d 00ed ld $ed 12492 ld(-38/2) #35 12493 12494 label('.sysSme#23') .sysSme#23: 301e 0200 nop 12495 nop() #23 success 301f 0200 nop 12496 nop() #24 3020 0124 ld [$24] 12497 ld([sysArgs+0]) #25 12498 label('.sysSme#26') .sysSme#26: 3021 c218 st [$18] 12499 st([vAC]) #26 success 3022 0125 ld [$25] 12500 ld([sysArgs+1]) #27 3023 c219 st [$19] 12501 st([vAC+1]) #28 3024 1403 ld $03,y 12502 ld(hi('REENTER'),Y) #29 3025 e0cb jmp y,$cb 12503 jmp(Y,'REENTER') #30 3026 00ef ld $ef 12504 ld(-34/2) #31 12505 12506 12507 # SYS_ScanMemoryExt_vX_50 implementation, (lb3361) 12508 label('sys_ScanMemoryExt') sys_ScanMemoryExt: 3027 503c ora $3c,x 12509 ora(0x3c,X) #18 3028 c500 ctrl x 12510 ctrl(X) #19 3029 1525 ld [$25],y 12511 ld([sysArgs+1],Y) #20 302a 1124 ld [$24],x 12512 ld([sysArgs+0],X) #21 302b 0d00 ld [y,x] 12513 ld([Y,X]) #22 302c 0200 nop 12514 nop() #23 12515 label('.sysSmx#24') .sysSmx#24: 302d 6126 xora [$26] 12516 xora([sysArgs+2]) #24 302e f04a beq .sysSmx#27 12517 beq('.sysSmx#27') #25 302f 0d00 ld [y,x] 12518 ld([Y,X]) #26 3030 6127 xora [$27] 12519 xora([sysArgs+3]) #27 3031 f04d beq .sysSmx#30 12520 beq('.sysSmx#30') #28 3032 0124 ld [$24] 12521 ld([sysArgs+0]) #29 3033 8001 adda $01 12522 adda(1); #30 3034 d224 st [$24],x 12523 st([sysArgs+0],X) #31 3035 0118 ld [$18] 12524 ld([vAC]) #32 3036 a001 suba $01 12525 suba(1) #33 3037 f053 beq .sysSmx#36 12526 beq('.sysSmx#36') #34 return zero 3038 c218 st [$18] 12527 st([vAC]) #35 3039 00f7 ld $f7 12528 ld(-18/2) #18 = 36 - 18 303a 8115 adda [$15] 12529 adda([vTicks]) #19 303b c215 st [$15] 12530 st([vTicks]) #20 303c 80f7 adda $f7 12531 adda(min(0,maxTicks -(30+18)/2)) #21 303d f42d bge .sysSmx#24 12532 bge('.sysSmx#24') #22 303e 0d00 ld [y,x] 12533 ld([Y,X]) #23 303f 0116 ld [$16] 12534 ld([vPC]) #24 3040 a002 suba $02 12535 suba(2) #25 restart 3041 c216 st [$16] 12536 st([vPC]) #26 3042 1401 ld $01,y 12537 ld(hi(ctrlBits),Y) #27 restore and return 3043 09f8 ld [y,$f8] 12538 ld([Y,ctrlBits]) #28 3044 30fc anda $fc,x 12539 anda(0xfc,X) #29 3045 c500 ctrl x 12540 ctrl(X) #30 3046 011d ld [$1d] 12541 ld([vTmp]) #31 3047 1403 ld $03,y 12542 ld(hi('NEXTY'),Y) #32 3048 e000 jmp y,$00 12543 jmp(Y,'NEXTY') #33 3049 00ee ld $ee 12544 ld(-36/2) #34 12545 12546 label('.sysSmx#27') .sysSmx#27: 304a 0200 nop 12547 nop() #27 success 304b 0200 nop 12548 nop() #28 304c 0124 ld [$24] 12549 ld([sysArgs+0]) #29 12550 label('.sysSmx#30') .sysSmx#30: 304d c218 st [$18] 12551 st([vAC]) #30 success 304e 0125 ld [$25] 12552 ld([sysArgs+1]) #31 304f 0200 nop 12553 nop() #32 3050 0200 nop 12554 nop() #33 3051 0200 nop 12555 nop() #34 3052 0200 nop 12556 nop() #35 12557 label('.sysSmx#36') .sysSmx#36: 3053 c219 st [$19] 12558 st([vAC+1]) #36 3054 1401 ld $01,y 12559 ld(hi(ctrlBits),Y) #37 restore and return 3055 09f8 ld [y,$f8] 12560 ld([Y,ctrlBits]) #38 3056 30fc anda $fc,x 12561 anda(0xfc,X) #39 3057 c500 ctrl x 12562 ctrl(X) #40 3058 011d ld [$1d] 12563 ld([vTmp]) #41 3059 1403 ld $03,y 12564 ld(hi('NEXTY'),Y) #42 305a e000 jmp y,$00 12565 jmp(Y,'NEXTY') #43 305b 00e9 ld $e9 12566 ld(-46/2) #44 12567 12568 305c 0200 nop 12569 fillers(until=0x80) 305d 0200 nop 305e 0200 nop * 36 times 12570 12571 # SYS_LoaderSerialIN 12572 # sysArgs[0] (in), zero page address of odd videoY waits and first even videoY wait, 207 219 235 251 2 12573 # sysArgs[1] (in), sysArgs2 address, buffer that receives protocol, packet length and packet address 12574 # sysArgs[2] (out), protocol, filled in automatically by the Sys call 12575 # sysArgs[3] (out), packet length, filled in automatically by the Sys call 12576 # sysArgs[4:5] (out), packet address, filled in automatically by the Sys call 12577 # No error checks are performed, (apart from checking protocol) 12578 # No checksums are performed 12579 label('SYS_LoadSerialIn_vX_56') SYS_LoadSerialIn_vX_56: 3080 1124 ld [$24],x 12580 ld([sysArgs+0],X) #15 3081 0109 ld [$09] 12581 ld([videoY]) #16 3082 6500 xora [x] 12582 xora([X]) #17 3083 ec95 bne .sysLsi#20 12583 bne('.sysLsi#20') #18 wrong videoY so restart 3084 0500 ld [x] 12584 ld([X]) #19 3085 2001 anda $01 12585 anda(1) #20 3086 f09b beq .sysLsi#23 12586 beq('.sysLsi#23') #21 even videoY 3087 0124 ld [$24] 12587 ld([sysArgs+0]) #22 3088 8001 adda $01 12588 adda(1) #23 odd videoY 3089 c224 st [$24] 12589 st([sysArgs+0]) #24 308a 1125 ld [$25],x 12590 ld([sysArgs+1],X) #25 sysArgs address 308b c700 st in,[x] 12591 st(IN,[X]) #26 308c 0125 ld [$25] 12592 ld([sysArgs+1]) #27 308d 8001 adda $01 12593 adda(1) #28 308e c225 st [$25] 12594 st([sysArgs+1]) #29 308f 0116 ld [$16] 12595 ld([vPC]) #30 restart 3090 a002 suba $02 12596 suba(2) #31 3091 c216 st [$16] 12597 st([vPC]) #32 3092 1403 ld $03,y 12598 ld(hi('REENTER'),Y) #33 3093 e0cb jmp y,$cb 12599 jmp(Y,'REENTER') #34 3094 00ed ld $ed 12600 ld(-38/2) #35 12601 12602 # wrong videoY 12603 label('.sysLsi#20') .sysLsi#20: 3095 0116 ld [$16] 12604 ld([vPC]) #20 restart 3096 a002 suba $02 12605 suba(2) #21 3097 c216 st [$16] 12606 st([vPC]) #22 3098 1403 ld $03,y 12607 ld(hi('REENTER'),Y) #23 3099 e0cb jmp y,$cb 12608 jmp(Y,'REENTER') #24 309a 00f2 ld $f2 12609 ld(-28/2) #25 12610 12611 # even videoY 12612 label('.sysLsi#23') .sysLsi#23: 309b 0500 ld [x] 12613 ld([X]) #23 309c 8004 adda $04 12614 adda(4) #24 309d c600 st [x] 12615 st([X]) #25 309e 0126 ld [$26] 12616 ld([sysArgs+2]) #26 protocol 309f 604c xora $4c 12617 xora(ord('L')) #27 check valid load 30a0 ecb3 bne .sysLsi#30 12618 bne('.sysLsi#30') #28 invalid packet 30a1 0127 ld [$27] 12619 ld([sysArgs+3]) #29 check length 30a2 f0d0 beq .sysLsi#32 12620 beq('.sysLsi#32') #30 execute 30a3 a001 suba $01 12621 suba(1) #31 30a4 c227 st [$27] 12622 st([sysArgs+3]) #32 length-- 30a5 1128 ld [$28],x 12623 ld([sysArgs+4],X) #33 30a6 1529 ld [$29],y 12624 ld([sysArgs+5],Y) #34 30a7 cf00 st in,[y,x] 12625 st(IN,[Y,X]) #35 30a8 0127 ld [$27] 12626 ld([sysArgs+3]) #36 check length 30a9 f0c1 beq .sysLsi#39 12627 beq('.sysLsi#39') #37 new packet 30aa 0128 ld [$28] 12628 ld([sysArgs+4]) #38 30ab 8001 adda $01 12629 adda(1) #39 30ac c228 st [$28] 12630 st([sysArgs+4]) #40 30ad 0116 ld [$16] 12631 ld([vPC]) #41 restart 30ae a002 suba $02 12632 suba(2) #42 30af c216 st [$16] 12633 st([vPC]) #43 30b0 1403 ld $03,y 12634 ld(hi('NEXTY'),Y) #44 30b1 e000 jmp y,$00 12635 jmp(Y,'NEXTY') #45 30b2 00e8 ld $e8 12636 ld(-48/2) #46 12637 12638 # even videoY 12639 #label('.sysLsi#23') 12640 #ld([X]) #23 12641 #adda(4) #24 12642 #st([X]) #25 12643 #ld([sysArgs+2]) #26 protocol 12644 #xora(ord('L')) #27 check valid load 12645 #bne('.sysLsi#30') #28 invalid packet 12646 #ld([sysArgs+3]) #29 check length 12647 #beq('.sysLsi#32') #30 execute 12648 #suba(1) #31 12649 #st([sysArgs+3]) #32 length-- 12650 #ld([sysArgs+4],X) #33 12651 #ld([sysArgs+5],Y) #34 12652 #st(IN,[Y,X]) #35 12653 #ld([sysArgs+3]) #36 check length 12654 #beq('.sysLsi#39') #37 new packet 12655 #ld([sysArgs+4]) #38 12656 #adda(1) #39 12657 #st([sysArgs+4]) #40 address.lo++ 12658 #adda(1) #41 254+1+1 = 0, 255+1+1 = 1 12659 #anda(0xfe) #42 will be zero only when writing to top 2 bytes of page 12660 #st([vTmp]) #43 remember as first condition 12661 #ld([sysArgs+5]) #44 address.hi 12662 #suba(1) #45 12663 #anda(0xfc) #46 will be zero only when writing to pages 1, 2, 3, 4 12664 #ora([vTmp]) #47 combine second condition with first 12665 #bne(pc()+3) #48 condition is non zero, so do nothing 12666 #bra(pc()+3) #49 condition is zero, so disable channels 1, 2, 3 12667 #ld(0xfc); #50 disable channels 1, 2, 3 12668 #ld(0xff); #50 (!) do nothing 12669 #anda([channelMask]) #51 12670 #st([channelMask]) #52 12671 #ld([vPC]) #53 restart 12672 #suba(2) #54 12673 #st([vPC]) #55 12674 #ld(hi('NEXTY'),Y) #56 12675 #jmp(Y,'NEXTY') #57 12676 #ld(-60/2) #58 12677 12678 # invalid packet 12679 label('.sysLsi#30') .sysLsi#30: 30b3 0002 ld $02 12680 ld(2) #30 30b4 c2bc st [$bc] 12681 st([0xBC]) #31 reset even videoY 30b5 00b8 ld $b8 12682 ld(0xB8) #32 30b6 c224 st [$24] 12683 st([sysArgs+0]) #33 reset videoY address 30b7 0026 ld $26 12684 ld(0x26) #34 30b8 c225 st [$25] 12685 st([sysArgs+1]) #35 reset sys args address 30b9 0116 ld [$16] 12686 ld([vPC]) #36 restart 30ba a002 suba $02 12687 suba(2) #37 30bb c216 st [$16] 12688 st([vPC]) #38 30bc 0000 ld $00 12689 ld(0) #39 30bd c214 st [$14] 12690 st([xoutMask]) #40 30be 1403 ld $03,y 12691 ld(hi('REENTER'),Y) #41 30bf e0cb jmp y,$cb 12692 jmp(Y,'REENTER') #42 30c0 00e9 ld $e9 12693 ld(-46/2) #43 12694 12695 # new packet 12696 label('.sysLsi#39') .sysLsi#39: 30c1 0002 ld $02 12697 ld(2) #39 30c2 c2bc st [$bc] 12698 st([0xBC]) #40 reset even videoY 30c3 00b8 ld $b8 12699 ld(0xB8) #41 30c4 c224 st [$24] 12700 st([sysArgs+0]) #42 reset videoY address 30c5 0026 ld $26 12701 ld(0x26) #43 30c6 c225 st [$25] 12702 st([sysArgs+1]) #44 reset sys args address 30c7 0116 ld [$16] 12703 ld([vPC]) #45 restart 30c8 a002 suba $02 12704 suba(2) #46 30c9 c216 st [$16] 12705 st([vPC]) #47 30ca 0129 ld [$29] 12706 ld([sysArgs+5]) #48 hi address 30cb 200f anda $0f 12707 anda(0x0F) #49 30cc c214 st [$14] 12708 st([xoutMask]) #50 30cd 1403 ld $03,y 12709 ld(hi('REENTER'),Y) #51 30ce e0cb jmp y,$cb 12710 jmp(Y,'REENTER') #52 30cf 00e4 ld $e4 12711 ld(-56/2) #53 12712 12713 # execute 12714 label('.sysLsi#32') .sysLsi#32: 30d0 0128 ld [$28] 12715 ld([sysArgs+4]) #32 low execute address 30d1 c21a st [$1a] 12716 st([vLR]) #33 30d2 a002 suba $02 12717 suba(2) #34 30d3 c216 st [$16] 12718 st([vPC]) #35 30d4 0129 ld [$29] 12719 ld([sysArgs+5]) #36 high execute address 30d5 c217 st [$17] 12720 st([vPC+1]) #37 30d6 c21b st [$1b] 12721 st([vLR+1]) #38 30d7 0000 ld $00 12722 ld(0) #39 30d8 c214 st [$14] 12723 st([xoutMask]) #40 30d9 1403 ld $03,y 12724 ld(hi('REENTER'),Y) #41 30da e0cb jmp y,$cb 12725 jmp(Y,'REENTER') #42 30db 00e9 ld $e9 12726 ld(-46/2) #43 12727 12728 30dc 0200 nop 12729 fillers(until=0xff) 30dd 0200 nop 30de 0200 nop * 35 times 30ff 0200 nop 12730 align(0x100, size=0x100) 12731 12732 #----------------------------------------------------------------------- 12733 # More vCPU instruction implementations, (0x3100) 12734 #----------------------------------------------------------------------- 12735 # 12736 # ABSVW implementation 12737 label('absvw#13') absvw#13: 3100 9001 adda $01,x 12738 adda(1,X) #13 address of var.hi 3101 00fe ld $fe 12739 ld(min(0,maxTicks-34/2)) #14 3102 8115 adda [$15] 12740 adda([vTicks]) #15 3103 e81e blt .absvw#18 12741 blt('.absvw#18') #16 3104 0500 ld [x] 12742 ld([X]) #17 3105 e80a blt .absvw#20 12743 bmi('.absvw#20') #18 3106 1400 ld $00,y 12744 ld(0,Y) #19 3107 1403 ld $03,y 12745 ld(hi('NEXTY'),Y) #20 3108 e000 jmp y,$00 12746 jmp(Y,'NEXTY') #21 3109 00f4 ld $f4 12747 ld(-24/2) #22 12748 12749 label('.absvw#20') .absvw#20: 310a 111d ld [$1d],x 12750 ld([vTmp],X) #20 310b 0500 ld [x] 12751 ld([X]) #21 310c 60ff xora $ff 12752 xora(0xFF) #22 310d 8001 adda $01 12753 adda(1) #23 310e f017 beq .absvw#26 12754 beq('.absvw#26') #24 310f c600 st [x] 12755 st([X]) #25 3110 de00 st [y,x++] 12756 st([Y,Xpp]) #26 3111 0500 ld [x] 12757 ld([X]) #27 3112 60ff xora $ff 12758 xora(255) #28 3113 c600 st [x] 12759 st([X]) #29 3114 1403 ld $03,y 12760 ld(hi('NEXTY'),Y) #30 3115 e000 jmp y,$00 12761 jmp(Y,'NEXTY') #31 3116 00ef ld $ef 12762 ld(-34/2) #32 12763 12764 label('.absvw#26') .absvw#26: 3117 de00 st [y,x++] 12765 st([Y,Xpp]) #26 3118 0500 ld [x] 12766 ld([X]) #27 3119 60ff xora $ff 12767 xora(255) #28 311a c600 st [x] 12768 st([X]) #29 311b 1403 ld $03,y 12769 ld(hi('NEXTY'),Y) #30 311c e000 jmp y,$00 12770 jmp(Y,'NEXTY') #31 311d 00ef ld $ef 12771 ld(-34/2) #32 12772 12773 label('.absvw#18') .absvw#18: 311e 0022 ld $22 12774 ld(hi('PREFX2_PAGE')) #18 ENTER is at $(n-1)ff, where n = instruction page 311f c202 st [$02] 12775 st([vCpuSelect]) #19 restore PREFX2 instruction page 3120 9401 adda $01,y 12776 adda(1,Y) #20 retry instruction 3121 e000 jmp y,$00 12777 jmp(Y,'NEXTY') #21 3122 00f4 ld $f4 12778 ld(-24/2) #22 12779 12780 12781 # SCRLHR implementation 12782 label('scrlhr#13') scrlhr#13: 3123 c21d st [$1d] 12783 st([vTmp]) #13 amount imm 3124 1517 ld [$17],y 12784 ld([vPC+1],Y) #14 3125 de00 st [y,x++] 12785 st([Y,Xpp]) #15 3126 00f8 ld $f8 12786 ld(min(0,maxTicks-46/2)) #16 3127 8115 adda [$15] 12787 adda([vTicks]) #17 3128 e842 blt .scrlhr#20 12788 blt('.scrlhr#20') #18 not enough time left, so retry 3129 0d00 ld [y,x] 12789 ld([Y,X]) #19 312a c22a st [$2a] 12790 st([sysArgs+6]) #20 count imm 312b de00 st [y,x++] 12791 st([Y,Xpp]) #21 312c 0d00 ld [y,x] 12792 ld([Y,X]) #22 start imm 312d 8200 adda ac 12793 adda(AC) #23 312e 8001 adda $01 12794 adda(1) #24 312f d22b st [$2b],x 12795 st([sysArgs+7],X) #25 start_vtbl.lo 3130 1401 ld $01,y 12796 ld(1,Y) #26 3131 011d ld [$1d] 12797 ld([vTmp]) #27 3132 8d00 adda [y,x] 12798 adda([Y,X]) #28 3133 ce00 st [y,x] 12799 st([Y,X]) #29 3134 012a ld [$2a] 12800 ld([sysArgs+6]) #30 3135 8200 adda ac 12801 adda(AC) #31 3136 912b adda [$2b],x 12802 adda([sysArgs+7],X) #32 end_vtbl.lo 3137 011d ld [$1d] 12803 ld([vTmp]) #33 3138 60ff xora $ff 12804 xora(0xFF) #34 3139 8001 adda $01 12805 adda(1) #35 313a 8d00 adda [y,x] 12806 adda([Y,X]) #36 313b ce00 st [y,x] 12807 st([Y,X]) #37 313c 0116 ld [$16] 12808 ld([vPC]) #38 313d 8002 adda $02 12809 adda(2) #39 313e c216 st [$16] 12810 st([vPC]) #40 313f 1403 ld $03,y 12811 ld(hi('REENTER'),Y) #41 3140 e0cb jmp y,$cb 12812 jmp(Y,'REENTER') #42 3141 00e9 ld $e9 12813 ld(-46/2) #43 12814 12815 label('.scrlhr#20') .scrlhr#20: 3142 0116 ld [$16] 12816 ld([vPC]) #20 3143 a002 suba $02 12817 suba(2) #21 3144 c216 st [$16] 12818 st([vPC]) #22 3145 1403 ld $03,y 12819 ld(hi('REENTER'),Y) #23 3146 e0cb jmp y,$cb 12820 jmp(Y,'REENTER') #24 3147 00f2 ld $f2 12821 ld(-28/2) #25 12822 12823 12824 # IMIDI implementation 12825 label('imidi#13') imidi#13: 3148 1400 ld $00,y 12826 ld(0,Y) #13 3149 00fb ld $fb 12827 ld(min(0,maxTicks-40/2)) #14 314a 8115 adda [$15] 12828 adda([vTicks]) #15 314b e869 blt .imidi#18 12829 blt('.imidi#18') #16 not enough time left, so retry 314c 0d00 ld [y,x] 12830 ld([Y,X]) #17 midiStream.lo 314d de00 st [y,x++] 12831 st([Y,Xpp]) #18 314e c218 st [$18] 12832 st([vAC]) #19 314f 0d00 ld [y,x] 12833 ld([Y,X]) #20 midiStream.hi 3150 c219 st [$19] 12834 st([vAC+1]) #21 3151 4118 ora [$18] 12835 ora([vAC]) #22 3152 ec59 bne .imidi#25 12836 bne('.imidi#25') #23 3153 0116 ld [$16] 12837 ld([vPC]) #24 midiStream = 0 3154 8004 adda $04 12838 adda(4) #25 3155 c216 st [$16] 12839 st([vPC]) #26 skip PMIDI, (next instruction) 3156 1403 ld $03,y 12840 ld(hi('REENTER'),Y) #27 3157 e0cb jmp y,$cb 12841 jmp(Y,'REENTER') #28 3158 00f0 ld $f0 12842 ld(-32/2) #29 12843 12844 label('.imidi#25') .imidi#25: 3159 0005 ld $05 12845 ld(5) #25 315a c22c st [$2c] 12846 st([soundTimer]) #26 pump soundTimer, (allows for 5 VBlanks of latency before audio disruption) 315b 112b ld [$2b],x 12847 ld([sysArgs+7],X) #27 midiDelay.lo 315c 0500 ld [x] 12848 ld([X]) #28 315d a001 suba $01 12849 suba(1) #29 315e f866 ble .imidi#32 12850 ble('.imidi#32') #30 315f c600 st [x] 12851 st([X]) #31 3160 0116 ld [$16] 12852 ld([vPC]) #32 midiDelay.lo > 0 3161 8004 adda $04 12853 adda(4) #33 3162 c216 st [$16] 12854 st([vPC]) #34 skip PMIDI, (next instruction) 3163 1403 ld $03,y 12855 ld(hi('REENTER'),Y) #35 3164 e0cb jmp y,$cb 12856 jmp(Y,'REENTER') #36 3165 00ec ld $ec 12857 ld(-40/2) #37 12858 12859 label('.imidi#32') .imidi#32: 3166 1403 ld $03,y 12860 ld(hi('NEXTY'),Y) #32 do PMIDI, (next instruction) 3167 e000 jmp y,$00 12861 jmp(Y,'NEXTY') #33 3168 00ee ld $ee 12862 ld(-36/2) #34 12863 12864 label('.imidi#18') .imidi#18: 3169 0021 ld $21 12865 ld(hi('PREFX3_PAGE')) #18 ENTER is at $(n-1)ff, where n = instruction page 316a c202 st [$02] 12866 st([vCpuSelect]) #19 restore PREFX3 instruction page 316b 9401 adda $01,y 12867 adda(1,Y) #20 retry instruction 316c e000 jmp y,$00 12868 jmp(Y,'NEXTY') #21 316d 00f4 ld $f4 12869 ld(-24/2) #22 12870 12871 12872 # PMIDI implementation 12873 label('pmidi#13') pmidi#13: 316e 1400 ld $00,y 12874 ld(0,Y) #13 316f 00e3 ld $e3 12875 ld(min(0,maxTicks-88/2)) #14 3170 8115 adda [$15] 12876 adda([vTicks]) #15 3171 e8ad blt .pmidi#18 12877 blt('.pmidi#18') #16 not enough time left, so retry 3172 1519 ld [$19],y 12878 ld([vAC+1],Y) #17 3173 1118 ld [$18],x 12879 ld([vAC],X) #18 3174 0118 ld [$18] 12880 ld([vAC]) #19 3175 8001 adda $01 12881 adda(1) #20 3176 c218 st [$18] 12882 st([vAC]) #21 3177 f07a beq $317a 12883 beq(pc()+3) #22 3178 fc7b bra $317b 12884 bra(pc()+3) #23 3179 0000 ld $00 12885 ld(0) #24 317a 0001 ld $01 12886 ld(1) #24 (!) 317b 8119 adda [$19] 12887 adda([vAC+1]) #25 317c c219 st [$19] 12888 st([vAC+1]) #26 midiStream++ 317d 0d00 ld [y,x] 12889 ld([Y,X]) #27 317e c2c0 st [$c0] 12890 st([0xC0]) #28 midiCommand.lo 317f 20f0 anda $f0 12891 anda(0xF0) #29 3180 6090 xora $90 12892 xora(0x90) #30 3181 ecb2 bne .pmidi#33 12893 bne('.pmidi#33') #31 end note 3182 1519 ld [$19],y 12894 ld([vAC+1],Y) #32 3183 1118 ld [$18],x 12895 ld([vAC],X) #33 3184 0118 ld [$18] 12896 ld([vAC]) #34 3185 8001 adda $01 12897 adda(1) #35 3186 c218 st [$18] 12898 st([vAC]) #36 3187 f08a beq $318a 12899 beq(pc()+3) #37 3188 fc8b bra $318b 12900 bra(pc()+3) #38 3189 0000 ld $00 12901 ld(0) #39 318a 0001 ld $01 12902 ld(1) #39 (!) 318b 8119 adda [$19] 12903 adda([vAC+1]) #40 318c c219 st [$19] 12904 st([vAC+1]) #41 midiStream++ 318d 0031 ld $31 12905 ld(hi('pmidi#13')) #42 318e c2c1 st [$c1] 12906 st([0xC1]) #43 318f 0098 ld $98 12907 ld('.pmidi#59_0') #44 low byte of low midi return address 3190 c21d st [$1d] 12908 st([vTmp]) #45 3191 0d00 ld [y,x] 12909 ld([Y,X]) #46 3192 c2c2 st [$c2] 12910 st([0xC2]) #47 note 3193 a00b suba $0b 12911 suba(11) #48 note -= 11 3194 8200 adda ac 12912 adda(AC) #49 note*2 3195 1409 ld $09,y 12913 ld(hi('noteTrampoline'),Y) #50 3196 e0c0 jmp y,$c0 12914 jmp(Y,'noteTrampoline') #51 3197 c2c3 st [$c3] 12915 st([0xC3]) #52 index, (low freq byte) 12916 label('.pmidi#59_0') .pmidi#59_0: 3198 c2c2 st [$c2] 12917 st([0xC2]) #59 freq.lo 3199 009f ld $9f 12918 ld('.pmidi#72') #60 319a c21d st [$1d] 12919 st([vTmp]) #61 low byte of high midi return address 319b 1409 ld $09,y 12920 ld(hi('noteTrampoline'),Y) #62 319c 01c3 ld [$c3] 12921 ld([0xC3]) #63 319d e0c0 jmp y,$c0 12922 jmp(Y,'noteTrampoline') #64 319e 8001 adda $01 12923 adda(1) #65 index + 1, (high freq byte) 12924 label('.pmidi#72') .pmidi#72: 319f c2c3 st [$c3] 12925 st([0xC3]) #72 freq.hi 31a0 01c0 ld [$c0] 12926 ld([0xC0]) #73 midiCommand.lo 31a1 2003 anda $03 12927 anda(3) #74 31a2 9401 adda $01,y 12928 adda(1,Y) #75 chan.hi 31a3 10fc ld $fc,x 12929 ld(0xFC,X) #76 chan.lo 31a4 01c2 ld [$c2] 12930 ld([0xC2]) #77 31a5 de00 st [y,x++] 12931 st([Y,Xpp]) #78 31a6 01c3 ld [$c3] 12932 ld([0xC3]) #79 31a7 ce00 st [y,x] 12933 st([Y,X]) #80 [chan] = freq 31a8 0021 ld $21 12934 ld(hi('PREFX3_PAGE')) #81 ENTER is at $(n-1)ff, where n = instruction page 31a9 c202 st [$02] 12935 st([vCpuSelect]) #82 restore PREFX3 instruction page 31aa 9401 adda $01,y 12936 adda(1,Y) #83 restart instruction 31ab e0cb jmp y,$cb 12937 jmp(Y,'REENTER') #84 31ac 00d4 ld $d4 12938 ld(-88/2) #85 12939 12940 label('.pmidi#18') .pmidi#18: 31ad 0021 ld $21 12941 ld(hi('PREFX3_PAGE')) #18 ENTER is at $(n-1)ff, where n = instruction page 31ae c202 st [$02] 12942 st([vCpuSelect]) #19 restore PREFX3 instruction page 31af 9401 adda $01,y 12943 adda(1,Y) #20 retry instruction 31b0 e000 jmp y,$00 12944 jmp(Y,'NEXTY') #21 31b1 00f4 ld $f4 12945 ld(-24/2) #22 12946 12947 # end note 12948 label('.pmidi#33') .pmidi#33: 31b2 01c0 ld [$c0] 12949 ld([0xC0]) #33 midiCommand.lo 31b3 20f0 anda $f0 12950 anda(0xF0) #34 31b4 6080 xora $80 12951 xora(0x80) #35 31b5 ecc3 bne .pmidi#38 12952 bne('.pmidi#38') #36 new segment 31b6 01c0 ld [$c0] 12953 ld([0xC0]) #37 midiCommand.lo 31b7 2003 anda $03 12954 anda(3) #38 31b8 9401 adda $01,y 12955 adda(1,Y) #39 chan.hi 31b9 10fc ld $fc,x 12956 ld(0xFC,X) #40 chan.lo 31ba dc00 st $00,[y,x++] 12957 st(0,[Y,Xpp]) #41 31bb dc00 st $00,[y,x++] 12958 st(0,[Y,Xpp]) #42 [chan] = freq 31bc dc00 st $00,[y,x++] 12959 st(0,[Y,Xpp]) #43 31bd cc00 st $00,[y,x] 12960 st(0,[Y,X]) #44 31be 0021 ld $21 12961 ld(hi('PREFX3_PAGE')) #45 ENTER is at $(n-1)ff, where n = instruction page 31bf c202 st [$02] 12962 st([vCpuSelect]) #46 restore PREFX3 instruction page 31c0 9401 adda $01,y 12963 adda(1,Y) #47 restart instruction 31c1 e0cb jmp y,$cb 12964 jmp(Y,'REENTER') #48 31c2 00e6 ld $e6 12965 ld(-52/2) #49 12966 12967 # new segment 12968 label('.pmidi#38') .pmidi#38: 31c3 01c0 ld [$c0] 12969 ld([0xC0]) #38 midiCommand.lo 31c4 20f0 anda $f0 12970 anda(0xF0) #39 31c5 60d0 xora $d0 12971 xora(0xD0) #40 31c6 ecdf bne .pmidi#43 12972 bne('.pmidi#43') #41 new delay 31c7 1519 ld [$19],y 12973 ld([vAC+1],Y) #42 31c8 1118 ld [$18],x 12974 ld([vAC],X) #43 31c9 0d00 ld [y,x] 12975 ld([Y,X]) #44 peek(midiStream) 31ca c218 st [$18] 12976 st([vAC]) #45 newStream.lo 31cb de00 st [y,x++] 12977 st([Y,Xpp]) #46 31cc 0d00 ld [y,x] 12978 ld([Y,X]) #47 peek(midiStream + 1) 31cd c219 st [$19] 12979 st([vAC+1]) #48 newStream.hi 31ce 1400 ld $00,y 12980 ld(0,Y) #49 31cf 112a ld [$2a],x 12981 ld([sysArgs+6],X) #50 midiStream.lo 31d0 0118 ld [$18] 12982 ld([vAC]) #51 31d1 de00 st [y,x++] 12983 st([Y,Xpp]) #52 31d2 0119 ld [$19] 12984 ld([vAC+1]) #53 31d3 ce00 st [y,x] 12985 st([Y,X]) #54 midiStream = vAC 31d4 0118 ld [$18] 12986 ld([vAC]) #55 31d5 4119 ora [$19] 12987 ora([vAC+1]) #56 31d6 ecda bne .pmidi#59_1 12988 bne('.pmidi#59_1') #57 continue 31d7 1403 ld $03,y 12989 ld(hi('NEXTY'),Y) #58 finished 31d8 e000 jmp y,$00 12990 jmp(Y,'NEXTY') #59 31d9 00e1 ld $e1 12991 ld(-62/2) #60 12992 12993 label('.pmidi#59_1') .pmidi#59_1: 31da 0021 ld $21 12994 ld(hi('PREFX3_PAGE')) #59 ENTER is at $(n-1)ff, where n = instruction page 31db c202 st [$02] 12995 st([vCpuSelect]) #60 restore PREFX3 instruction page 31dc 9401 adda $01,y 12996 adda(1,Y) #61 restart instruction 31dd e0cb jmp y,$cb 12997 jmp(Y,'REENTER') #62 31de 00df ld $df 12998 ld(-66/2) #63 12999 13000 # new delay 13001 label('.pmidi#43') .pmidi#43: 31df 1400 ld $00,y 13002 ld(0,Y) #43 31e0 112a ld [$2a],x 13003 ld([sysArgs+6],X) #44 midiStream.lo 31e1 0118 ld [$18] 13004 ld([vAC]) #45 31e2 de00 st [y,x++] 13005 st([Y,Xpp]) #46 31e3 0119 ld [$19] 13006 ld([vAC+1]) #47 31e4 ce00 st [y,x] 13007 st([Y,X]) #48 midiStream = vAC 31e5 112b ld [$2b],x 13008 ld([sysArgs+7],X) #49 midiDelay.lo 31e6 01c0 ld [$c0] 13009 ld([0xC0]) #50 midiCommand.lo, (delay) 31e7 207f anda $7f 13010 anda(0x7F) #51 31e8 c600 st [x] 13011 st([X]) #52 31e9 1403 ld $03,y 13012 ld(hi('REENTER'),Y) #53 31ea e0cb jmp y,$cb 13013 jmp(Y,'REENTER') #54 31eb 00e3 ld $e3 13014 ld(-58/2) #55 13015 13016 31ec 0200 nop 13017 fillers(until=0xff) 31ed 0200 nop 31ee 0200 nop * 19 times 31ff 0200 nop 13018 align(0x100, size=0x100) 13019 13020 #----------------------------------------------------------------------- 13021 # More vCPU instruction implementations, (0x3200) 13022 #----------------------------------------------------------------------- 13023 # 13024 # MOVL implementation, (lb3361) 13025 label('movl#13') movl#13: 3200 9001 adda $01,x 13026 adda(1,X) #13 3201 00fb ld $fb 13027 ld(min(0,maxTicks-40/2)) #14 3202 8115 adda [$15] 13028 adda([vTicks]) #15 3203 e81a blt movl#18 13029 blt('movl#18') #16 3204 1400 ld $00,y 13030 ld(0,Y) #17 3205 0d00 ld [y,x] 13031 ld([Y,X]) #18 3206 de00 st [y,x++] 13032 st([Y,Xpp]) #19 3207 c2c8 st [$c8] 13033 st([vTmpL]) #20 3208 0d00 ld [y,x] 13034 ld([Y,X]) #21 3209 de00 st [y,x++] 13035 st([Y,Xpp]) #22 320a c2c9 st [$c9] 13036 st([vTmpL+1]) #23 320b 0d00 ld [y,x] 13037 ld([Y,X]) #24 320c c2ca st [$ca] 13038 st([vTmpL+2]) #25 320d 112a ld [$2a],x 13039 ld([sysArgs+6],X) #26 320e 0d00 ld [y,x] 13040 ld([Y,X]) #27 320f 112b ld [$2b],x 13041 ld([sysArgs+7],X) #28 3210 de00 st [y,x++] 13042 st([Y,Xpp]) #29 3211 01c8 ld [$c8] 13043 ld([vTmpL]) #30 3212 de00 st [y,x++] 13044 st([Y,Xpp]) #31 3213 01c9 ld [$c9] 13045 ld([vTmpL+1]) #32 3214 de00 st [y,x++] 13046 st([Y,Xpp]) #33 3215 01ca ld [$ca] 13047 ld([vTmpL+2]) #34 3216 de00 st [y,x++] 13048 st([Y,Xpp]) #35 3217 1403 ld $03,y 13049 ld(hi('NEXTY'),Y) #36 3218 e000 jmp y,$00 13050 jmp(Y,'NEXTY') #37 3219 00ec ld $ec 13051 ld(-40/2) #38 13052 label('movl#18') movl#18: 321a 0021 ld $21 13053 ld(hi('PREFX3_PAGE')) #18 ENTER is at $(n-1)ff, where n = instruction page 321b c202 st [$02] 13054 st([vCpuSelect]) #19 restore PREFX3 instruction page 321c 9401 adda $01,y 13055 adda(1,Y) #20 retry instruction 321d e000 jmp y,$00 13056 jmp(Y,'NEXTY') #21 321e 00f4 ld $f4 13057 ld(-24/2) #22 13058 13059 13060 # MOVF implementation, (lb3361) 13061 label('movf#13') movf#13: 321f 9001 adda $01,x 13062 adda(1,X) #13 3220 00f8 ld $f8 13063 ld(min(0,maxTicks-46/2)) #14 3221 8115 adda [$15] 13064 adda([vTicks]) #15 3222 e81a blt movl#18 13065 blt('movl#18') #16 3223 1400 ld $00,y 13066 ld(0,Y) #17 3224 0d00 ld [y,x] 13067 ld([Y,X]) #18 3225 de00 st [y,x++] 13068 st([Y,Xpp]) #19 3226 c2c8 st [$c8] 13069 st([vTmpL]) #20 3227 0d00 ld [y,x] 13070 ld([Y,X]) #21 3228 de00 st [y,x++] 13071 st([Y,Xpp]) #22 3229 c2c9 st [$c9] 13072 st([vTmpL+1]) #23 322a 0d00 ld [y,x] 13073 ld([Y,X]) #24 322b de00 st [y,x++] 13074 st([Y,Xpp]) #25 322c c2ca st [$ca] 13075 st([vTmpL+2]) #26 322d 0d00 ld [y,x] 13076 ld([Y,X]) #27 322e c2cb st [$cb] 13077 st([vTmpL+3]) #28 322f 112a ld [$2a],x 13078 ld([sysArgs+6],X) #29 3230 0d00 ld [y,x] 13079 ld([Y,X]) #30 3231 112b ld [$2b],x 13080 ld([sysArgs+7],X) #31 3232 de00 st [y,x++] 13081 st([Y,Xpp]) #32 3233 01c8 ld [$c8] 13082 ld([vTmpL]) #33 3234 de00 st [y,x++] 13083 st([Y,Xpp]) #34 3235 01c9 ld [$c9] 13084 ld([vTmpL+1]) #35 3236 de00 st [y,x++] 13085 st([Y,Xpp]) #36 3237 01ca ld [$ca] 13086 ld([vTmpL+2]) #37 3238 de00 st [y,x++] 13087 st([Y,Xpp]) #38 3239 01cb ld [$cb] 13088 ld([vTmpL+3]) #39 323a de00 st [y,x++] 13089 st([Y,Xpp]) #40 323b 0200 nop 13090 nop() #41 323c 1403 ld $03,y 13091 ld(hi('NEXTY'),Y) #42 323d e000 jmp y,$00 13092 jmp(Y,'NEXTY') #43 323e 00e9 ld $e9 13093 ld(-46/2) #44 13094 13095 13096 # ADDLP implementation, (lb3361) 13097 label('addlp#13') addlp#13: 323f 80ee adda $ee 13098 adda(min(0,maxTicks-66/2)) #13 3240 e87a blt addlp#16 13099 blt('addlp#16') #14 3241 1519 ld [$19],y 13100 ld([vAC+1],Y) #15 3242 1118 ld [$18],x 13101 ld([vAC],X) #16 3243 01c4 ld [$c4] 13102 ld([vLAC]) #17 lac0 3244 8d00 adda [y,x] 13103 adda([Y,X]) #18 +arg0 3245 c2c4 st [$c4] 13104 st([vLAC]) #19 3246 e84a blt addlp#22 13105 bmi('addlp#22') #20 3247 ad00 suba [y,x] 13106 suba([Y,X]) #21 reconstruct lac0 3248 fc4c bra addlp#24 13107 bra('addlp#24') #22 3249 4d00 ora [y,x] 13108 ora([Y,X]) #23 13109 label('addlp#22') addlp#22: 324a 2d00 anda [y,x] 13110 anda([Y,X]) #22 324b 0200 nop 13111 nop() #23 13112 label('addlp#24') addlp#24: 324c 3080 anda $80,x 13113 anda(0x80,X) #24 324d 0500 ld [x] 13114 ld([X]) #25 324e c21d st [$1d] 13115 st([vTmp]) #26 save carry 324f 0118 ld [$18] 13116 ld([vAC]) #27 3250 9001 adda $01,x 13117 adda(1,X) #28 3251 01c5 ld [$c5] 13118 ld([vLAC+1]) #29 lac1 3252 811d adda [$1d] 13119 adda([vTmp]) #30 +carry 3253 8d00 adda [y,x] 13120 adda([Y,X]) #31 +arg1 3254 c2c5 st [$c5] 13121 st([vLAC+1]) #32 3255 e85a blt addlp#35 13122 bmi('addlp#35') #33 3256 ad00 suba [y,x] 13123 suba([Y,X]) #34 3257 a11d suba [$1d] 13124 suba([vTmp]) #35 reconstruct lac1 3258 fc5d bra addlp#38 13125 bra('addlp#38') #36 3259 4d00 ora [y,x] 13126 ora([Y,X]) #37 13127 label('addlp#35') addlp#35: 325a a11d suba [$1d] 13128 suba([vTmp]) #35 325b 2d00 anda [y,x] 13129 anda([Y,X]) #36 325c 0200 nop 13130 nop() #37 13131 label('addlp#38') addlp#38: 325d 3080 anda $80,x 13132 anda(0x80,X) #38 325e 0500 ld [x] 13133 ld([X]) #39 325f c21d st [$1d] 13134 st([vTmp]) #40 3260 0118 ld [$18] 13135 ld([vAC]) #41 3261 9002 adda $02,x 13136 adda(2,X) #42 3262 01c6 ld [$c6] 13137 ld([vLAC+2]) #43 lac2 3263 811d adda [$1d] 13138 adda([vTmp]) #44 +carry 3264 8d00 adda [y,x] 13139 adda([Y,X]) #45 +arg2 3265 c2c6 st [$c6] 13140 st([vLAC+2]) #46 3266 e86b blt addlp#49 13141 bmi('addlp#49') #47 3267 ad00 suba [y,x] 13142 suba([Y,X]) #48 3268 a11d suba [$1d] 13143 suba([vTmp]) #49 reconstruct lac2 3269 fc6e bra addlp#52 13144 bra('addlp#52') #50 326a 4d00 ora [y,x] 13145 ora([Y,X]) #51 13146 label('addlp#49') addlp#49: 326b a11d suba [$1d] 13147 suba([vTmp]) #49 326c 2d00 anda [y,x] 13148 anda([Y,X]) #50 326d 0200 nop 13149 nop() #51 13150 label('addlp#52') addlp#52: 326e 3080 anda $80,x 13151 anda(0x80,X) #52 326f 0500 ld [x] 13152 ld([X]) #53 3270 c21d st [$1d] 13153 st([vTmp]) #54 3271 0118 ld [$18] 13154 ld([vAC]) #55 3272 9003 adda $03,x 13155 adda(3,X) #56 3273 01c7 ld [$c7] 13156 ld([vLAC+3]) #57 lac3 3274 811d adda [$1d] 13157 adda([vTmp]) #58 +carry 3275 8d00 adda [y,x] 13158 adda([Y,X]) #59 +arg3 3276 c2c7 st [$c7] 13159 st([vLAC+3]) #60 3277 1403 ld $03,y 13160 ld(hi('REENTER'),Y) #61 3278 e0cb jmp y,$cb 13161 jmp(Y,'REENTER') #62 3279 00df ld $df 13162 ld(-66/2) #63 13163 label('addlp#16') addlp#16: 327a 0023 ld $23 13164 ld(hi('PREFX1_PAGE')) #16 restart 327b c202 st [$02] 13165 st([vCpuSelect]) #17 327c 9401 adda $01,y 13166 adda(1,Y) #18 327d e000 jmp y,$00 13167 jmp(Y,'NEXTY') #19 327e 00f5 ld $f5 13168 ld(-22/2) #20 13169 13170 13171 # SUBLP implementation, (lb3361) 13172 label('sublp#13') sublp#13: 327f 80f1 adda $f1 13173 adda(min(0,maxTicks-60/2)) #13 3280 e87a blt addlp#16 13174 blt('addlp#16') #14 3281 1519 ld [$19],y 13175 ld([vAC+1],Y) #15 3282 1118 ld [$18],x 13176 ld([vAC],X) #16 3283 01c4 ld [$c4] 13177 ld([vLAC]) #17 lac0 3284 e889 blt sublp#20 13178 bmi('sublp#20') #18 3285 ad00 suba [y,x] 13179 suba([Y,X]) #19 -arg0 3286 c2c4 st [$c4] 13180 st([vLAC]) #20 3287 fc8c bra sublp#23 13181 bra('sublp#23') #21 3288 4d00 ora [y,x] 13182 ora([Y,X]) #22 13183 label('sublp#20') sublp#20: 3289 c2c4 st [$c4] 13184 st([vLAC]) #20 328a 2d00 anda [y,x] 13185 anda([Y,X]) #21 328b 0200 nop 13186 nop() #22 13187 label('sublp#23') sublp#23: 328c 3080 anda $80,x 13188 anda(0x80,X) #23 328d 0500 ld [x] 13189 ld([X]) #24 328e c21d st [$1d] 13190 st([vTmp]) #25 borrow 328f 0118 ld [$18] 13191 ld([vAC]) #26 3290 9001 adda $01,x 13192 adda(1,X) #27 3291 01c5 ld [$c5] 13193 ld([vLAC+1]) #28 lac1 3292 e898 blt sublp#31 13194 bmi('sublp#31') #29 3293 ad00 suba [y,x] 13195 suba([Y,X]) #30 -arg1 3294 a11d suba [$1d] 13196 suba([vTmp]) #31 -borrow 3295 c2c5 st [$c5] 13197 st([vLAC+1]) #32 3296 fc9c bra sublp#35 13198 bra('sublp#35') #33 3297 4d00 ora [y,x] 13199 ora([Y,X]) #34 13200 label('sublp#31') sublp#31: 3298 a11d suba [$1d] 13201 suba([vTmp]) #31 3299 c2c5 st [$c5] 13202 st([vLAC+1]) #32 329a 2d00 anda [y,x] 13203 anda([Y,X]) #33 329b 0200 nop 13204 nop() #34 13205 label('sublp#35') sublp#35: 329c 3080 anda $80,x 13206 anda(0x80,X) #35 329d 0500 ld [x] 13207 ld([X]) #36 329e c21d st [$1d] 13208 st([vTmp]) #37 329f 0118 ld [$18] 13209 ld([vAC]) #38 32a0 9002 adda $02,x 13210 adda(2,X) #39 32a1 01c6 ld [$c6] 13211 ld([vLAC+2]) #40 lac2 32a2 e8a8 blt sublp#43 13212 bmi('sublp#43') #41 32a3 ad00 suba [y,x] 13213 suba([Y,X]) #42 -arg2 32a4 a11d suba [$1d] 13214 suba([vTmp]) #43 -borrow 32a5 c2c6 st [$c6] 13215 st([vLAC+2]) #44 32a6 fcac bra sublp#47 13216 bra('sublp#47') #45 32a7 4d00 ora [y,x] 13217 ora([Y,X]) #46 13218 label('sublp#43') sublp#43: 32a8 a11d suba [$1d] 13219 suba([vTmp]) #43 32a9 c2c6 st [$c6] 13220 st([vLAC+2]) #44 32aa 2d00 anda [y,x] 13221 anda([Y,X]) #45 32ab 0200 nop 13222 nop() #46 13223 label('sublp#47') sublp#47: 32ac 3080 anda $80,x 13224 anda(0x80,X) #47 32ad 0500 ld [x] 13225 ld([X]) #48 32ae c21d st [$1d] 13226 st([vTmp]) #49 32af 0118 ld [$18] 13227 ld([vAC]) #50 32b0 9003 adda $03,x 13228 adda(3,X) #51 32b1 01c7 ld [$c7] 13229 ld([vLAC+3]) #52 lac3 32b2 ad00 suba [y,x] 13230 suba([Y,X]) #53 -arg3 32b3 a11d suba [$1d] 13231 suba([vTmp]) #54 -borrow 32b4 c2c7 st [$c7] 13232 st([vLAC+3]) #55 32b5 1403 ld $03,y 13233 ld(hi('NEXTY'),Y) #56 32b6 e000 jmp y,$00 13234 jmp(Y,'NEXTY') #57 32b7 00e2 ld $e2 13235 ld(-60/2) #58 13236 13237 13238 # ANDLP implementation, (lb3361) 13239 label('andlp#13') andlp#13: 32b8 80fa adda $fa 13240 adda(min(0,maxTicks-42/2)) #13 32b9 e87a blt addlp#16 13241 blt('addlp#16') #14 32ba 1519 ld [$19],y 13242 ld([vAC+1],Y) #15 32bb 1118 ld [$18],x 13243 ld([vAC],X) #16 32bc 0d00 ld [y,x] 13244 ld([Y,X]) #17 32bd de00 st [y,x++] 13245 st([Y,Xpp]) #18 32be 21c4 anda [$c4] 13246 anda([vLAC+0]) #19 32bf c2c4 st [$c4] 13247 st([vLAC+0]) #20 32c0 0d00 ld [y,x] 13248 ld([Y,X]) #21 32c1 de00 st [y,x++] 13249 st([Y,Xpp]) #22 32c2 21c5 anda [$c5] 13250 anda([vLAC+1]) #23 32c3 c2c5 st [$c5] 13251 st([vLAC+1]) #24 32c4 0d00 ld [y,x] 13252 ld([Y,X]) #25 32c5 de00 st [y,x++] 13253 st([Y,Xpp]) #26 32c6 21c6 anda [$c6] 13254 anda([vLAC+2]) #27 32c7 c2c6 st [$c6] 13255 st([vLAC+2]) #28 32c8 0d00 ld [y,x] 13256 ld([Y,X]) #29 32c9 21c7 anda [$c7] 13257 anda([vLAC+3]) #30 32ca 0200 nop 13258 nop() #31 13259 label('andlp#32') andlp#32: 32cb c2c7 st [$c7] 13260 st([vLAC+3]) #32 32cc c219 st [$19] 13261 st([vAC+1]) #33 32cd 01c4 ld [$c4] 13262 ld([vLAC+0]) #34 32ce 41c5 ora [$c5] 13263 ora([vLAC+1]) #35 32cf 41c6 ora [$c6] 13264 ora([vLAC+2]) #36 32d0 c218 st [$18] 13265 st([vAC]) #37 32d1 1403 ld $03,y 13266 ld(hi('NEXTY'),Y) #38 32d2 e000 jmp y,$00 13267 jmp(Y,'NEXTY') #39 32d3 00eb ld $eb 13268 ld(-42/2) #40 13269 13270 13271 # ORLP implementation, (lb3361) 13272 label('orlp#13') orlp#13: 32d4 80fa adda $fa 13273 adda(min(0,maxTicks-42/2)) #13 32d5 e87a blt addlp#16 13274 blt('addlp#16') #14 32d6 1519 ld [$19],y 13275 ld([vAC+1],Y) #15 32d7 1118 ld [$18],x 13276 ld([vAC],X) #16 32d8 0d00 ld [y,x] 13277 ld([Y,X]) #17 32d9 de00 st [y,x++] 13278 st([Y,Xpp]) #18 32da 41c4 ora [$c4] 13279 ora([vLAC+0]) #19 32db c2c4 st [$c4] 13280 st([vLAC+0]) #20 32dc 0d00 ld [y,x] 13281 ld([Y,X]) #21 32dd de00 st [y,x++] 13282 st([Y,Xpp]) #22 32de 41c5 ora [$c5] 13283 ora([vLAC+1]) #23 32df c2c5 st [$c5] 13284 st([vLAC+1]) #24 32e0 0d00 ld [y,x] 13285 ld([Y,X]) #25 32e1 de00 st [y,x++] 13286 st([Y,Xpp]) #26 32e2 41c6 ora [$c6] 13287 ora([vLAC+2]) #27 32e3 c2c6 st [$c6] 13288 st([vLAC+2]) #28 32e4 0d00 ld [y,x] 13289 ld([Y,X]) #29 32e5 fccb bra andlp#32 13290 bra('andlp#32') #30 32e6 41c7 ora [$c7] 13291 ora([vLAC+3]) #31 13292 13293 13294 # XORLP implementation, (lb3361) 13295 label('xorlp#13') xorlp#13: 32e7 80fa adda $fa 13296 adda(min(0,maxTicks-42/2)) #13 32e8 e87a blt addlp#16 13297 blt('addlp#16') #14 32e9 1519 ld [$19],y 13298 ld([vAC+1],Y) #15 32ea 1118 ld [$18],x 13299 ld([vAC],X) #16 32eb 0d00 ld [y,x] 13300 ld([Y,X]) #17 32ec de00 st [y,x++] 13301 st([Y,Xpp]) #18 32ed 61c4 xora [$c4] 13302 xora([vLAC+0]) #19 32ee c2c4 st [$c4] 13303 st([vLAC+0]) #20 32ef 0d00 ld [y,x] 13304 ld([Y,X]) #21 32f0 de00 st [y,x++] 13305 st([Y,Xpp]) #22 32f1 61c5 xora [$c5] 13306 xora([vLAC+1]) #23 32f2 c2c5 st [$c5] 13307 st([vLAC+1]) #24 32f3 0d00 ld [y,x] 13308 ld([Y,X]) #25 32f4 de00 st [y,x++] 13309 st([Y,Xpp]) #26 32f5 61c6 xora [$c6] 13310 xora([vLAC+2]) #27 32f6 c2c6 st [$c6] 13311 st([vLAC+2]) #28 32f7 0d00 ld [y,x] 13312 ld([Y,X]) #29 32f8 fccb bra andlp#32 13313 bra('andlp#32') #30 32f9 61c7 xora [$c7] 13314 xora([vLAC+3]) #31 13315 13316 32fa 0200 nop 13317 fillers(until=0xff) 32fb 0200 nop 32fc 0200 nop * 5 times 32ff 0200 nop 13318 align(0x100, size=0x100) 13319 13320 #----------------------------------------------------------------------- 13321 # More vCPU instruction implementations, (0x3300) 13322 #----------------------------------------------------------------------- 13323 # 13324 # NCOPY implementation, (lb3361) 13325 label('ncopy#16') ncopy#16: 3300 0022 ld $22 13326 ld(hi('PREFX2_PAGE')) #16 restart 3301 c202 st [$02] 13327 st([vCpuSelect]) #17 3302 9401 adda $01,y 13328 adda(1,Y) #18 3303 e000 jmp y,$00 13329 jmp(Y,'NEXTY') #19 3304 00f5 ld $f5 13330 ld(-22/2) #20 13331 13332 label('ncopy#11') ncopy#11: 3305 8115 adda [$15] 13333 adda([vTicks]) #11 3306 c215 st [$15] 13334 st([vTicks]) #12 13335 label('ncopy#13') #-- entry point ncopy#13: 3307 80eb adda $eb 13336 adda(min(0,maxTicks-(22+50)/2)) #13 time for longest path (72 cycles) 3308 e800 blt ncopy#16 13337 blt('ncopy#16') #14 > restart 3309 0118 ld [$18] 13338 ld([vAC]) #15 330a 20fc anda $fc 13339 anda(0xfc) #16 330b 60fc xora $fc 13340 xora(0xfc) #17 330c f04e beq ncopy#20 13341 beq('ncopy#20') #18 > slow because src crosses page boundary 330d 01cc ld [$cc] 13342 ld([vDST]) #19 330e 20fc anda $fc 13343 anda(0xfc) #20 330f 60fc xora $fc 13344 xora(0xfc) #21 3310 f052 beq ncopy#24 13345 beq('ncopy#24') #22 > slow because dst crosses page boundnary 3311 012b ld [$2b] 13346 ld([sysArgs+7]) #23 3312 20fc anda $fc 13347 anda(0xfc) #24 3313 f03a beq ncopy#27 13348 beq('ncopy#27') #25 > slow because n<4 but no page crossings 3314 1519 ld [$19],y 13349 ld([vAC+1],Y) #26 3315 1118 ld [$18],x 13350 ld([vAC],X) #27 four bytes burst 3316 0d00 ld [y,x] 13351 ld([Y,X]) #28 3317 de00 st [y,x++] 13352 st([Y,Xpp]) #29 3318 c2c8 st [$c8] 13353 st([vTmpL]) #30 3319 0d00 ld [y,x] 13354 ld([Y,X]) #31 331a de00 st [y,x++] 13355 st([Y,Xpp]) #32 331b c2c9 st [$c9] 13356 st([vTmpL+1]) #33 331c 0d00 ld [y,x] 13357 ld([Y,X]) #34 331d de00 st [y,x++] 13358 st([Y,Xpp]) #35 331e c2ca st [$ca] 13359 st([vTmpL+2]) #36 331f 0d00 ld [y,x] 13360 ld([Y,X]) #37 3320 de00 st [y,x++] 13361 st([Y,Xpp]) #38 3321 c2cb st [$cb] 13362 st([vTmpL+3]) #39 3322 15cd ld [$cd],y 13363 ld([vDST+1],Y) #40 3323 11cc ld [$cc],x 13364 ld([vDST],X) #41 3324 01c8 ld [$c8] 13365 ld([vTmpL]) #42 3325 de00 st [y,x++] 13366 st([Y,Xpp]) #43 3326 01c9 ld [$c9] 13367 ld([vTmpL+1]) #44 3327 de00 st [y,x++] 13368 st([Y,Xpp]) #45 3328 01ca ld [$ca] 13369 ld([vTmpL+2]) #46 3329 de00 st [y,x++] 13370 st([Y,Xpp]) #47 332a 01cb ld [$cb] 13371 ld([vTmpL+3]) #48 332b de00 st [y,x++] 13372 st([Y,Xpp]) #40 332c 0004 ld $04 13373 ld(4) #50 increment (no page crossing) 332d 8118 adda [$18] 13374 adda([vAC]) #51 332e c218 st [$18] 13375 st([vAC]) #52 332f 0004 ld $04 13376 ld(4) #53 3330 81cc adda [$cc] 13377 adda([vDST]) #54 3331 c2cc st [$cc] 13378 st([vDST]) #55 3332 012b ld [$2b] 13379 ld([sysArgs+7]) #56 3333 a004 suba $04 13380 suba(4) #57 3334 c22b st [$2b] 13381 st([sysArgs+7]) #58 3335 ec05 bne ncopy#11 13382 bne('ncopy#11') #59-50=9 3336 00e7 ld $e7 13383 ld(-50/2) #60-50=10 3337 1403 ld $03,y 13384 ld(hi('REENTER'),Y) #61 3338 e0cb jmp y,$cb 13385 jmp(Y,'REENTER') #62 3339 00df ld $df 13386 ld(-66/2) #63 13387 13388 label('ncopy#27') ncopy#27: 333a 1118 ld [$18],x 13389 ld([vAC],X) #27 one byte, no page crossings 333b 0d00 ld [y,x] 13390 ld([Y,X]) #28 333c 15cd ld [$cd],y 13391 ld([vDST+1],Y) #29 333d 11cc ld [$cc],x 13392 ld([vDST],X) #30 333e ce00 st [y,x] 13393 st([Y,X]) #31 333f 0001 ld $01 13394 ld(1) #32 increment (no page crossing) 3340 8118 adda [$18] 13395 adda([vAC]) #33 3341 c218 st [$18] 13396 st([vAC]) #34 3342 0001 ld $01 13397 ld(1) #35 3343 81cc adda [$cc] 13398 adda([vDST]) #36 3344 c2cc st [$cc] 13399 st([vDST]) #37 3345 012b ld [$2b] 13400 ld([sysArgs+7]) #38 3346 a001 suba $01 13401 suba(1) #39 3347 c22b st [$2b] 13402 st([sysArgs+7]) #40 3348 ec05 bne ncopy#11 13403 bne('ncopy#11') #41-32=9 3349 00f0 ld $f0 13404 ld(-32/2) #42-32=10 334a 0200 nop 13405 nop() #43 334b 1403 ld $03,y 13406 ld(hi('NEXTY'),Y) #44 334c e000 jmp y,$00 13407 jmp(Y,'NEXTY') #45 334d 00e8 ld $e8 13408 ld(-48/2) #46 13409 13410 label('ncopy#20') ncopy#20: 334e 0200 nop 13411 nop() #20 334f 0200 nop 13412 nop() #21 3350 0200 nop 13413 nop() #22 3351 0200 nop 13414 nop() #23 13415 label('ncopy#24') ncopy#24: 3352 1519 ld [$19],y 13416 ld([vAC+1],Y) #24 3353 1118 ld [$18],x 13417 ld([vAC],X) #25 one byte, possible page crossings 3354 0d00 ld [y,x] 13418 ld([Y,X]) #26 3355 15cd ld [$cd],y 13419 ld([vDST+1],Y) #27 3356 11cc ld [$cc],x 13420 ld([vDST],X) #28 3357 ce00 st [y,x] 13421 st([Y,X]) #29 3358 0001 ld $01 13422 ld(1) #30 increment vAC 3359 8118 adda [$18] 13423 adda([vAC]) #31 335a c218 st [$18] 13424 st([vAC]) #32 335b f05e beq $335e 13425 beq(pc()+3) #33 335c fc5f bra $335f 13426 bra(pc()+3) #34 335d 0000 ld $00 13427 ld(0) #35 335e 0001 ld $01 13428 ld(1) #35! 335f 8119 adda [$19] 13429 adda([vAC+1]) #36 3360 c219 st [$19] 13430 st([vAC+1]) #37 3361 0001 ld $01 13431 ld(1) #38 increment vDST 3362 81cc adda [$cc] 13432 adda([vDST]) #39 3363 c2cc st [$cc] 13433 st([vDST]) #40 3364 f067 beq $3367 13434 beq(pc()+3) #41 3365 fc68 bra $3368 13435 bra(pc()+3) #42 3366 0000 ld $00 13436 ld(0) #43 3367 0001 ld $01 13437 ld(1) #43! 3368 81cd adda [$cd] 13438 adda([vDST+1]) #44 3369 c2cd st [$cd] 13439 st([vDST+1]) #45 336a 0200 nop 13440 nop() #46 336b 012b ld [$2b] 13441 ld([sysArgs+7]) #47 decrement sysArgs7 336c a001 suba $01 13442 suba(1) #48 336d c22b st [$2b] 13443 st([sysArgs+7]) #49 336e 1403 ld $03,y 13444 ld(hi('NEXTY'),Y) #50 336f ec05 bne ncopy#11 13445 bne('ncopy#11') #51-42=9 3370 00eb ld $eb 13446 ld(-42/2) #52-42=10 3371 e000 jmp y,$00 13447 jmp(Y,'NEXTY') #53 3372 00e4 ld $e4 13448 ld(-56/2) #54 13449 13450 13451 # STLU implementation, (lb3361) 13452 label('stlu#13') stlu#13: 3373 1400 ld $00,y 13453 ld(0,Y) #13 3374 0118 ld [$18] 13454 ld([vAC]) #14 3375 de00 st [y,x++] 13455 st([Y,Xpp]) #15 3376 0119 ld [$19] 13456 ld([vAC+1]) #16 3377 de00 st [y,x++] 13457 st([Y,Xpp]) #17 3378 dc00 st $00,[y,x++] 13458 st(0,[Y,Xpp]) #18 3379 cc00 st $00,[y,x] 13459 st(0,[Y,X]) #19 337a 1403 ld $03,y 13460 ld(hi('NEXTY'),Y) #20 337b e000 jmp y,$00 13461 jmp(Y,'NEXTY') #21 337c 00f4 ld $f4 13462 ld(-24/2) #22 13463 13464 13465 # STLS implementation, (lb3361) 13466 label('stls#13') stls#13: 337d 1200 ld ac,x 13467 ld(AC,X) #13 337e 1400 ld $00,y 13468 ld(0,Y) #14 337f 0118 ld [$18] 13469 ld([vAC]) #15 3380 de00 st [y,x++] 13470 st([Y,Xpp]) #16 3381 0119 ld [$19] 13471 ld([vAC+1]) #17 3382 e889 blt .stls#20 13472 bmi('.stls#20') #18 3383 de00 st [y,x++] 13473 st([Y,Xpp]) #19 3384 dc00 st $00,[y,x++] 13474 st(0,[Y,Xpp]) #20 3385 cc00 st $00,[y,x] 13475 st(0,[Y,X]) #21 3386 1403 ld $03,y 13476 ld(hi('NEXTY'),Y) #22 3387 e000 jmp y,$00 13477 jmp(Y,'NEXTY') #23 3388 00f3 ld $f3 13478 ld(-26/2) #24 13479 label('.stls#20') .stls#20: 3389 dcff st $ff,[y,x++] 13480 st(0xff,[Y,Xpp]) #20 338a ccff st $ff,[y,x] 13481 st(0xff,[Y,X]) #21 338b 1403 ld $03,y 13482 ld(hi('NEXTY'),Y) #22 338c e000 jmp y,$00 13483 jmp(Y,'NEXTY') #23 338d 00f3 ld $f3 13484 ld(-26/2) #24 13485 13486 13487 # CMPLPU/CMPLPS implementation, (lb3361) 13488 label('cmplp#16') cmplp#16: 338e 0023 ld $23 13489 ld(hi('PREFX1_PAGE')) #16 restart 338f c202 st [$02] 13490 st([vCpuSelect]) #17 3390 9401 adda $01,y 13491 adda(1,Y) #18 3391 e000 jmp y,$00 13492 jmp(Y,'NEXTY') #19 3392 00f5 ld $f5 13493 ld(-22/2) #20 13494 13495 label('cmplp#lt') cmplp#lt: 3393 00ff ld $ff 13496 ld(0xff) #vTmp-7 3394 c218 st [$18] 13497 st([vAC]) #vTmp-6 3395 c219 st [$19] 13498 st([vAC+1]) #vTmp-5 3396 1403 ld $03,y 13499 ld(hi('NEXTY'),Y) #vTmp-4 3397 e000 jmp y,$00 13500 jmp(Y,'NEXTY') #vTmp-3 3398 011d ld [$1d] 13501 ld([vTmp]) #vTmp-2 13502 13503 label('cmplp#gt') cmplp#gt: 3399 0001 ld $01 13504 ld(1) #vTmp-8 339a c218 st [$18] 13505 st([vAC]) #vTmp-7 339b 0000 ld $00 13506 ld(0) #vTmp-6 339c c219 st [$19] 13507 st([vAC+1]) #vTmp-5 339d 1403 ld $03,y 13508 ld(hi('NEXTY'),Y) #vTmp-4 339e e000 jmp y,$00 13509 jmp(Y,'NEXTY') #vTmp-3 339f 011d ld [$1d] 13510 ld([vTmp]) #vTmp-2 13511 13512 label('cmplpu#13') cmplpu#13: 33a0 80eb adda $eb 13513 adda(min(0,maxTicks-72/2)) #13 33a1 e88e blt cmplp#16 13514 blt('cmplp#16') #14 33a2 1519 ld [$19],y 13515 ld([vAC+1],Y) #15 13516 # byte3 33a3 0118 ld [$18] 13517 ld([vAC]) #16 33a4 9003 adda $03,x 13518 adda(3,X) #17 33a5 00ee ld $ee 13519 ld(-36/2) #18 33a6 c21d st [$1d] 13520 st([vTmp]) #19 33a7 01c7 ld [$c7] 13521 ld([vLAC+3]) #20 33a8 6d00 xora [y,x] 13522 xora([Y,X]) #21 33a9 e8ad blt $33ad 13523 blt(pc()+4) #22 33aa 01c7 ld [$c7] 13524 ld([vLAC+3]) #23 33ab fcaf bra cmplp#26 13525 bra('cmplp#26') #24 33ac ad00 suba [y,x] 13526 suba([Y,X]) #25 33ad 6080 xora $80 13527 xora(0x80) #24 33ae 4001 ora $01 13528 ora(1) #25 13529 label('cmplp#26') cmplp#26: 33af e499 bgt cmplp#gt 13530 bgt('cmplp#gt') #26 33b0 e893 blt cmplp#lt 13531 blt('cmplp#lt') #27 13532 # byte2 33b1 0118 ld [$18] 13533 ld([vAC]) #28 33b2 9002 adda $02,x 13534 adda(2,X) #29 33b3 00e8 ld $e8 13535 ld(-48/2) #30 33b4 c21d st [$1d] 13536 st([vTmp]) #31 33b5 01c6 ld [$c6] 13537 ld([vLAC+2]) #32 33b6 6d00 xora [y,x] 13538 xora([Y,X]) #33 33b7 e8bb blt $33bb 13539 blt(pc()+4) #34 33b8 01c6 ld [$c6] 13540 ld([vLAC+2]) #35 33b9 fcbd bra $33bd 13541 bra(pc()+4) #36 33ba ad00 suba [y,x] 13542 suba([Y,X]) #37 33bb 6080 xora $80 13543 xora(0x80) #36 33bc 4001 ora $01 13544 ora(1) #37 33bd e499 bgt cmplp#gt 13545 bgt('cmplp#gt') #38 33be e893 blt cmplp#lt 13546 blt('cmplp#lt') #39 13547 # byte1 33bf 0118 ld [$18] 13548 ld([vAC]) #40 33c0 9001 adda $01,x 13549 adda(1,X) #41 33c1 00e2 ld $e2 13550 ld(-60/2) #42 33c2 c21d st [$1d] 13551 st([vTmp]) #43 33c3 01c5 ld [$c5] 13552 ld([vLAC+1]) #44 33c4 6d00 xora [y,x] 13553 xora([Y,X]) #45 33c5 e8c9 blt $33c9 13554 blt(pc()+4) #46 33c6 01c5 ld [$c5] 13555 ld([vLAC+1]) #47 33c7 fccb bra $33cb 13556 bra(pc()+4) #48 33c8 ad00 suba [y,x] 13557 suba([Y,X]) #49 33c9 6080 xora $80 13558 xora(0x80) #48 33ca 4001 ora $01 13559 ora(1) #49 33cb e499 bgt cmplp#gt 13560 bgt('cmplp#gt') #50 33cc e893 blt cmplp#lt 13561 blt('cmplp#lt') #51 13562 # byte0 33cd 0118 ld [$18] 13563 ld([vAC]) #52 33ce 9000 adda $00,x 13564 adda(0,X) #53 33cf 00dc ld $dc 13565 ld(-72/2) #54 33d0 c21d st [$1d] 13566 st([vTmp]) #55 33d1 01c4 ld [$c4] 13567 ld([vLAC]) #56 33d2 6d00 xora [y,x] 13568 xora([Y,X]) #57 33d3 e8d7 blt $33d7 13569 blt(pc()+4) #58 33d4 01c4 ld [$c4] 13570 ld([vLAC]) #59 33d5 fcd9 bra $33d9 13571 bra(pc()+4) #60 33d6 ad00 suba [y,x] 13572 suba([Y,X]) #61 33d7 6080 xora $80 13573 xora(0x80) #60 33d8 4001 ora $01 13574 ora(1) #61 33d9 e499 bgt cmplp#gt 13575 bgt('cmplp#gt') #62 33da e893 blt cmplp#lt 13576 blt('cmplp#lt') #63 33db c219 st [$19] 13577 st([vAC+1]) #64 33dc c218 st [$18] 13578 st([vAC]) #65 33dd 1403 ld $03,y 13579 ld(hi('NEXTY'),Y) #66 33de e000 jmp y,$00 13580 jmp(Y,'NEXTY') #67 33df 00dd ld $dd 13581 ld(-70/2) #68 13582 13583 label('cmplps#13') cmplps#13: 33e0 80eb adda $eb 13584 adda(min(0,maxTicks-72/2)) #13 33e1 e88e blt cmplp#16 13585 blt('cmplp#16') #14 33e2 1519 ld [$19],y 13586 ld([vAC+1],Y) #15 13587 #byte3 33e3 0118 ld [$18] 13588 ld([vAC]) #16 33e4 9003 adda $03,x 13589 adda(3,X) #17 33e5 00ee ld $ee 13590 ld(-36/2) #18 33e6 c21d st [$1d] 13591 st([vTmp]) #19 33e7 01c7 ld [$c7] 13592 ld([vLAC+3]) #20 33e8 6d00 xora [y,x] 13593 xora([Y,X]) #21 33e9 e8ed blt $33ed 13594 blt(pc()+4) #22 33ea 01c7 ld [$c7] 13595 ld([vLAC+3]) #23 33eb fcaf bra cmplp#26 13596 bra('cmplp#26') #24 33ec ad00 suba [y,x] 13597 suba([Y,X]) #25 33ed 0200 nop 13598 nop() #24 33ee 4001 ora $01 13599 ora(1) #25 33ef e499 bgt cmplp#gt 13600 bgt('cmplp#gt') #26 33f0 e893 blt cmplp#lt 13601 blt('cmplp#lt') #27 13602 #dummy #28 13603 13604 33f1 0200 nop 13605 fillers(until=0xff) 33f2 0200 nop 33f3 0200 nop * 14 times 33ff 0200 nop 13606 align(0x100, size=0x100) 13607 13608 #----------------------------------------------------------------------- 13609 # More vCPU instruction implementations, (0x3400) 13610 #----------------------------------------------------------------------- 13611 # 13612 # NOTL implementation, (lb3361) 13613 label('notl#13') notl#13: 3400 1400 ld $00,y 13614 ld(0,Y) #13 3401 0d00 ld [y,x] 13615 ld([Y,X]) #14 3402 60ff xora $ff 13616 xora(0xff) #15 3403 de00 st [y,x++] 13617 st([Y,Xpp]) #16 3404 0d00 ld [y,x] 13618 ld([Y,X]) #17 3405 60ff xora $ff 13619 xora(0xff) #18 3406 de00 st [y,x++] 13620 st([Y,Xpp]) #19 3407 0d00 ld [y,x] 13621 ld([Y,X]) #20 3408 60ff xora $ff 13622 xora(0xff) #21 3409 de00 st [y,x++] 13623 st([Y,Xpp]) #22 340a 0d00 ld [y,x] 13624 ld([Y,X]) #23 340b 60ff xora $ff 13625 xora(0xff) #24 340c de00 st [y,x++] 13626 st([Y,Xpp]) #25 340d 1403 ld $03,y 13627 ld(hi('NEXTY'),Y) #26 340e e000 jmp y,$00 13628 jmp(Y,'NEXTY') #27 340f 00f1 ld $f1 13629 ld(-30/2) #28 13630 13631 13632 # NROL implementation, (lb3361) 13633 label('nrol#13') nrol#13: 3410 112b ld [$2b],x 13634 ld([sysArgs+7],X) #13 3411 fc15 bra nrol#16 13635 bra('nrol#16') #14 3412 0115 ld [$15] 13636 ld([vTicks]) #15 13637 13638 label('nrol#14') nrol#14: 3413 8115 adda [$15] 13639 adda([vTicks]) #14 3414 c215 st [$15] 13640 st([vTicks]) #15 13641 label('nrol#16') nrol#16: 3415 80fa adda $fa 13642 adda(min(0,maxTicks-(24+18)/2)) #16 3416 f41c bge nrol#19 13643 bge('nrol#19') #17 -> enough time 3417 0021 ld $21 13644 ld(hi('PREFX3_PAGE')) #18 restart 3418 c202 st [$02] 13645 st([vCpuSelect]) #19 3419 9401 adda $01,y 13646 adda(1,Y) #20 341a e000 jmp y,$00 13647 jmp(Y,'NEXTY') #21 341b 00f4 ld $f4 13648 ld(-24/2) #22 13649 13650 label('nrol#19') nrol#19: 341c 0119 ld [$19] 13651 ld([vAC+1]) #19 enough time 341d e822 blt nrol#22 13652 blt('nrol#22') #20 341e 0500 ld [x] 13653 ld([X]) #21 341f c219 st [$19] 13654 st([vAC+1]) #22 3420 fc25 bra nrol#25 13655 bra('nrol#25') #23 3421 8200 adda ac 13656 adda(AC) #24 13657 label('nrol#22') nrol#22: 3422 c219 st [$19] 13658 st([vAC+1]) #22 3423 8200 adda ac 13659 adda(AC) #23 3424 8001 adda $01 13660 adda(1) #24 13661 label('nrol#25') nrol#25: 3425 c600 st [x] 13662 st([X]) #25 3426 0001 ld $01 13663 ld(1) #26 3427 812b adda [$2b] 13664 adda([sysArgs+7]) #27 3428 d22b st [$2b],x 13665 st([sysArgs+7],X) #28 3429 612a xora [$2a] 13666 xora([sysArgs+6]) #29 342a ec13 bne nrol#14 13667 bne('nrol#14') #30-18=12 342b 00f7 ld $f7 13668 ld(-18/2) #31-18=13 342c 1403 ld $03,y 13669 ld(hi('NEXTY'),Y) #32 342d e000 jmp y,$00 13670 jmp(Y,'NEXTY') #33 342e 00ee ld $ee 13671 ld(-36/2) #34 13672 13673 13674 # NROR implementation, (lb3361) 13675 label('nror#20') nror#20: 342f 0021 ld $21 13676 ld(hi('PREFX3_PAGE')) #20 restart 3430 c202 st [$02] 13677 st([vCpuSelect]) #21 3431 9401 adda $01,y 13678 adda(1,Y) #22 3432 e000 jmp y,$00 13679 jmp(Y,'NEXTY') #23 3433 00f3 ld $f3 13680 ld(-26/2) #24 13681 13682 label('nror#13') nror#13: 3434 00d1 ld $d1 13683 ld('nror#35') #13 3435 c21d st [$1d] 13684 st([vTmp]) #14 3436 0115 ld [$15] 13685 ld([vTicks]) #15 13686 label('nror#16') nror#16: 3437 1405 ld $05,y 13687 ld(hi('shiftTable'),Y) #16 3438 80f3 adda $f3 13688 adda(min(0,maxTicks-(26+30)/2)) #17 3439 e82f blt nror#20 13689 blt('nror#20') #18 343a 012b ld [$2b] 13690 ld([sysArgs+7]) #19 343b a001 suba $01 13691 suba(1) #20 343c d22b st [$2b],x 13692 st([sysArgs+7],X) #21 343d 0119 ld [$19] 13693 ld([vAC+1]) #22 343e 2080 anda $80 13694 anda(0x80) #23 343f c218 st [$18] 13695 st([vAC]) #24 3440 0500 ld [x] 13696 ld([X]) #25 3441 20fe anda $fe 13697 anda(0xfe) #26 3442 a500 suba [x] 13698 suba([X]) #27 3443 c219 st [$19] 13699 st([vAC+1]) #28 3444 8500 adda [x] 13700 adda([X]) #29 3445 e200 jmp y,ac 13701 jmp(Y,AC) #30 3446 fcff bra $ff 13702 bra(255) #31 continues in page 0x600 13703 13704 13705 # INCL implementation 13706 label('incl#13') incl#13: 3447 00fd ld $fd 13707 ld(min(0,maxTicks-36/2)) #13 3448 8115 adda [$15] 13708 adda([vTicks]) #14 3449 e866 blt .incl#17 13709 blt('.incl#17') #15 not enough time left, so retry 344a 1400 ld $00,y 13710 ld(0,Y) #16 344b 0500 ld [x] 13711 ld([X]) #17 13712 label('incl#18') incl#18: 344c 8001 adda $01 13713 adda(1) #18 344d f052 beq .incl#21 13714 beq('.incl#21') #19 if 0 byte is 0x00 344e de00 st [y,x++] 13715 st([Y,Xpp]) #20 inc 0 byte 344f 1403 ld $03,y 13716 ld(hi('REENTER'),Y) #21 3450 e0cb jmp y,$cb 13717 jmp(Y,'REENTER') #22 3451 00f3 ld $f3 13718 ld(-26/2) #23 13719 13720 label('.incl#21') .incl#21: 3452 0500 ld [x] 13721 ld([X]) #21 3453 8001 adda $01 13722 adda(1) #22 3454 f059 beq .incl#25 13723 beq('.incl#25') #23 if 1 byte is 0x00 3455 de00 st [y,x++] 13724 st([Y,Xpp]) #24 inc 1 byte 3456 1403 ld $03,y 13725 ld(hi('REENTER'),Y) #25 3457 e0cb jmp y,$cb 13726 jmp(Y,'REENTER') #26 3458 00f1 ld $f1 13727 ld(-30/2) #27 13728 13729 label('.incl#25') .incl#25: 3459 0500 ld [x] 13730 ld([X]) #25 345a 8001 adda $01 13731 adda(1) #26 345b f060 beq .incl#29 13732 beq('.incl#29') #27 if 2 byte is 0x00 345c de00 st [y,x++] 13733 st([Y,Xpp]) #28 inc 2 byte 345d 1403 ld $03,y 13734 ld(hi('REENTER'),Y) #29 345e e0cb jmp y,$cb 13735 jmp(Y,'REENTER') #30 345f 00ef ld $ef 13736 ld(-34/2) #31 13737 13738 label('.incl#29') .incl#29: 3460 0500 ld [x] 13739 ld([X]) #29 3461 8001 adda $01 13740 adda(1) #30 3462 c600 st [x] 13741 st([X]) #31 inc high byte 3463 1403 ld $03,y 13742 ld(hi('NEXTY'),Y) #32 3464 e000 jmp y,$00 13743 jmp(Y,'NEXTY') #33 3465 00ee ld $ee 13744 ld(-36/2) #34 13745 13746 label('.incl#17') .incl#17: 3466 0022 ld $22 13747 ld(hi('PREFX2_PAGE')) #17 ENTER is at $(n-1)ff, where n = instruction page 3467 c202 st [$02] 13748 st([vCpuSelect]) #18 restore PREFX2 instruction page 3468 9401 adda $01,y 13749 adda(1,Y) #19 retry instruction 3469 e0cb jmp y,$cb 13750 jmp(Y,'REENTER') #20 346a 00f4 ld $f4 13751 ld(-24/2) #21 13752 13753 13754 # DECL implementation 13755 label('decl#13') decl#13: 346b 112b ld [$2b],x 13756 ld([sysArgs+7],X) #13 var address 346c 00fb ld $fb 13757 ld(min(0,maxTicks-40/2)) #14 346d 8115 adda [$15] 13758 adda([vTicks]) #15 346e e88e blt .decl#18 13759 blt('.decl#18') #16 not enough time left, so retry 346f 1400 ld $00,y 13760 ld(0,Y) #17 3470 0500 ld [x] 13761 ld([X]) #18 3471 a001 suba $01 13762 suba(1) #19 3472 de00 st [y,x++] 13763 st([Y,Xpp]) #20 dec 0 byte 3473 60ff xora $ff 13764 xora(0xff) #21 if 0 byte is 0xff 3474 f079 beq .decl#24 13765 beq('.decl#24') #22 3475 0500 ld [x] 13766 ld([X]) #23 3476 1403 ld $03,y 13767 ld(hi('NEXTY'),Y) #24 3477 e000 jmp y,$00 13768 jmp(Y,'NEXTY') #25 3478 00f2 ld $f2 13769 ld(-28/2) #26 13770 13771 label('.decl#24') .decl#24: 3479 a001 suba $01 13772 suba(1) #24 347a de00 st [y,x++] 13773 st([Y,Xpp]) #25 dec 1 byte 347b 60ff xora $ff 13774 xora(0xff) #26 if 1 byte is 0xff 347c f081 beq .decl#29 13775 beq('.decl#29') #27 347d 0500 ld [x] 13776 ld([X]) #28 347e 1403 ld $03,y 13777 ld(hi('REENTER'),Y) #29 347f e0cb jmp y,$cb 13778 jmp(Y,'REENTER') #30 3480 00ef ld $ef 13779 ld(-34/2) #31 13780 13781 label('.decl#29') .decl#29: 3481 a001 suba $01 13782 suba(1) #29 3482 de00 st [y,x++] 13783 st([Y,Xpp]) #30 dec 2 byte 3483 60ff xora $ff 13784 xora(0xff) #31 if 2 byte is 0xff 3484 f089 beq .decl#34 13785 beq('.decl#34') #32 3485 0500 ld [x] 13786 ld([X]) #33 3486 1403 ld $03,y 13787 ld(hi('NEXTY'),Y) #34 3487 e000 jmp y,$00 13788 jmp(Y,'NEXTY') #35 3488 00ed ld $ed 13789 ld(-38/2) #36 13790 13791 label('.decl#34') .decl#34: 3489 a001 suba $01 13792 suba(1) #34 348a c600 st [x] 13793 st([X]) #35 dec 3 byte 348b 1403 ld $03,y 13794 ld(hi('NEXTY'),Y) #36 348c e000 jmp y,$00 13795 jmp(Y,'NEXTY') #37 348d 00ec ld $ec 13796 ld(-40/2) #38 13797 13798 label('.decl#18') .decl#18: 348e 0022 ld $22 13799 ld(hi('PREFX2_PAGE')) #18 ENTER is at $(n-1)ff, where n = instruction page 348f c202 st [$02] 13800 st([vCpuSelect]) #19 restore PREFX2 instruction page 3490 9401 adda $01,y 13801 adda(1,Y) #20 retry instruction 3491 e000 jmp y,$00 13802 jmp(Y,'NEXTY') #21 3492 00f4 ld $f4 13803 ld(-24/2) #22 13804 13805 13806 # NEGL implementation, (lb3361) 13807 # Complement then jumps into INCL 13808 label('negl#13') negl#13: 3493 1400 ld $00,y 13809 ld(0,Y) #13 3494 00f2 ld $f2 13810 ld(min(0,maxTicks-(40+18)/2)) #14 3495 8115 adda [$15] 13811 adda([vTicks]) #15 3496 e88e blt .decl#18 13812 blt('.decl#18') #16 restart 3497 0d00 ld [y,x] 13813 ld([Y,X]) #17 3498 60ff xora $ff 13814 xora(0xff) #18 3499 de00 st [y,x++] 13815 st([Y,Xpp]) #19 349a 0d00 ld [y,x] 13816 ld([Y,X]) #20 349b 60ff xora $ff 13817 xora(0xff) #21 349c de00 st [y,x++] 13818 st([Y,Xpp]) #22 349d 0d00 ld [y,x] 13819 ld([Y,X]) #23 349e 60ff xora $ff 13820 xora(0xff) #24 349f de00 st [y,x++] 13821 st([Y,Xpp]) #25 34a0 0d00 ld [y,x] 13822 ld([Y,X]) #26 34a1 60ff xora $ff 13823 xora(0xff) #27 34a2 de00 st [y,x++] 13824 st([Y,Xpp]) #28 34a3 0200 nop 13825 nop() #29 34a4 0115 ld [$15] 13826 ld([vTicks]) #30 34a5 80f7 adda $f7 13827 adda(-18/2) #13=31-18 34a6 c215 st [$15] 13828 st([vTicks]) #14 34a7 112b ld [$2b],x 13829 ld([sysArgs+7],X) #15 34a8 fc4c bra incl#18 13830 bra('incl#18') #16 34a9 0500 ld [x] 13831 ld([X]) #17 13832 13833 13834 # VADDBL implementation 13835 label('vaddbl#13') vaddbl#13: 34aa 1400 ld $00,y 13836 ld(0,Y) #13 34ab 00f8 ld $f8 13837 ld(min(0,maxTicks-46/2)) #14 34ac 8115 adda [$15] 13838 adda([vTicks]) #15 34ad e8ca blt .vaddbl#18 13839 blt('.vaddbl#18') #16 not enough time left, so retry 34ae 0500 ld [x] 13840 ld([X]) #17 34af de00 st [y,x++] 13841 st([Y,Xpp]) #18 34b0 c2b0 st [$b0] 13842 st([0xB0]) #19 src.0 34b1 0500 ld [x] 13843 ld([X]) #20 34b2 de00 st [y,x++] 13844 st([Y,Xpp]) #21 34b3 c2b1 st [$b1] 13845 st([0xB1]) #22 src.1 34b4 0500 ld [x] 13846 ld([X]) #23 34b5 de00 st [y,x++] 13847 st([Y,Xpp]) #24 34b6 c2b2 st [$b2] 13848 st([0xB2]) #25 src.2 34b7 0500 ld [x] 13849 ld([X]) #26 34b8 de00 st [y,x++] 13850 st([Y,Xpp]) #27 34b9 c2b3 st [$b3] 13851 st([0xB3]) #28 src.3 34ba 112b ld [$2b],x 13852 ld([sysArgs+7],X) #29 34bb 0500 ld [x] 13853 ld([X]) #30 34bc 81b0 adda [$b0] 13854 adda([0xB0]) #31 34bd de00 st [y,x++] 13855 st([Y,Xpp]) #32 dst.0 += src.0 34be 0500 ld [x] 13856 ld([X]) #33 34bf 81b1 adda [$b1] 13857 adda([0xB1]) #34 34c0 de00 st [y,x++] 13858 st([Y,Xpp]) #35 dst.1 += src.1 34c1 0500 ld [x] 13859 ld([X]) #36 34c2 81b2 adda [$b2] 13860 adda([0xB2]) #37 34c3 de00 st [y,x++] 13861 st([Y,Xpp]) #38 dst.2 += src.2 34c4 0500 ld [x] 13862 ld([X]) #39 34c5 81b3 adda [$b3] 13863 adda([0xB3]) #40 34c6 c600 st [x] 13864 st([X]) #41 dst.3 += src.3 34c7 1403 ld $03,y 13865 ld(hi('NEXTY'),Y) #42 34c8 e000 jmp y,$00 13866 jmp(Y,'NEXTY') #43 34c9 00e9 ld $e9 13867 ld(-46/2) #44 13868 13869 label('.vaddbl#18') .vaddbl#18: 34ca 0021 ld $21 13870 ld(hi('PREFX3_PAGE')) #18 ENTER is at $(n-1)ff, where n = instruction page 34cb c202 st [$02] 13871 st([vCpuSelect]) #19 restore PREFX2 instruction page 34cc 9401 adda $01,y 13872 adda(1,Y) #20 retry instruction 34cd e000 jmp y,$00 13873 jmp(Y,'NEXTY') #21 34ce 00f4 ld $f4 13874 ld(-24/2) #22 13875 13876 13877 # VSUBBL implementation 13878 label('vsubbl#13') vsubbl#13: 34cf 1400 ld $00,y 13879 ld(0,Y) #13 34d0 00f8 ld $f8 13880 ld(min(0,maxTicks-46/2)) #14 34d1 8115 adda [$15] 13881 adda([vTicks]) #15 34d2 e8ef blt .vsubbl#18 13882 blt('.vsubbl#18') #16 not enough time left, so retry 34d3 0500 ld [x] 13883 ld([X]) #17 34d4 de00 st [y,x++] 13884 st([Y,Xpp]) #18 34d5 c2b0 st [$b0] 13885 st([0xB0]) #19 src.0 34d6 0500 ld [x] 13886 ld([X]) #20 34d7 de00 st [y,x++] 13887 st([Y,Xpp]) #21 34d8 c2b1 st [$b1] 13888 st([0xB1]) #22 src.1 34d9 0500 ld [x] 13889 ld([X]) #23 34da de00 st [y,x++] 13890 st([Y,Xpp]) #24 34db c2b2 st [$b2] 13891 st([0xB2]) #25 src.2 34dc 0500 ld [x] 13892 ld([X]) #26 34dd de00 st [y,x++] 13893 st([Y,Xpp]) #27 34de c2b3 st [$b3] 13894 st([0xB3]) #28 src.3 34df 112b ld [$2b],x 13895 ld([sysArgs+7],X) #29 34e0 0500 ld [x] 13896 ld([X]) #30 34e1 a1b0 suba [$b0] 13897 suba([0xB0]) #31 34e2 de00 st [y,x++] 13898 st([Y,Xpp]) #32 dst.0 -= src.0 34e3 0500 ld [x] 13899 ld([X]) #33 34e4 a1b1 suba [$b1] 13900 suba([0xB1]) #34 34e5 de00 st [y,x++] 13901 st([Y,Xpp]) #35 dst.1 -= src.1 34e6 0500 ld [x] 13902 ld([X]) #36 34e7 a1b2 suba [$b2] 13903 suba([0xB2]) #37 34e8 de00 st [y,x++] 13904 st([Y,Xpp]) #38 dst.2 -= src.2 34e9 0500 ld [x] 13905 ld([X]) #39 34ea a1b3 suba [$b3] 13906 suba([0xB3]) #40 34eb c600 st [x] 13907 st([X]) #41 dst.3 -= src.3 34ec 1403 ld $03,y 13908 ld(hi('NEXTY'),Y) #42 34ed e000 jmp y,$00 13909 jmp(Y,'NEXTY') #43 34ee 00e9 ld $e9 13910 ld(-46/2) #44 13911 13912 label('.vsubbl#18') .vsubbl#18: 34ef 0021 ld $21 13913 ld(hi('PREFX3_PAGE')) #18 ENTER is at $(n-1)ff, where n = instruction page 34f0 c202 st [$02] 13914 st([vCpuSelect]) #19 restore PREFX2 instruction page 34f1 9401 adda $01,y 13915 adda(1,Y) #20 retry instruction 34f2 e000 jmp y,$00 13916 jmp(Y,'NEXTY') #21 34f3 00f4 ld $f4 13917 ld(-24/2) #22 13918 13919 34f4 0200 nop 13920 fillers(until=0xff) 34f5 0200 nop 34f6 0200 nop * 11 times 34ff 0200 nop 13921 align(0x100, size=0x100) 13922 13923 #----------------------------------------------------------------------- 13924 # More vCPU instruction implementations, (0x3500) 13925 #----------------------------------------------------------------------- 13926 # 13927 # ADDBI implementation, dst.lo = imm + src.lo, does NOT modify dst.hi 13928 label('addbi#13') addbi#13: 3500 c21d st [$1d] 13929 st([vTmp]) #13 src var 3501 de00 st [y,x++] 13930 st([Y,Xpp]) #14 3502 0d00 ld [y,x] 13931 ld([Y,X]) #15 3503 c22b st [$2b] 13932 st([sysArgs+7]) #16 dst var 3504 de00 st [y,x++] 13933 st([Y,Xpp]) #17 3505 0d00 ld [y,x] 13934 ld([Y,X]) #18 imm 3506 111d ld [$1d],x 13935 ld([vTmp],X) #19 3507 8500 adda [x] 13936 adda([X]) #20 3508 112b ld [$2b],x 13937 ld([sysArgs+7],X) #21 3509 c600 st [x] 13938 st([X]) #22 350a 0116 ld [$16] 13939 ld([vPC]) #23 350b 8002 adda $02 13940 adda(2) #24 350c c216 st [$16] 13941 st([vPC]) #25 350d 1403 ld $03,y 13942 ld(hi('NEXTY'),Y) #26 350e e000 jmp y,$00 13943 jmp(Y,'NEXTY') #27 350f 00f1 ld $f1 13944 ld(-30/2) #28 13945 13946 13947 # SUBBI implementation, dst.lo = src.lo - imm, does NOT modify dst.hi 13948 label('subbi#13') subbi#13: 3510 c21d st [$1d] 13949 st([vTmp]) #13 imm 3511 de00 st [y,x++] 13950 st([Y,Xpp]) #14 3512 00fe ld $fe 13951 ld(min(0,maxTicks-34/2)) #15 3513 8115 adda [$15] 13952 adda([vTicks]) #16 3514 e824 blt .subbi#19 13953 blt('.subbi#19') #17 not enough time left, so retry 3515 0d00 ld [y,x] 13954 ld([Y,X]) #18 3516 c22b st [$2b] 13955 st([sysArgs+7]) #19 dst var 3517 de00 st [y,x++] 13956 st([Y,Xpp]) #20 3518 0d00 ld [y,x] 13957 ld([Y,X]) #21 src var 3519 1200 ld ac,x 13958 ld(AC,X) #22 351a 0500 ld [x] 13959 ld([X]) #23 351b a11d suba [$1d] 13960 suba([vTmp]) #24 351c 112b ld [$2b],x 13961 ld([sysArgs+7],X) #25 351d c600 st [x] 13962 st([X]) #26 351e 0116 ld [$16] 13963 ld([vPC]) #27 351f 8002 adda $02 13964 adda(2) #28 3520 c216 st [$16] 13965 st([vPC]) #29 3521 1403 ld $03,y 13966 ld(hi('NEXTY'),Y) #30 3522 e000 jmp y,$00 13967 jmp(Y,'NEXTY') #31 3523 00ef ld $ef 13968 ld(-34/2) #32 13969 13970 label('.subbi#19') .subbi#19: 3524 0116 ld [$16] 13971 ld([vPC]) #19 retry instruction 3525 a002 suba $02 13972 suba(2) #20 3526 c216 st [$16] 13973 st([vPC]) #21 3527 1403 ld $03,y 13974 ld(hi('NEXTY'),Y) #22 3528 e000 jmp y,$00 13975 jmp(Y,'NEXTY') #23 3529 00f3 ld $f3 13976 ld(-26/2) #24 13977 13978 13979 # FNT6X8 implementation 13980 label('fnt6x8#13') fnt6x8#13: 352a 00fa ld $fa 13981 ld(min(0,maxTicks-42/2)) #13 352b 8115 adda [$15] 13982 adda([vTicks]) #14 352c e84c blt .fnt6x8#17 13983 blt('.fnt6x8#17') #15 not enough time left, so retry 352d 112a ld [$2a],x 13984 ld([sysArgs+6],X) #16 352e 0500 ld [x] 13985 ld([X]) #17 fontChr 352f e833 blt fnt6x8#20 13986 bmi('fnt6x8#20') #18 3530 a052 suba $52 13987 suba(82) #19 3531 fc35 bra fnt6x8#22 13988 bra('fnt6x8#22') #20 3532 4052 ora $52 13989 ora(82) #21 13990 13991 label('fnt6x8#20') fnt6x8#20: 3533 2052 anda $52 13992 anda(82) #20 3534 0200 nop 13993 nop() #21 13994 13995 label('fnt6x8#22') fnt6x8#22: 3535 e83b blt fnt6x8#24 13996 bmi('fnt6x8#24') #22 3536 0500 ld [x] 13997 ld([X]) #23 fontChr >= 82 3537 a052 suba $52 13998 suba(82) #24 3538 c22a st [$2a] 13999 st([sysArgs+6]) #25 sysArgs+6 = fontChr - 82 3539 fc3f bra fnt6x8#28 14000 bra('fnt6x8#28') #26 353a 0008 ld $08 14001 ld(hi('font82up')) #27 vTmp = font82up.hi 14002 14003 label('fnt6x8#24') fnt6x8#24: 353b a020 suba $20 14004 suba(32) #24 fontChr < 82, (assumes fontChr is 32 to 130) 353c c22a st [$2a] 14005 st([sysArgs+6]) #25 sysArgs+6 = fontChr - 32 353d 0007 ld $07 14006 ld(hi('font32up')) #26 vTmp = font32up.hi 353e 0200 nop 14007 nop() #27 14008 14009 label('fnt6x8#28') fnt6x8#28: 353f c21d st [$1d] 14010 st([vTmp]) #28 3540 1400 ld $00,y 14011 ld(0,Y) #29 3541 112b ld [$2b],x 14012 ld([sysArgs+7],X) #30 3542 012a ld [$2a] 14013 ld([sysArgs+6]) #31 3543 8200 adda ac 14014 adda(AC) #32 3544 8200 adda ac 14015 adda(AC) #33 3545 812a adda [$2a] 14016 adda([sysArgs+6]) #34 3546 de00 st [y,x++] 14017 st([Y,Xpp]) #35 fontTable.lo = sysArgs+6*5 3547 011d ld [$1d] 14018 ld([vTmp]) #36 3548 c600 st [x] 14019 st([X]) #37 fontTable.hi = vTmp 3549 1403 ld $03,y 14020 ld(hi('NEXTY'),Y) #38 354a e000 jmp y,$00 14021 jmp(Y,'NEXTY') #39 354b 00eb ld $eb 14022 ld(-42/2) #40 14023 14024 label('.fnt6x8#17') .fnt6x8#17: 354c 0021 ld $21 14025 ld(hi('PREFX3_PAGE')) #17 ENTER is at $(n-1)ff, where n = instruction page 354d c202 st [$02] 14026 st([vCpuSelect]) #18 restore PREFX3 instruction page 354e 9401 adda $01,y 14027 adda(1,Y) #19 retry instruction 354f e0cb jmp y,$cb 14028 jmp(Y,'REENTER') #20 3550 00f4 ld $f4 14029 ld(-24/2) #21 14030 14031 14032 # FNT4X6 implementation 14033 label('fnt4x6#13') fnt4x6#13: 3551 c22a st [$2a] 14034 st([sysArgs+6]) #13 fontChr addr 3552 00fa ld $fa 14035 ld(min(0,maxTicks-42/2)) #14 3553 8115 adda [$15] 14036 adda([vTicks]) #15 3554 e873 blt .fnt4x6#18 14037 blt('.fnt4x6#18') #16 not enough time left, so retry 3555 112a ld [$2a],x 14038 ld([sysArgs+6],X) #17 3556 0500 ld [x] 14039 ld([X]) #18 fontChr 3557 e85b blt fnt4x6#21 14040 bmi('fnt4x6#21') #19 3558 a073 suba $73 14041 suba(115) #20 3559 fc5d bra fnt4x6#23 14042 bra('fnt4x6#23') #21 355a 4073 ora $73 14043 ora(115) #22 14044 14045 label('fnt4x6#21') fnt4x6#21: 355b 2073 anda $73 14046 anda(115) #21 355c 0200 nop 14047 nop() #22 14048 14049 label('fnt4x6#23') fnt4x6#23: 355d e863 blt fnt4x6#25 14050 bmi('fnt4x6#25') #23 355e 0500 ld [x] 14051 ld([X]) #24 fontChr >= 82 355f a073 suba $73 14052 suba(115) #25 3560 c22a st [$2a] 14053 st([sysArgs+6]) #26 sysArgs+6 = fontChr - 82 3561 fc67 bra fnt4x6#29 14054 bra('fnt4x6#29') #27 3562 004f ld $4f 14055 ld(hi('font4x6_115up')) #28 vTmp = font4x6_115up.hi 14056 14057 label('fnt4x6#25') fnt4x6#25: 3563 a020 suba $20 14058 suba(32) #25 fontChr < 82, (assumes fontChr is 32 to 130) 3564 c22a st [$2a] 14059 st([sysArgs+6]) #26 vAC.lo = fontChr - 32 3565 004e ld $4e 14060 ld(hi('font4x6_32up')) #27 vTmp = font4x6_32up.hi 3566 0200 nop 14061 nop() #28 14062 14063 label('fnt4x6#29') fnt4x6#29: 3567 c21d st [$1d] 14064 st([vTmp]) #29 3568 1400 ld $00,y 14065 ld(0,Y) #30 3569 112b ld [$2b],x 14066 ld([sysArgs+7],X) #31 356a 012a ld [$2a] 14067 ld([sysArgs+6]) #32 356b 8200 adda ac 14068 adda(AC) #33 356c 812a adda [$2a] 14069 adda([sysArgs+6]) #34 356d de00 st [y,x++] 14070 st([Y,Xpp]) #35 fontTable.lo = sysArgs+6*3 356e 011d ld [$1d] 14071 ld([vTmp]) #36 356f c600 st [x] 14072 st([X]) #37 fontTable.hi = vTmp 3570 1403 ld $03,y 14073 ld(hi('NEXTY'),Y) #38 3571 e000 jmp y,$00 14074 jmp(Y,'NEXTY') #39 3572 00eb ld $eb 14075 ld(-42/2) #40 14076 14077 label('.fnt4x6#18') .fnt4x6#18: 3573 0021 ld $21 14078 ld(hi('PREFX3_PAGE')) #18 ENTER is at $(n-1)ff, where n = instruction page 3574 c202 st [$02] 14079 st([vCpuSelect]) #19 restore PREFX3 instruction page 3575 9401 adda $01,y 14080 adda(1,Y) #20 retry instruction 3576 e000 jmp y,$00 14081 jmp(Y,'NEXTY') #21 3577 00f4 ld $f4 14082 ld(-24/2) #22 14083 14084 14085 # PRN4X6 implementation 14086 label('prn4x6#13') prn4x6#13: 3578 00da ld $da 14087 ld(min(0,maxTicks-106/2)) #13 3579 8115 adda [$15] 14088 adda([vTicks]) #14 357a e8db blt .prn4x6#17 14089 blt('.prn4x6#17') #15 not enough time left, so retry 357b 1400 ld $00,y 14090 ld(0,Y) #16 357c 112b ld [$2b],x 14091 ld([sysArgs+7],X) #17 textFont addr 357d 0500 ld [x] 14092 ld([X]) #18 357e c21d st [$1d] 14093 st([vTmp]) #19 357f de00 st [y,x++] 14094 st([Y,Xpp]) #20 3580 0500 ld [x] 14095 ld([X]) #21 LUP to $4E00 or $4F00 3581 1600 ld ac,y 14096 ld(AC,Y) #22 3582 011d ld [$1d] 14097 ld([vTmp]) #23 3583 e200 jmp y,ac 14098 jmp(Y,AC) #24 3584 fcfd bra $fd 14099 bra(0xFD) #25 branch to trampoline after fetching byte 14100 14101 label('prn4x6Return') prn4x6Return: 3585 e888 blt $3588 14102 bmi(pc()+3) #30 3586 fc89 bra $3589 14103 bra(pc()+3) #31 3587 0124 ld [$24] 14104 ld([sysArgs+0]) #32 3588 0125 ld [$25] 14105 ld([sysArgs+1]) #32(!) 3589 1519 ld [$19],y 14106 ld([vAC+1],Y) #33 358a 1118 ld [$18],x 14107 ld([vAC],X) #34 dest addr 358b de00 st [y,x++] 14108 st([Y,Xpp]) #35 draw pixel0 14109 358c 011d ld [$1d] 14110 ld([vTmp]) #36 358d 8200 adda ac 14111 adda(AC) #37 358e c21d st [$1d] 14112 st([vTmp]) #38 358f e892 blt $3592 14113 bmi(pc()+3) #39 3590 fc93 bra $3593 14114 bra(pc()+3) #40 3591 0124 ld [$24] 14115 ld([sysArgs+0]) #41 3592 0125 ld [$25] 14116 ld([sysArgs+1]) #41(!) 3593 de00 st [y,x++] 14117 st([Y,Xpp]) #42 draw pixel1 14118 3594 011d ld [$1d] 14119 ld([vTmp]) #43 3595 8200 adda ac 14120 adda(AC) #44 3596 c21d st [$1d] 14121 st([vTmp]) #45 3597 e89a blt $359a 14122 bmi(pc()+3) #46 3598 fc9b bra $359b 14123 bra(pc()+3) #47 3599 0124 ld [$24] 14124 ld([sysArgs+0]) #48 359a 0125 ld [$25] 14125 ld([sysArgs+1]) #48(!) 359b de00 st [y,x++] 14126 st([Y,Xpp]) #49 draw pixel2 14127 359c 011d ld [$1d] 14128 ld([vTmp]) #50 359d 8200 adda ac 14129 adda(AC) #51 359e c21d st [$1d] 14130 st([vTmp]) #52 359f e8a2 blt $35a2 14131 bmi(pc()+3) #53 35a0 fca3 bra $35a3 14132 bra(pc()+3) #54 35a1 0124 ld [$24] 14133 ld([sysArgs+0]) #55 35a2 0125 ld [$25] 14134 ld([sysArgs+1]) #55(!) 35a3 de00 st [y,x++] 14135 st([Y,Xpp]) #56 draw pixel3 14136 35a4 0119 ld [$19] 14137 ld([vAC+1]) #57 35a5 8001 adda $01 14138 adda(1) #58 35a6 d619 st [$19],y 14139 st([vAC+1],Y) #59 35a7 1118 ld [$18],x 14140 ld([vAC],X) #60 next scanline addr 14141 35a8 011d ld [$1d] 14142 ld([vTmp]) #61 35a9 8200 adda ac 14143 adda(AC) #62 35aa c21d st [$1d] 14144 st([vTmp]) #63 35ab e8ae blt $35ae 14145 bmi(pc()+3) #64 35ac fcaf bra $35af 14146 bra(pc()+3) #65 35ad 0124 ld [$24] 14147 ld([sysArgs+0]) #66 35ae 0125 ld [$25] 14148 ld([sysArgs+1]) #66(!) 35af de00 st [y,x++] 14149 st([Y,Xpp]) #67 draw pixel4 14150 35b0 011d ld [$1d] 14151 ld([vTmp]) #68 35b1 8200 adda ac 14152 adda(AC) #69 35b2 c21d st [$1d] 14153 st([vTmp]) #70 35b3 e8b6 blt $35b6 14154 bmi(pc()+3) #71 35b4 fcb7 bra $35b7 14155 bra(pc()+3) #72 35b5 0124 ld [$24] 14156 ld([sysArgs+0]) #73 35b6 0125 ld [$25] 14157 ld([sysArgs+1]) #73(!) 35b7 de00 st [y,x++] 14158 st([Y,Xpp]) #74 draw pixel5 14159 35b8 011d ld [$1d] 14160 ld([vTmp]) #75 35b9 8200 adda ac 14161 adda(AC) #76 35ba c21d st [$1d] 14162 st([vTmp]) #77 35bb e8be blt $35be 14163 bmi(pc()+3) #78 35bc fcbf bra $35bf 14164 bra(pc()+3) #79 35bd 0124 ld [$24] 14165 ld([sysArgs+0]) #80 35be 0125 ld [$25] 14166 ld([sysArgs+1]) #80(!) 35bf de00 st [y,x++] 14167 st([Y,Xpp]) #81 draw pixel6 14168 35c0 011d ld [$1d] 14169 ld([vTmp]) #82 35c1 8200 adda ac 14170 adda(AC) #83 35c2 c21d st [$1d] 14171 st([vTmp]) #84 35c3 e8c6 blt $35c6 14172 bmi(pc()+3) #85 35c4 fcc7 bra $35c7 14173 bra(pc()+3) #86 35c5 0124 ld [$24] 14174 ld([sysArgs+0]) #87 35c6 0125 ld [$25] 14175 ld([sysArgs+1]) #87(!) 35c7 de00 st [y,x++] 14176 st([Y,Xpp]) #88 draw pixel7 14177 35c8 0119 ld [$19] 14178 ld([vAC+1]) #89 35c9 8001 adda $01 14179 adda(1) #90 35ca c219 st [$19] 14180 st([vAC+1]) #91 14181 35cb 112b ld [$2b],x 14182 ld([sysArgs+7],X) #92 textFont addr 35cc 0500 ld [x] 14183 ld([X]) #93 35cd 8001 adda $01 14184 adda(1) #94 35ce c600 st [x] 14185 st([X]) #95 increment next byte address 14186 35cf 0126 ld [$26] 14187 ld([sysArgs+2]) #96 LUP counter, (3 LUP's per 4x6 char) 35d0 a001 suba $01 14188 suba(1) #97 35d1 f0d8 beq .prn4x6#100 14189 beq('.prn4x6#100') #98 35d2 c226 st [$26] 14190 st([sysArgs+2]) #99 35d3 0022 ld $22 14191 ld(hi('PREFX2_PAGE')) #100 ENTER is at $(n-1)ff, where n = instruction page 35d4 c202 st [$02] 14192 st([vCpuSelect]) #101 restore PREFX2 instruction page 35d5 9401 adda $01,y 14193 adda(1,Y) #102 restart instruction 35d6 e000 jmp y,$00 14194 jmp(Y,'NEXTY') #103 35d7 00cb ld $cb 14195 ld(-106/2) #104 14196 14197 label('.prn4x6#100') .prn4x6#100: 35d8 1403 ld $03,y 14198 ld(hi('NEXTY'),Y) #100 35d9 e000 jmp y,$00 14199 jmp(Y,'NEXTY') #101 35da 00cc ld $cc 14200 ld(-104/2) #102 14201 14202 label('.prn4x6#17') .prn4x6#17: 35db 0022 ld $22 14203 ld(hi('PREFX2_PAGE')) #17 ENTER is at $(n-1)ff, where n = instruction page 35dc c202 st [$02] 14204 st([vCpuSelect]) #18 restore PREFX2 instruction page 35dd 9401 adda $01,y 14205 adda(1,Y) #19 retry instruction 35de e0cb jmp y,$cb 14206 jmp(Y,'REENTER') #20 35df 00f4 ld $f4 14207 ld(-24/2) #21 14208 14209 35e0 0200 nop 14210 fillers(until=0xff) 35e1 0200 nop 35e2 0200 nop * 31 times 35ff 0200 nop 14211 align(0x100, size=0x100) 14212 14213 #----------------------------------------------------------------------- 14214 # More vCPU instruction implementations, (0x3600) 14215 #----------------------------------------------------------------------- 14216 # 14217 # VTBL implementation 14218 label('vtbl#13') vtbl#13: 3600 8119 adda [$19] 14219 adda([vAC+1]) #13 y*2 3601 1200 ld ac,x 14220 ld(AC,X) #14 3602 1401 ld $01,y 14221 ld(1,Y) #15 Y,X = 0x0100 + 2*y, (0 >= y <= 127) 3603 0d00 ld [y,x] 14222 ld([Y,X]) #16 3604 c21d st [$1d] 14223 st([vTmp]) #17 3605 1400 ld $00,y 14224 ld(0,Y) #18 3606 112b ld [$2b],x 14225 ld([sysArgs+7],X) #19 3607 0118 ld [$18] 14226 ld([vAC]) #20 3608 de00 st [y,x++] 14227 st([Y,Xpp]) #21 3609 011d ld [$1d] 14228 ld([vTmp]) #22 360a ce00 st [y,x] 14229 st([Y,X]) #23 360b 1403 ld $03,y 14230 ld(hi('NEXTY'),Y) #24 360c e000 jmp y,$00 14231 jmp(Y,'NEXTY') #25 360d 00f2 ld $f2 14232 ld(-28/2) #26 14233 14234 14235 # CMPII implementation 14236 label('cmpii#13') cmpii#13: 360e c22a st [$2a] 14237 st([sysArgs+6]) #13 imm1 360f 00fd ld $fd 14238 ld(min(0,maxTicks-36/2)) #14 3610 8115 adda [$15] 14239 adda([vTicks]) #15 3611 e832 blt .cmpii#18 14240 blt('.cmpii#18') #16 not enough time left, so retry 3612 0118 ld [$18] 14241 ld([vAC]) #17 3613 e817 blt cmpii#20 14242 bmi('cmpii#20') #18 3614 a12a suba [$2a] 14243 suba([sysArgs+6]) #19 imm0 3615 fc19 bra cmpii#22 14244 bra('cmpii#22') #20 3616 412a ora [$2a] 14245 ora([sysArgs+6]) #21 14246 14247 label('cmpii#20') cmpii#20: 3617 212a anda [$2a] 14248 anda([sysArgs+6]) #20 3618 0200 nop 14249 nop() #21 14250 14251 label('cmpii#22') cmpii#22: 3619 f421 bge cmpii#24 14252 bpl('cmpii#24') #22 361a 0118 ld [$18] 14253 ld([vAC]) #23 361b 00ff ld $ff 14254 ld(0xFF) #24 vAC < imm0 361c c218 st [$18] 14255 st([vAC]) #25 361d c219 st [$19] 14256 st([vAC+1]) #26 361e 1403 ld $03,y 14257 ld(hi('REENTER'),Y) #27 361f e0cb jmp y,$cb 14258 jmp(Y,'REENTER') #28 3620 00f0 ld $f0 14259 ld(-32/2) #29 14260 14261 label('cmpii#24') cmpii#24: 3621 e825 blt cmpii#26 14262 bmi('cmpii#26') #24 3622 a12b suba [$2b] 14263 suba([sysArgs+7]) #25 imm1 3623 fc27 bra cmpii#28 14264 bra('cmpii#28') #26 3624 412b ora [$2b] 14265 ora([sysArgs+7]) #27 14266 14267 label('cmpii#26') cmpii#26: 3625 212b anda [$2b] 14268 anda([sysArgs+7]) #26 3626 0200 nop 14269 nop() #27 14270 14271 label('cmpii#28') cmpii#28: 3627 e82d blt cmpii#30 14272 bmi('cmpii#30') #28 3628 0001 ld $01 14273 ld(0x01) #29 vAC >= imm1 3629 c218 st [$18] 14274 st([vAC]) #30 362a 1403 ld $03,y 14275 ld(hi('REENTER'),Y) #31 362b e0cb jmp y,$cb 14276 jmp(Y,'REENTER') #32 362c 00ee ld $ee 14277 ld(-36/2) #33 14278 14279 label('cmpii#30') cmpii#30: 362d 0000 ld $00 14280 ld(0x00) #30 imm0 >= vAC < imm1 362e c218 st [$18] 14281 st([vAC]) #31 362f 1403 ld $03,y 14282 ld(hi('NEXTY'),Y) #32 3630 e000 jmp y,$00 14283 jmp(Y,'NEXTY') #33 3631 00ee ld $ee 14284 ld(-36/2) #34 14285 14286 label('.cmpii#18') .cmpii#18: 3632 0021 ld $21 14287 ld(hi('PREFX3_PAGE')) #18 ENTER is at $(n-1)ff, where n = instruction page 3633 c202 st [$02] 14288 st([vCpuSelect]) #19 restore PREFX3 instruction page 3634 9401 adda $01,y 14289 adda(1,Y) #20 retry instruction 3635 e000 jmp y,$00 14290 jmp(Y,'NEXTY') #21 3636 00f4 ld $f4 14291 ld(-24/2) #22 14292 14293 14294 # LDARRW implementation 14295 label('ldarrw#13') ldarrw#13: 3637 de00 st [y,x++] 14296 st([Y,Xpp]) #13 X++ 3638 c21d st [$1d] 14297 st([vTmp]) #14 var 3639 00f0 ld $f0 14298 ld(min(0,maxTicks-62/2)) #15 363a 8115 adda [$15] 14299 adda([vTicks]) #16 363b e869 blt .ldarrw#19 14300 blt('.ldarrw#19') #17 not enough time left, so retry 363c 0d00 ld [y,x] 14301 ld([Y,X]) #18 363d de00 st [y,x++] 14302 st([Y,Xpp]) #19 X++ 363e c2b0 st [$b0] 14303 st([0xB0]) #20 imm.lo 363f 0d00 ld [y,x] 14304 ld([Y,X]) #21 3640 c2b1 st [$b1] 14305 st([0xB1]) #22 imm.hi 3641 1400 ld $00,y 14306 ld(0,Y) #23 3642 111d ld [$1d],x 14307 ld([vTmp],X) #24 3643 0500 ld [x] 14308 ld([X]) #25 3644 de00 st [y,x++] 14309 st([Y,Xpp]) #26 X++ 3645 c22a st [$2a] 14310 st([sysArgs+6]) #27 idx.lo 3646 0500 ld [x] 14311 ld([X]) #28 3647 c22b st [$2b] 14312 st([sysArgs+7]) #29 idx.hi 3648 012a ld [$2a] 14313 ld([sysArgs+6]) #30 3649 3080 anda $80,x 14314 anda(0x80,X) #31 364a 812a adda [$2a] 14315 adda([sysArgs+6]) #32 364b c22a st [$2a] 14316 st([sysArgs+6]) #33 idx.lo*2 364c 0500 ld [x] 14317 ld([X]) #34 msb idx.lo 364d 812b adda [$2b] 14318 adda([sysArgs+7]) #35 364e 812b adda [$2b] 14319 adda([sysArgs+7]) #36 364f c22b st [$2b] 14320 st([sysArgs+7]) #37 idx.hi*2 3650 01b0 ld [$b0] 14321 ld([0xB0]) #38 3651 812a adda [$2a] 14322 adda([sysArgs+6]) #39 3652 c2b0 st [$b0] 14323 st([0xB0]) #40 [0xB0] = [0xB0] + idx.lo 3653 e857 blt .ldarrw#43 14324 bmi('.ldarrw#43') #41 check carry 3654 a12a suba [$2a] 14325 suba([sysArgs+6]) #42 restore [0xB0] 3655 fc59 bra .ldarrw#45 14326 bra('.ldarrw#45') #43 3656 412a ora [$2a] 14327 ora([sysArgs+6]) #44 carry in bit 7 14328 14329 label('.ldarrw#43') .ldarrw#43: 3657 212a anda [$2a] 14330 anda([sysArgs+6]) #43 carry in bit 7 3658 0200 nop 14331 nop() #44 14332 14333 label('.ldarrw#45') .ldarrw#45: 3659 3080 anda $80,x 14334 anda(0x80,X) #45 365a 0500 ld [x] 14335 ld([X]) #46 carry in bit 0 365b 81b1 adda [$b1] 14336 adda([0xB1]) #47 365c 952b adda [$2b],y 14337 adda([sysArgs+7],Y) #48 Y = [0xB1] + idx.hi*2 + carry 365d 11b0 ld [$b0],x 14338 ld([0xB0],X) #49 X = [0xB0] + idx.lo*2 365e 0d00 ld [y,x] 14339 ld([Y,X]) #50 365f de00 st [y,x++] 14340 st([Y,Xpp]) #51 3660 c218 st [$18] 14341 st([vAC]) #52 3661 0d00 ld [y,x] 14342 ld([Y,X]) #53 3662 c219 st [$19] 14343 st([vAC+1]) #54 3663 0116 ld [$16] 14344 ld([vPC]) #55 3664 8002 adda $02 14345 adda(2) #56 3665 c216 st [$16] 14346 st([vPC]) #57 3666 1403 ld $03,y 14347 ld(hi('NEXTY'),Y) #58 3667 e000 jmp y,$00 14348 jmp(Y,'NEXTY') #59 3668 00e1 ld $e1 14349 ld(-62/2) #60 14350 14351 label('.ldarrw#19') .ldarrw#19: 3669 0116 ld [$16] 14352 ld([vPC]) #19 retry instruction 366a a002 suba $02 14353 suba(2) #20 366b c216 st [$16] 14354 st([vPC]) #21 366c 1403 ld $03,y 14355 ld(hi('NEXTY'),Y) #22 366d e000 jmp y,$00 14356 jmp(Y,'NEXTY') #23 366e 00f3 ld $f3 14357 ld(-26/2) #24 14358 14359 14360 # STARRW implementation 14361 label('starrw#13') starrw#13: 366f 1517 ld [$17],y 14362 ld([vPC+1],Y) #13 vPC.hi 3670 de00 st [y,x++] 14363 st([Y,Xpp]) #14 X++ 3671 c21d st [$1d] 14364 st([vTmp]) #15 var 3672 00f0 ld $f0 14365 ld(min(0,maxTicks-62/2)) #16 3673 8115 adda [$15] 14366 adda([vTicks]) #17 3674 e8a1 blt .starrw#20 14367 blt('.starrw#20') #18 not enough time left, so retry 3675 0d00 ld [y,x] 14368 ld([Y,X]) #19 3676 de00 st [y,x++] 14369 st([Y,Xpp]) #20 X++ 3677 c2b0 st [$b0] 14370 st([0xB0]) #21 imm.lo 3678 0d00 ld [y,x] 14371 ld([Y,X]) #22 3679 c2b1 st [$b1] 14372 st([0xB1]) #23 imm.hi 367a 1400 ld $00,y 14373 ld(0,Y) #24 367b 111d ld [$1d],x 14374 ld([vTmp],X) #25 367c 0500 ld [x] 14375 ld([X]) #26 367d de00 st [y,x++] 14376 st([Y,Xpp]) #27 X++ 367e c22a st [$2a] 14377 st([sysArgs+6]) #28 idx.lo 367f 0500 ld [x] 14378 ld([X]) #29 3680 c22b st [$2b] 14379 st([sysArgs+7]) #30 idx.hi 3681 012a ld [$2a] 14380 ld([sysArgs+6]) #31 3682 3080 anda $80,x 14381 anda(0x80,X) #32 3683 812a adda [$2a] 14382 adda([sysArgs+6]) #33 3684 c22a st [$2a] 14383 st([sysArgs+6]) #34 idx.lo*2 3685 0500 ld [x] 14384 ld([X]) #35 msb idx.lo 3686 812b adda [$2b] 14385 adda([sysArgs+7]) #36 3687 812b adda [$2b] 14386 adda([sysArgs+7]) #37 3688 c22b st [$2b] 14387 st([sysArgs+7]) #38 idx.hi*2 3689 01b0 ld [$b0] 14388 ld([0xB0]) #39 368a 812a adda [$2a] 14389 adda([sysArgs+6]) #40 368b c2b0 st [$b0] 14390 st([0xB0]) #41 [0xB0] = [0xB0] + idx.lo 368c e890 blt .starrw#44 14391 bmi('.starrw#44') #42 check carry 368d a12a suba [$2a] 14392 suba([sysArgs+6]) #43 restore [0xB0] 368e fc92 bra .starrw#46 14393 bra('.starrw#46') #44 368f 412a ora [$2a] 14394 ora([sysArgs+6]) #45 carry in bit 7 14395 14396 label('.starrw#44') .starrw#44: 3690 212a anda [$2a] 14397 anda([sysArgs+6]) #44 carry in bit 7 3691 0200 nop 14398 nop() #45 14399 14400 label('.starrw#46') .starrw#46: 3692 3080 anda $80,x 14401 anda(0x80,X) #46 3693 0500 ld [x] 14402 ld([X]) #47 carry in bit 0 3694 81b1 adda [$b1] 14403 adda([0xB1]) #48 3695 952b adda [$2b],y 14404 adda([sysArgs+7],Y) #49 Y = [0xB1] + idx.hi*2 + carry 3696 11b0 ld [$b0],x 14405 ld([0xB0],X) #50 X = [0xB0] + idx.lo*2 3697 0118 ld [$18] 14406 ld([vAC]) #51 3698 de00 st [y,x++] 14407 st([Y,Xpp]) #52 3699 0119 ld [$19] 14408 ld([vAC+1]) #53 369a ce00 st [y,x] 14409 st([Y,X]) #54 369b 0116 ld [$16] 14410 ld([vPC]) #55 369c 8002 adda $02 14411 adda(2) #56 369d c216 st [$16] 14412 st([vPC]) #57 369e 1403 ld $03,y 14413 ld(hi('NEXTY'),Y) #58 369f e000 jmp y,$00 14414 jmp(Y,'NEXTY') #59 36a0 00e1 ld $e1 14415 ld(-62/2) #60 14416 14417 label('.starrw#20') .starrw#20: 36a1 0116 ld [$16] 14418 ld([vPC]) #20 retry instruction 36a2 a002 suba $02 14419 suba(2) #21 36a3 c216 st [$16] 14420 st([vPC]) #22 36a4 1403 ld $03,y 14421 ld(hi('REENTER'),Y) #23 36a5 e0cb jmp y,$cb 14422 jmp(Y,'REENTER') #24 36a6 00f2 ld $f2 14423 ld(-28/2) #25 14424 14425 14426 # MULW3 implementation 14427 label('mulw3#13') mulw3#13: 36a7 00fb ld $fb 14428 ld(min(0,maxTicks-40/2)) #13 36a8 8115 adda [$15] 14429 adda([vTicks]) #14 36a9 e8c3 blt .mulw3#17 14430 blt('.mulw3#17') #15 not enough time left, so retry 36aa 0118 ld [$18] 14431 ld([vAC]) #16 36ab 3080 anda $80,x 14432 anda(0x80,X) #17 36ac 8118 adda [$18] 14433 adda([vAC]) #18 36ad c22a st [$2a] 14434 st([sysArgs+6]) #19 vAC.lo*2 36ae 0119 ld [$19] 14435 ld([vAC+1]) #20 36af 8119 adda [$19] 14436 adda([vAC+1]) #21 36b0 8500 adda [x] 14437 adda([X]) #22 msb vAC.lo 36b1 c22b st [$2b] 14438 st([sysArgs+7]) #23 vAC.hi*2 36b2 0118 ld [$18] 14439 ld([vAC]) #24 36b3 812a adda [$2a] 14440 adda([sysArgs+6]) #25 36b4 c218 st [$18] 14441 st([vAC]) #26 vAC.lo*2 + vAC.lo 36b5 e8b9 blt .mulw3#29 14442 bmi('.mulw3#29') #27 check carry 36b6 a12a suba [$2a] 14443 suba([sysArgs+6]) #28 restore [vAC] 36b7 fcbb bra .mulw3#31 14444 bra('.mulw3#31') #29 36b8 412a ora [$2a] 14445 ora([sysArgs+6]) #30 carry in bit 7 14446 14447 label('.mulw3#29') .mulw3#29: 36b9 212a anda [$2a] 14448 anda([sysArgs+6]) #29 carry in bit 7 36ba 0200 nop 14449 nop() #30 14450 14451 label('.mulw3#31') .mulw3#31: 36bb 3080 anda $80,x 14452 anda(0x80,X) #31 36bc 0500 ld [x] 14453 ld([X]) #32 carry in bit 0 36bd 812b adda [$2b] 14454 adda([sysArgs+7]) #33 36be 8119 adda [$19] 14455 adda([vAC+1]) #34 vAC.hi*2 + vAC.hi + carry 36bf c219 st [$19] 14456 st([vAC+1]) #35 36c0 1403 ld $03,y 14457 ld(hi('NEXTY'),Y) #36 36c1 e000 jmp y,$00 14458 jmp(Y,'NEXTY') #37 36c2 00ec ld $ec 14459 ld(-40/2) #38 14460 14461 label('.mulw3#17') .mulw3#17: 36c3 0023 ld $23 14462 ld(hi('PREFX1_PAGE')) #17 ENTER is at $(n-1)ff, where n = instruction page 36c4 c202 st [$02] 14463 st([vCpuSelect]) #18 restore PREFX1 instruction page 36c5 9401 adda $01,y 14464 adda(1,Y) #19 retry instruction 36c6 e0cb jmp y,$cb 14465 jmp(Y,'REENTER') #20 36c7 00f4 ld $f4 14466 ld(-24/2) #21 14467 14468 14469 # MULW5 implementation 14470 label('mulw5#13') mulw5#13: 36c8 00f7 ld $f7 14471 ld(min(0,maxTicks-48/2)) #13 36c9 8115 adda [$15] 14472 adda([vTicks]) #14 36ca e8ec blt .mulw5#17 14473 blt('.mulw5#17') #15 not enough time left, so retry 36cb 0118 ld [$18] 14474 ld([vAC]) #16 36cc 3080 anda $80,x 14475 anda(0x80,X) #17 36cd 8118 adda [$18] 14476 adda([vAC]) #18 36ce c22a st [$2a] 14477 st([sysArgs+6]) #19 vAC.lo*2 36cf 0119 ld [$19] 14478 ld([vAC+1]) #20 36d0 8119 adda [$19] 14479 adda([vAC+1]) #21 36d1 8500 adda [x] 14480 adda([X]) #22 msb vAC.lo 36d2 c22b st [$2b] 14481 st([sysArgs+7]) #23 vAC.hi*2 36d3 012a ld [$2a] 14482 ld([sysArgs+6]) #24 36d4 3080 anda $80,x 14483 anda(0x80,X) #25 36d5 812a adda [$2a] 14484 adda([sysArgs+6]) #26 36d6 c22a st [$2a] 14485 st([sysArgs+6]) #27 vAC.lo*4 36d7 012b ld [$2b] 14486 ld([sysArgs+7]) #28 36d8 812b adda [$2b] 14487 adda([sysArgs+7]) #29 36d9 8500 adda [x] 14488 adda([X]) #30 msb sysArgs+6 36da c22b st [$2b] 14489 st([sysArgs+7]) #31 vAC.hi*4 36db 0118 ld [$18] 14490 ld([vAC]) #32 36dc 812a adda [$2a] 14491 adda([sysArgs+6]) #33 36dd c218 st [$18] 14492 st([vAC]) #34 vAC.lo*4 + vAC.lo 36de e8e2 blt .mulw5#37 14493 bmi('.mulw5#37') #35 check carry 36df a12a suba [$2a] 14494 suba([sysArgs+6]) #36 restore [vAC] 36e0 fce4 bra .mulw5#39 14495 bra('.mulw5#39') #37 36e1 412a ora [$2a] 14496 ora([sysArgs+6]) #38 carry in bit 7 14497 14498 label('.mulw5#37') .mulw5#37: 36e2 212a anda [$2a] 14499 anda([sysArgs+6]) #37 carry in bit 7 36e3 0200 nop 14500 nop() #38 14501 14502 label('.mulw5#39') .mulw5#39: 36e4 3080 anda $80,x 14503 anda(0x80,X) #39 36e5 0500 ld [x] 14504 ld([X]) #40 carry in bit 0 36e6 812b adda [$2b] 14505 adda([sysArgs+7]) #41 36e7 8119 adda [$19] 14506 adda([vAC+1]) #42 vAC.hi*4 + vAC.hi + carry 36e8 c219 st [$19] 14507 st([vAC+1]) #43 36e9 1403 ld $03,y 14508 ld(hi('NEXTY'),Y) #44 36ea e000 jmp y,$00 14509 jmp(Y,'NEXTY') #45 36eb 00e8 ld $e8 14510 ld(-48/2) #46 14511 14512 label('.mulw5#17') .mulw5#17: 36ec 0023 ld $23 14513 ld(hi('PREFX1_PAGE')) #17 ENTER is at $(n-1)ff, where n = instruction page 36ed c202 st [$02] 14514 st([vCpuSelect]) #18 restore PREFX1 instruction page 36ee 9401 adda $01,y 14515 adda(1,Y) #19 retry instruction 36ef e0cb jmp y,$cb 14516 jmp(Y,'REENTER') #20 36f0 00f4 ld $f4 14517 ld(-24/2) #21 14518 14519 36f1 0200 nop 14520 fillers(until=0xff) 36f2 0200 nop 36f3 0200 nop * 14 times 36ff 0200 nop 14521 align(0x100, size=0x100) 14522 14523 #----------------------------------------------------------------------- 14524 # More vCPU instruction implementations, (0x3700) 14525 #----------------------------------------------------------------------- 14526 # 14527 # PMIDIV implementation 14528 label('pmidiv#13') pmidiv#13: 3700 1400 ld $00,y 14529 ld(0,Y) #13 3701 00da ld $da 14530 ld(min(0,maxTicks-106/2)) #14 3702 8115 adda [$15] 14531 adda([vTicks]) #15 3703 e852 blt .pmidiv#18 14532 blt('.pmidiv#18') #16 not enough time left, so retry 3704 1519 ld [$19],y 14533 ld([vAC+1],Y) #17 3705 1118 ld [$18],x 14534 ld([vAC],X) #18 3706 0118 ld [$18] 14535 ld([vAC]) #19 3707 8001 adda $01 14536 adda(1) #20 3708 c218 st [$18] 14537 st([vAC]) #21 3709 f00c beq $370c 14538 beq(pc()+3) #22 370a fc0d bra $370d 14539 bra(pc()+3) #23 370b 0000 ld $00 14540 ld(0) #24 370c 0001 ld $01 14541 ld(1) #24 (!) 370d 8119 adda [$19] 14542 adda([vAC+1]) #25 370e c219 st [$19] 14543 st([vAC+1]) #26 midiStream++ 370f 0d00 ld [y,x] 14544 ld([Y,X]) #27 3710 c2c0 st [$c0] 14545 st([0xC0]) #28 midiCommand.lo 3711 20f0 anda $f0 14546 anda(0xF0) #29 3712 6090 xora $90 14547 xora(0x90) #30 3713 ec57 bne .pmidiv#33 14548 bne('.pmidiv#33') #31 end note 3714 1519 ld [$19],y 14549 ld([vAC+1],Y) #32 3715 1118 ld [$18],x 14550 ld([vAC],X) #33 3716 0118 ld [$18] 14551 ld([vAC]) #34 3717 8001 adda $01 14552 adda(1) #35 3718 c218 st [$18] 14553 st([vAC]) #36 3719 f01c beq $371c 14554 beq(pc()+3) #37 371a fc1d bra $371d 14555 bra(pc()+3) #38 371b 0000 ld $00 14556 ld(0) #39 371c 0001 ld $01 14557 ld(1) #39 (!) 371d 8119 adda [$19] 14558 adda([vAC+1]) #40 371e c219 st [$19] 14559 st([vAC+1]) #41 midiStream++ 371f 0037 ld $37 14560 ld(hi('pmidiv#13')) #42 3720 c2c1 st [$c1] 14561 st([0xC1]) #43 3721 002a ld $2a 14562 ld('.pmidiv#59_0') #44 low byte of low midi return address 3722 c21d st [$1d] 14563 st([vTmp]) #45 3723 0d00 ld [y,x] 14564 ld([Y,X]) #46 3724 c2c2 st [$c2] 14565 st([0xC2]) #47 note 3725 a00b suba $0b 14566 suba(11) #48 note -= 11 3726 8200 adda ac 14567 adda(AC) #49 note*2 3727 1409 ld $09,y 14568 ld(hi('noteTrampoline'),Y) #50 3728 e0c0 jmp y,$c0 14569 jmp(Y,'noteTrampoline') #51 3729 c2c3 st [$c3] 14570 st([0xC3]) #52 index, (low freq byte) 14571 label('.pmidiv#59_0') .pmidiv#59_0: 372a c2c2 st [$c2] 14572 st([0xC2]) #59 freq.lo 372b 0031 ld $31 14573 ld('.pmidiv#72') #60 372c c21d st [$1d] 14574 st([vTmp]) #61 low byte of high midi return address 372d 1409 ld $09,y 14575 ld(hi('noteTrampoline'),Y) #62 372e 01c3 ld [$c3] 14576 ld([0xC3]) #63 372f e0c0 jmp y,$c0 14577 jmp(Y,'noteTrampoline') #64 3730 8001 adda $01 14578 adda(1) #65 index + 1, (high freq byte) 14579 label('.pmidiv#72') .pmidiv#72: 3731 c2c3 st [$c3] 14580 st([0xC3]) #72 freq.hi 3732 01c0 ld [$c0] 14581 ld([0xC0]) #73 midiCommand.lo 3733 2003 anda $03 14582 anda(3) #74 3734 9401 adda $01,y 14583 adda(1,Y) #75 chan.hi 3735 10fc ld $fc,x 14584 ld(0xFC,X) #76 chan.lo 3736 01c2 ld [$c2] 14585 ld([0xC2]) #77 3737 de00 st [y,x++] 14586 st([Y,Xpp]) #78 3738 01c3 ld [$c3] 14587 ld([0xC3]) #79 3739 ce00 st [y,x] 14588 st([Y,X]) #80 [chan] = freq 373a 1519 ld [$19],y 14589 ld([vAC+1],Y) #81 373b 1118 ld [$18],x 14590 ld([vAC],X) #82 373c 0118 ld [$18] 14591 ld([vAC]) #83 373d 8001 adda $01 14592 adda(1) #84 373e c218 st [$18] 14593 st([vAC]) #85 373f f042 beq $3742 14594 beq(pc()+3) #86 3740 fc43 bra $3743 14595 bra(pc()+3) #87 3741 0000 ld $00 14596 ld(0) #88 3742 0001 ld $01 14597 ld(1) #88 (!) 3743 8119 adda [$19] 14598 adda([vAC+1]) #89 3744 c219 st [$19] 14599 st([vAC+1]) #90 midiStream++ 3745 0d00 ld [y,x] 14600 ld([Y,X]) #91 volume 3746 c21d st [$1d] 14601 st([vTmp]) #92 3747 01c0 ld [$c0] 14602 ld([0xC0]) #93 midiCommand.lo 3748 2003 anda $03 14603 anda(3) #94 3749 9401 adda $01,y 14604 adda(1,Y) #95 374a 10fa ld $fa,x 14605 ld(0xFA,X) #96 374b 011d ld [$1d] 14606 ld([vTmp]) #97 374c ce00 st [y,x] 14607 st([Y,X]) #98 374d 0021 ld $21 14608 ld(hi('PREFX3_PAGE')) #99 ENTER is at $(n-1)ff, where n = instruction page 374e c202 st [$02] 14609 st([vCpuSelect]) #100 restore PREFX3 instruction page 374f 9401 adda $01,y 14610 adda(1,Y) #101 restart instruction 3750 e0cb jmp y,$cb 14611 jmp(Y,'REENTER') #102 3751 00cb ld $cb 14612 ld(-106/2) #103 14613 14614 label('.pmidiv#18') .pmidiv#18: 3752 0021 ld $21 14615 ld(hi('PREFX3_PAGE')) #18 ENTER is at $(n-1)ff, where n = instruction page 3753 c202 st [$02] 14616 st([vCpuSelect]) #19 restore PREFX3 instruction page 3754 9401 adda $01,y 14617 adda(1,Y) #20 retry instruction 3755 e000 jmp y,$00 14618 jmp(Y,'NEXTY') #21 3756 00f4 ld $f4 14619 ld(-24/2) #22 14620 14621 # end note 14622 label('.pmidiv#33') .pmidiv#33: 3757 01c0 ld [$c0] 14623 ld([0xC0]) #33 midiCommand.lo 3758 20f0 anda $f0 14624 anda(0xF0) #34 3759 6080 xora $80 14625 xora(0x80) #35 375a ec68 bne .pmidiv#38 14626 bne('.pmidiv#38') #36 new segment 375b 01c0 ld [$c0] 14627 ld([0xC0]) #37 midiCommand.lo 375c 2003 anda $03 14628 anda(3) #38 375d 9401 adda $01,y 14629 adda(1,Y) #39 chan.hi 375e 10fc ld $fc,x 14630 ld(0xFC,X) #40 chan.lo 375f dc00 st $00,[y,x++] 14631 st(0,[Y,Xpp]) #41 3760 dc00 st $00,[y,x++] 14632 st(0,[Y,Xpp]) #42 [chan] = freq 3761 dc00 st $00,[y,x++] 14633 st(0,[Y,Xpp]) #43 3762 cc00 st $00,[y,x] 14634 st(0,[Y,X]) #44 stop osc 3763 0021 ld $21 14635 ld(hi('PREFX3_PAGE')) #45 ENTER is at $(n-1)ff, where n = instruction page 3764 c202 st [$02] 14636 st([vCpuSelect]) #46 restore PREFX3 instruction page 3765 9401 adda $01,y 14637 adda(1,Y) #47 restart instruction 3766 e0cb jmp y,$cb 14638 jmp(Y,'REENTER') #48 3767 00e6 ld $e6 14639 ld(-52/2) #49 14640 14641 # new segment 14642 label('.pmidiv#38') .pmidiv#38: 3768 01c0 ld [$c0] 14643 ld([0xC0]) #38 midiCommand.lo 3769 20f0 anda $f0 14644 anda(0xF0) #39 376a 60d0 xora $d0 14645 xora(0xD0) #40 376b ec84 bne .pmidiv#43 14646 bne('.pmidiv#43') #41 new delay 376c 1519 ld [$19],y 14647 ld([vAC+1],Y) #42 376d 1118 ld [$18],x 14648 ld([vAC],X) #43 376e 0d00 ld [y,x] 14649 ld([Y,X]) #44 peek(midiStream) 376f c218 st [$18] 14650 st([vAC]) #45 newStream.lo 3770 de00 st [y,x++] 14651 st([Y,Xpp]) #46 3771 0d00 ld [y,x] 14652 ld([Y,X]) #47 peek(midiStream + 1) 3772 c219 st [$19] 14653 st([vAC+1]) #48 newStream.hi 3773 1400 ld $00,y 14654 ld(0,Y) #49 3774 112a ld [$2a],x 14655 ld([sysArgs+6],X) #50 midiStream.lo 3775 0118 ld [$18] 14656 ld([vAC]) #51 3776 de00 st [y,x++] 14657 st([Y,Xpp]) #52 3777 0119 ld [$19] 14658 ld([vAC+1]) #53 3778 ce00 st [y,x] 14659 st([Y,X]) #54 midiStream = vAC 3779 0118 ld [$18] 14660 ld([vAC]) #55 377a 4119 ora [$19] 14661 ora([vAC+1]) #56 14662 bne('.pmidiv#59_1') #57 continue 377b ec7f bne .pmidiv#59_1 377c 1403 ld $03,y 14663 ld(hi('NEXTY'),Y) #58 finished 377d e000 jmp y,$00 14664 jmp(Y,'NEXTY') #59 377e 00e1 ld $e1 14665 ld(-62/2) #60 14666 14667 label('.pmidiv#59_1') .pmidiv#59_1: 377f 0021 ld $21 14668 ld(hi('PREFX3_PAGE')) #59 ENTER is at $(n-1)ff, where n = instruction page 3780 c202 st [$02] 14669 st([vCpuSelect]) #60 restore PREFX3 instruction page 3781 9401 adda $01,y 14670 adda(1,Y) #61 restart instruction 3782 e0cb jmp y,$cb 14671 jmp(Y,'REENTER') #62 3783 00df ld $df 14672 ld(-66/2) #63 14673 14674 # new delay 14675 label('.pmidiv#43') .pmidiv#43: 3784 1400 ld $00,y 14676 ld(0,Y) #43 3785 112a ld [$2a],x 14677 ld([sysArgs+6],X) #44 midiStream.lo 3786 0118 ld [$18] 14678 ld([vAC]) #45 3787 de00 st [y,x++] 14679 st([Y,Xpp]) #46 3788 0119 ld [$19] 14680 ld([vAC+1]) #47 3789 ce00 st [y,x] 14681 st([Y,X]) #48 midiStream = vAC 378a 112b ld [$2b],x 14682 ld([sysArgs+7],X) #49 midiDelay.lo 378b 01c0 ld [$c0] 14683 ld([0xC0]) #50 midiCommand.lo, (delay) 378c 207f anda $7f 14684 anda(0x7F) #51 378d c600 st [x] 14685 st([X]) #52 378e 1403 ld $03,y 14686 ld(hi('REENTER'),Y) #53 378f e0cb jmp y,$cb 14687 jmp(Y,'REENTER') #54 3790 00e3 ld $e3 14688 ld(-58/2) #55 14689 14690 14691 # MULW6 implementation 14692 label('mulw6#13') mulw6#13: 3791 00f6 ld $f6 14693 ld(min(0,maxTicks-50/2)) #13 3792 8115 adda [$15] 14694 adda([vTicks]) #14 3793 e8b7 blt .mulw6#17 14695 blt('.mulw6#17') #15 not enough time left, so retry 3794 0118 ld [$18] 14696 ld([vAC]) #16 3795 3080 anda $80,x 14697 anda(0x80,X) #17 3796 8118 adda [$18] 14698 adda([vAC]) #18 3797 c22a st [$2a] 14699 st([sysArgs+6]) #19 vAC.lo*2 3798 c2b0 st [$b0] 14700 st([0xB0]) #20 3799 0119 ld [$19] 14701 ld([vAC+1]) #21 379a 8119 adda [$19] 14702 adda([vAC+1]) #22 379b 8500 adda [x] 14703 adda([X]) #23 msb vAC.lo 379c c22b st [$2b] 14704 st([sysArgs+7]) #24 vAC.hi*2 379d c2b1 st [$b1] 14705 st([0xB1]) #25 379e 012a ld [$2a] 14706 ld([sysArgs+6]) #26 379f 3080 anda $80,x 14707 anda(0x80,X) #27 37a0 812a adda [$2a] 14708 adda([sysArgs+6]) #28 37a1 c22a st [$2a] 14709 st([sysArgs+6]) #29 vAC.lo*4 37a2 012b ld [$2b] 14710 ld([sysArgs+7]) #30 37a3 812b adda [$2b] 14711 adda([sysArgs+7]) #31 37a4 8500 adda [x] 14712 adda([X]) #32 msb sysArgs+6 37a5 c22b st [$2b] 14713 st([sysArgs+7]) #33 vAC.hi*4 37a6 01b0 ld [$b0] 14714 ld([0xB0]) #34 37a7 812a adda [$2a] 14715 adda([sysArgs+6]) #35 37a8 c218 st [$18] 14716 st([vAC]) #36 vAC.lo*4 + vAC.lo*2 37a9 e8ad blt .mulw6#39 14717 bmi('.mulw6#39') #37 check carry 37aa a12a suba [$2a] 14718 suba([sysArgs+6]) #38 restore [vAC] 37ab fcaf bra .mulw6#41 14719 bra('.mulw6#41') #39 37ac 412a ora [$2a] 14720 ora([sysArgs+6]) #40 carry in bit 7 14721 14722 label('.mulw6#39') .mulw6#39: 37ad 212a anda [$2a] 14723 anda([sysArgs+6]) #39 carry in bit 7 37ae 0200 nop 14724 nop() #40 14725 14726 label('.mulw6#41') .mulw6#41: 37af 3080 anda $80,x 14727 anda(0x80,X) #41 37b0 0500 ld [x] 14728 ld([X]) #42 carry in bit 0 37b1 812b adda [$2b] 14729 adda([sysArgs+7]) #43 37b2 81b1 adda [$b1] 14730 adda([0xB1]) #44 vAC.hi*4 + vAC.hi*2 + carry 37b3 c219 st [$19] 14731 st([vAC+1]) #45 37b4 1403 ld $03,y 14732 ld(hi('NEXTY'),Y) #46 37b5 e000 jmp y,$00 14733 jmp(Y,'NEXTY') #47 37b6 00e7 ld $e7 14734 ld(-50/2) #48 14735 14736 label('.mulw6#17') .mulw6#17: 37b7 0023 ld $23 14737 ld(hi('PREFX1_PAGE')) #17 ENTER is at $(n-1)ff, where n = instruction page 37b8 c202 st [$02] 14738 st([vCpuSelect]) #18 restore PREFX1 instruction page 37b9 9401 adda $01,y 14739 adda(1,Y) #19 retry instruction 37ba e0cb jmp y,$cb 14740 jmp(Y,'REENTER') #20 37bb 00f4 ld $f4 14741 ld(-24/2) #21 14742 14743 14744 # MULW7 implementation, (overflows at the same rate as MULW8) 14745 label('mulw7#13') mulw7#13: 37bc 00f2 ld $f2 14746 ld(min(0,maxTicks-58/2)) #13 37bd 8115 adda [$15] 14747 adda([vTicks]) #14 37be e8ea blt .mulw7#17 14748 blt('.mulw7#17') #15 not enough time left, so retry 37bf 0118 ld [$18] 14749 ld([vAC]) #16 37c0 3080 anda $80,x 14750 anda(0x80,X) #17 37c1 8118 adda [$18] 14751 adda([vAC]) #18 37c2 c22a st [$2a] 14752 st([sysArgs+6]) #19 vAC.lo*2 37c3 0119 ld [$19] 14753 ld([vAC+1]) #20 37c4 8119 adda [$19] 14754 adda([vAC+1]) #21 37c5 8500 adda [x] 14755 adda([X]) #22 msb vAC.lo 37c6 c22b st [$2b] 14756 st([sysArgs+7]) #23 vAC.hi*2 37c7 012a ld [$2a] 14757 ld([sysArgs+6]) #24 37c8 3080 anda $80,x 14758 anda(0x80,X) #25 37c9 812a adda [$2a] 14759 adda([sysArgs+6]) #26 37ca c22a st [$2a] 14760 st([sysArgs+6]) #27 vAC.lo*4 37cb 012b ld [$2b] 14761 ld([sysArgs+7]) #28 37cc 812b adda [$2b] 14762 adda([sysArgs+7]) #29 37cd 8500 adda [x] 14763 adda([X]) #30 msb sysArgs+6 37ce c22b st [$2b] 14764 st([sysArgs+7]) #31 vAC.hi*4 37cf 012a ld [$2a] 14765 ld([sysArgs+6]) #32 37d0 3080 anda $80,x 14766 anda(0x80,X) #33 37d1 812a adda [$2a] 14767 adda([sysArgs+6]) #34 37d2 c22a st [$2a] 14768 st([sysArgs+6]) #35 vAC.lo*8 37d3 012b ld [$2b] 14769 ld([sysArgs+7]) #36 37d4 812b adda [$2b] 14770 adda([sysArgs+7]) #37 37d5 8500 adda [x] 14771 adda([X]) #38 msb sysArgs+6 37d6 c22b st [$2b] 14772 st([sysArgs+7]) #39 vAC.hi*8 37d7 012a ld [$2a] 14773 ld([sysArgs+6]) #40 37d8 e8dd blt .mulw7#43 14774 bmi('.mulw7#43') #41 check borrow 37d9 a118 suba [$18] 14775 suba([vAC]) #42 37da c22a st [$2a] 14776 st([sysArgs+6]) #43 vAC.lo*8 - vAC.lo 37db fce0 bra .mulw7#46 14777 bra('.mulw7#46') #44 37dc 4118 ora [$18] 14778 ora([vAC]) #45 borrow in bit 7 14779 14780 label('.mulw7#43') .mulw7#43: 37dd c22a st [$2a] 14781 st([sysArgs+6]) #43 vAC.lo*8 - vAC.lo 37de 2118 anda [$18] 14782 anda([vAC]) #44 borrow in bit 7 37df 0200 nop 14783 nop() #45 14784 14785 label('.mulw7#46') .mulw7#46: 37e0 3080 anda $80,x 14786 anda(0x80,X) #46 37e1 012a ld [$2a] 14787 ld([sysArgs+6]) #47 37e2 c218 st [$18] 14788 st([vAC]) #48 vAC.lo*8 - vAC.lo 37e3 012b ld [$2b] 14789 ld([sysArgs+7]) #49 37e4 a500 suba [x] 14790 suba([X]) #50 37e5 a119 suba [$19] 14791 suba([vAC+1]) #51 37e6 c219 st [$19] 14792 st([vAC+1]) #52 vAC.hi*8 - borrow - vAC.hi 37e7 1403 ld $03,y 14793 ld(hi('REENTER'),Y) #53 37e8 e0cb jmp y,$cb 14794 jmp(Y,'REENTER') #54 37e9 00e3 ld $e3 14795 ld(-58/2) #55 14796 14797 label('.mulw7#17') .mulw7#17: 37ea 0023 ld $23 14798 ld(hi('PREFX1_PAGE')) #17 ENTER is at $(n-1)ff, where n = instruction page 37eb c202 st [$02] 14799 st([vCpuSelect]) #18 restore PREFX1 instruction page 37ec 9401 adda $01,y 14800 adda(1,Y) #19 retry instruction 37ed e0cb jmp y,$cb 14801 jmp(Y,'REENTER') #20 37ee 00f4 ld $f4 14802 ld(-24/2) #21 14803 14804 37ef 0200 nop 14805 fillers(until=0xff) 37f0 0200 nop 37f1 0200 nop * 16 times 37ff 0200 nop 14806 align(0x100, size=0x100) 14807 14808 #----------------------------------------------------------------------- 14809 # More vCPU instruction implementations, (0x3800) 14810 #----------------------------------------------------------------------- 14811 # 14812 # MULW8 implementation 14813 label('mulw8#13') mulw8#13: 3800 00f9 ld $f9 14814 ld(min(0,maxTicks-44/2)) #13 3801 8115 adda [$15] 14815 adda([vTicks]) #14 3802 e81e blt .mulw8#17 14816 blt('.mulw8#17') #15 not enough time left, so retry 3803 0118 ld [$18] 14817 ld([vAC]) #16 3804 3080 anda $80,x 14818 anda(0x80,X) #17 3805 8118 adda [$18] 14819 adda([vAC]) #18 3806 c22a st [$2a] 14820 st([sysArgs+6]) #19 vAC.lo*2 3807 0119 ld [$19] 14821 ld([vAC+1]) #20 3808 8119 adda [$19] 14822 adda([vAC+1]) #21 3809 8500 adda [x] 14823 adda([X]) #22 msb vAC.lo 380a c22b st [$2b] 14824 st([sysArgs+7]) #23 vAC.hi*2 380b 012a ld [$2a] 14825 ld([sysArgs+6]) #24 380c 3080 anda $80,x 14826 anda(0x80,X) #25 380d 812a adda [$2a] 14827 adda([sysArgs+6]) #26 380e c22a st [$2a] 14828 st([sysArgs+6]) #27 vAC.lo*4 380f 012b ld [$2b] 14829 ld([sysArgs+7]) #28 3810 812b adda [$2b] 14830 adda([sysArgs+7]) #29 3811 8500 adda [x] 14831 adda([X]) #30 msb sysArgs+6 3812 c22b st [$2b] 14832 st([sysArgs+7]) #31 vAC.hi*4 3813 012a ld [$2a] 14833 ld([sysArgs+6]) #32 3814 3080 anda $80,x 14834 anda(0x80,X) #33 3815 812a adda [$2a] 14835 adda([sysArgs+6]) #34 3816 c218 st [$18] 14836 st([vAC]) #35 vAC.lo*8 3817 012b ld [$2b] 14837 ld([sysArgs+7]) #36 3818 812b adda [$2b] 14838 adda([sysArgs+7]) #37 3819 8500 adda [x] 14839 adda([X]) #38 msb sysArgs+6 381a c219 st [$19] 14840 st([vAC+1]) #39 vAC.hi*8 381b 1403 ld $03,y 14841 ld(hi('NEXTY'),Y) #40 381c e000 jmp y,$00 14842 jmp(Y,'NEXTY') #41 381d 00ea ld $ea 14843 ld(-44/2) #42 14844 14845 label('.mulw8#17') .mulw8#17: 381e 0023 ld $23 14846 ld(hi('PREFX1_PAGE')) #17 ENTER is at $(n-1)ff, where n = instruction page 381f c202 st [$02] 14847 st([vCpuSelect]) #18 restore PREFX1 instruction page 3820 9401 adda $01,y 14848 adda(1,Y) #19 retry instruction 3821 e0cb jmp y,$cb 14849 jmp(Y,'REENTER') #20 3822 00f4 ld $f4 14850 ld(-24/2) #21 14851 14852 14853 # MULW9 implementation 14854 label('mulw9#13') mulw9#13: 3823 00f3 ld $f3 14855 ld(min(0,maxTicks-56/2)) #13 3824 8115 adda [$15] 14856 adda([vTicks]) #14 3825 e84f blt .mulw9#17 14857 blt('.mulw9#17') #15 not enough time left, so retry 3826 0118 ld [$18] 14858 ld([vAC]) #16 3827 3080 anda $80,x 14859 anda(0x80,X) #17 3828 8118 adda [$18] 14860 adda([vAC]) #18 3829 c22a st [$2a] 14861 st([sysArgs+6]) #19 vAC.lo*2 382a 0119 ld [$19] 14862 ld([vAC+1]) #20 382b 8119 adda [$19] 14863 adda([vAC+1]) #21 382c 8500 adda [x] 14864 adda([X]) #22 msb vAC.lo 382d c22b st [$2b] 14865 st([sysArgs+7]) #23 vAC.hi*2 382e 012a ld [$2a] 14866 ld([sysArgs+6]) #24 382f 3080 anda $80,x 14867 anda(0x80,X) #25 3830 812a adda [$2a] 14868 adda([sysArgs+6]) #26 3831 c22a st [$2a] 14869 st([sysArgs+6]) #27 vAC.lo*4 3832 012b ld [$2b] 14870 ld([sysArgs+7]) #28 3833 812b adda [$2b] 14871 adda([sysArgs+7]) #29 3834 8500 adda [x] 14872 adda([X]) #30 msb sysArgs+6 3835 c22b st [$2b] 14873 st([sysArgs+7]) #31 vAC.hi*4 3836 012a ld [$2a] 14874 ld([sysArgs+6]) #32 3837 3080 anda $80,x 14875 anda(0x80,X) #33 3838 812a adda [$2a] 14876 adda([sysArgs+6]) #34 3839 c22a st [$2a] 14877 st([sysArgs+6]) #35 vAC.lo*8 383a 012b ld [$2b] 14878 ld([sysArgs+7]) #36 383b 812b adda [$2b] 14879 adda([sysArgs+7]) #37 383c 8500 adda [x] 14880 adda([X]) #38 msb sysArgs+6 383d c22b st [$2b] 14881 st([sysArgs+7]) #39 vAC.hi*8 383e 0118 ld [$18] 14882 ld([vAC]) #40 383f 812a adda [$2a] 14883 adda([sysArgs+6]) #41 3840 c218 st [$18] 14884 st([vAC]) #42 vAC.lo*8 + vAC.lo 3841 e845 blt .mulw9#45 14885 bmi('.mulw9#45') #43 check carry 3842 a12a suba [$2a] 14886 suba([sysArgs+6]) #44 restore [vAC] 3843 fc47 bra .mulw9#47 14887 bra('.mulw9#47') #45 3844 412a ora [$2a] 14888 ora([sysArgs+6]) #46 carry in bit 7 14889 14890 label('.mulw9#45') .mulw9#45: 3845 212a anda [$2a] 14891 anda([sysArgs+6]) #45 carry in bit 7 3846 0200 nop 14892 nop() #46 14893 14894 label('.mulw9#47') .mulw9#47: 3847 3080 anda $80,x 14895 anda(0x80,X) #47 3848 0500 ld [x] 14896 ld([X]) #48 carry in bit 0 3849 812b adda [$2b] 14897 adda([sysArgs+7]) #49 384a 8119 adda [$19] 14898 adda([vAC+1]) #50 vAC.hi*8 + vAC.hi + carry 384b c219 st [$19] 14899 st([vAC+1]) #51 384c 1403 ld $03,y 14900 ld(hi('NEXTY'),Y) #52 384d e000 jmp y,$00 14901 jmp(Y,'NEXTY') #53 384e 00e4 ld $e4 14902 ld(-56/2) #54 14903 14904 label('.mulw9#17') .mulw9#17: 384f 0023 ld $23 14905 ld(hi('PREFX1_PAGE')) #17 ENTER is at $(n-1)ff, where n = instruction page 3850 c202 st [$02] 14906 st([vCpuSelect]) #18 restore PREFX1 instruction page 3851 9401 adda $01,y 14907 adda(1,Y) #19 retry instruction 3852 e0cb jmp y,$cb 14908 jmp(Y,'REENTER') #20 3853 00f4 ld $f4 14909 ld(-24/2) #21 14910 14911 14912 # MULW10 implementation 14913 label('mulw10#13') mulw10#13: 3854 00f2 ld $f2 14914 ld(min(0,maxTicks-58/2)) #13 3855 8115 adda [$15] 14915 adda([vTicks]) #14 3856 e882 blt .mulw10#17 14916 blt('.mulw10#17') #15 not enough time left, so retry 3857 0118 ld [$18] 14917 ld([vAC]) #16 3858 3080 anda $80,x 14918 anda(0x80,X) #17 3859 8118 adda [$18] 14919 adda([vAC]) #18 385a c22a st [$2a] 14920 st([sysArgs+6]) #19 vAC.lo*2 385b c2b0 st [$b0] 14921 st([0xB0]) #20 385c 0119 ld [$19] 14922 ld([vAC+1]) #21 385d 8119 adda [$19] 14923 adda([vAC+1]) #22 385e 8500 adda [x] 14924 adda([X]) #23 msb vAC.lo 385f c22b st [$2b] 14925 st([sysArgs+7]) #24 vAC.hi*2 3860 c2b1 st [$b1] 14926 st([0xB1]) #25 3861 012a ld [$2a] 14927 ld([sysArgs+6]) #26 3862 3080 anda $80,x 14928 anda(0x80,X) #27 3863 812a adda [$2a] 14929 adda([sysArgs+6]) #28 3864 c22a st [$2a] 14930 st([sysArgs+6]) #29 vAC.lo*4 3865 012b ld [$2b] 14931 ld([sysArgs+7]) #30 3866 812b adda [$2b] 14932 adda([sysArgs+7]) #31 3867 8500 adda [x] 14933 adda([X]) #32 msb sysArgs+6 3868 c22b st [$2b] 14934 st([sysArgs+7]) #33 vAC.hi*4 3869 012a ld [$2a] 14935 ld([sysArgs+6]) #34 386a 3080 anda $80,x 14936 anda(0x80,X) #35 386b 812a adda [$2a] 14937 adda([sysArgs+6]) #36 386c c22a st [$2a] 14938 st([sysArgs+6]) #37 vAC.lo*8 386d 012b ld [$2b] 14939 ld([sysArgs+7]) #38 386e 812b adda [$2b] 14940 adda([sysArgs+7]) #39 386f 8500 adda [x] 14941 adda([X]) #40 msb sysArgs+6 3870 c22b st [$2b] 14942 st([sysArgs+7]) #41 vAC.hi*8 3871 01b0 ld [$b0] 14943 ld([0xB0]) #42 3872 812a adda [$2a] 14944 adda([sysArgs+6]) #43 3873 c218 st [$18] 14945 st([vAC]) #44 vAC.lo*8 + vAC.lo*2 3874 e878 blt .mulw10#47 14946 bmi('.mulw10#47') #45 check carry 3875 a12a suba [$2a] 14947 suba([sysArgs+6]) #46 restore [vAC] 3876 fc7a bra .mulw10#49 14948 bra('.mulw10#49') #47 3877 412a ora [$2a] 14949 ora([sysArgs+6]) #48 carry in bit 7 14950 14951 label('.mulw10#47') .mulw10#47: 3878 212a anda [$2a] 14952 anda([sysArgs+6]) #47 carry in bit 7 3879 0200 nop 14953 nop() #48 14954 14955 label('.mulw10#49') .mulw10#49: 387a 3080 anda $80,x 14956 anda(0x80,X) #49 387b 0500 ld [x] 14957 ld([X]) #50 carry in bit 0 387c 812b adda [$2b] 14958 adda([sysArgs+7]) #51 387d 81b1 adda [$b1] 14959 adda([0xB1]) #52 vAC.hi*8 + vAC.hi*2 + carry 387e c219 st [$19] 14960 st([vAC+1]) #53 387f 1403 ld $03,y 14961 ld(hi('NEXTY'),Y) #54 3880 e000 jmp y,$00 14962 jmp(Y,'NEXTY') #55 3881 00e3 ld $e3 14963 ld(-58/2) #56 14964 14965 label('.mulw10#17') .mulw10#17: 3882 0023 ld $23 14966 ld(hi('PREFX1_PAGE')) #17 ENTER is at $(n-1)ff, where n = instruction page 3883 c202 st [$02] 14967 st([vCpuSelect]) #18 restore PREFX1 instruction page 3884 9401 adda $01,y 14968 adda(1,Y) #19 retry instruction 3885 e0cb jmp y,$cb 14969 jmp(Y,'REENTER') #20 3886 00f4 ld $f4 14970 ld(-24/2) #21 14971 14972 14973 # DOKEI+ implementation 14974 label('dokei+#13') dokei+#13: 3887 1517 ld [$17],y 14975 ld([vPC+1],Y) #13 3888 c21d st [$1d] 14976 st([vTmp]) #14 imm.hi 3889 de00 st [y,x++] 14977 st([Y,Xpp]) #15 X++ 388a 00fb ld $fb 14978 ld(min(0,maxTicks-40/2)) #16 388b 8115 adda [$15] 14979 adda([vTicks]) #17 388c e8a6 blt .dokei+#20 14980 blt('.dokei+#20') #18 not enough time left, so retry 388d 0d00 ld [y,x] 14981 ld([Y,X]) #19 imm.lo 388e 1519 ld [$19],y 14982 ld([vAC+1],Y) #20 388f 1118 ld [$18],x 14983 ld([vAC],X) #21 3890 de00 st [y,x++] 14984 st([Y,Xpp]) #22 3891 011d ld [$1d] 14985 ld([vTmp]) #23 3892 ce00 st [y,x] 14986 st([Y,X]) #24 3893 0118 ld [$18] 14987 ld([vAC]) #25 3894 8002 adda $02 14988 adda(2) #26 3895 c218 st [$18] 14989 st([vAC]) #27 3896 20fe anda $fe 14990 anda(0xFE) #28 3897 f09e beq .dokei+#31 14991 beq('.dokei+#31') #29 if low byte is 0x00 or 0x01 3898 0116 ld [$16] 14992 ld([vPC]) #30 3899 8001 adda $01 14993 adda(1) #31 389a c216 st [$16] 14994 st([vPC]) #32 389b 1403 ld $03,y 14995 ld(hi('REENTER'),Y) #33 389c e0cb jmp y,$cb 14996 jmp(Y,'REENTER') #34 389d 00ed ld $ed 14997 ld(-38/2) #35 14998 14999 label('.dokei+#31') .dokei+#31: 389e 8001 adda $01 15000 adda(1) #31 389f c216 st [$16] 15001 st([vPC]) #32 38a0 0119 ld [$19] 15002 ld([vAC+1]) #33 38a1 8001 adda $01 15003 adda(1) #34 38a2 c219 st [$19] 15004 st([vAC+1]) #35 38a3 1403 ld $03,y 15005 ld(hi('NEXTY'),Y) #36 38a4 e000 jmp y,$00 15006 jmp(Y,'NEXTY') #37 38a5 00ec ld $ec 15007 ld(-40/2) #38 15008 15009 label('.dokei+#20') .dokei+#20: 38a6 0116 ld [$16] 15010 ld([vPC]) #20 retry instruction 38a7 a002 suba $02 15011 suba(2) #21 38a8 c216 st [$16] 15012 st([vPC]) #22 38a9 1403 ld $03,y 15013 ld(hi('REENTER'),Y) #23 38aa e0cb jmp y,$cb 15014 jmp(Y,'REENTER') #24 38ab 00f2 ld $f2 15015 ld(-28/2) #25 15016 15017 15018 # DEEKRI implementation 15019 label('deekri#13') deekri#13: 38ac 3080 anda $80,x 15020 anda(0x80,X) #13 msb of immediate 8bit index, (sysArgs+7) 38ad 812b adda [$2b] 15021 adda([sysArgs+7]) #14 38ae c22a st [$2a] 15022 st([sysArgs+6]) #15 index.lo*2 38af 00fa ld $fa 15023 ld(min(0,maxTicks-42/2)) #16 38b0 8115 adda [$15] 15024 adda([vTicks]) #17 38b1 e8ca blt .deekri#20 15025 blt('.deekri#20') #18 not enough time left, so retry 38b2 0500 ld [x] 15026 ld([X]) #19 msb index.lo 38b3 c22b st [$2b] 15027 st([sysArgs+7]) #20 index.hi 38b4 0118 ld [$18] 15028 ld([vAC]) #21 38b5 812a adda [$2a] 15029 adda([sysArgs+6]) #22 38b6 c21d st [$1d] 15030 st([vTmp]) #23 vTmp = vAC.lo + index.lo 38b7 e8bb blt .deekri#26 15031 bmi('.deekri#26') #24 check carry 38b8 a12a suba [$2a] 15032 suba([sysArgs+6]) #25 restore vAC.lo 38b9 fcbd bra .deekri#28 15033 bra('.deekri#28') #26 38ba 412a ora [$2a] 15034 ora([sysArgs+6]) #27 carry in bit 7 15035 15036 label('.deekri#26') .deekri#26: 38bb 212a anda [$2a] 15037 anda([sysArgs+6]) #26 carry in bit 7 38bc 0200 nop 15038 nop() #27 15039 15040 label('.deekri#28') .deekri#28: 38bd 3080 anda $80,x 15041 anda(0x80,X) #28 38be 0500 ld [x] 15042 ld([X]) #29 carry in bit 0 38bf 8119 adda [$19] 15043 adda([vAC+1]) #30 38c0 952b adda [$2b],y 15044 adda([sysArgs+7],Y) #31 Y = vAC.hi + index.hi + carry 38c1 111d ld [$1d],x 15045 ld([vTmp],X) #32 38c2 0d00 ld [y,x] 15046 ld([Y,X]) #33 38c3 c218 st [$18] 15047 st([vAC]) #34 38c4 de00 st [y,x++] 15048 st([Y,Xpp]) #35 38c5 0d00 ld [y,x] 15049 ld([Y,X]) #36 38c6 c219 st [$19] 15050 st([vAC+1]) #37 38c7 1403 ld $03,y 15051 ld(hi('NEXTY'),Y) #38 38c8 e000 jmp y,$00 15052 jmp(Y,'NEXTY') #39 38c9 00eb ld $eb 15053 ld(-42/2) #40 15054 15055 label('.deekri#20') .deekri#20: 38ca 0022 ld $22 15056 ld(hi('PREFX2_PAGE')) #20 ENTER is at $(n-1)ff, where n = instruction page 38cb c202 st [$02] 15057 st([vCpuSelect]) #21 restore PREFX2 instruction page 38cc 9401 adda $01,y 15058 adda(1,Y) #22 retry instruction 38cd e000 jmp y,$00 15059 jmp(Y,'NEXTY') #23 38ce 00f3 ld $f3 15060 ld(-26/2) #24 15061 15062 38cf 0200 nop 15063 fillers(until=0xff) 38d0 0200 nop 38d1 0200 nop * 48 times 38ff 0200 nop 15064 align(0x100, size=0x100) 15065 15066 #----------------------------------------------------------------------- 15067 # More vCPU instruction implementations, (0x3900) 15068 #----------------------------------------------------------------------- 15069 # 15070 # MERGE4 implementation 15071 label('merge4#13') merge4#13: 3900 00d0 ld $d0 15072 ld(min(0,maxTicks-126/2)) #13 3901 8115 adda [$15] 15073 adda([vTicks]) #14 3902 e87b blt .merge4#17 15074 blt('.merge4#17') #15 not enough time left, so retry 3903 0128 ld [$28] 15075 ld([sysArgs+4]) #16 count 3904 a001 suba $01 15076 suba(1) #17 3905 e878 blt .merge4#20 15077 blt('.merge4#20') #18 3906 c228 st [$28] 15078 st([sysArgs+4]) #19 count -= 1 15079 3907 15b1 ld [$b1],y 15080 ld([0xB1],Y) #20 arrays0.hi 3908 11b0 ld [$b0],x 15081 ld([0xB0],X) #21 arrays0.lo 3909 0d00 ld [y,x] 15082 ld([Y,X]) #22 390a c21d st [$1d] 15083 st([vTmp]) #23 390b 152b ld [$2b],y 15084 ld([sysArgs+7],Y) #24 390c 0129 ld [$29] 15085 ld([sysArgs+5]) #25 390d 912a adda [$2a],x 15086 adda([sysArgs+6],X) #26 390e 8001 adda $01 15087 adda(1) #27 390f c229 st [$29] 15088 st([sysArgs+5]) #28 3910 812a adda [$2a] 15089 adda([sysArgs+6]) #29 3911 f014 beq $3914 15090 beq(pc()+3) #30 3912 fc15 bra $3915 15091 bra(pc()+3) #31 3913 0000 ld $00 15092 ld(0) #32 3914 0001 ld $01 15093 ld(1) #32 (!) 3915 812b adda [$2b] 15094 adda([sysArgs+7]) #33 3916 c22b st [$2b] 15095 st([sysArgs+7]) #34 3917 011d ld [$1d] 15096 ld([vTmp]) #35 3918 ce00 st [y,x] 15097 st([Y,X]) #36 15098 3919 15b3 ld [$b3],y 15099 ld([0xB3],Y) #37 arrays1.hi 391a 11b2 ld [$b2],x 15100 ld([0xB2],X) #38 arrays1.lo 391b 0d00 ld [y,x] 15101 ld([Y,X]) #39 391c c21d st [$1d] 15102 st([vTmp]) #40 391d 152b ld [$2b],y 15103 ld([sysArgs+7],Y) #41 391e 0129 ld [$29] 15104 ld([sysArgs+5]) #42 391f 912a adda [$2a],x 15105 adda([sysArgs+6],X) #43 3920 8001 adda $01 15106 adda(1) #44 3921 c229 st [$29] 15107 st([sysArgs+5]) #45 3922 812a adda [$2a] 15108 adda([sysArgs+6]) #46 3923 f026 beq $3926 15109 beq(pc()+3) #47 3924 fc27 bra $3927 15110 bra(pc()+3) #48 3925 0000 ld $00 15111 ld(0) #49 3926 0001 ld $01 15112 ld(1) #49 (!) 3927 812b adda [$2b] 15113 adda([sysArgs+7]) #50 3928 c22b st [$2b] 15114 st([sysArgs+7]) #51 3929 011d ld [$1d] 15115 ld([vTmp]) #52 392a ce00 st [y,x] 15116 st([Y,X]) #53 15117 392b 15b5 ld [$b5],y 15118 ld([0xB5],Y) #54 arrays2.hi 392c 11b4 ld [$b4],x 15119 ld([0xB4],X) #55 arrays2.lo 392d 0d00 ld [y,x] 15120 ld([Y,X]) #56 392e c21d st [$1d] 15121 st([vTmp]) #57 392f 152b ld [$2b],y 15122 ld([sysArgs+7],Y) #58 3930 0129 ld [$29] 15123 ld([sysArgs+5]) #59 3931 912a adda [$2a],x 15124 adda([sysArgs+6],X) #60 3932 8001 adda $01 15125 adda(1) #61 3933 c229 st [$29] 15126 st([sysArgs+5]) #62 3934 812a adda [$2a] 15127 adda([sysArgs+6]) #63 3935 f038 beq $3938 15128 beq(pc()+3) #64 3936 fc39 bra $3939 15129 bra(pc()+3) #65 3937 0000 ld $00 15130 ld(0) #66 3938 0001 ld $01 15131 ld(1) #66 (!) 3939 812b adda [$2b] 15132 adda([sysArgs+7]) #67 393a c22b st [$2b] 15133 st([sysArgs+7]) #68 393b 011d ld [$1d] 15134 ld([vTmp]) #69 393c ce00 st [y,x] 15135 st([Y,X]) #70 15136 393d 15b7 ld [$b7],y 15137 ld([0xB7],Y) #71 arrays3.hi 393e 11b6 ld [$b6],x 15138 ld([0xB6],X) #72 arrays3.lo 393f 0d00 ld [y,x] 15139 ld([Y,X]) #73 3940 c21d st [$1d] 15140 st([vTmp]) #74 3941 152b ld [$2b],y 15141 ld([sysArgs+7],Y) #75 3942 0129 ld [$29] 15142 ld([sysArgs+5]) #76 3943 912a adda [$2a],x 15143 adda([sysArgs+6],X) #77 3944 8001 adda $01 15144 adda(1) #78 3945 c229 st [$29] 15145 st([sysArgs+5]) #79 3946 812a adda [$2a] 15146 adda([sysArgs+6]) #80 3947 f04a beq $394a 15147 beq(pc()+3) #81 3948 fc4b bra $394b 15148 bra(pc()+3) #82 3949 0000 ld $00 15149 ld(0) #83 394a 0001 ld $01 15150 ld(1) #83 (!) 394b 812b adda [$2b] 15151 adda([sysArgs+7]) #84 394c c22b st [$2b] 15152 st([sysArgs+7]) #85 394d 011d ld [$1d] 15153 ld([vTmp]) #86 394e ce00 st [y,x] 15154 st([Y,X]) #87 15155 394f 01b0 ld [$b0] 15156 ld([0xB0]) #88 3950 8001 adda $01 15157 adda(1) #89 3951 c2b0 st [$b0] 15158 st([0xB0]) #90 3952 f055 beq $3955 15159 beq(pc()+3) #91 3953 fc56 bra $3956 15160 bra(pc()+3) #92 3954 0000 ld $00 15161 ld(0) #93 3955 0001 ld $01 15162 ld(1) #93 (!) 3956 81b1 adda [$b1] 15163 adda([0xB1]) #94 3957 c2b1 st [$b1] 15164 st([0xB1]) #95 15165 3958 01b2 ld [$b2] 15166 ld([0xB2]) #96 3959 8001 adda $01 15167 adda(1) #97 395a c2b2 st [$b2] 15168 st([0xB2]) #98 395b f05e beq $395e 15169 beq(pc()+3) #99 395c fc5f bra $395f 15170 bra(pc()+3) #100 395d 0000 ld $00 15171 ld(0) #101 395e 0001 ld $01 15172 ld(1) #101 (!) 395f 81b3 adda [$b3] 15173 adda([0xB3]) #102 3960 c2b3 st [$b3] 15174 st([0xB3]) #103 15175 3961 01b4 ld [$b4] 15176 ld([0xB4]) #104 3962 8001 adda $01 15177 adda(1) #105 3963 c2b4 st [$b4] 15178 st([0xB4]) #106 3964 f067 beq $3967 15179 beq(pc()+3) #107 3965 fc68 bra $3968 15180 bra(pc()+3) #108 3966 0000 ld $00 15181 ld(0) #109 3967 0001 ld $01 15182 ld(1) #109 (!) 3968 81b5 adda [$b5] 15183 adda([0xB5]) #110 3969 c2b5 st [$b5] 15184 st([0xB5]) #111 15185 396a 01b6 ld [$b6] 15186 ld([0xB6]) #112 396b 8001 adda $01 15187 adda(1) #113 396c c2b6 st [$b6] 15188 st([0xB6]) #114 396d f070 beq $3970 15189 beq(pc()+3) #115 396e fc71 bra $3971 15190 bra(pc()+3) #116 396f 0000 ld $00 15191 ld(0) #117 3970 0001 ld $01 15192 ld(1) #117 (!) 3971 81b7 adda [$b7] 15193 adda([0xB7]) #118 3972 c2b7 st [$b7] 15194 st([0xB7]) #119 15195 3973 0021 ld $21 15196 ld(hi('PREFX3_PAGE')) #120 ENTER is at $(n-1)ff, where n = instruction page 3974 c202 st [$02] 15197 st([vCpuSelect]) #121 restore PREFX3 instruction page 3975 9401 adda $01,y 15198 adda(1,Y) #122 retry instruction 3976 e000 jmp y,$00 15199 jmp(Y,'NEXTY') #123 3977 00c1 ld $c1 15200 ld(-126/2) #124 15201 15202 label('.merge4#20') .merge4#20: 3978 1403 ld $03,y 15203 ld(hi('NEXTY'),Y) #20 3979 e000 jmp y,$00 15204 jmp(Y,'NEXTY') #21 397a 00f4 ld $f4 15205 ld(-24/2) #22 15206 15207 label('.merge4#17') .merge4#17: 397b 0021 ld $21 15208 ld(hi('PREFX3_PAGE')) #17 ENTER is at $(n-1)ff, where n = instruction page 397c c202 st [$02] 15209 st([vCpuSelect]) #18 restore PREFX3 instruction page 397d 9401 adda $01,y 15210 adda(1,Y) #19 retry instruction 397e e0cb jmp y,$cb 15211 jmp(Y,'REENTER') #20 397f 00f4 ld $f4 15212 ld(-24/2) #21 15213 15214 15215 # MULB implementation 15216 label('mulb#13') 15217 #ld([X]) #13 src.lo 15218 #beq('.mulb#16') #14 15219 #ld([vAC]) #15 vAC.lo 15220 #beq('.mulb#18') #16 15221 #suba([X]) #17 15222 #bgt('.mulb#20') #18 15223 #ld([vAC]) #19 15224 #st([vTmp]) #20 15225 #ld(0) #21 15226 #st([vAC]) #22 15227 # 15228 #label('.mulb#23') 15229 #ld([vAC]) #23 15230 #adda([X]) #24 15231 #st([vAC] #25 15232 #ld([vTmp]) #26 15233 #suba(1) #27 15234 #bgt('.mulb#23') #28 15235 #st([vTmp]) #29 15236 # 15237 # 15238 # 15239 # 15240 #ld(min(0,maxTicks-46/2)) #13 15241 #adda([vTicks]) #14 15242 #blt('.merge4#17') #15 not enough time left, so retry 15243 #ld([sysArgs+4]) #16 count 15244 #suba(1) #17 15245 #blt('.merge4#20') #18 15246 #st([sysArgs+4]) #19 count -= 1 15247 # 15248 #ld([0xB1],Y) #20 arrays0.hi 15249 #ld([0xB0],X) #21 arrays0.lo 15250 # 15251 #label('.mulb#16') 15252 #ld(0) #16 15253 #st([vAC]) #17 15254 #st([vAC+1]) #18 15255 #ld(hi('REENTER'),Y) #19 15256 #jmp(Y,'REENTER') #20 15257 #ld(-24/2) #21 15258 # 15259 #label('.mulb#18') 15260 #ld(0) #18 15261 #st([vAC]) #19 15262 #st([vAC+1]) #20 15263 #ld(hi('REENTER'),Y) #21 15264 #jmp(Y,'REENTER') #22 15265 #ld(-26/2) #23 15266 # 15267 #label('.mulb#19') 15268 #ld(hi('PREFX2_PAGE')) #19 ENTER is at $(n-1)ff, where n = instruction page 15269 #st([vCpuSelect]) #20 restore PREFX2 instruction page 15270 #adda(1,Y) #21 retry instruction 15271 #jmp(Y,'REENTER') #22 15272 #ld(-26/2) #23 15273 15274 mulb#13: 3980 0200 nop 15275 fillers(until=0xff) 3981 0200 nop 3982 0200 nop * 127 times 39ff 0200 nop 15276 align(0x100, size=0x100) 15277 15278 #----------------------------------------------------------------------- 15279 # More vCPU instruction implementations, (0x3A00) 15280 #----------------------------------------------------------------------- 15281 # 15282 15283 3a00 0200 nop 15284 fillers(until=0xff) 3a01 0200 nop 3a02 0200 nop * 255 times 3aff 0200 nop 15285 align(0x100, size=0x100) 15286 15287 #----------------------------------------------------------------------- 15288 # More vCPU instruction implementations, (0x3B00) 15289 #----------------------------------------------------------------------- 15290 # 15291 15292 3b00 0200 nop 15293 fillers(until=0xff) 3b01 0200 nop 3b02 0200 nop * 255 times 3bff 0200 nop 15294 align(0x100, size=0x100) 15295 15296 #----------------------------------------------------------------------- 15297 # More vCPU instruction implementations, (0x3C00) 15298 #----------------------------------------------------------------------- 15299 # 15300 15301 3c00 0200 nop 15302 fillers(until=0xff) 3c01 0200 nop 3c02 0200 nop * 255 times 3cff 0200 nop 15303 align(0x100, size=0x100) 15304 15305 #----------------------------------------------------------------------- 15306 # More vCPU instruction implementations, (0x3D00) 15307 #----------------------------------------------------------------------- 15308 # 15309 15310 3d00 0200 nop 15311 fillers(until=0xff) 3d01 0200 nop 3d02 0200 nop * 255 times 3dff 0200 nop 15312 align(0x100, size=0x100) 15313 15314 #----------------------------------------------------------------------- 15315 # More vCPU instruction implementations, (0x3E00) 15316 #----------------------------------------------------------------------- 15317 # 15318 15319 3e00 0200 nop 15320 fillers(until=0xff) 3e01 0200 nop 3e02 0200 nop * 255 times 3eff 0200 nop 15321 align(0x100, size=0x100) 15322 15323 #----------------------------------------------------------------------- 15324 # Legacy branch springboards, (BCC), and vCPU instructions, (0x3F00) 15325 #----------------------------------------------------------------------- 15326 # 15327 # LDARRB implementation 15328 label('ldarrb#13') ldarrb#13: 3f00 1517 ld [$17],y 15329 ld([vPC+1],Y) #13 vPC.hi 3f01 de00 st [y,x++] 15330 st([Y,Xpp]) #14 X++ 3f02 c21d st [$1d] 15331 st([vTmp]) #15 var 3f03 00f4 ld $f4 15332 ld(min(0,maxTicks-54/2)) #16 3f04 8115 adda [$15] 15333 adda([vTicks]) #17 3f05 e82a blt .ldarrb#20 15334 blt('.ldarrb#20') #18 not enough time left, so retry 3f06 0d00 ld [y,x] 15335 ld([Y,X]) #19 3f07 de00 st [y,x++] 15336 st([Y,Xpp]) #20 X++ 3f08 c218 st [$18] 15337 st([vAC]) #21 imm.lo 3f09 0d00 ld [y,x] 15338 ld([Y,X]) #22 3f0a c219 st [$19] 15339 st([vAC+1]) #23 imm.hi 3f0b 1400 ld $00,y 15340 ld(0,Y) #24 3f0c 111d ld [$1d],x 15341 ld([vTmp],X) #25 3f0d 0500 ld [x] 15342 ld([X]) #26 3f0e de00 st [y,x++] 15343 st([Y,Xpp]) #27 X++ 3f0f c22a st [$2a] 15344 st([sysArgs+6]) #28 idx.lo 3f10 0500 ld [x] 15345 ld([X]) #29 3f11 c22b st [$2b] 15346 st([sysArgs+7]) #30 idx.hi 3f12 0118 ld [$18] 15347 ld([vAC]) #31 3f13 812a adda [$2a] 15348 adda([sysArgs+6]) #32 3f14 c21d st [$1d] 15349 st([vTmp]) #33 vTmp = vAC.lo + idx.lo 3f15 e819 blt .ldarrb#36 15350 bmi('.ldarrb#36') #34 check carry 3f16 a12a suba [$2a] 15351 suba([sysArgs+6]) #35 restore vAC.lo 3f17 fc1b bra .ldarrb#38 15352 bra('.ldarrb#38') #36 3f18 412a ora [$2a] 15353 ora([sysArgs+6]) #37 carry in bit 7 15354 15355 label('.ldarrb#36') .ldarrb#36: 3f19 212a anda [$2a] 15356 anda([sysArgs+6]) #36 carry in bit 7 3f1a 0200 nop 15357 nop() #37 15358 15359 label('.ldarrb#38') .ldarrb#38: 3f1b 3080 anda $80,x 15360 anda(0x80,X) #38 3f1c 0500 ld [x] 15361 ld([X]) #39 carry in bit 0 3f1d 8119 adda [$19] 15362 adda([vAC+1]) #40 3f1e 952b adda [$2b],y 15363 adda([sysArgs+7],Y) #41 Y = vAC.hi + idx.hi + carry 3f1f 111d ld [$1d],x 15364 ld([vTmp],X) #42 3f20 0d00 ld [y,x] 15365 ld([Y,X]) #43 3f21 c218 st [$18] 15366 st([vAC]) #44 3f22 0000 ld $00 15367 ld(0) #45 3f23 c219 st [$19] 15368 st([vAC+1]) #46 3f24 0116 ld [$16] 15369 ld([vPC]) #47 3f25 8002 adda $02 15370 adda(2) #48 3f26 c216 st [$16] 15371 st([vPC]) #49 3f27 1403 ld $03,y 15372 ld(hi('NEXTY'),Y) #50 3f28 e000 jmp y,$00 15373 jmp(Y,'NEXTY') #51 3f29 00e5 ld $e5 15374 ld(-54/2) #52 15375 15376 label('.ldarrb#20') .ldarrb#20: 3f2a 0116 ld [$16] 15377 ld([vPC]) #20 retry instruction 3f2b a002 suba $02 15378 suba(2) #21 3f2c c216 st [$16] 15379 st([vPC]) #22 3f2d 1403 ld $03,y 15380 ld(hi('REENTER'),Y) #23 3f2e e0cb jmp y,$cb 15381 jmp(Y,'REENTER') #24 3f2f 00f2 ld $f2 15382 ld(-28/2) #25 15383 15384 15385 # pc = 0x3f3f, Opcode = 0x3f 15386 # Conditional EQ: Branch if zero (if(vACL==0)vPCL=D) 3f30 0200 nop 15387 fillers(until=0x3f) 3f31 0200 nop 3f32 0200 nop * 15 times 3f3f 1417 ld $17,y 15388 ld(hi('beq#17'),Y) #14 3f40 e027 jmp y,$27 15389 jmp(Y,'beq#17') #15 3f41 1517 ld [$17],y 15390 ld([vPC+1],Y) #16 vPC.hi 15391 15392 # pc = 0x3f4d, Opcode = 0x4d 15393 # Conditional GT: Branch if positive (if(vACL>0)vPCL=D) 3f42 0200 nop 15394 fillers(until=0x4d) 3f43 0200 nop 3f44 0200 nop * 11 times 3f4d 1417 ld $17,y 15395 ld(hi('bgt#17'),Y) #13 3f4e e043 jmp y,$43 15396 jmp(Y,'bgt#17') #14 3f4f 1517 ld [$17],y 15397 ld([vPC+1],Y) #15 vPC.hi 15398 15399 # pc = 0x3f50, Opcode = 0x50 15400 # Conditional LT: Branch if negative (if(vACL<0)vPCL=D) 3f50 1417 ld $17,y 15401 ld(hi('blt#17'),Y) #13 3f51 e058 jmp y,$58 15402 jmp(Y,'blt#17') #14 3f52 1517 ld [$17],y 15403 ld([vPC+1],Y) #15 vPC.hi 15404 15405 # pc = 0x3f53, Opcode = 0x53 15406 # Conditional GE: Branch if positive or zero (if(vACL>=0)vPCL=D) 3f53 1417 ld $17,y 15407 ld(hi('bge#17'),Y) #13 3f54 e065 jmp y,$65 15408 jmp(Y,'bge#17') #14 3f55 1517 ld [$17],y 15409 ld([vPC+1],Y) #15 vPC.hi 15410 15411 # pc = 0x3f56, Opcode = 0x56 15412 # Conditional LE: Branch if negative or zero (if(vACL<=0)vPCL=D) 3f56 1417 ld $17,y 15413 ld(hi('ble#17'),Y) #13 3f57 e072 jmp y,$72 15414 jmp(Y,'ble#17') #14 3f58 1517 ld [$17],y 15415 ld([vPC+1],Y) #15 vPC.hi 15416 15417 # pc = 0x3f72, Opcode = 0x72 15418 # Conditional NE: Branch if not zero (if(vACL!=0)vPCL=D) 3f59 0200 nop 15419 fillers(until=0x72) 3f5a 0200 nop 3f5b 0200 nop * 25 times 3f72 1417 ld $17,y 15420 ld(hi('bne#17'),Y) #13 3f73 e035 jmp y,$35 15421 jmp(Y,'bne#17') #14 3f74 1517 ld [$17],y 15422 ld([vPC+1],Y) #15 vPC.hi 15423 15424 15425 # STARRB implementation 15426 label('starrb#13') starrb#13: 3f75 1517 ld [$17],y 15427 ld([vPC+1],Y) #13 vPC.hi 3f76 de00 st [y,x++] 15428 st([Y,Xpp]) #14 X++ 3f77 c21d st [$1d] 15429 st([vTmp]) #15 var 3f78 00f5 ld $f5 15430 ld(min(0,maxTicks-52/2)) #16 3f79 8115 adda [$15] 15431 adda([vTicks]) #17 3f7a e89d blt .starrb#20 15432 blt('.starrb#20') #18 not enough time left, so retry 3f7b 0d00 ld [y,x] 15433 ld([Y,X]) #19 3f7c de00 st [y,x++] 15434 st([Y,Xpp]) #20 X++ 3f7d c2b0 st [$b0] 15435 st([0xB0]) #21 imm.lo 3f7e 0d00 ld [y,x] 15436 ld([Y,X]) #22 3f7f c2b1 st [$b1] 15437 st([0xB1]) #23 imm.hi 3f80 1400 ld $00,y 15438 ld(0,Y) #24 3f81 111d ld [$1d],x 15439 ld([vTmp],X) #25 3f82 0500 ld [x] 15440 ld([X]) #26 3f83 de00 st [y,x++] 15441 st([Y,Xpp]) #27 X++ 3f84 c22a st [$2a] 15442 st([sysArgs+6]) #28 idx.lo 3f85 0500 ld [x] 15443 ld([X]) #29 3f86 c22b st [$2b] 15444 st([sysArgs+7]) #30 idx.hi 3f87 01b0 ld [$b0] 15445 ld([0xB0]) #31 3f88 812a adda [$2a] 15446 adda([sysArgs+6]) #32 3f89 c21d st [$1d] 15447 st([vTmp]) #33 vTmp = vAC.lo + idx.lo 3f8a e88e blt .starrb#36 15448 bmi('.starrb#36') #34 check carry 3f8b a12a suba [$2a] 15449 suba([sysArgs+6]) #35 restore vAC.lo 3f8c fc90 bra .starrb#38 15450 bra('.starrb#38') #36 3f8d 412a ora [$2a] 15451 ora([sysArgs+6]) #37 carry in bit 7 15452 15453 label('.starrb#36') .starrb#36: 3f8e 212a anda [$2a] 15454 anda([sysArgs+6]) #36 carry in bit 7 3f8f 0200 nop 15455 nop() #37 15456 15457 label('.starrb#38') .starrb#38: 3f90 3080 anda $80,x 15458 anda(0x80,X) #38 3f91 0500 ld [x] 15459 ld([X]) #39 carry in bit 0 3f92 81b1 adda [$b1] 15460 adda([0xB1]) #40 3f93 952b adda [$2b],y 15461 adda([sysArgs+7],Y) #41 Y = vAC.hi + idx.hi + carry 3f94 111d ld [$1d],x 15462 ld([vTmp],X) #42 3f95 0118 ld [$18] 15463 ld([vAC]) #43 3f96 ce00 st [y,x] 15464 st([Y,X]) #44 3f97 0116 ld [$16] 15465 ld([vPC]) #45 3f98 8002 adda $02 15466 adda(2) #46 3f99 c216 st [$16] 15467 st([vPC]) #47 3f9a 1403 ld $03,y 15468 ld(hi('NEXTY'),Y) #48 3f9b e000 jmp y,$00 15469 jmp(Y,'NEXTY') #49 3f9c 00e6 ld $e6 15470 ld(-52/2) #50 15471 15472 label('.starrb#20') .starrb#20: 3f9d 0116 ld [$16] 15473 ld([vPC]) #20 retry instruction 3f9e a002 suba $02 15474 suba(2) #21 3f9f c216 st [$16] 15475 st([vPC]) #22 3fa0 1403 ld $03,y 15476 ld(hi('REENTER'),Y) #23 3fa1 e0cb jmp y,$cb 15477 jmp(Y,'REENTER') #24 3fa2 00f2 ld $f2 15478 ld(-28/2) #25 15479 15480 15481 # STARRI implementation 15482 label('starri#13') starri#13: 3fa3 1517 ld [$17],y 15483 ld([vPC+1],Y) #13 vPC.hi 3fa4 de00 st [y,x++] 15484 st([Y,Xpp]) #14 X++ 3fa5 c21d st [$1d] 15485 st([vTmp]) #15 var 3fa6 00f3 ld $f3 15486 ld(min(0,maxTicks-56/2)) #16 3fa7 8115 adda [$15] 15487 adda([vTicks]) #17 3fa8 e8ce blt .starri#20 15488 blt('.starri#20') #18 not enough time left, so retry 3fa9 0d00 ld [y,x] 15489 ld([Y,X]) #19 3faa de00 st [y,x++] 15490 st([Y,Xpp]) #20 X++ 3fab c2b0 st [$b0] 15491 st([0xB0]) #21 addr imm.lo 3fac 0d00 ld [y,x] 15492 ld([Y,X]) #22 3fad de00 st [y,x++] 15493 st([Y,Xpp]) #23 X++ 3fae c2b1 st [$b1] 15494 st([0xB1]) #24 addr imm.hi 3faf 0d00 ld [y,x] 15495 ld([Y,X]) #25 3fb0 c2b2 st [$b2] 15496 st([0xB2]) #26 data imm 3fb1 1400 ld $00,y 15497 ld(0,Y) #27 3fb2 111d ld [$1d],x 15498 ld([vTmp],X) #28 3fb3 0500 ld [x] 15499 ld([X]) #29 3fb4 de00 st [y,x++] 15500 st([Y,Xpp]) #30 X++ 3fb5 c22a st [$2a] 15501 st([sysArgs+6]) #31 idx.lo 3fb6 0500 ld [x] 15502 ld([X]) #32 3fb7 c22b st [$2b] 15503 st([sysArgs+7]) #33 idx.hi 3fb8 01b0 ld [$b0] 15504 ld([0xB0]) #34 3fb9 812a adda [$2a] 15505 adda([sysArgs+6]) #35 3fba c21d st [$1d] 15506 st([vTmp]) #36 vTmp = vAC.lo + idx.lo 3fbb e8bf blt .starri#39 15507 bmi('.starri#39') #37 check carry 3fbc a12a suba [$2a] 15508 suba([sysArgs+6]) #38 restore vAC.lo 3fbd fcc1 bra .starri#41 15509 bra('.starri#41') #39 3fbe 412a ora [$2a] 15510 ora([sysArgs+6]) #40 carry in bit 7 15511 15512 label('.starri#39') .starri#39: 3fbf 212a anda [$2a] 15513 anda([sysArgs+6]) #39 carry in bit 7 3fc0 0200 nop 15514 nop() #40 15515 15516 label('.starri#41') .starri#41: 3fc1 3080 anda $80,x 15517 anda(0x80,X) #41 3fc2 0500 ld [x] 15518 ld([X]) #42 carry in bit 0 3fc3 81b1 adda [$b1] 15519 adda([0xB1]) #43 3fc4 952b adda [$2b],y 15520 adda([sysArgs+7],Y) #44 Y = vAC.hi + idx.hi + carry 3fc5 111d ld [$1d],x 15521 ld([vTmp],X) #45 3fc6 01b2 ld [$b2] 15522 ld([0xB2]) #46 3fc7 ce00 st [y,x] 15523 st([Y,X]) #47 3fc8 0116 ld [$16] 15524 ld([vPC]) #48 3fc9 8003 adda $03 15525 adda(3) #49 3fca c216 st [$16] 15526 st([vPC]) #50 3fcb 1403 ld $03,y 15527 ld(hi('REENTER'),Y) #51 3fcc e0cb jmp y,$cb 15528 jmp(Y,'REENTER') #52 3fcd 00e4 ld $e4 15529 ld(-56/2) #53 15530 15531 label('.starri#20') .starri#20: 3fce 0116 ld [$16] 15532 ld([vPC]) #20 retry instruction 3fcf a002 suba $02 15533 suba(2) #21 3fd0 c216 st [$16] 15534 st([vPC]) #22 3fd1 1403 ld $03,y 15535 ld(hi('REENTER'),Y) #23 3fd2 e0cb jmp y,$cb 15536 jmp(Y,'REENTER') #24 3fd3 00f2 ld $f2 15537 ld(-28/2) #25 15538 15539 3fd4 0200 nop 15540 fillers(until=0xff) 3fd5 0200 nop 3fd6 0200 nop * 43 times 3fff 0200 nop 15541 align(0x100, size=0x100) 15542 15543 #----------------------------------------------------------------------- 15544 # More vCPU instruction implementations, (0x4000) 15545 #----------------------------------------------------------------------- 15546 # 15547 15548 4000 0200 nop 15549 fillers(until=0xff) 4001 0200 nop 4002 0200 nop * 255 times 40ff 0200 nop 15550 align(0x100, size=0x100) 15551 15552 #----------------------------------------------------------------------- 15553 # More vCPU instruction implementations, (0x4100) 15554 #----------------------------------------------------------------------- 15555 # 15556 15557 4100 0200 nop 15558 fillers(until=0xff) 4101 0200 nop 4102 0200 nop * 255 times 41ff 0200 nop 15559 align(0x100, size=0x100) 15560 15561 #----------------------------------------------------------------------- 15562 # More vCPU instruction implementations, (0x4200) 15563 #----------------------------------------------------------------------- 15564 # 15565 15566 4200 0200 nop 15567 fillers(until=0xff) 4201 0200 nop 4202 0200 nop * 255 times 42ff 0200 nop 15568 align(0x100, size=0x100) 15569 15570 #----------------------------------------------------------------------- 15571 # More vCPU instruction implementations, (0x4300) 15572 #----------------------------------------------------------------------- 15573 # 15574 15575 4300 0200 nop 15576 fillers(until=0xff) 4301 0200 nop 4302 0200 nop * 255 times 43ff 0200 nop 15577 align(0x100, size=0x100) 15578 15579 #----------------------------------------------------------------------- 15580 # More vCPU instruction implementations, (0x4400) 15581 #----------------------------------------------------------------------- 15582 # 15583 15584 4400 0200 nop 15585 fillers(until=0xff) 4401 0200 nop 4402 0200 nop * 255 times 44ff 0200 nop 15586 align(0x100, size=0x100) 15587 15588 #----------------------------------------------------------------------- 15589 # More vCPU instruction implementations, (0x4500) 15590 #----------------------------------------------------------------------- 15591 # 15592 15593 4500 0200 nop 15594 fillers(until=0xff) 4501 0200 nop 4502 0200 nop * 255 times 45ff 0200 nop 15595 align(0x100, size=0x100) 15596 15597 #----------------------------------------------------------------------- 15598 # More vCPU instruction implementations, (0x4600) 15599 #----------------------------------------------------------------------- 15600 # 15601 15602 4600 0200 nop 15603 fillers(until=0xff) 4601 0200 nop 4602 0200 nop * 255 times 46ff 0200 nop 15604 align(0x100, size=0x100) 15605 15606 #----------------------------------------------------------------------- 15607 # More vCPU instruction implementations, (0x4700) 15608 #----------------------------------------------------------------------- 15609 # 15610 15611 4700 0200 nop 15612 fillers(until=0xff) 4701 0200 nop 4702 0200 nop * 255 times 47ff 0200 nop 15613 align(0x100, size=0x100) 15614 15615 #----------------------------------------------------------------------- 15616 # More vCPU instruction implementations, (0x4800) 15617 #----------------------------------------------------------------------- 15618 # 15619 15620 4800 0200 nop 15621 fillers(until=0xff) 4801 0200 nop 4802 0200 nop * 255 times 48ff 0200 nop 15622 align(0x100, size=0x100) 15623 15624 #----------------------------------------------------------------------- 15625 # More vCPU instruction implementations, (0x4900) 15626 #----------------------------------------------------------------------- 15627 # 15628 15629 4900 0200 nop 15630 fillers(until=0xff) 4901 0200 nop 4902 0200 nop * 255 times 49ff 0200 nop 15631 align(0x100, size=0x100) 15632 15633 #----------------------------------------------------------------------- 15634 # More vCPU instruction implementations, (0x4A00) 15635 #----------------------------------------------------------------------- 15636 # 15637 15638 4a00 0200 nop 15639 fillers(until=0xff) 4a01 0200 nop 4a02 0200 nop * 255 times 4aff 0200 nop 15640 align(0x100, size=0x100) 15641 15642 #----------------------------------------------------------------------- 15643 # More vCPU instruction implementations, (0x4B00) 15644 #----------------------------------------------------------------------- 15645 # 15646 15647 4b00 0200 nop 15648 fillers(until=0xff) 4b01 0200 nop 4b02 0200 nop * 255 times 4bff 0200 nop 15649 align(0x100, size=0x100) 15650 15651 #----------------------------------------------------------------------- 15652 # More vCPU instruction implementations, (0x4C00) 15653 #----------------------------------------------------------------------- 15654 # 15655 15656 4c00 0200 nop 15657 fillers(until=0xff) 4c01 0200 nop 4c02 0200 nop * 255 times 4cff 0200 nop 15658 align(0x100, size=0x100) 15659 15660 #----------------------------------------------------------------------- 15661 # More vCPU instruction implementations, (0x4D00) 15662 #----------------------------------------------------------------------- 15663 # 15664 15665 4d00 0200 nop 15666 fillers(until=0xff) 4d01 0200 nop 4d02 0200 nop * 255 times 4dff 0200 nop 15667 align(0x100, size=0x100) 15668 15669 #----------------------------------------------------------------------- 15670 # Gigatron font4x6 data, (0x4E00 ) 15671 #----------------------------------------------------------------------- 15672 # 15673 label('font4x6_32up') 15674 for ch in range(32, 32+83): 15675 comment = 'Char4x6 %s' % repr(chr(ch)) 15676 for byte in fontvX0.font4x6[ch-32]: 15677 ld(byte) font4x6_32up: 4e00 0000 ld $00 ;Char4x6 ' ' 4e01 0000 ld $00 4e02 0000 ld $00 4e03 0044 ld $44 ;Char4x6 '!' 4e04 0040 ld $40 4e05 0040 ld $40 4e06 00aa ld $aa ;Char4x6 '"' 4e07 00a0 ld $a0 4e08 0000 ld $00 4e09 004e ld $4e ;Char4x6 '#' 4e0a 004e ld $4e 4e0b 0040 ld $40 4e0c 0068 ld $68 ;Char4x6 '$' 4e0d 0042 ld $42 4e0e 00c0 ld $c0 4e0f 0082 ld $82 ;Char4x6 '%' 4e10 0048 ld $48 4e11 0020 ld $20 4e12 004a ld $4a ;Char4x6 '&' 4e13 00ac ld $ac 4e14 0060 ld $60 4e15 0044 ld $44 ;Char4x6 "'" 4e16 0080 ld $80 4e17 0000 ld $00 4e18 0024 ld $24 ;Char4x6 '(' 4e19 0044 ld $44 4e1a 0020 ld $20 4e1b 0084 ld $84 ;Char4x6 ')' 4e1c 0044 ld $44 4e1d 0080 ld $80 4e1e 000a ld $0a ;Char4x6 '*' 4e1f 004a ld $4a 4e20 0000 ld $00 4e21 0004 ld $04 ;Char4x6 '+' 4e22 00e4 ld $e4 4e23 0000 ld $00 4e24 0000 ld $00 ;Char4x6 ',' 4e25 0000 ld $00 4e26 0048 ld $48 4e27 0000 ld $00 ;Char4x6 '-' 4e28 00e0 ld $e0 4e29 0000 ld $00 4e2a 0000 ld $00 ;Char4x6 '.' 4e2b 0000 ld $00 4e2c 0080 ld $80 4e2d 0002 ld $02 ;Char4x6 '/' 4e2e 0048 ld $48 4e2f 0000 ld $00 4e30 00ea ld $ea ;Char4x6 '0' 4e31 00aa ld $aa 4e32 00e0 ld $e0 4e33 004c ld $4c ;Char4x6 '1' 4e34 0044 ld $44 4e35 00e0 ld $e0 4e36 00e2 ld $e2 ;Char4x6 '2' 4e37 00e8 ld $e8 4e38 00e0 ld $e0 4e39 00e2 ld $e2 ;Char4x6 '3' 4e3a 0062 ld $62 4e3b 00e0 ld $e0 4e3c 0088 ld $88 ;Char4x6 '4' 4e3d 00ce ld $ce 4e3e 0040 ld $40 4e3f 00e8 ld $e8 ;Char4x6 '5' 4e40 00e2 ld $e2 4e41 00e0 ld $e0 4e42 00e8 ld $e8 ;Char4x6 '6' 4e43 00ea ld $ea 4e44 00e0 ld $e0 4e45 00e2 ld $e2 ;Char4x6 '7' 4e46 0022 ld $22 4e47 0020 ld $20 4e48 00ea ld $ea ;Char4x6 '8' 4e49 00ea ld $ea 4e4a 00e0 ld $e0 4e4b 00ea ld $ea ;Char4x6 '9' 4e4c 00e2 ld $e2 4e4d 00e0 ld $e0 4e4e 0004 ld $04 ;Char4x6 ':' 4e4f 0004 ld $04 4e50 0000 ld $00 4e51 0000 ld $00 ;Char4x6 ';' 4e52 0040 ld $40 4e53 0048 ld $48 4e54 0024 ld $24 ;Char4x6 '<' 4e55 0084 ld $84 4e56 0020 ld $20 4e57 000e ld $0e ;Char4x6 '=' 4e58 000e ld $0e 4e59 0000 ld $00 4e5a 0084 ld $84 ;Char4x6 '>' 4e5b 0024 ld $24 4e5c 0080 ld $80 4e5d 00c2 ld $c2 ;Char4x6 '?' 4e5e 0060 ld $60 4e5f 0040 ld $40 4e60 006a ld $6a ;Char4x6 '@' 4e61 00e8 ld $e8 4e62 0060 ld $60 4e63 004a ld $4a ;Char4x6 'A' 4e64 00ea ld $ea 4e65 00a0 ld $a0 4e66 00ca ld $ca ;Char4x6 'B' 4e67 00ca ld $ca 4e68 00c0 ld $c0 4e69 0068 ld $68 ;Char4x6 'C' 4e6a 0088 ld $88 4e6b 0060 ld $60 4e6c 00ca ld $ca ;Char4x6 'D' 4e6d 00aa ld $aa 4e6e 00c0 ld $c0 4e6f 00e8 ld $e8 ;Char4x6 'E' 4e70 00c8 ld $c8 4e71 00e0 ld $e0 4e72 00e8 ld $e8 ;Char4x6 'F' 4e73 00c8 ld $c8 4e74 0080 ld $80 4e75 0068 ld $68 ;Char4x6 'G' 4e76 00aa ld $aa 4e77 0060 ld $60 4e78 00aa ld $aa ;Char4x6 'H' 4e79 00ea ld $ea 4e7a 00a0 ld $a0 4e7b 00e4 ld $e4 ;Char4x6 'I' 4e7c 0044 ld $44 4e7d 00e0 ld $e0 4e7e 0062 ld $62 ;Char4x6 'J' 4e7f 002a ld $2a 4e80 0040 ld $40 4e81 00aa ld $aa ;Char4x6 'K' 4e82 00ca ld $ca 4e83 00a0 ld $a0 4e84 0088 ld $88 ;Char4x6 'L' 4e85 0088 ld $88 4e86 00e0 ld $e0 4e87 00ae ld $ae ;Char4x6 'M' 4e88 00aa ld $aa 4e89 00a0 ld $a0 4e8a 00ea ld $ea ;Char4x6 'N' 4e8b 00aa ld $aa 4e8c 00a0 ld $a0 4e8d 004a ld $4a ;Char4x6 'O' 4e8e 00aa ld $aa 4e8f 0040 ld $40 4e90 00ca ld $ca ;Char4x6 'P' 4e91 00c8 ld $c8 4e92 0080 ld $80 4e93 004a ld $4a ;Char4x6 'Q' 4e94 00ae ld $ae 4e95 0060 ld $60 4e96 00ca ld $ca ;Char4x6 'R' 4e97 00ca ld $ca 4e98 00a0 ld $a0 4e99 0068 ld $68 ;Char4x6 'S' 4e9a 0042 ld $42 4e9b 00c0 ld $c0 4e9c 00e4 ld $e4 ;Char4x6 'T' 4e9d 0044 ld $44 4e9e 0040 ld $40 4e9f 00aa ld $aa ;Char4x6 'U' 4ea0 00aa ld $aa 4ea1 00e0 ld $e0 4ea2 00aa ld $aa ;Char4x6 'V' 4ea3 00aa ld $aa 4ea4 0040 ld $40 4ea5 00aa ld $aa ;Char4x6 'W' 4ea6 00ae ld $ae 4ea7 00a0 ld $a0 4ea8 00aa ld $aa ;Char4x6 'X' 4ea9 004a ld $4a 4eaa 00a0 ld $a0 4eab 00aa ld $aa ;Char4x6 'Y' 4eac 00a4 ld $a4 4ead 0040 ld $40 4eae 00e2 ld $e2 ;Char4x6 'Z' 4eaf 0048 ld $48 4eb0 00e0 ld $e0 4eb1 0064 ld $64 ;Char4x6 '[' 4eb2 0044 ld $44 4eb3 0060 ld $60 4eb4 0008 ld $08 ;Char4x6 '\\' 4eb5 0042 ld $42 4eb6 0000 ld $00 4eb7 00c4 ld $c4 ;Char4x6 ']' 4eb8 0044 ld $44 4eb9 00c0 ld $c0 4eba 004a ld $4a ;Char4x6 '^' 4ebb 0000 ld $00 4ebc 0000 ld $00 4ebd 0000 ld $00 ;Char4x6 '_' 4ebe 0000 ld $00 4ebf 00e0 ld $e0 4ec0 0084 ld $84 ;Char4x6 '`' 4ec1 0000 ld $00 4ec2 0000 ld $00 4ec3 0006 ld $06 ;Char4x6 'a' 4ec4 00aa ld $aa 4ec5 0060 ld $60 4ec6 008c ld $8c ;Char4x6 'b' 4ec7 00aa ld $aa 4ec8 00c0 ld $c0 4ec9 0006 ld $06 ;Char4x6 'c' 4eca 0088 ld $88 4ecb 0060 ld $60 4ecc 0026 ld $26 ;Char4x6 'd' 4ecd 00aa ld $aa 4ece 0060 ld $60 4ecf 0006 ld $06 ;Char4x6 'e' 4ed0 00ac ld $ac 4ed1 0060 ld $60 4ed2 0064 ld $64 ;Char4x6 'f' 4ed3 00e4 ld $e4 4ed4 0040 ld $40 4ed5 0006 ld $06 ;Char4x6 'g' 4ed6 00a6 ld $a6 4ed7 002c ld $2c 4ed8 008c ld $8c ;Char4x6 'h' 4ed9 00aa ld $aa 4eda 00a0 ld $a0 4edb 0040 ld $40 ;Char4x6 'i' 4edc 0044 ld $44 4edd 0040 ld $40 4ede 0040 ld $40 ;Char4x6 'j' 4edf 0044 ld $44 4ee0 004c ld $4c 4ee1 008a ld $8a ;Char4x6 'k' 4ee2 00ca ld $ca 4ee3 00a0 ld $a0 4ee4 0044 ld $44 ;Char4x6 'l' 4ee5 0044 ld $44 4ee6 0020 ld $20 4ee7 000e ld $0e ;Char4x6 'm' 4ee8 00ea ld $ea 4ee9 00a0 ld $a0 4eea 000c ld $0c ;Char4x6 'n' 4eeb 00aa ld $aa 4eec 00a0 ld $a0 4eed 0004 ld $04 ;Char4x6 'o' 4eee 00aa ld $aa 4eef 0040 ld $40 4ef0 000c ld $0c ;Char4x6 'p' 4ef1 00aa ld $aa 4ef2 00c8 ld $c8 4ef3 0006 ld $06 ;Char4x6 'q' 4ef4 00aa ld $aa 4ef5 0062 ld $62 4ef6 000c ld $0c ;Char4x6 'r' 4ef7 00a8 ld $a8 4ef8 0080 ld $80 15678 comment = C(comment) 15679 4ef9 0200 nop 15680 fillers(until=0xfd) 4efa 0200 nop 4efb 0200 nop 4efc 0200 nop 4efd 1435 ld $35,y 15681 ld(hi('prn4x6Return'),Y) #27 skip a cycle as byte is fetched from table 4efe e085 jmp y,$85 15682 jmp(Y,'prn4x6Return') #28 4eff c21d st [$1d] 15683 st([vTmp]) #29 15684 15685 align(0x100, size=0x100) 15686 15687 #----------------------------------------------------------------------- 15688 # Gigatron font4x6 data, (0x4F00 ) 15689 #----------------------------------------------------------------------- 15690 # 15691 label('font4x6_115up') 15692 for ch in range(32+83, 132): 15693 comment = 'Char4x6 %s' % repr(chr(ch)) 15694 for byte in fontvX0.font4x6[ch-32]: font4x6_115up: 15695 ld(byte) 4f00 0006 ld $06 ;Char4x6 's' 4f01 00c6 ld $c6 4f02 00c0 ld $c0 4f03 004e ld $4e ;Char4x6 't' 4f04 0044 ld $44 4f05 0060 ld $60 4f06 000a ld $0a ;Char4x6 'u' 4f07 00aa ld $aa 4f08 00e0 ld $e0 4f09 000a ld $0a ;Char4x6 'v' 4f0a 00aa ld $aa 4f0b 0040 ld $40 4f0c 000a ld $0a ;Char4x6 'w' 4f0d 00ae ld $ae 4f0e 00e0 ld $e0 4f0f 000a ld $0a ;Char4x6 'x' 4f10 0044 ld $44 4f11 00a0 ld $a0 4f12 000a ld $0a ;Char4x6 'y' 4f13 00aa ld $aa 4f14 0044 ld $44 4f15 000e ld $0e ;Char4x6 'z' 4f16 0024 ld $24 4f17 00e0 ld $e0 4f18 0064 ld $64 ;Char4x6 '{' 4f19 00c4 ld $c4 4f1a 0060 ld $60 4f1b 0044 ld $44 ;Char4x6 '|' 4f1c 0044 ld $44 4f1d 0040 ld $40 4f1e 00c4 ld $c4 ;Char4x6 '}' 4f1f 0064 ld $64 4f20 00c0 ld $c0 4f21 0000 ld $00 ;Char4x6 '~' 4f22 00e0 ld $e0 4f23 0000 ld $00 4f24 00ee ld $ee ;Char4x6 '\x7f' 4f25 00ee ld $ee 4f26 00e0 ld $e0 4f27 0004 ld $04 ;Char4x6 '\x80' 4f28 0088 ld $88 4f29 0040 ld $40 4f2a 0006 ld $06 ;Char4x6 '\x81' 4f2b 0090 ld $90 4f2c 0000 ld $00 4f2d 0002 ld $02 ;Char4x6 '\x82' 4f2e 0011 ld $11 4f2f 0020 ld $20 4f30 0000 ld $00 ;Char4x6 '\x83' 4f31 0009 ld $09 4f32 0060 ld $60 15696 comment = C(comment) 15697 4f33 0200 nop 15698 fillers(until=0xfd) 4f34 0200 nop 4f35 0200 nop * 202 times 4ffd 1435 ld $35,y 15699 ld(hi('prn4x6Return'),Y) #27 skip a cycle as byte is fetched from table 4ffe e085 jmp y,$85 15700 jmp(Y,'prn4x6Return') #28 4fff c21d st [$1d] 15701 st([vTmp]) #29 15702 15703 align(0x100, size=0x100) 15704 15705 #----------------------------------------------------------------------- 15706 # 15707 # End of core 15708 # 15709 #----------------------------------------------------------------------- 15710 disableListing() ;+-----------------------------------+ ;| gbas/menu/Credits_vX0.gt1 | ;+-----------------------------------+ 5000 dc00 st $00,[y,x++] ;'\x00' 5001 dc00 st $00,[y,x++] ;'\x00' 5002 dc00 st $00,[y,x++] ;'\x00' 5003 dc00 st $00,[y,x++] ;'\x00' 5004 dc00 st $00,[y,x++] ;'\x00' 5005 dc00 st $00,[y,x++] ;'\x00' 5006 dc00 st $00,[y,x++] ;'\x00' 5007 dc00 st $00,[y,x++] ;'\x00' 5008 0000 ld $00 5009 c218 st [$18] 500a 0000 ld $00 500b 14e0 ld $e0,y 500c e036 jmp y,$36 500d c219 st [$19] Credits: 500e 0000 ld $00 500f 007e ld $7e 5010 0002 ld $02 5011 0001 ld $01 5012 0001 ld $01 5013 0002 ld $02 5014 0000 ld $00 5015 00f5 ld $f5 5016 0059 ld $59 5017 0080 ld $80 5018 002b ld $2b 5019 0082 ld $82 501a 0011 ld $11 501b 00a3 ld $a3 501c 007c ld $7c 501d 00cf ld $cf 501e 0018 ld $18 501f 0011 ld $11 5020 0020 ld $20 5021 000f ld $0f 5022 002b ld $2b 5023 00a2 ld $a2 5024 00c7 ld $c7 5025 0003 ld $03 5026 0069 ld $69 5027 0021 ld $21 5028 004d ld $4d 5029 0002 ld $02 502a 00aa ld $aa 502b 004d ld $4d 502c 0000 ld $00 502d 00d6 ld $d6 502e 004d ld $4d 502f 0000 ld $00 5030 00a6 ld $a6 5031 0016 ld $16 5032 0000 ld $00 5033 002d ld $2d 5034 004d ld $4d 5035 0000 ld $00 5036 002e ld $2e 5037 0085 ld $85 5038 00bd ld $bd 5039 0079 ld $79 503a 004d ld $4d 503b 0002 ld $02 503c 0082 ld $82 503d 0085 ld $85 503e 00a5 ld $a5 503f 007a ld $7a 5040 00c7 ld $c7 5041 00fd ld $fd 5042 0066 ld $66 5043 00aa ld $aa 5044 004d ld $4d 5045 0000 ld $00 5046 00a4 ld $a4 5047 00c7 ld $c7 5048 0010 ld $10 5049 0069 ld $69 504a 00aa ld $aa 504b 00b1 ld $b1 504c 002f ld $2f 504d 0082 ld $82 504e 00ff ld $ff 504f 005e ld $5e 5050 00a2 ld $a2 5051 00b1 ld $b1 5052 002f ld $2f 5053 0082 ld $82 5054 00ff ld $ff 5055 005e ld $5e 5056 00a3 ld $a3 5057 0016 ld $16 5058 0000 ld $00 5059 00a4 ld $a4 505a 0016 ld $16 505b 0000 ld $00 505c 00a5 ld $a5 505d 0085 ld $85 505e 00dc ld $dc 505f 007a ld $7a 5060 0011 ld $11 5061 00d8 ld $d8 5062 007f ld $7f 5063 0085 ld $85 5064 00d6 ld $d6 5065 0079 ld $79 5066 0011 ld $11 5067 00d4 ld $d4 5068 007f ld $7f 5069 0085 ld $85 506a 00d6 ld $d6 506b 0079 ld $79 506c 0085 ld $85 506d 00a0 ld $a0 506e 007e ld $7e 506f 0016 ld $16 5070 0000 ld $00 5071 00a4 ld $a4 5072 0016 ld $16 5073 0006 ld $06 5074 00a5 ld $a5 5075 0085 ld $85 5076 00dc ld $dc 5077 007a ld $7a 5078 0011 ld $11 5079 00d8 ld $d8 507a 007f ld $7f 507b 0085 ld $85 507c 00d6 ld $d6 507d 0079 ld $79 507e 0011 ld $11 507f 00d0 ld $d0 5080 007f ld $7f 5081 0085 ld $85 5082 00d6 ld $d6 5083 0079 ld $79 5084 0085 ld $85 5085 00a0 ld $a0 5086 007e ld $7e 5087 0016 ld $16 5088 0000 ld $00 5089 00a4 ld $a4 508a 0016 ld $16 508b 000c ld $0c 508c 00a5 ld $a5 508d 0085 ld $85 508e 00dc ld $dc 508f 007a ld $7a 5090 0011 ld $11 5091 00d8 ld $d8 5092 007f ld $7f 5093 0085 ld $85 5094 00d6 ld $d6 5095 0079 ld $79 5096 0011 ld $11 5097 00cc ld $cc 5098 007f ld $7f 5099 0085 ld $85 509a 00d6 ld $d6 509b 0079 ld $79 509c 0085 ld $85 509d 00a0 ld $a0 509e 007e ld $7e 509f 0016 ld $16 50a0 0000 ld $00 50a1 00a4 ld $a4 50a2 0016 ld $16 50a3 0012 ld $12 50a4 00a5 ld $a5 50a5 0085 ld $85 50a6 00dc ld $dc 50a7 007a ld $7a 50a8 0011 ld $11 50a9 00d8 ld $d8 50aa 007f ld $7f 50ab 0085 ld $85 50ac 00d6 ld $d6 50ad 0079 ld $79 50ae 0011 ld $11 50af 00c8 ld $c8 50b0 007f ld $7f 50b1 0085 ld $85 50b2 00d6 ld $d6 50b3 0079 ld $79 50b4 0085 ld $85 50b5 00a0 ld $a0 50b6 007e ld $7e 50b7 0016 ld $16 50b8 0000 ld $00 50b9 00a4 ld $a4 50ba 0016 ld $16 50bb 0018 ld $18 50bc 00a5 ld $a5 50bd 0085 ld $85 50be 00dc ld $dc 50bf 007a ld $7a 50c0 0011 ld $11 50c1 00d8 ld $d8 50c2 007f ld $7f 50c3 0085 ld $85 50c4 00d6 ld $d6 50c5 0079 ld $79 50c6 0011 ld $11 50c7 00c4 ld $c4 50c8 007f ld $7f 50c9 0085 ld $85 50ca 00d6 ld $d6 50cb 0079 ld $79 50cc 0085 ld $85 50cd 00a0 ld $a0 50ce 007e ld $7e 50cf 0016 ld $16 50d0 0000 ld $00 50d1 00a4 ld $a4 50d2 0016 ld $16 50d3 001e ld $1e 50d4 00a5 ld $a5 50d5 0085 ld $85 50d6 00dc ld $dc 50d7 007a ld $7a 50d8 0011 ld $11 50d9 00d8 ld $d8 50da 007f ld $7f 50db 0085 ld $85 50dc 00d6 ld $d6 50dd 0079 ld $79 50de 0011 ld $11 50df 00c0 ld $c0 50e0 007f ld $7f 50e1 0085 ld $85 50e2 00d6 ld $d6 50e3 0079 ld $79 50e4 0085 ld $85 50e5 00a0 ld $a0 50e6 007e ld $7e 50e7 0016 ld $16 50e8 0000 ld $00 50e9 00a4 ld $a4 50ea 0016 ld $16 50eb 0024 ld $24 50ec 00a5 ld $a5 50ed 0085 ld $85 50ee 00dc ld $dc 50ef 007a ld $7a 50f0 0011 ld $11 50f1 00d8 ld $d8 50f2 007f ld $7f 50f3 0085 ld $85 50f4 00d6 ld $d6 50f5 0079 ld $79 50f6 0011 ld $11 50f7 00bc ld $bc 50f8 007f ld $7f 50f9 0085 ld $85 50fa 00d6 ld $d6 50fb fe00 bra ac ;+-----------------------------------+ 50fc fcfd bra $50fd ;| | 50fd 1418 ld $18,y ;| Trampoline for page $5000 lookups | 50fe e006 jmp y,$06 ;| | 50ff c218 st [$18] ;+-----------------------------------+ 5100 0079 ld $79 5101 0085 ld $85 5102 00a0 ld $a0 5103 007e ld $7e 5104 0016 ld $16 5105 0000 ld $00 5106 00a4 ld $a4 5107 0016 ld $16 5108 002a ld $2a 5109 00a5 ld $a5 510a 0085 ld $85 510b 00dc ld $dc 510c 007a ld $7a 510d 0085 ld $85 510e 0000 ld $00 510f 0003 ld $03 5110 0003 ld $03 5111 0000 ld $00 5112 00f9 ld $f9 5113 0011 ld $11 5114 00d8 ld $d8 5115 007f ld $7f 5116 0085 ld $85 5117 00d6 ld $d6 5118 0079 ld $79 5119 0011 ld $11 511a 00b8 ld $b8 511b 007f ld $7f 511c 0085 ld $85 511d 00d6 ld $d6 511e 0079 ld $79 511f 0085 ld $85 5120 00a0 ld $a0 5121 007e ld $7e 5122 0016 ld $16 5123 0000 ld $00 5124 00a4 ld $a4 5125 0016 ld $16 5126 0030 ld $30 5127 00a5 ld $a5 5128 0085 ld $85 5129 00dc ld $dc 512a 007a ld $7a 512b 0011 ld $11 512c 00d8 ld $d8 512d 007f ld $7f 512e 0085 ld $85 512f 00d6 ld $d6 5130 0079 ld $79 5131 0011 ld $11 5132 00b4 ld $b4 5133 007f ld $7f 5134 0085 ld $85 5135 00d6 ld $d6 5136 0079 ld $79 5137 0085 ld $85 5138 00a0 ld $a0 5139 007e ld $7e 513a 0016 ld $16 513b 0000 ld $00 513c 00a4 ld $a4 513d 0016 ld $16 513e 0036 ld $36 513f 00a5 ld $a5 5140 0085 ld $85 5141 00dc ld $dc 5142 007a ld $7a 5143 0011 ld $11 5144 00d8 ld $d8 5145 007f ld $7f 5146 0085 ld $85 5147 00d6 ld $d6 5148 0079 ld $79 5149 0011 ld $11 514a 00b0 ld $b0 514b 007f ld $7f 514c 0085 ld $85 514d 00d6 ld $d6 514e 0079 ld $79 514f 0085 ld $85 5150 00a0 ld $a0 5151 007e ld $7e 5152 0016 ld $16 5153 0000 ld $00 5154 00a4 ld $a4 5155 0016 ld $16 5156 003c ld $3c 5157 00a5 ld $a5 5158 0085 ld $85 5159 00dc ld $dc 515a 007a ld $7a 515b 0011 ld $11 515c 00d8 ld $d8 515d 007f ld $7f 515e 0085 ld $85 515f 00d6 ld $d6 5160 0079 ld $79 5161 0011 ld $11 5162 00ac ld $ac 5163 007f ld $7f 5164 0085 ld $85 5165 00d6 ld $d6 5166 0079 ld $79 5167 0085 ld $85 5168 00a0 ld $a0 5169 007e ld $7e 516a 0016 ld $16 516b 0000 ld $00 516c 00a4 ld $a4 516d 0016 ld $16 516e 0042 ld $42 516f 00a5 ld $a5 5170 0085 ld $85 5171 00dc ld $dc 5172 007a ld $7a 5173 0011 ld $11 5174 00d8 ld $d8 5175 007f ld $7f 5176 0085 ld $85 5177 00d6 ld $d6 5178 0079 ld $79 5179 0011 ld $11 517a 00a8 ld $a8 517b 007f ld $7f 517c 0085 ld $85 517d 00d6 ld $d6 517e 0079 ld $79 517f 0085 ld $85 5180 00a0 ld $a0 5181 007e ld $7e 5182 0016 ld $16 5183 0000 ld $00 5184 00a4 ld $a4 5185 0016 ld $16 5186 0048 ld $48 5187 00a5 ld $a5 5188 0085 ld $85 5189 00dc ld $dc 518a 007a ld $7a 518b 0011 ld $11 518c 00d8 ld $d8 518d 007f ld $7f 518e 0085 ld $85 518f 00d6 ld $d6 5190 0079 ld $79 5191 0011 ld $11 5192 00a4 ld $a4 5193 007f ld $7f 5194 0085 ld $85 5195 00d6 ld $d6 5196 0079 ld $79 5197 0085 ld $85 5198 00a0 ld $a0 5199 007e ld $7e 519a 0016 ld $16 519b 0000 ld $00 519c 00a4 ld $a4 519d 0016 ld $16 519e 004e ld $4e 519f 00a5 ld $a5 51a0 0085 ld $85 51a1 00dc ld $dc 51a2 007a ld $7a 51a3 0011 ld $11 51a4 00d8 ld $d8 51a5 007f ld $7f 51a6 0085 ld $85 51a7 00d6 ld $d6 51a8 0079 ld $79 51a9 0011 ld $11 51aa 00a0 ld $a0 51ab 007f ld $7f 51ac 0085 ld $85 51ad 00d6 ld $d6 51ae 0079 ld $79 51af 0085 ld $85 51b0 00a0 ld $a0 51b1 007e ld $7e 51b2 0016 ld $16 51b3 0000 ld $00 51b4 00a4 ld $a4 51b5 0016 ld $16 51b6 0054 ld $54 51b7 00a5 ld $a5 51b8 0085 ld $85 51b9 00dc ld $dc 51ba 007a ld $7a 51bb 0011 ld $11 51bc 00d8 ld $d8 51bd 007f ld $7f 51be 0085 ld $85 51bf 00d6 ld $d6 51c0 0079 ld $79 51c1 0011 ld $11 51c2 00fc ld $fc 51c3 007e ld $7e 51c4 0085 ld $85 51c5 00d6 ld $d6 51c6 0079 ld $79 51c7 0085 ld $85 51c8 00a0 ld $a0 51c9 007e ld $7e 51ca 0016 ld $16 51cb 0000 ld $00 51cc 00a4 ld $a4 51cd 0016 ld $16 51ce 005a ld $5a 51cf 00a5 ld $a5 51d0 0085 ld $85 51d1 00dc ld $dc 51d2 007a ld $7a 51d3 0011 ld $11 51d4 00d8 ld $d8 51d5 007f ld $7f 51d6 0085 ld $85 51d7 00d6 ld $d6 51d8 0079 ld $79 51d9 0011 ld $11 51da 00f8 ld $f8 51db 007e ld $7e 51dc 0085 ld $85 51dd 00d6 ld $d6 51de 0079 ld $79 51df 0085 ld $85 51e0 00a0 ld $a0 51e1 007e ld $7e 51e2 0016 ld $16 51e3 0000 ld $00 51e4 00a4 ld $a4 51e5 0016 ld $16 51e6 0060 ld $60 51e7 00a5 ld $a5 51e8 0085 ld $85 51e9 00dc ld $dc 51ea 007a ld $7a 51eb 0011 ld $11 51ec 00d8 ld $d8 51ed 007f ld $7f 51ee 0085 ld $85 51ef 00d6 ld $d6 51f0 0079 ld $79 51f1 0011 ld $11 51f2 00f4 ld $f4 51f3 007e ld $7e 51f4 0085 ld $85 51f5 00d6 ld $d6 51f6 0079 ld $79 51f7 0085 ld $85 51f8 00a0 ld $a0 51f9 007e ld $7e 51fa 0016 ld $16 51fb fe00 bra ac ;+-----------------------------------+ 51fc fcfd bra $51fd ;| | 51fd 1418 ld $18,y ;| Trampoline for page $5100 lookups | 51fe e006 jmp y,$06 ;| | 51ff c218 st [$18] ;+-----------------------------------+ 5200 0000 ld $00 5201 00a4 ld $a4 5202 0016 ld $16 5203 0066 ld $66 5204 00a5 ld $a5 5205 0085 ld $85 5206 00dc ld $dc 5207 007a ld $7a 5208 0011 ld $11 5209 00d8 ld $d8 520a 007f ld $7f 520b 0085 ld $85 520c 00d6 ld $d6 520d 0079 ld $79 520e 0085 ld $85 520f 0000 ld $00 5210 0004 ld $04 5211 0004 ld $04 5212 0000 ld $00 5213 0044 ld $44 5214 0011 ld $11 5215 00f0 ld $f0 5216 007e ld $7e 5217 0085 ld $85 5218 00d6 ld $d6 5219 0079 ld $79 521a 0085 ld $85 521b 00a0 ld $a0 521c 007e ld $7e 521d 0016 ld $16 521e 0000 ld $00 521f 00a4 ld $a4 5220 0016 ld $16 5221 006c ld $6c 5222 00a5 ld $a5 5223 0085 ld $85 5224 00dc ld $dc 5225 007a ld $7a 5226 0011 ld $11 5227 00d8 ld $d8 5228 007f ld $7f 5229 0085 ld $85 522a 00d6 ld $d6 522b 0079 ld $79 522c 0011 ld $11 522d 00ec ld $ec 522e 007e ld $7e 522f 0085 ld $85 5230 00d6 ld $d6 5231 0079 ld $79 5232 0085 ld $85 5233 00a0 ld $a0 5234 007e ld $7e 5235 0016 ld $16 5236 0000 ld $00 5237 00a4 ld $a4 5238 0016 ld $16 5239 0072 ld $72 523a 00a5 ld $a5 523b 0085 ld $85 523c 00dc ld $dc 523d 007a ld $7a 523e 0011 ld $11 523f 00d8 ld $d8 5240 007f ld $7f 5241 0085 ld $85 5242 00d6 ld $d6 5243 0079 ld $79 5244 0011 ld $11 5245 00e8 ld $e8 5246 007e ld $7e 5247 0085 ld $85 5248 00d6 ld $d6 5249 0079 ld $79 524a 0085 ld $85 524b 00a0 ld $a0 524c 007e ld $7e 524d 004d ld $4d 524e 003c ld $3c 524f 0082 ld $82 5250 0085 ld $85 5251 00c5 ld $c5 5252 0079 ld $79 5253 0085 ld $85 5254 0035 ld $35 5255 0002 ld $02 5256 00b4 ld $b4 5257 0080 ld $80 5258 0079 ld $79 5259 00bd ld $bd 525a 0042 ld $42 525b 004d ld $4d 525c 0002 ld $02 525d 00a4 ld $a4 525e 00c7 ld $c7 525f 00fb ld $fb 5260 0066 ld $66 5261 00aa ld $aa 5262 00ff ld $ff 5263 002f ld $2f 5264 00d6 ld $d6 5265 006e ld $6e 5266 00a4 ld $a4 5267 0082 ld $82 5268 00c3 ld $c3 5269 0079 ld $79 526a 00ff ld $ff 526b 0032 ld $32 526c 0024 ld $24 526d 00a2 ld $a2 526e 0021 ld $21 526f 00a4 ld $a4 5270 002f ld $2f 5271 0028 ld $28 5272 0059 ld $59 5273 00ff ld $ff 5274 0075 ld $75 5275 002b ld $2b 5276 0082 ld $82 5277 0085 ld $85 5278 00ea ld $ea 5279 0079 ld $79 527a 0093 ld $93 527b 0082 ld $82 527c 0023 ld $23 527d 0082 ld $82 527e 0035 ld $35 527f 003f ld $3f 5280 00e6 ld $e6 5281 0085 ld $85 5282 00cc ld $cc 5283 007c ld $7c 5284 0090 ld $90 5285 00dc ld $dc 5286 0063 ld $63 5287 00ff ld $ff 5288 00c7 ld $c7 5289 0010 ld $10 528a 006f ld $6f 528b 00aa ld $aa 528c 00bd ld $bd 528d 00cb ld $cb 528e 0079 ld $79 528f 0011 ld $11 5290 00e1 ld $e1 5291 0004 ld $04 5292 002b ld $2b 5293 0022 ld $22 5294 0032 ld $32 5295 0024 ld $24 5296 00a2 ld $a2 5297 0021 ld $21 5298 00a4 ld $a4 5299 002f ld $2f 529a 0028 ld $28 529b 0059 ld $59 529c 00ff ld $ff 529d 007a ld $7a 529e 00a5 ld $a5 529f 005a ld $5a 52a0 0011 ld $11 52a1 0000 ld $00 52a2 000b ld $0b 52a3 002b ld $2b 52a4 0022 ld $22 52a5 0021 ld $21 52a6 0082 ld $82 52a7 00b4 ld $b4 52a8 00e6 ld $e6 52a9 00ff ld $ff 52aa 00c7 ld $c7 52ab 0094 ld $94 52ac 0028 ld $28 52ad 0092 ld $92 52ae 0016 ld $16 52af 0003 ld $03 52b0 0026 ld $26 52b1 0021 ld $21 52b2 0028 ld $28 52b3 002f ld $2f 52b4 0094 ld $94 52b5 0057 ld $57 52b6 001c ld $1c 52b7 0028 ld $28 52b8 0028 ld $28 52b9 0004 ld $04 52ba 0075 ld $75 52bb 0085 ld $85 52bc 00c5 ld $c5 52bd 007a ld $7a 52be 0063 ld $63 52bf 00ff ld $ff 52c0 001c ld $1c 52c1 00a4 ld $a4 52c2 00a4 ld $a4 52c3 0004 ld $04 52c4 00a7 ld $a7 52c5 009c ld $9c 52c6 00a4 ld $a4 52c7 0035 ld $35 52c8 0056 ld $56 52c9 00d9 ld $d9 52ca 00c7 ld $c7 52cb 0008 ld $08 52cc 006f ld $6f 52cd 00aa ld $aa 52ce 0035 ld $35 52cf 0072 ld $72 52d0 00d9 ld $d9 52d1 0075 ld $75 52d2 0085 ld $85 52d3 00be ld $be 52d4 007d ld $7d 52d5 0063 ld $63 52d6 00ff ld $ff 52d7 00c7 ld $c7 52d8 0010 ld $10 52d9 006f ld $6f 52da 00aa ld $aa 52db 00bd ld $bd 52dc 00a0 ld $a0 52dd 007d ld $7d 52de 00a7 ld $a7 52df 009a ld $9a 52e0 00a4 ld $a4 52e1 0035 ld $35 52e2 0056 ld $56 52e3 00ea ld $ea 52e4 0016 ld $16 52e5 0000 ld $00 52e6 00a4 ld $a4 52e7 00a7 ld $a7 52e8 0070 ld $70 52e9 00a5 ld $a5 52ea 0035 ld $35 52eb 0050 ld $50 52ec 00f8 ld $f8 52ed 0016 ld $16 52ee 0070 ld $70 52ef 00a5 ld $a5 52f0 00c7 ld $c7 52f1 0004 ld $04 52f2 0069 ld $69 52f3 00aa ld $aa 52f4 00ff ld $ff 52f5 00c7 ld $c7 52f6 00fb ld $fb 52f7 0066 ld $66 52f8 00aa ld $aa 52f9 00ff ld $ff 52fa 007b ld $7b 52fb fe00 bra ac ;+-----------------------------------+ 52fc fcfd bra $52fd ;| | 52fd 1418 ld $18,y ;| Trampoline for page $5200 lookups | 52fe e006 jmp y,$06 ;| | 52ff c218 st [$18] ;+-----------------------------------+ 5300 00a2 ld $a2 5301 005d ld $5d 5302 001c ld $1c 5303 00a4 ld $a4 5304 00a4 ld $a4 5305 0006 ld $06 5306 00a7 ld $a7 5307 009a ld $9a 5308 00a4 ld $a4 5309 0035 ld $35 530a 0056 ld $56 530b 00b6 ld $b6 530c 00c7 ld $c7 530d 0008 ld $08 530e 006f ld $6f 530f 00aa ld $aa 5310 0035 ld $35 5311 0072 ld $72 5312 00b6 ld $b6 5313 0075 ld $75 5314 0085 ld $85 5315 00a0 ld $a0 5316 007e ld $7e 5317 0063 ld $63 5318 00ff ld $ff 5319 0075 ld $75 531a 0011 ld $11 531b 0003 ld $03 531c 000b ld $0b 531d 002b ld $2b 531e 0022 ld $22 531f 0065 ld $65 5320 0025 ld $25 5321 00a2 ld $a2 5322 0011 ld $11 5323 0000 ld $00 5324 0001 ld $01 5325 0067 ld $67 5326 0027 ld $27 5327 004d ld $4d 5328 0006 ld $06 5329 009e ld $9e 532a 0016 ld $16 532b 00a0 ld $a0 532c 0024 ld $24 532d 0016 ld $16 532e 0000 ld $00 532f 0026 ld $26 5330 00b4 ld $b4 5331 00f3 ld $f3 5332 0093 ld $93 5333 0027 ld $27 5334 009e ld $9e 5335 00c8 ld $c8 5336 009e ld $9e 5337 0085 ld $85 5338 00ea ld $ea 5339 0079 ld $79 533a 0063 ld $63 533b 00ff ld $ff 533c 0075 ld $75 533d 0011 ld $11 533e 0003 ld $03 533f 000b ld $0b 5340 002b ld $2b 5341 0022 ld $22 5342 0065 ld $65 5343 0025 ld $25 5344 00a2 ld $a2 5345 0011 ld $11 5346 0000 ld $00 5347 0001 ld $01 5348 0067 ld $67 5349 0027 ld $27 534a 004d ld $4d 534b 0008 ld $08 534c 009e ld $9e 534d 0016 ld $16 534e 00a0 ld $a0 534f 0024 ld $24 5350 0016 ld $16 5351 0000 ld $00 5352 0026 ld $26 5353 00b4 ld $b4 5354 00f3 ld $f3 5355 0093 ld $93 5356 0027 ld $27 5357 009e ld $9e 5358 00eb ld $eb 5359 009e ld $9e 535a 0085 ld $85 535b 00ea ld $ea 535c 0079 ld $79 535d 0063 ld $63 535e 00ff ld $ff 535f 007c ld $7c 5360 00a3 ld $a3 5361 005c ld $5c 5362 001a ld $1a 5363 0021 ld $21 5364 0082 ld $82 5365 00fc ld $fc 5366 002b ld $2b 5367 0084 ld $84 5368 00b8 ld $b8 5369 0082 ld $82 536a 0035 ld $35 536b 003f ld $3f 536c 00c9 ld $c9 536d 0021 ld $21 536e 0082 ld $82 536f 00e6 ld $e6 5370 0080 ld $80 5371 0035 ld $35 5372 0072 ld $72 5373 00bc ld $bc 5374 0021 ld $21 5375 0084 ld $84 5376 00b8 ld $b8 5377 0082 ld $82 5378 0035 ld $35 5379 003f ld $3f 537a 00c9 ld $c9 537b 0090 ld $90 537c 00c3 ld $c3 537d 0021 ld $21 537e 0084 ld $84 537f 00b8 ld $b8 5380 0082 ld $82 5381 0035 ld $35 5382 004d ld $4d 5383 00c9 ld $c9 5384 001a ld $1a 5385 0006 ld $06 5386 00f0 ld $f0 5387 007e ld $7e 5388 0090 ld $90 5389 00c3 ld $c3 538a 00ff ld $ff 538b 002b ld $2b 538c 0092 ld $92 538d 00c7 ld $c7 538e 0084 ld $84 538f 0089 ld $89 5390 0020 ld $20 5391 0035 ld $35 5392 0072 ld $72 5393 00fc ld $fc 5394 00c7 ld $c7 5395 0010 ld $10 5396 006f ld $6f 5397 00aa ld $aa 5398 00bd ld $bd 5399 00ad ld $ad 539a 007a ld $7a 539b 00c7 ld $c7 539c 0094 ld $94 539d 0025 ld $25 539e 0092 ld $92 539f 0016 ld $16 53a0 0005 ld $05 53a1 0096 ld $96 53a2 0021 ld $21 53a3 0094 ld $94 53a4 007f ld $7f 53a5 0000 ld $00 53a6 005e ld $5e 53a7 0026 ld $26 53a8 00b4 ld $b4 53a9 00cb ld $cb 53aa 0093 ld $93 53ab 0094 ld $94 53ac 0093 ld $93 53ad 0028 ld $28 53ae 009e ld $9e 53af 00e1 ld $e1 53b0 0096 ld $96 53b1 0016 ld $16 53b2 0000 ld $00 53b3 0026 ld $26 53b4 00b4 ld $b4 53b5 00cb ld $cb 53b6 0093 ld $93 53b7 0028 ld $28 53b8 0075 ld $75 53b9 0085 ld $85 53ba 00a2 ld $a2 53bb 007b ld $7b 53bc 0063 ld $63 53bd 00ff ld $ff 53be 007d ld $7d 53bf 00a2 ld $a2 53c0 005d ld $5d 53c1 00a7 ld $a7 53c2 009c ld $9c 53c3 00a4 ld $a4 53c4 0035 ld $35 53c5 0056 ld $56 53c6 00a9 ld $a9 53c7 0016 ld $16 53c8 0000 ld $00 53c9 00a4 ld $a4 53ca 00a7 ld $a7 53cb 0072 ld $72 53cc 00a5 ld $a5 53cd 0035 ld $35 53ce 0050 ld $50 53cf 00b7 ld $b7 53d0 0016 ld $16 53d1 0072 ld $72 53d2 00a5 ld $a5 53d3 00c7 ld $c7 53d4 0004 ld $04 53d5 0069 ld $69 53d6 00aa ld $aa 53d7 00ff ld $ff 53d8 00c7 ld $c7 53d9 00fb ld $fb 53da 0066 ld $66 53db 00aa ld $aa 53dc 00ff ld $ff 53dd 0059 ld $59 53de 0000 ld $00 53df 005e ld $5e 53e0 00a4 ld $a4 53e1 005e ld $5e 53e2 0028 ld $28 53e3 00c7 ld $c7 53e4 0002 ld $02 53e5 006f ld $6f 53e6 00aa ld $aa 53e7 0035 ld $35 53e8 0072 ld $72 53e9 00ca ld $ca 53ea 00ff ld $ff 53eb 0075 ld $75 53ec 00c7 ld $c7 53ed 0004 ld $04 53ee 006f ld $6f 53ef 00aa ld $aa 53f0 0035 ld $35 53f1 0072 ld $72 53f2 00df ld $df 53f3 001c ld $1c 53f4 00a5 ld $a5 53f5 00a5 ld $a5 53f6 0006 ld $06 53f7 00a7 ld $a7 53f8 0078 ld $78 53f9 00a5 ld $a5 53fa 0035 ld $35 53fb fe00 bra ac ;+-----------------------------------+ 53fc fcfd bra $53fd ;| | 53fd 1418 ld $18,y ;| Trampoline for page $5300 lookups | 53fe e006 jmp y,$06 ;| | 53ff c218 st [$18] ;+-----------------------------------+ 5400 0050 ld $50 5401 00f8 ld $f8 5402 0016 ld $16 5403 0072 ld $72 5404 00a5 ld $a5 5405 0085 ld $85 5406 00b9 ld $b9 5407 007b ld $7b 5408 0011 ld $11 5409 0000 ld $00 540a 0001 ld $01 540b 002b ld $2b 540c 0026 ld $26 540d 0016 ld $16 540e 0006 ld $06 540f 0024 ld $24 5410 0016 ld $16 5411 0078 ld $78 5412 0025 ld $25 5413 0011 ld $11 5414 00c0 ld $c0 5415 0020 ld $20 5416 002b ld $2b 5417 0022 ld $22 5418 00b4 ld $b4 5419 00fb ld $fb 541a 00c7 ld $c7 541b 0004 ld $04 541c 0069 ld $69 541d 00aa ld $aa 541e 0085 ld $85 541f 00cd ld $cd 5420 0079 ld $79 5421 0063 ld $63 5422 00ff ld $ff 5423 007e ld $7e 5424 00a0 ld $a0 5425 0060 ld $60 5426 00c7 ld $c7 5427 0010 ld $10 5428 006f ld $6f 5429 00aa ld $aa 542a 00bd ld $bd 542b 00bc ld $bc 542c 007d ld $7d 542d 0059 ld $59 542e 0002 ld $02 542f 005e ld $5e 5430 00a4 ld $a4 5431 005e ld $5e 5432 0028 ld $28 5433 00c7 ld $c7 5434 0002 ld $02 5435 006f ld $6f 5436 00aa ld $aa 5437 0035 ld $35 5438 0072 ld $72 5439 00b3 ld $b3 543a 00ff ld $ff 543b 0075 ld $75 543c 00c7 ld $c7 543d 0004 ld $04 543e 006f ld $6f 543f 00aa ld $aa 5440 0035 ld $35 5441 0072 ld $72 5442 00c8 ld $c8 5443 001c ld $1c 5444 00a5 ld $a5 5445 00a5 ld $a5 5446 0008 ld $08 5447 00a7 ld $a7 5448 0078 ld $78 5449 00a5 ld $a5 544a 0035 ld $35 544b 0050 ld $50 544c 00e1 ld $e1 544d 0016 ld $16 544e 0070 ld $70 544f 00a5 ld $a5 5450 0085 ld $85 5451 00dc ld $dc 5452 007b ld $7b 5453 0011 ld $11 5454 0000 ld $00 5455 0001 ld $01 5456 002b ld $2b 5457 0026 ld $26 5458 0016 ld $16 5459 0008 ld $08 545a 0024 ld $24 545b 0016 ld $16 545c 0078 ld $78 545d 0025 ld $25 545e 0011 ld $11 545f 00c0 ld $c0 5460 0020 ld $20 5461 002b ld $2b 5462 0022 ld $22 5463 00b4 ld $b4 5464 00fb ld $fb 5465 00c7 ld $c7 5466 0004 ld $04 5467 0069 ld $69 5468 00aa ld $aa 5469 0085 ld $85 546a 00ea ld $ea 546b 0079 ld $79 546c 0063 ld $63 546d 00ff ld $ff 546e 0002 ld $02 546f 0031 ld $31 5470 0039 ld $39 5471 0000 ld $00 5472 0002 ld $02 5473 0031 ld $31 5474 0038 ld $38 5475 0000 ld $00 5476 0002 ld $02 5477 0031 ld $31 5478 0037 ld $37 5479 0000 ld $00 547a 0002 ld $02 547b 0031 ld $31 547c 0036 ld $36 547d 0000 ld $00 547e 0002 ld $02 547f 0031 ld $31 5480 0035 ld $35 5481 0000 ld $00 5482 0002 ld $02 5483 0031 ld $31 5484 0034 ld $34 5485 0000 ld $00 5486 007f ld $7f 5487 00a0 ld $a0 5488 0060 ld $60 5489 0002 ld $02 548a 0031 ld $31 548b 0033 ld $33 548c 0000 ld $00 548d 0002 ld $02 548e 0031 ld $31 548f 0032 ld $32 5490 0000 ld $00 5491 0002 ld $02 5492 0031 ld $31 5493 0031 ld $31 5494 0000 ld $00 5495 0002 ld $02 5496 0031 ld $31 5497 0030 ld $30 5498 0000 ld $00 5499 0002 ld $02 549a 0020 ld $20 549b 0039 ld $39 549c 0000 ld $00 549d 0002 ld $02 549e 0020 ld $20 549f 0038 ld $38 54a0 0000 ld $00 54a1 0002 ld $02 54a2 0020 ld $20 54a3 0037 ld $37 54a4 0000 ld $00 54a5 0002 ld $02 54a6 0020 ld $20 54a7 0036 ld $36 54a8 0000 ld $00 54a9 0002 ld $02 54aa 0020 ld $20 54ab 0035 ld $35 54ac 0000 ld $00 54ad 0002 ld $02 54ae 0020 ld $20 54af 0034 ld $34 54b0 0000 ld $00 54b1 0002 ld $02 54b2 0020 ld $20 54b3 0033 ld $33 54b4 0000 ld $00 54b5 0002 ld $02 54b6 0020 ld $20 54b7 0032 ld $32 54b8 0000 ld $00 54b9 0002 ld $02 54ba 0020 ld $20 54bb 0031 ld $31 54bc 0000 ld $00 54bd 0002 ld $02 54be 0020 ld $20 54bf 0030 ld $30 54c0 0000 ld $00 54c1 0026 ld $26 54c2 0054 ld $54 54c3 0065 ld $65 54c4 0073 ld $73 54c5 0074 ld $74 54c6 0020 ld $20 54c7 0043 ld $43 54c8 0072 ld $72 54c9 0065 ld $65 54ca 0064 ld $64 54cb 0069 ld $69 54cc 0074 ld $74 54cd 0073 ld $73 54ce 0020 ld $20 54cf 002e ld $2e 54d0 002e ld $2e 54d1 002e ld $2e * 24 times 54e7 0020 ld $20 54e8 0000 ld $00 54e9 0000 ld $00 54ea 0000 ld $00 ;End of gbas/menu/Credits_vX0.gt1, size 1245 ;+-----------------------------------+ ;| gbas/menu/Clock_vX0.gt1 | ;+-----------------------------------+ 54eb dc43 st $43,[y,x++] ;'C' 54ec dc72 st $72,[y,x++] ;'r' 54ed dc65 st $65,[y,x++] ;'e' 54ee dc64 st $64,[y,x++] ;'d' 54ef dc69 st $69,[y,x++] ;'i' 54f0 dc74 st $74,[y,x++] ;'t' 54f1 dc73 st $73,[y,x++] ;'s' 54f2 dc00 st $00,[y,x++] ;'\x00' 54f3 000e ld $0e 54f4 c218 st [$18] 54f5 0050 ld $50 54f6 14e0 ld $e0,y 54f7 e036 jmp y,$36 54f8 c219 st [$19] Clock: 54f9 0000 ld $00 54fa 007e ld $7e 54fb fe00 bra ac ;+-----------------------------------+ 54fc fcfd bra $54fd ;| | 54fd 1418 ld $18,y ;| Trampoline for page $5400 lookups | 54fe e006 jmp y,$06 ;| | 54ff c218 st [$18] ;+-----------------------------------+ 5500 0002 ld $02 5501 0001 ld $01 5502 0001 ld $01 5503 0002 ld $02 5504 0000 ld $00 5505 00f9 ld $f9 5506 0059 ld $59 5507 0080 ld $80 5508 002b ld $2b 5509 0082 ld $82 550a 0011 ld $11 550b 00a2 ld $a2 550c 0071 ld $71 550d 00cf ld $cf 550e 0018 ld $18 550f 0011 ld $11 5510 0020 ld $20 5511 000f ld $0f 5512 002b ld $2b 5513 00a2 ld $a2 5514 00c7 ld $c7 5515 0003 ld $03 5516 0069 ld $69 5517 0021 ld $21 5518 004d ld $4d 5519 0002 ld $02 551a 00aa ld $aa 551b 004d ld $4d 551c 0000 ld $00 551d 00d6 ld $d6 551e 004d ld $4d 551f 0000 ld $00 5520 00a6 ld $a6 5521 0016 ld $16 5522 0000 ld $00 5523 002d ld $2d 5524 004d ld $4d 5525 0000 ld $00 5526 002e ld $2e 5527 0085 ld $85 5528 00ac ld $ac 5529 0069 ld $69 552a 0059 ld $59 552b 0000 ld $00 552c 005e ld $5e 552d 002d ld $2d 552e 002b ld $2b 552f 002e ld $2e 5530 0011 ld $11 5531 00da ld $da 5532 0069 ld $69 5533 002b ld $2b 5534 0084 ld $84 5535 0085 ld $85 5536 00cf ld $cf 5537 0069 ld $69 5538 0016 ld $16 5539 00ff ld $ff 553a 000e ld $0e 553b 0011 ld $11 553c 00f6 ld $f6 553d 0001 ld $01 553e 0077 ld $77 553f 006b ld $6b 5540 00e0 ld $e0 5541 0085 ld $85 5542 00a3 ld $a3 5543 0074 ld $74 5544 0011 ld $11 5545 00f9 ld $f9 5546 0001 ld $01 5547 0025 ld $25 5548 00ee ld $ee 5549 0016 ld $16 554a 0020 ld $20 554b 00a2 ld $a2 554c 0016 ld $16 554d 002a ld $2a 554e 00a3 ld $a3 554f 004d ld $4d 5550 0002 ld $02 5551 0082 ld $82 5552 0085 ld $85 5553 00c5 ld $c5 5554 0069 ld $69 5555 0085 ld $85 5556 00a1 ld $a1 5557 0072 ld $72 5558 0011 ld $11 5559 00f9 ld $f9 555a 0001 ld $01 555b 0025 ld $25 555c 0000 ld $00 555d 00c7 ld $c7 555e 00fd ld $fd 555f 0066 ld $66 5560 00aa ld $aa 5561 004d ld $4d 5562 0000 ld $00 5563 00a4 ld $a4 5564 00c7 ld $c7 5565 0010 ld $10 5566 0069 ld $69 5567 00aa ld $aa 5568 004d ld $4d 5569 0000 ld $00 556a 0038 ld $38 556b 0016 ld $16 556c 0002 ld $02 556d 00a4 ld $a4 556e 0016 ld $16 556f 0077 ld $77 5570 00a5 ld $a5 5571 0085 ld $85 5572 00dc ld $dc 5573 006d ld $6d 5574 0011 ld $11 5575 00de ld $de 5576 007d ld $7d 5577 0085 ld $85 5578 00eb ld $eb 5579 006a ld $6a 557a 0016 ld $16 557b 0002 ld $02 557c 00a4 ld $a4 557d 0016 ld $16 557e 0000 ld $00 557f 00a5 ld $a5 5580 0085 ld $85 5581 00dc ld $dc 5582 006d ld $6d 5583 0011 ld $11 5584 00d1 ld $d1 5585 007d ld $7d 5586 0085 ld $85 5587 00eb ld $eb 5588 006a ld $6a 5589 0011 ld $11 558a 00a2 ld $a2 558b 007d ld $7d 558c 0085 ld $85 558d 00a1 ld $a1 558e 0076 ld $76 558f 0011 ld $11 5590 00a0 ld $a0 5591 007c ld $7c 5592 002b ld $2b 5593 0084 ld $84 5594 0011 ld $11 5595 00e3 ld $e3 5596 007b ld $7b 5597 0085 ld $85 5598 00cf ld $cf 5599 006f ld $6f 559a 0082 ld $82 559b 0001 ld $01 559c 002b ld $2b 559d 00e8 ld $e8 559e 0011 ld $11 559f 00a0 ld $a0 55a0 007c ld $7c 55a1 002b ld $2b 55a2 0084 ld $84 55a3 0011 ld $11 55a4 00e0 ld $e0 55a5 007b ld $7b 55a6 0085 ld $85 55a7 00cf ld $cf 55a8 006f ld $6f 55a9 0082 ld $82 55aa 0001 ld $01 55ab 00fa ld $fa 55ac 00e8 ld $e8 55ad 00bb ld $bb 55ae 00ab ld $ab 55af 0002 ld $02 55b0 004d ld $4d 55b1 0001 ld $01 55b2 0038 ld $38 55b3 004d ld $4d 55b4 0005 ld $05 55b5 0082 ld $82 55b6 0085 ld $85 55b7 00b4 ld $b4 55b8 0069 ld $69 55b9 0059 ld $59 55ba 0000 ld $00 55bb 002f ld $2f 55bc 0000 ld $00 55bd 0027 ld $27 55be 0011 ld $11 55bf 00f9 ld $f9 55c0 0001 ld $01 55c1 0025 ld $25 55c2 00ee ld $ee 55c3 0085 ld $85 55c4 00a1 ld $a1 55c5 0072 ld $72 55c6 0011 ld $11 55c7 00f9 ld $f9 55c8 0001 ld $01 55c9 0025 ld $25 55ca 0000 ld $00 55cb 0011 ld $11 55cc 00f6 ld $f6 55cd 0070 ld $70 55ce 0025 ld $25 55cf 000d ld $0d 55d0 0011 ld $11 55d1 00fb ld $fb 55d2 0070 ld $70 55d3 0025 ld $25 55d4 0001 ld $01 55d5 0032 ld $32 55d6 0024 ld $24 55d7 003a ld $3a 55d8 004d ld $4d 55d9 000d ld $0d 55da 0026 ld $26 55db 0085 ld $85 55dc 00ba ld $ba 55dd 006d ld $6d 55de 0032 ld $32 55df 003a ld $3a 55e0 0028 ld $28 55e1 00bd ld $bd 55e2 00df ld $df 55e3 0002 ld $02 55e4 004d ld $4d 55e5 000c ld $0c 55e6 003a ld $3a 55e7 0032 ld $32 55e8 0024 ld $24 55e9 003c ld $3c 55ea 004d ld $4d 55eb 003c ld $3c 55ec 0026 ld $26 55ed 0085 ld $85 55ee 00ba ld $ba 55ef 006d ld $6d 55f0 0032 ld $32 55f1 003c ld $3c 55f2 0028 ld $28 55f3 0032 ld $32 55f4 0024 ld $24 55f5 003e ld $3e 55f6 004d ld $4d 55f7 003c ld $3c 55f8 0026 ld $26 55f9 0085 ld $85 55fa 00ba ld $ba 55fb fe00 bra ac ;+-----------------------------------+ 55fc fcfd bra $55fd ;| | 55fd 1418 ld $18,y ;| Trampoline for page $5500 lookups | 55fe e006 jmp y,$06 ;| | 55ff c218 st [$18] ;+-----------------------------------+ 5600 006d ld $6d 5601 0085 ld $85 5602 0000 ld $00 5603 0003 ld $03 5604 0003 ld $03 5605 0000 ld $00 5606 00fa ld $fa 5607 0032 ld $32 5608 003e ld $3e 5609 0028 ld $28 560a 0011 ld $11 560b 00df ld $df 560c 007b ld $7b 560d 002b ld $2b 560e 0082 ld $82 560f 0021 ld $21 5610 003a ld $3a 5611 00f0 ld $f0 5612 0082 ld $82 5613 0011 ld $11 5614 00de ld $de 5615 007b ld $7b 5616 002b ld $2b 5617 0082 ld $82 5618 0021 ld $21 5619 003c ld $3c 561a 00f0 ld $f0 561b 0082 ld $82 561c 0011 ld $11 561d 00dd ld $dd 561e 007b ld $7b 561f 002b ld $2b 5620 0082 ld $82 5621 0021 ld $21 5622 003e ld $3e 5623 00f0 ld $f0 5624 0082 ld $82 5625 0032 ld $32 5626 0040 ld $40 5627 003a ld $3a 5628 0032 ld $32 5629 0042 ld $42 562a 003c ld $3c 562b 0032 ld $32 562c 0044 ld $44 562d 003e ld $3e 562e 0032 ld $32 562f 0024 ld $24 5630 003a ld $3a 5631 004d ld $4d 5632 000c ld $0c 5633 0026 ld $26 5634 0085 ld $85 5635 00ba ld $ba 5636 006d ld $6d 5637 0032 ld $32 5638 0046 ld $46 5639 0028 ld $28 563a 0032 ld $32 563b 0024 ld $24 563c 003c ld $3c 563d 004d ld $4d 563e 000c ld $0c 563f 0026 ld $26 5640 0085 ld $85 5641 00ba ld $ba 5642 006d ld $6d 5643 002b ld $2b 5644 0048 ld $48 5645 002b ld $2b 5646 004a ld $4a 5647 0011 ld $11 5648 00f9 ld $f9 5649 0001 ld $01 564a 0025 ld $25 564b 00ee ld $ee 564c 0085 ld $85 564d 0059 ld $59 564e 0004 ld $04 564f 0085 ld $85 5650 00a0 ld $a0 5651 0003 ld $03 5652 0011 ld $11 5653 00f9 ld $f9 5654 0001 ld $01 5655 0025 ld $25 5656 0000 ld $00 5657 0011 ld $11 5658 00dd ld $dd 5659 007b ld $7b 565a 00ad ld $ad 565b 002b ld $2b 565c 003e ld $3e 565d 0021 ld $21 565e 003e ld $3e 565f 00fc ld $fc 5660 0044 ld $44 5661 00bb ld $bb 5662 006d ld $6d 5663 0003 ld $03 5664 0011 ld $11 5665 00df ld $df 5666 007b ld $7b 5667 00ad ld $ad 5668 002b ld $2b 5669 003a ld $3a 566a 0011 ld $11 566b 00de ld $de 566c 007b ld $7b 566d 00ad ld $ad 566e 002b ld $2b 566f 003c ld $3c 5670 0085 ld $85 5671 00a0 ld $a0 5672 0003 ld $03 5673 0032 ld $32 5674 0044 ld $44 5675 003e ld $3e 5676 00c7 ld $c7 5677 00ff ld $ff 5678 0075 ld $75 5679 000f ld $0f 567a 00bb ld $bb 567b 0077 ld $77 567c 0003 ld $03 567d 0085 ld $85 567e 003b ld $3b 567f 0002 ld $02 5680 0090 ld $90 5681 004e ld $4e 5682 0075 ld $75 5683 00c7 ld $c7 5684 0007 ld $07 5685 006f ld $6f 5686 002d ld $2d 5687 00c7 ld $c7 5688 0066 ld $66 5689 001b ld $1b 568a 00a0 ld $a0 568b 00ad ld $ad 568c 002b ld $2b 568d 00c4 ld $c4 568e 0016 ld $16 568f 0002 ld $02 5690 0093 ld $93 5691 0021 ld $21 5692 00c4 ld $c4 5693 00e9 ld $e9 5694 00e9 ld $e9 5695 00e9 ld $e9 5696 00e9 ld $e9 5697 002b ld $2b 5698 0094 ld $94 5699 0032 ld $32 569a 0096 ld $96 569b 00c4 ld $c4 569c 004d ld $4d 569d 0000 ld $00 569e 0098 ld $98 569f 0085 ld $85 56a0 00c6 ld $c6 56a1 006a ld $6a 56a2 0016 ld $16 56a3 0001 ld $01 56a4 002c ld $2c 56a5 0063 ld $63 56a6 00ff ld $ff 56a7 0075 ld $75 56a8 0021 ld $21 56a9 0038 ld $38 56aa 00bb ld $bb 56ab 00a7 ld $a7 56ac 0003 ld $03 56ad 0085 ld $85 56ae 007b ld $7b 56af 0003 ld $03 56b0 0085 ld $85 56b1 00d7 ld $d7 56b2 0003 ld $03 56b3 0085 ld $85 56b4 00ec ld $ec 56b5 0003 ld $03 56b6 0085 ld $85 56b7 001f ld $1f 56b8 0004 ld $04 56b9 0085 ld $85 56ba 00b7 ld $b7 56bb 0003 ld $03 56bc 0063 ld $63 56bd 00ff ld $ff 56be 0075 ld $75 56bf 0011 ld $11 56c0 0000 ld $00 56c1 000c ld $0c 56c2 002b ld $2b 56c3 00a2 ld $a2 56c4 0016 ld $16 56c5 0041 ld $41 56c6 00a4 ld $a4 56c7 0016 ld $16 56c8 003e ld $3e 56c9 00a5 ld $a5 56ca 0085 ld $85 56cb 00dc ld $dc 56cc 006d ld $6d 56cd 0085 ld $85 56ce 00bb ld $bb 56cf 006c ld $6c 56d0 0011 ld $11 56d1 00d3 ld $d3 56d2 007b ld $7b 56d3 0085 ld $85 56d4 00eb ld $eb 56d5 006a ld $6a 56d6 0085 ld $85 56d7 00b7 ld $b7 56d8 0077 ld $77 56d9 0016 ld $16 56da 0010 ld $10 56db 00a2 ld $a2 56dc 0063 ld $63 56dd 00ff ld $ff 56de 0075 ld $75 56df 002f ld $2f 56e0 00d6 ld $d6 56e1 006e ld $6e 56e2 0085 ld $85 56e3 00ac ld $ac 56e4 0004 ld $04 56e5 0032 ld $32 56e6 004c ld $4c 56e7 0044 ld $44 56e8 0085 ld $85 56e9 0042 ld $42 56ea 0004 ld $04 56eb 0085 ld $85 56ec 00c7 ld $c7 56ed 0004 ld $04 56ee 0085 ld $85 56ef 00b7 ld $b7 56f0 0003 ld $03 56f1 0063 ld $63 56f2 00ff ld $ff 56f3 0075 ld $75 56f4 0021 ld $21 56f5 003c ld $3c 56f6 00fc ld $fc 56f7 0042 ld $42 56f8 00bb ld $bb 56f9 0018 ld $18 56fa 0004 ld $04 56fb fe00 bra ac ;+-----------------------------------+ 56fc fcfd bra $56fd ;| | 56fd 1418 ld $18,y ;| Trampoline for page $5600 lookups | 56fe e006 jmp y,$06 ;| | 56ff c218 st [$18] ;+-----------------------------------+ 5700 0085 ld $85 5701 00e2 ld $e2 5702 0004 ld $04 5703 0085 ld $85 5704 0000 ld $00 5705 0004 ld $04 5706 0004 ld $04 5707 0000 ld $00 5708 00f9 ld $f9 5709 0032 ld $32 570a 0042 ld $42 570b 003c ld $3c 570c 002b ld $2b 570d 0024 ld $24 570e 004d ld $4d 570f 000c ld $0c 5710 0026 ld $26 5711 0085 ld $85 5712 00ba ld $ba 5713 006d ld $6d 5714 002b ld $2b 5715 0048 ld $48 5716 0021 ld $21 5717 0048 ld $48 5718 00fc ld $fc 5719 004a ld $4a 571a 00bb ld $bb 571b 0018 ld $18 571c 0004 ld $04 571d 0085 ld $85 571e 0022 ld $22 571f 0005 ld $05 5720 0032 ld $32 5721 004a ld $4a 5722 0048 ld $48 5723 0085 ld $85 5724 0007 ld $07 5725 0005 ld $05 5726 0063 ld $63 5727 00ff ld $ff 5728 0075 ld $75 5729 0021 ld $21 572a 003a ld $3a 572b 00fc ld $fc 572c 0040 ld $40 572d 00bb ld $bb 572e 0033 ld $33 572f 0004 ld $04 5730 0032 ld $32 5731 0040 ld $40 5732 003a ld $3a 5733 002b ld $2b 5734 0024 ld $24 5735 004d ld $4d 5736 000c ld $0c 5737 0026 ld $26 5738 0085 ld $85 5739 00ba ld $ba 573a 006d ld $6d 573b 0032 ld $32 573c 0046 ld $46 573d 0028 ld $28 573e 0021 ld $21 573f 0046 ld $46 5740 00e9 ld $e9 5741 00e9 ld $e9 5742 0099 ld $99 5743 0046 ld $46 5744 002b ld $2b 5745 004e ld $4e 5746 0085 ld $85 5747 0045 ld $45 5748 0005 ld $05 5749 0063 ld $63 574a 00ff ld $ff 574b 0075 ld $75 574c 0053 ld $53 574d 004c ld $4c 574e 00a0 ld $a0 574f 0060 ld $60 5750 005e ld $5e 5751 0082 ld $82 5752 0053 ld $53 5753 004c ld $4c 5754 00a0 ld $a0 5755 0061 ld $61 5756 005e ld $5e 5757 0083 ld $83 5758 0016 ld $16 5759 003f ld $3f 575a 00a3 ld $a3 575b 0021 ld $21 575c 0082 ld $82 575d 002f ld $2f 575e 00a3 ld $a3 575f 0054 ld $54 5760 0063 ld $63 5761 00ff ld $ff 5762 0075 ld $75 5763 0016 ld $16 5764 0010 ld $10 5765 00a3 ld $a3 5766 004d ld $4d 5767 0050 ld $50 5768 00a0 ld $a0 5769 004d ld $4d 576a 003b ld $3b 576b 0096 ld $96 576c 004d ld $4d 576d 0030 ld $30 576e 0098 ld $98 576f 0085 ld $85 5770 00ae ld $ae 5771 0078 ld $78 5772 004d ld $4d 5773 0050 ld $50 5774 0050 ld $50 5775 004d ld $4d 5776 003b ld $3b 5777 0052 ld $52 5778 004d ld $4d 5779 0030 ld $30 577a 0054 ld $54 577b 004d ld $4d 577c 0000 ld $00 577d 0056 ld $56 577e 0085 ld $85 577f 0068 ld $68 5780 0005 ld $05 5781 004d ld $4d 5782 0033 ld $33 5783 0054 ld $54 5784 004d ld $4d 5785 0000 ld $00 5786 0056 ld $56 5787 0085 ld $85 5788 0068 ld $68 5789 0005 ld $05 578a 004d ld $4d 578b 0035 ld $35 578c 0054 ld $54 578d 004d ld $4d 578e 0001 ld $01 578f 0056 ld $56 5790 0085 ld $85 5791 0068 ld $68 5792 0005 ld $05 5793 004d ld $4d 5794 0039 ld $39 5795 0054 ld $54 5796 004d ld $4d 5797 0003 ld $03 5798 0056 ld $56 5799 0085 ld $85 579a 0068 ld $68 579b 0005 ld $05 579c 004d ld $4d 579d 0037 ld $37 579e 0054 ld $54 579f 004d ld $4d 57a0 0002 ld $02 57a1 0056 ld $56 57a2 0085 ld $85 57a3 0068 ld $68 57a4 0005 ld $05 57a5 004d ld $4d 57a6 0000 ld $00 57a7 004c ld $4c 57a8 0085 ld $85 57a9 0042 ld $42 57aa 0004 ld $04 57ab 00a7 ld $a7 57ac 003b ld $3b 57ad 004c ld $4c 57ae 0093 ld $93 57af 004c ld $4c 57b0 00bd ld $bd 57b1 009d ld $9d 57b2 0004 ld $04 57b3 0063 ld $63 57b4 00ff ld $ff 57b5 0075 ld $75 57b6 0016 ld $16 57b7 0010 ld $10 57b8 00a3 ld $a3 57b9 004d ld $4d 57ba 0050 ld $50 57bb 0082 ld $82 57bc 004d ld $4d 57bd 003b ld $3b 57be 0084 ld $84 57bf 0053 ld $53 57c0 0044 ld $44 57c1 00a0 ld $a0 57c2 0060 ld $60 57c3 002b ld $2b 57c4 0086 ld $86 57c5 0053 ld $53 57c6 0044 ld $44 57c7 00a0 ld $a0 57c8 0061 ld $61 57c9 002b ld $2b 57ca 0088 ld $88 57cb 0085 ld $85 57cc 00a6 ld $a6 57cd 007a ld $7a 57ce 0063 ld $63 57cf 00ff ld $ff 57d0 0075 ld $75 57d1 0016 ld $16 57d2 003f ld $3f 57d3 00a3 ld $a3 57d4 004d ld $4d 57d5 0050 ld $50 57d6 0082 ld $82 57d7 004d ld $4d 57d8 003b ld $3b 57d9 0084 ld $84 57da 0053 ld $53 57db 003e ld $3e 57dc 00a0 ld $a0 57dd 0060 ld $60 57de 002b ld $2b 57df 0086 ld $86 57e0 0053 ld $53 57e1 003e ld $3e 57e2 00a0 ld $a0 57e3 0061 ld $61 57e4 002b ld $2b 57e5 0088 ld $88 57e6 0085 ld $85 57e7 00a6 ld $a6 57e8 007a ld $7a 57e9 0063 ld $63 57ea 00ff ld $ff 57eb 0075 ld $75 57ec 0016 ld $16 57ed 0010 ld $10 57ee 00a3 ld $a3 57ef 004d ld $4d 57f0 0050 ld $50 57f1 0082 ld $82 57f2 004d ld $4d 57f3 003b ld $3b 57f4 0084 ld $84 57f5 0053 ld $53 57f6 0042 ld $42 57f7 00a0 ld $a0 57f8 0062 ld $62 57f9 002b ld $2b 57fa 0086 ld $86 57fb fe00 bra ac ;+-----------------------------------+ 57fc fcfd bra $57fd ;| | 57fd 1418 ld $18,y ;| Trampoline for page $5700 lookups | 57fe e006 jmp y,$06 ;| | 57ff c218 st [$18] ;+-----------------------------------+ 5800 0053 ld $53 5801 0042 ld $42 5802 00a0 ld $a0 5803 0063 ld $63 5804 0085 ld $85 5805 0000 ld $00 5806 0005 ld $05 5807 0005 ld $05 5808 0000 ld $00 5809 00a8 ld $a8 580a 002b ld $2b 580b 0088 ld $88 580c 0085 ld $85 580d 00a6 ld $a6 580e 007a ld $7a 580f 0063 ld $63 5810 00ff ld $ff 5811 0075 ld $75 5812 0016 ld $16 5813 002a ld $2a 5814 00a3 ld $a3 5815 004d ld $4d 5816 0050 ld $50 5817 0082 ld $82 5818 004d ld $4d 5819 003b ld $3b 581a 0084 ld $84 581b 0053 ld $53 581c 003c ld $3c 581d 00a0 ld $a0 581e 0062 ld $62 581f 002b ld $2b 5820 0086 ld $86 5821 0053 ld $53 5822 003c ld $3c 5823 00a0 ld $a0 5824 0063 ld $63 5825 002b ld $2b 5826 0088 ld $88 5827 0085 ld $85 5828 00a6 ld $a6 5829 007a ld $7a 582a 0063 ld $63 582b 00ff ld $ff 582c 0075 ld $75 582d 0016 ld $16 582e 0010 ld $10 582f 00a3 ld $a3 5830 004d ld $4d 5831 0050 ld $50 5832 0082 ld $82 5833 004d ld $4d 5834 003b ld $3b 5835 0084 ld $84 5836 0011 ld $11 5837 00a0 ld $a0 5838 0064 ld $64 5839 0099 ld $99 583a 004e ld $4e 583b 0099 ld $99 583c 004a ld $4a 583d 00ad ld $ad 583e 002b ld $2b 583f 0086 ld $86 5840 0011 ld $11 5841 00a0 ld $a0 5842 0065 ld $65 5843 0099 ld $99 5844 004e ld $4e 5845 0099 ld $99 5846 004a ld $4a 5847 00ad ld $ad 5848 002b ld $2b 5849 0088 ld $88 584a 0085 ld $85 584b 00a6 ld $a6 584c 007a ld $7a 584d 0063 ld $63 584e 00ff ld $ff 584f 0075 ld $75 5850 0016 ld $16 5851 0015 ld $15 5852 00a3 ld $a3 5853 004d ld $4d 5854 0050 ld $50 5855 0082 ld $82 5856 004d ld $4d 5857 003b ld $3b 5858 0084 ld $84 5859 0011 ld $11 585a 00a0 ld $a0 585b 0064 ld $64 585c 0099 ld $99 585d 004e ld $4e 585e 0099 ld $99 585f 0048 ld $48 5860 00ad ld $ad 5861 002b ld $2b 5862 0086 ld $86 5863 0011 ld $11 5864 00a0 ld $a0 5865 0065 ld $65 5866 0099 ld $99 5867 004e ld $4e 5868 0099 ld $99 5869 0048 ld $48 586a 00ad ld $ad 586b 002b ld $2b 586c 0088 ld $88 586d 0085 ld $85 586e 00a6 ld $a6 586f 007a ld $7a 5870 0063 ld $63 5871 00ff ld $ff 5872 0075 ld $75 5873 0044 ld $44 5874 0001 ld $01 5875 00e8 ld $e8 5876 0050 ld $50 5877 0042 ld $42 5878 0001 ld $01 5879 00ea ld $ea 587a 0050 ld $50 587b 0044 ld $44 587c 0001 ld $01 587d 0058 ld $58 587e 0050 ld $50 587f 0042 ld $42 5880 0001 ld $01 5881 00d8 ld $d8 5882 0050 ld $50 5883 0044 ld $44 5884 0001 ld $01 5885 00e8 ld $e8 5886 0052 ld $52 5887 0042 ld $42 5888 0001 ld $01 5889 00ea ld $ea 588a 0052 ld $52 588b 0044 ld $44 588c 0001 ld $01 588d 005a ld $5a 588e 0052 ld $52 588f 0042 ld $42 5890 0001 ld $01 5891 00dc ld $dc 5892 0052 ld $52 5893 0065 ld $65 5894 00a3 ld $a3 5895 0056 ld $56 5896 002d ld $2d 5897 0082 ld $82 5898 005a ld $5a 5899 0058 ld $58 589a 0032 ld $32 589b 0086 ld $86 589c 0054 ld $54 589d 0085 ld $85 589e 00be ld $be 589f 0074 ld $74 58a0 0095 ld $95 58a1 005a ld $5a 58a2 00b8 ld $b8 58a3 00dc ld $dc 58a4 00c3 ld $c3 58a5 0087 ld $87 58a6 0005 ld $05 58a7 0095 ld $95 58a8 0058 ld $58 58a9 00b8 ld $b8 58aa 00d8 ld $d8 58ab 00c3 ld $c3 58ac 0077 ld $77 58ad 0005 ld $05 58ae 0063 ld $63 58af 00ff ld $ff 58b0 00b4 ld $b4 58b1 0080 ld $80 58b2 0060 ld $60 58b3 00a0 ld $a0 58b4 003c ld $3c 58b5 0050 ld $50 58b6 0055 ld $55 58b7 005a ld $5a 58b8 005f ld $5f 58b9 0064 ld $64 58ba 0068 ld $68 58bb 006c ld $6c 58bc 0070 ld $70 58bd 0074 ld $74 58be 0077 ld $77 58bf 007a ld $7a 58c0 007c ld $7c 58c1 007e ld $7e 58c2 007f ld $7f 58c3 0080 ld $80 58c4 0080 ld $80 58c5 0080 ld $80 58c6 007f ld $7f 58c7 007e ld $7e 58c8 007c ld $7c 58c9 007a ld $7a 58ca 0077 ld $77 58cb 0074 ld $74 58cc 0070 ld $70 58cd 006c ld $6c 58ce 0068 ld $68 58cf 0064 ld $64 58d0 005f ld $5f 58d1 005a ld $5a 58d2 0055 ld $55 58d3 0050 ld $50 58d4 004b ld $4b 58d5 0046 ld $46 58d6 0041 ld $41 58d7 003c ld $3c 58d8 0038 ld $38 58d9 0034 ld $34 58da 0030 ld $30 58db 002c ld $2c 58dc 0029 ld $29 58dd 0026 ld $26 58de 0024 ld $24 58df 0022 ld $22 58e0 0021 ld $21 58e1 0020 ld $20 58e2 0020 ld $20 58e3 0020 ld $20 58e4 0021 ld $21 58e5 0022 ld $22 58e6 0024 ld $24 58e7 0026 ld $26 58e8 0029 ld $29 58e9 002c ld $2c 58ea 0030 ld $30 58eb 0034 ld $34 58ec 0038 ld $38 58ed 003c ld $3c 58ee 0041 ld $41 58ef 0046 ld $46 58f0 004b ld $4b 58f1 0061 ld $61 58f2 00a0 ld $a0 58f3 003c ld $3c 58f4 000b ld $0b 58f5 000b ld $0b 58f6 000c ld $0c 58f7 000d ld $0d 58f8 000f ld $0f 58f9 0011 ld $11 58fa 0014 ld $14 58fb fe00 bra ac ;+-----------------------------------+ 58fc fcfd bra $58fd ;| | 58fd 1418 ld $18,y ;| Trampoline for page $5800 lookups | 58fe e006 jmp y,$06 ;| | 58ff c218 st [$18] ;+-----------------------------------+ 5900 0017 ld $17 5901 001b ld $1b 5902 001f ld $1f 5903 0023 ld $23 5904 0027 ld $27 5905 002c ld $2c 5906 0031 ld $31 5907 0036 ld $36 5908 003b ld $3b 5909 0040 ld $40 590a 0045 ld $45 590b 004a ld $4a 590c 004f ld $4f 590d 0053 ld $53 590e 0057 ld $57 590f 005b ld $5b 5910 005f ld $5f 5911 0062 ld $62 5912 0065 ld $65 5913 0067 ld $67 5914 0069 ld $69 5915 006a ld $6a 5916 006b ld $6b 5917 006b ld $6b 5918 006b ld $6b 5919 006a ld $6a 591a 0069 ld $69 591b 0067 ld $67 591c 0065 ld $65 591d 0062 ld $62 591e 005f ld $5f 591f 005b ld $5b 5920 0057 ld $57 5921 0053 ld $53 5922 004f ld $4f 5923 004a ld $4a 5924 0045 ld $45 5925 0040 ld $40 5926 003b ld $3b 5927 0036 ld $36 5928 0031 ld $31 5929 002c ld $2c 592a 0027 ld $27 592b 0023 ld $23 592c 001f ld $1f 592d 001b ld $1b 592e 0017 ld $17 592f 0014 ld $14 5930 0011 ld $11 5931 000f ld $0f 5932 000d ld $0d 5933 000c ld $0c 5934 000b ld $0b 5935 0062 ld $62 5936 00a0 ld $a0 5937 003c ld $3c 5938 0050 ld $50 5939 0054 ld $54 593a 0058 ld $58 593b 005c ld $5c 593c 0060 ld $60 593d 0064 ld $64 593e 0068 ld $68 593f 006b ld $6b 5940 006e ld $6e 5941 0070 ld $70 5942 0073 ld $73 5943 0075 ld $75 5944 0076 ld $76 5945 0077 ld $77 5946 0078 ld $78 5947 0078 ld $78 5948 0078 ld $78 5949 0077 ld $77 594a 0076 ld $76 594b 0075 ld $75 594c 0073 ld $73 594d 0070 ld $70 594e 006e ld $6e 594f 006b ld $6b 5950 0068 ld $68 5951 0064 ld $64 5952 0060 ld $60 5953 005c ld $5c 5954 0058 ld $58 5955 0054 ld $54 5956 0050 ld $50 5957 004c ld $4c 5958 0048 ld $48 5959 0044 ld $44 595a 0040 ld $40 595b 003c ld $3c 595c 0038 ld $38 595d 0035 ld $35 595e 0032 ld $32 595f 0030 ld $30 5960 002d ld $2d 5961 002b ld $2b 5962 002a ld $2a 5963 0029 ld $29 5964 0028 ld $28 5965 0028 ld $28 5966 0028 ld $28 5967 0029 ld $29 5968 002a ld $2a 5969 002b ld $2b 596a 002d ld $2d 596b 0030 ld $30 596c 0032 ld $32 596d 0035 ld $35 596e 0038 ld $38 596f 003c ld $3c 5970 0040 ld $40 5971 0044 ld $44 5972 0048 ld $48 5973 004c ld $4c 5974 0063 ld $63 5975 00a0 ld $a0 5976 003c ld $3c 5977 0013 ld $13 5978 0013 ld $13 5979 0014 ld $14 597a 0015 ld $15 597b 0016 ld $16 597c 0018 ld $18 597d 001b ld $1b 597e 001d ld $1d 597f 0020 ld $20 5980 0023 ld $23 5981 0027 ld $27 5982 002b ld $2b 5983 002f ld $2f 5984 0033 ld $33 5985 0037 ld $37 5986 003b ld $3b 5987 003f ld $3f 5988 0043 ld $43 5989 0047 ld $47 598a 004b ld $4b 598b 004f ld $4f 598c 0053 ld $53 598d 0056 ld $56 598e 0059 ld $59 598f 005b ld $5b 5990 005e ld $5e 5991 0060 ld $60 5992 0061 ld $61 5993 0062 ld $62 5994 0063 ld $63 5995 0063 ld $63 5996 0063 ld $63 5997 0062 ld $62 5998 0061 ld $61 5999 0060 ld $60 599a 005e ld $5e 599b 005b ld $5b 599c 0059 ld $59 599d 0056 ld $56 599e 0053 ld $53 599f 004f ld $4f 59a0 004b ld $4b 59a1 0047 ld $47 59a2 0043 ld $43 59a3 003f ld $3f 59a4 003b ld $3b 59a5 0037 ld $37 59a6 0033 ld $33 59a7 002f ld $2f 59a8 002b ld $2b 59a9 0027 ld $27 59aa 0023 ld $23 59ab 0020 ld $20 59ac 001d ld $1d 59ad 001b ld $1b 59ae 0018 ld $18 59af 0016 ld $16 59b0 0015 ld $15 59b1 0014 ld $14 59b2 0013 ld $13 59b3 0064 ld $64 59b4 00a0 ld $a0 59b5 003c ld $3c 59b6 0050 ld $50 59b7 0053 ld $53 59b8 0057 ld $57 59b9 005a ld $5a 59ba 005d ld $5d 59bb 0060 ld $60 59bc 0063 ld $63 59bd 0065 ld $65 59be 0068 ld $68 59bf 006a ld $6a 59c0 006c ld $6c 59c1 006d ld $6d 59c2 006e ld $6e 59c3 006f ld $6f 59c4 0070 ld $70 59c5 0070 ld $70 59c6 0070 ld $70 59c7 006f ld $6f 59c8 006e ld $6e 59c9 006d ld $6d 59ca 006c ld $6c 59cb 006a ld $6a 59cc 0068 ld $68 59cd 0065 ld $65 59ce 0063 ld $63 59cf 0060 ld $60 59d0 005d ld $5d 59d1 005a ld $5a 59d2 0057 ld $57 59d3 0053 ld $53 59d4 0050 ld $50 59d5 004d ld $4d 59d6 0049 ld $49 59d7 0046 ld $46 59d8 0043 ld $43 59d9 0040 ld $40 59da 003d ld $3d 59db 003b ld $3b 59dc 0038 ld $38 59dd 0036 ld $36 59de 0034 ld $34 59df 0033 ld $33 59e0 0032 ld $32 59e1 0031 ld $31 59e2 0030 ld $30 59e3 0030 ld $30 59e4 0030 ld $30 59e5 0031 ld $31 59e6 0032 ld $32 59e7 0033 ld $33 59e8 0034 ld $34 59e9 0036 ld $36 59ea 0038 ld $38 59eb 003b ld $3b 59ec 003d ld $3d 59ed 0040 ld $40 59ee 0043 ld $43 59ef 0046 ld $46 59f0 0049 ld $49 59f1 004d ld $4d 59f2 0065 ld $65 59f3 00a0 ld $a0 59f4 003c ld $3c 59f5 001b ld $1b 59f6 001b ld $1b 59f7 001c ld $1c 59f8 001d ld $1d 59f9 001e ld $1e 59fa 001f ld $1f 59fb fe00 bra ac ;+-----------------------------------+ 59fc fcfd bra $59fd ;| | 59fd 1418 ld $18,y ;| Trampoline for page $5900 lookups | 59fe e006 jmp y,$06 ;| | 59ff c218 st [$18] ;+-----------------------------------+ 5a00 0021 ld $21 5a01 0023 ld $23 5a02 0026 ld $26 5a03 0028 ld $28 5a04 002b ld $2b 5a05 002e ld $2e 5a06 0031 ld $31 5a07 0034 ld $34 5a08 0038 ld $38 5a09 003b ld $3b 5a0a 003e ld $3e 5a0b 0042 ld $42 5a0c 0045 ld $45 5a0d 0048 ld $48 5a0e 004b ld $4b 5a0f 004e ld $4e 5a10 0050 ld $50 5a11 0053 ld $53 5a12 0055 ld $55 5a13 0057 ld $57 5a14 0058 ld $58 5a15 0059 ld $59 5a16 005a ld $5a 5a17 005b ld $5b 5a18 005b ld $5b 5a19 005b ld $5b 5a1a 005a ld $5a 5a1b 0059 ld $59 5a1c 0058 ld $58 5a1d 0057 ld $57 5a1e 0055 ld $55 5a1f 0053 ld $53 5a20 0050 ld $50 5a21 004e ld $4e 5a22 004b ld $4b 5a23 0048 ld $48 5a24 0045 ld $45 5a25 0042 ld $42 5a26 003e ld $3e 5a27 003b ld $3b 5a28 0038 ld $38 5a29 0034 ld $34 5a2a 0031 ld $31 5a2b 002e ld $2e 5a2c 002b ld $2b 5a2d 0028 ld $28 5a2e 0026 ld $26 5a2f 0023 ld $23 5a30 0021 ld $21 5a31 001f ld $1f 5a32 001e ld $1e 5a33 001d ld $1d 5a34 001c ld $1c 5a35 001b ld $1b 5a36 0066 ld $66 5a37 00a0 ld $a0 5a38 0008 ld $08 5a39 003f ld $3f 5a3a 0004 ld $04 5a3b 0015 ld $15 5a3c 0022 ld $22 5a3d 002b ld $2b 5a3e 0031 ld $31 5a3f 0036 ld $36 5a40 0039 ld $39 5a41 0069 ld $69 5a42 00ac ld $ac 5a43 0039 ld $39 5a44 004d ld $4d 5a45 0002 ld $02 5a46 00a4 ld $a4 5a47 00c7 ld $c7 5a48 00fb ld $fb 5a49 0066 ld $66 5a4a 00aa ld $aa 5a4b 00ff ld $ff 5a4c 002f ld $2f 5a4d 00d6 ld $d6 5a4e 006e ld $6e 5a4f 00a4 ld $a4 5a50 0082 ld $82 5a51 00b2 ld $b2 5a52 0069 ld $69 5a53 00ff ld $ff 5a54 0032 ld $32 5a55 0024 ld $24 5a56 00a2 ld $a2 5a57 0021 ld $21 5a58 00a4 ld $a4 5a59 002f ld $2f 5a5a 0028 ld $28 5a5b 0059 ld $59 5a5c 00ff ld $ff 5a5d 0011 ld $11 5a5e 0000 ld $00 5a5f 000b ld $0b 5a60 002b ld $2b 5a61 0022 ld $22 5a62 0021 ld $21 5a63 0082 ld $82 5a64 00b4 ld $b4 5a65 00e6 ld $e6 5a66 00ff ld $ff 5a67 0011 ld $11 5a68 00e0 ld $e0 5a69 006b ld $6b 5a6a 0025 ld $25 5a6b 0075 ld $75 5a6c 0011 ld $11 5a6d 00e8 ld $e8 5a6e 006b ld $6b 5a6f 007d ld $7d 5a70 0084 ld $84 5a71 00ff ld $ff 5a72 001a ld $1a 5a73 002d ld $2d 5a74 0035 ld $35 5a75 0072 ld $72 5a76 00e2 ld $e2 5a77 0075 ld $75 5a78 0085 ld $85 5a79 00cd ld $cd 5a7a 0070 ld $70 5a7b 0063 ld $63 5a7c 00ff ld $ff 5a7d 0069 ld $69 5a7e 00e6 ld $e6 5a7f 0019 ld $19 5a80 0011 ld $11 5a81 00a8 ld $a8 5a82 007d ld $7d 5a83 002f ld $2f 5a84 0092 ld $92 5a85 0047 ld $47 5a86 00e3 ld $e3 5a87 0008 ld $08 5a88 002f ld $2f 5a89 009a ld $9a 5a8a 0047 ld $47 5a8b 00ff ld $ff 5a8c 0075 ld $75 5a8d 005e ld $5e 5a8e 0092 ld $92 5a8f 0085 ld $85 5a90 00ac ld $ac 5a91 006b ld $6b 5a92 001a ld $1a 5a93 0092 ld $92 5a94 0085 ld $85 5a95 00a0 ld $a0 5a96 007b ld $7b 5a97 0063 ld $63 5a98 00ff ld $ff 5a99 006a ld $6a 5a9a 00a7 ld $a7 5a9b 0058 ld $58 5a9c 0075 ld $75 5a9d 00c7 ld $c7 5a9e 0002 ld $02 5a9f 0069 ld $69 5aa0 00aa ld $aa 5aa1 0085 ld $85 5aa2 00b7 ld $b7 5aa3 0077 ld $77 5aa4 00c7 ld $c7 5aa5 00fd ld $fd 5aa6 0066 ld $66 5aa7 00aa ld $aa 5aa8 0063 ld $63 5aa9 00ff ld $ff 5aaa 0011 ld $11 5aab 00a0 ld $a0 5aac 007f ld $7f 5aad 002b ld $2b 5aae 0098 ld $98 5aaf 0046 ld $46 5ab0 0084 ld $84 5ab1 002b ld $2b 5ab2 009a ld $9a 5ab3 0023 ld $23 5ab4 0098 ld $98 5ab5 00d1 ld $d1 5ab6 009a ld $9a 5ab7 0035 ld $35 5ab8 0072 ld $72 5ab9 00bc ld $bc 5aba 00ff ld $ff 5abb 0018 ld $18 5abc 0094 ld $94 5abd 0021 ld $21 5abe 0094 ld $94 5abf 002f ld $2f 5ac0 0093 ld $93 5ac1 0024 ld $24 5ac2 001a ld $1a 5ac3 0096 ld $96 5ac4 002f ld $2f 5ac5 0093 ld $93 5ac6 002c ld $2c 5ac7 001a ld $1a 5ac8 0098 ld $98 5ac9 002f ld $2f 5aca 0093 ld $93 5acb 002f ld $2f 5acc 00ff ld $ff 5acd 0075 ld $75 5ace 0011 ld $11 5acf 00a1 ld $a1 5ad0 007f ld $7f 5ad1 002b ld $2b 5ad2 0092 ld $92 5ad3 0046 ld $46 5ad4 0084 ld $84 5ad5 002b ld $2b 5ad6 009a ld $9a 5ad7 0021 ld $21 5ad8 0092 ld $92 5ad9 0085 ld $85 5ada 00a1 ld $a1 5adb 006f ld $6f 5adc 00f3 ld $f3 5add 009a ld $9a 5ade 0063 ld $63 5adf 00ff ld $ff 5ae0 0075 ld $75 5ae1 002b ld $2b 5ae2 0082 ld $82 5ae3 0085 ld $85 5ae4 00ac ld $ac 5ae5 006b ld $6b 5ae6 0093 ld $93 5ae7 0082 ld $82 5ae8 0023 ld $23 5ae9 0082 ld $82 5aea 0035 ld $35 5aeb 003f ld $3f 5aec 00fb ld $fb 5aed 0085 ld $85 5aee 00a0 ld $a0 5aef 007b ld $7b 5af0 0090 ld $90 5af1 00f1 ld $f1 5af2 0063 ld $63 5af3 00ff ld $ff 5af4 006b ld $6b 5af5 00a0 ld $a0 5af6 005f ld $5f 5af7 0011 ld $11 5af8 00a8 ld $a8 5af9 007d ld $7d 5afa 002f ld $2f 5afb fe00 bra ac ;+-----------------------------------+ 5afc fcfd bra $5afd ;| | 5afd 1418 ld $18,y ;| Trampoline for page $5a00 lookups | 5afe e006 jmp y,$06 ;| | 5aff c218 st [$18] ;+-----------------------------------+ 5b00 0092 ld $92 5b01 0045 ld $45 5b02 00e3 ld $e3 5b03 0008 ld $08 5b04 002f ld $2f 5b05 009a ld $9a 5b06 0045 ld $45 5b07 00ff ld $ff 5b08 00c7 ld $c7 5b09 0010 ld $10 5b0a 006f ld $6f 5b0b 00aa ld $aa 5b0c 00bd ld $bd 5b0d 00ba ld $ba 5b0e 0069 ld $69 5b0f 0011 ld $11 5b10 00e1 ld $e1 5b11 0004 ld $04 5b12 002b ld $2b 5b13 0022 ld $22 5b14 0032 ld $32 5b15 0024 ld $24 5b16 00a2 ld $a2 5b17 0021 ld $21 5b18 00a4 ld $a4 5b19 002f ld $2f 5b1a 0028 ld $28 5b1b 0059 ld $59 5b1c 00ff ld $ff 5b1d 002b ld $2b 5b1e 0082 ld $82 5b1f 00e6 ld $e6 5b20 000a ld $0a 5b21 0035 ld $35 5b22 0050 ld $50 5b23 00cc ld $cc 5b24 002b ld $2b 5b25 0082 ld $82 5b26 0093 ld $93 5b27 0084 ld $84 5b28 0090 ld $90 5b29 00c1 ld $c1 5b2a 00c7 ld $c7 5b2b 0030 ld $30 5b2c 0072 ld $72 5b2d 0084 ld $84 5b2e 00d1 ld $d1 5b2f 0086 ld $86 5b30 00c7 ld $c7 5b31 0030 ld $30 5b32 0072 ld $72 5b33 0082 ld $82 5b34 00d1 ld $d1 5b35 0086 ld $86 5b36 0093 ld $93 5b37 0086 ld $86 5b38 0016 ld $16 5b39 0030 ld $30 5b3a 0084 ld $84 5b3b 00ff ld $ff 5b3c 00ff ld $ff 5b3d 00df ld $df 5b3e 00fe ld $fe 5b3f 0021 ld $21 5b40 002a ld $2a 5b41 00ec ld $ec 5b42 0000 ld $00 5b43 0085 ld $85 5b44 0000 ld $00 5b45 0000 ld $00 5b46 0090 ld $90 5b47 00ee ld $ee 5b48 00ff ld $ff 5b49 0090 ld $90 5b4a 00ee ld $ee 5b4b 00ff ld $ff 5b4c 00ee ld $ee 5b4d 0000 ld $00 5b4e 002b ld $2b 5b4f 002a ld $2a 5b50 00df ld $df 5b51 0002 ld $02 5b52 0063 ld $63 5b53 0016 ld $16 5b54 00ff ld $ff 5b55 000e ld $0e 5b56 0011 ld $11 5b57 0000 ld $00 5b58 0004 ld $04 5b59 007f ld $7f 5b5a 0000 ld $00 5b5b 006c ld $6c 5b5c 00a5 ld $a5 5b5d 005a ld $5a 5b5e 00c7 ld $c7 5b5f 0094 ld $94 5b60 0028 ld $28 5b61 0092 ld $92 5b62 0016 ld $16 5b63 0003 ld $03 5b64 0026 ld $26 5b65 0021 ld $21 5b66 0028 ld $28 5b67 002f ld $2f 5b68 0094 ld $94 5b69 0057 ld $57 5b6a 001c ld $1c 5b6b 0028 ld $28 5b6c 0028 ld $28 5b6d 0004 ld $04 5b6e 0075 ld $75 5b6f 0085 ld $85 5b70 00a2 ld $a2 5b71 006e ld $6e 5b72 0063 ld $63 5b73 00ff ld $ff 5b74 0075 ld $75 5b75 004d ld $4d 5b76 0000 ld $00 5b77 0084 ld $84 5b78 0011 ld $11 5b79 00d4 ld $d4 5b7a 007b ld $7b 5b7b 002b ld $2b 5b7c 0086 ld $86 5b7d 0011 ld $11 5b7e 00df ld $df 5b7f 007b ld $7b 5b80 002b ld $2b 5b81 0088 ld $88 5b82 00ad ld $ad 5b83 0085 ld $85 5b84 00c1 ld $c1 5b85 006b ld $6b 5b86 0014 ld $14 5b87 0088 ld $88 5b88 005b ld $5b 5b89 0088 ld $88 5b8a 0085 ld $85 5b8b 00c1 ld $c1 5b8c 006b ld $6b 5b8d 0014 ld $14 5b8e 0088 ld $88 5b8f 005b ld $5b 5b90 0088 ld $88 5b91 0085 ld $85 5b92 00c1 ld $c1 5b93 006b ld $6b 5b94 0063 ld $63 5b95 00ff ld $ff 5b96 001a ld $1a 5b97 0082 ld $82 5b98 0099 ld $99 5b99 0096 ld $96 5b9a 0099 ld $99 5b9b 009c ld $9c 5b9c 0069 ld $69 5b9d 00a3 ld $a3 5b9e 001a ld $1a 5b9f 0082 ld $82 5ba0 00b8 ld $b8 5ba1 0096 ld $96 5ba2 0099 ld $99 5ba3 009c ld $9c 5ba4 0069 ld $69 5ba5 00a3 ld $a3 5ba6 001a ld $1a 5ba7 0082 ld $82 5ba8 0099 ld $99 5ba9 0096 ld $96 5baa 0099 ld $99 5bab 009e ld $9e 5bac 0069 ld $69 5bad 00a3 ld $a3 5bae 001a ld $1a 5baf 0082 ld $82 5bb0 00b8 ld $b8 5bb1 0096 ld $96 5bb2 0099 ld $99 5bb3 009e ld $9e 5bb4 0069 ld $69 5bb5 00a3 ld $a3 5bb6 0063 ld $63 5bb7 00ff ld $ff 5bb8 006d ld $6d 5bb9 00a4 ld $a4 5bba 005b ld $5b 5bbb 0085 ld $85 5bbc 00e6 ld $e6 5bbd 0069 ld $69 5bbe 0059 ld $59 5bbf 007f ld $7f 5bc0 002b ld $2b 5bc1 0092 ld $92 5bc2 0085 ld $85 5bc3 00a1 ld $a1 5bc4 0070 ld $70 5bc5 0085 ld $85 5bc6 00a0 ld $a0 5bc7 006b ld $6b 5bc8 0085 ld $85 5bc9 00a6 ld $a6 5bca 0079 ld $79 5bcb 0035 ld $35 5bcc 003f ld $3f 5bcd 00a2 ld $a2 5bce 0085 ld $85 5bcf 00ba ld $ba 5bd0 0076 ld $76 5bd1 0021 ld $21 5bd2 0024 ld $24 5bd3 00fc ld $fc 5bd4 0026 ld $26 5bd5 002b ld $2b 5bd6 009e ld $9e 5bd7 002f ld $2f 5bd8 0024 ld $24 5bd9 0067 ld $67 5bda 002f ld $2f 5bdb 0026 ld $26 5bdc 0067 ld $67 5bdd 004d ld $4d 5bde 00a1 ld $a1 5bdf 0022 ld $22 5be0 004d ld $4d 5be1 0000 ld $00 5be2 0028 ld $28 5be3 004d ld $4d 5be4 0001 ld $01 5be5 002a ld $2a 5be6 00b4 ld $b4 5be7 00e6 ld $e6 5be8 0021 ld $21 5be9 009e ld $9e 5bea 0035 ld $35 5beb 0053 ld $53 5bec 00d7 ld $d7 5bed 002f ld $2f 5bee 0024 ld $24 5bef 0017 ld $17 5bf0 0021 ld $21 5bf1 0024 ld $24 5bf2 00ff ld $ff 5bf3 00c7 ld $c7 5bf4 0010 ld $10 5bf5 006f ld $6f 5bf6 00aa ld $aa 5bf7 00bd ld $bd 5bf8 009e ld $9e 5bf9 0075 ld $75 5bfa 00a7 ld $a7 5bfb fe00 bra ac ;+-----------------------------------+ 5bfc fcfd bra $5bfd ;| | 5bfd 1418 ld $18,y ;| Trampoline for page $5b00 lookups | 5bfe e006 jmp y,$06 ;| | 5bff c218 st [$18] ;+-----------------------------------+ 5c00 009a ld $9a 5c01 00a4 ld $a4 5c02 0035 ld $35 5c03 0056 ld $56 5c04 00ea ld $ea 5c05 0016 ld $16 5c06 0000 ld $00 5c07 00a4 ld $a4 5c08 00a7 ld $a7 5c09 0070 ld $70 5c0a 00a5 ld $a5 5c0b 0035 ld $35 5c0c 0050 ld $50 5c0d 00f8 ld $f8 5c0e 0016 ld $16 5c0f 0070 ld $70 5c10 00a5 ld $a5 5c11 00c7 ld $c7 5c12 0004 ld $04 5c13 0069 ld $69 5c14 00aa ld $aa 5c15 00ff ld $ff 5c16 00c7 ld $c7 5c17 00fb ld $fb 5c18 0066 ld $66 5c19 00aa ld $aa 5c1a 00ff ld $ff 5c1b 006e ld $6e 5c1c 00a2 ld $a2 5c1d 005d ld $5d 5c1e 001c ld $1c 5c1f 00a4 ld $a4 5c20 00a4 ld $a4 5c21 0004 ld $04 5c22 00a7 ld $a7 5c23 009c ld $9c 5c24 00a4 ld $a4 5c25 0035 ld $35 5c26 0056 ld $56 5c27 00b6 ld $b6 5c28 00c7 ld $c7 5c29 0008 ld $08 5c2a 006f ld $6f 5c2b 00aa ld $aa 5c2c 0035 ld $35 5c2d 0072 ld $72 5c2e 00b6 ld $b6 5c2f 0075 ld $75 5c30 0085 ld $85 5c31 00be ld $be 5c32 0073 ld $73 5c33 0063 ld $63 5c34 00ff ld $ff 5c35 0075 ld $75 5c36 0011 ld $11 5c37 0003 ld $03 5c38 000b ld $0b 5c39 002b ld $2b 5c3a 0022 ld $22 5c3b 0065 ld $65 5c3c 0025 ld $25 5c3d 00a2 ld $a2 5c3e 0011 ld $11 5c3f 0000 ld $00 5c40 0001 ld $01 5c41 0067 ld $67 5c42 0027 ld $27 5c43 004d ld $4d 5c44 0006 ld $06 5c45 009e ld $9e 5c46 0016 ld $16 5c47 00a0 ld $a0 5c48 0024 ld $24 5c49 0016 ld $16 5c4a 0000 ld $00 5c4b 0026 ld $26 5c4c 00b4 ld $b4 5c4d 00f3 ld $f3 5c4e 0093 ld $93 5c4f 0027 ld $27 5c50 009e ld $9e 5c51 00c8 ld $c8 5c52 009e ld $9e 5c53 0085 ld $85 5c54 00ac ld $ac 5c55 006b ld $6b 5c56 0063 ld $63 5c57 00ff ld $ff 5c58 0075 ld $75 5c59 0011 ld $11 5c5a 0003 ld $03 5c5b 000b ld $0b 5c5c 002b ld $2b 5c5d 0022 ld $22 5c5e 0065 ld $65 5c5f 0025 ld $25 5c60 00a2 ld $a2 5c61 0011 ld $11 5c62 0000 ld $00 5c63 0001 ld $01 5c64 0067 ld $67 5c65 0027 ld $27 5c66 004d ld $4d 5c67 0008 ld $08 5c68 009e ld $9e 5c69 0016 ld $16 5c6a 00a0 ld $a0 5c6b 0024 ld $24 5c6c 0016 ld $16 5c6d 0000 ld $00 5c6e 0026 ld $26 5c6f 00b4 ld $b4 5c70 00f3 ld $f3 5c71 0093 ld $93 5c72 0027 ld $27 5c73 009e ld $9e 5c74 00eb ld $eb 5c75 009e ld $9e 5c76 0085 ld $85 5c77 00ac ld $ac 5c78 006b ld $6b 5c79 0063 ld $63 5c7a 00ff ld $ff 5c7b 006f ld $6f 5c7c 00a1 ld $a1 5c7d 005e ld $5e 5c7e 002b ld $2b 5c7f 0092 ld $92 5c80 004d ld $4d 5c81 0000 ld $00 5c82 0096 ld $96 5c83 005b ld $5b 5c84 0092 ld $92 5c85 00e6 ld $e6 5c86 002d ld $2d 5c87 0035 ld $35 5c88 0072 ld $72 5c89 00ad ld $ad 5c8a 0093 ld $93 5c8b 0092 ld $92 5c8c 005b ld $5b 5c8d 0092 ld $92 5c8e 00e6 ld $e6 5c8f 0030 ld $30 5c90 0035 ld $35 5c91 0050 ld $50 5c92 00c7 ld $c7 5c93 002b ld $2b 5c94 0094 ld $94 5c95 00e6 ld $e6 5c96 0009 ld $09 5c97 0035 ld $35 5c98 004d ld $4d 5c99 00c7 ld $c7 5c9a 0021 ld $21 5c9b 0096 ld $96 5c9c 00b1 ld $b1 5c9d 0055 ld $55 5c9e 0099 ld $99 5c9f 0094 ld $94 5ca0 002b ld $2b 5ca1 0096 ld $96 5ca2 0093 ld $93 5ca3 0092 ld $92 5ca4 0090 ld $90 5ca5 00ad ld $ad 5ca6 002f ld $2f 5ca7 0096 ld $96 5ca8 0067 ld $67 5ca9 0021 ld $21 5caa 0096 ld $96 5cab 00ff ld $ff 5cac 002b ld $2b 5cad 0094 ld $94 5cae 0023 ld $23 5caf 0084 ld $84 5cb0 002b ld $2b 5cb1 0088 ld $88 5cb2 0023 ld $23 5cb3 0094 ld $94 5cb4 002b ld $2b 5cb5 009c ld $9c 5cb6 0023 ld $23 5cb7 0084 ld $84 5cb8 0035 ld $35 5cb9 003f ld $3f 5cba 00ed ld $ed 5cbb 002b ld $2b 5cbc 0082 ld $82 5cbd 0023 ld $23 5cbe 0094 ld $94 5cbf 00b8 ld $b8 5cc0 0082 ld $82 5cc1 0035 ld $35 5cc2 0050 ld $50 5cc3 00fa ld $fa 5cc4 0035 ld $35 5cc5 004d ld $4d 5cc6 00ea ld $ea 5cc7 0090 ld $90 5cc8 00d7 ld $d7 5cc9 0059 ld $59 5cca 0000 ld $00 5ccb 00ff ld $ff 5ccc 0021 ld $21 5ccd 0088 ld $88 5cce 00b8 ld $b8 5ccf 009c ld $9c 5cd0 0035 ld $35 5cd1 0050 ld $50 5cd2 00ea ld $ea 5cd3 0035 ld $35 5cd4 004d ld $4d 5cd5 00fa ld $fa 5cd6 0059 ld $59 5cd7 0001 ld $01 5cd8 00ff ld $ff 5cd9 0059 ld $59 5cda 0002 ld $02 5cdb 00ff ld $ff 5cdc 0070 ld $70 5cdd 00a1 ld $a1 5cde 005e ld $5e 5cdf 0075 ld $75 5ce0 008c ld $8c 5ce1 007f ld $7f 5ce2 0035 ld $35 5ce3 0072 ld $72 5ce4 00af ld $af 5ce5 00c7 ld $c7 5ce6 0020 ld $20 5ce7 006f ld $6f 5ce8 002d ld $2d 5ce9 0035 ld $35 5cea 0072 ld $72 5ceb 00af ld $af 5cec 004d ld $4d 5ced 0020 ld $20 5cee 0092 ld $92 5cef 0032 ld $32 5cf0 00a4 ld $a4 5cf1 009a ld $9a 5cf2 0021 ld $21 5cf3 0092 ld $92 5cf4 0085 ld $85 5cf5 00f2 ld $f2 5cf6 0069 ld $69 5cf7 0063 ld $63 5cf8 00ff ld $ff 5cf9 00a7 ld $a7 5cfa 00ff ld $ff 5cfb fe00 bra ac ;+-----------------------------------+ 5cfc fcfd bra $5cfd ;| | 5cfd 1418 ld $18,y ;| Trampoline for page $5c00 lookups | 5cfe e006 jmp y,$06 ;| | 5cff c218 st [$18] ;+-----------------------------------+ 5d00 0082 ld $82 5d01 0035 ld $35 5d02 003f ld $3f 5d03 00ca ld $ca 5d04 0011 ld $11 5d05 0008 ld $08 5d06 0020 ld $20 5d07 0018 ld $18 5d08 0018 ld $18 5d09 002f ld $2f 5d0a 0000 ld $00 5d0b 0027 ld $27 5d0c 0016 ld $16 5d0d 0002 ld $02 5d0e 002c ld $2c 5d0f 00ff ld $ff 5d10 0011 ld $11 5d11 00dd ld $dd 5d12 007b ld $7b 5d13 002b ld $2b 5d14 008a ld $8a 5d15 00ad ld $ad 5d16 00e3 ld $e3 5d17 0001 ld $01 5d18 00f0 ld $f0 5d19 008a ld $8a 5d1a 008c ld $8c 5d1b 003c ld $3c 5d1c 0035 ld $35 5d1d 0072 ld $72 5d1e 00fc ld $fc 5d1f 0059 ld $59 5d20 0000 ld $00 5d21 00d1 ld $d1 5d22 008a ld $8a 5d23 005b ld $5b 5d24 008a ld $8a 5d25 00e3 ld $e3 5d26 0001 ld $01 5d27 00f0 ld $f0 5d28 008a ld $8a 5d29 008c ld $8c 5d2a 003c ld $3c 5d2b 0035 ld $35 5d2c 0072 ld $72 5d2d 00fc ld $fc 5d2e 0059 ld $59 5d2f 0000 ld $00 5d30 00d1 ld $d1 5d31 008a ld $8a 5d32 005b ld $5b 5d33 008a ld $8a 5d34 00e3 ld $e3 5d35 0001 ld $01 5d36 00f0 ld $f0 5d37 008a ld $8a 5d38 00e6 ld $e6 5d39 0018 ld $18 5d3a 0035 ld $35 5d3b 0050 ld $50 5d3c 00fc ld $fc 5d3d 0059 ld $59 5d3e 0000 ld $00 5d3f 00f0 ld $f0 5d40 008a ld $8a 5d41 00ff ld $ff 5d42 0071 ld $71 5d43 00a2 ld $a2 5d44 005d ld $5d 5d45 001a ld $1a 5d46 0021 ld $21 5d47 0082 ld $82 5d48 00fc ld $fc 5d49 002b ld $2b 5d4a 0084 ld $84 5d4b 00b8 ld $b8 5d4c 0082 ld $82 5d4d 0035 ld $35 5d4e 003f ld $3f 5d4f 00c8 ld $c8 5d50 0021 ld $21 5d51 0082 ld $82 5d52 00e6 ld $e6 5d53 0080 ld $80 5d54 0035 ld $35 5d55 0072 ld $72 5d56 00bb ld $bb 5d57 0021 ld $21 5d58 0084 ld $84 5d59 00b8 ld $b8 5d5a 0082 ld $82 5d5b 0035 ld $35 5d5c 003f ld $3f 5d5d 00c8 ld $c8 5d5e 0090 ld $90 5d5f 00c2 ld $c2 5d60 0021 ld $21 5d61 0084 ld $84 5d62 00b8 ld $b8 5d63 0082 ld $82 5d64 0035 ld $35 5d65 004d ld $4d 5d66 00c8 ld $c8 5d67 001a ld $1a 5d68 0006 ld $06 5d69 00f0 ld $f0 5d6a 007e ld $7e 5d6b 0090 ld $90 5d6c 00c2 ld $c2 5d6d 00ff ld $ff 5d6e 0085 ld $85 5d6f 00e6 ld $e6 5d70 0069 ld $69 5d71 004d ld $4d 5d72 0020 ld $20 5d73 0092 ld $92 5d74 0085 ld $85 5d75 00a1 ld $a1 5d76 0070 ld $70 5d77 0085 ld $85 5d78 00a0 ld $a0 5d79 006b ld $6b 5d7a 0011 ld $11 5d7b 00a0 ld $a0 5d7c 007f ld $7f 5d7d 002b ld $2b 5d7e 0082 ld $82 5d7f 0021 ld $21 5d80 0092 ld $92 5d81 00b8 ld $b8 5d82 0082 ld $82 5d83 00e6 ld $e6 5d84 0001 ld $01 5d85 00f0 ld $f0 5d86 0082 ld $82 5d87 0099 ld $99 5d88 0082 ld $82 5d89 00e3 ld $e3 5d8a 0001 ld $01 5d8b 0025 ld $25 5d8c 0000 ld $00 5d8d 00c7 ld $c7 5d8e 003f ld $3f 5d8f 006f ld $6f 5d90 0096 ld $96 5d91 00e6 ld $e6 5d92 0005 ld $05 5d93 0035 ld $35 5d94 0072 ld $72 5d95 00f6 ld $f6 5d96 0085 ld $85 5d97 00b5 ld $b5 5d98 006a ld $6a 5d99 0090 ld $90 5d9a 00f9 ld $f9 5d9b 0085 ld $85 5d9c 00d8 ld $d8 5d9d 006a ld $6a 5d9e 0059 ld $59 5d9f 0001 ld $01 5da0 0063 ld $63 5da1 00ff ld $ff 5da2 0072 ld $72 5da3 00a1 ld $a1 5da4 005e ld $5e 5da5 0075 ld $75 5da6 0085 ld $85 5da7 00a0 ld $a0 5da8 0078 ld $78 5da9 004d ld $4d 5daa 0008 ld $08 5dab 0094 ld $94 5dac 0016 ld $16 5dad 003c ld $3c 5dae 009e ld $9e 5daf 0016 ld $16 5db0 00a0 ld $a0 5db1 0024 ld $24 5db2 0016 ld $16 5db3 0000 ld $00 5db4 0026 ld $26 5db5 0065 ld $65 5db6 0027 ld $27 5db7 0094 ld $94 5db8 00b4 ld $b4 5db9 00f3 ld $f3 5dba 0016 ld $16 5dbb 00a0 ld $a0 5dbc 0024 ld $24 5dbd 0016 ld $16 5dbe 0000 ld $00 5dbf 0026 ld $26 5dc0 0059 ld $59 5dc1 0087 ld $87 5dc2 00b8 ld $b8 5dc3 0094 ld $94 5dc4 005e ld $5e 5dc5 0027 ld $27 5dc6 00b4 ld $b4 5dc7 00f3 ld $f3 5dc8 0093 ld $93 5dc9 0094 ld $94 5dca 009e ld $9e 5dcb 00a9 ld $a9 5dcc 009e ld $9e 5dcd 0063 ld $63 5dce 00ff ld $ff 5dcf 0075 ld $75 5dd0 0029 ld $29 5dd1 0099 ld $99 5dd2 0096 ld $96 5dd3 0083 ld $83 5dd4 0048 ld $48 5dd5 009b ld $9b 5dd6 0096 ld $96 5dd7 0083 ld $83 5dd8 0029 ld $29 5dd9 009d ld $9d 5dda 0094 ld $94 5ddb 0083 ld $83 5ddc 0048 ld $48 5ddd 009f ld $9f 5dde 0094 ld $94 5ddf 0083 ld $83 5de0 001a ld $1a 5de1 0082 ld $82 5de2 0099 ld $99 5de3 0094 ld $94 5de4 0099 ld $99 5de5 0098 ld $98 5de6 0069 ld $69 5de7 00a3 ld $a3 5de8 001a ld $1a 5de9 0082 ld $82 5dea 00b8 ld $b8 5deb 0094 ld $94 5dec 0099 ld $99 5ded 0098 ld $98 5dee 0069 ld $69 5def 00a3 ld $a3 5df0 001a ld $1a 5df1 0082 ld $82 5df2 0099 ld $99 5df3 0094 ld $94 5df4 0099 ld $99 5df5 009a ld $9a 5df6 0069 ld $69 5df7 00a3 ld $a3 5df8 001a ld $1a 5df9 0082 ld $82 5dfa 00b8 ld $b8 5dfb fe00 bra ac ;+-----------------------------------+ 5dfc fcfd bra $5dfd ;| | 5dfd 1418 ld $18,y ;| Trampoline for page $5d00 lookups | 5dfe e006 jmp y,$06 ;| | 5dff c218 st [$18] ;+-----------------------------------+ 5e00 0094 ld $94 5e01 0099 ld $99 5e02 009a ld $9a 5e03 0069 ld $69 5e04 00a3 ld $a3 5e05 0085 ld $85 5e06 00dd ld $dd 5e07 006c ld $6c 5e08 0073 ld $73 5e09 00a5 ld $a5 5e0a 005a ld $5a 5e0b 0032 ld $32 5e0c 00a4 ld $a4 5e0d 0098 ld $98 5e0e 0085 ld $85 5e0f 00e6 ld $e6 5e10 0069 ld $69 5e11 0011 ld $11 5e12 00a0 ld $a0 5e13 007f ld $7f 5e14 0099 ld $99 5e15 0094 ld $94 5e16 0085 ld $85 5e17 00eb ld $eb 5e18 006a ld $6a 5e19 0085 ld $85 5e1a 00a0 ld $a0 5e1b 006b ld $6b 5e1c 00a9 ld $a9 5e1d 009a ld $9a 5e1e 009c ld $9c 5e1f 009a ld $9a 5e20 0059 ld $59 5e21 0000 ld $00 5e22 0063 ld $63 5e23 00ff ld $ff 5e24 0059 ld $59 5e25 0000 ld $00 5e26 005e ld $5e 5e27 00a4 ld $a4 5e28 005e ld $5e 5e29 0028 ld $28 5e2a 00c7 ld $c7 5e2b 0002 ld $02 5e2c 006f ld $6f 5e2d 00aa ld $aa 5e2e 0035 ld $35 5e2f 0072 ld $72 5e30 00ca ld $ca 5e31 00ff ld $ff 5e32 0075 ld $75 5e33 00c7 ld $c7 5e34 0004 ld $04 5e35 006f ld $6f 5e36 00aa ld $aa 5e37 0035 ld $35 5e38 0072 ld $72 5e39 00df ld $df 5e3a 001c ld $1c 5e3b 00a5 ld $a5 5e3c 00a5 ld $a5 5e3d 0006 ld $06 5e3e 00a7 ld $a7 5e3f 0078 ld $78 5e40 00a5 ld $a5 5e41 0035 ld $35 5e42 0050 ld $50 5e43 00f8 ld $f8 5e44 0016 ld $16 5e45 0072 ld $72 5e46 00a5 ld $a5 5e47 0085 ld $85 5e48 00b9 ld $b9 5e49 006e ld $6e 5e4a 0011 ld $11 5e4b 0000 ld $00 5e4c 0001 ld $01 5e4d 002b ld $2b 5e4e 0026 ld $26 5e4f 0016 ld $16 5e50 0006 ld $06 5e51 0024 ld $24 5e52 0016 ld $16 5e53 0078 ld $78 5e54 0025 ld $25 5e55 0011 ld $11 5e56 00c0 ld $c0 5e57 0020 ld $20 5e58 002b ld $2b 5e59 0022 ld $22 5e5a 00b4 ld $b4 5e5b 00fb ld $fb 5e5c 00c7 ld $c7 5e5d 0004 ld $04 5e5e 0069 ld $69 5e5f 00aa ld $aa 5e60 0085 ld $85 5e61 00bc ld $bc 5e62 0069 ld $69 5e63 0063 ld $63 5e64 00ff ld $ff 5e65 0074 ld $74 5e66 00a3 ld $a3 5e67 005c ld $5c 5e68 0059 ld $59 5e69 0000 ld $00 5e6a 002f ld $2f 5e6b 0000 ld $00 5e6c 0027 ld $27 5e6d 002f ld $2f 5e6e 0001 ld $01 5e6f 0027 ld $27 5e70 002f ld $2f 5e71 0002 ld $02 5e72 0027 ld $27 5e73 002f ld $2f 5e74 0003 ld $03 5e75 0027 ld $27 5e76 002f ld $2f 5e77 0000 ld $00 5e78 005c ld $5c 5e79 002f ld $2f 5e7a 0001 ld $01 5e7b 005c ld $5c 5e7c 002f ld $2f 5e7d 0002 ld $02 5e7e 005c ld $5c 5e7f 002f ld $2f 5e80 0003 ld $03 5e81 005c ld $5c 5e82 00ff ld $ff 5e83 0075 ld $75 5e84 0059 ld $59 5e85 0000 ld $00 5e86 002b ld $2b 5e87 0098 ld $98 5e88 002b ld $2b 5e89 009a ld $9a 5e8a 002b ld $2b 5e8b 009c ld $9c 5e8c 002b ld $2b 5e8d 009e ld $9e 5e8e 002b ld $2b 5e8f 0094 ld $94 5e90 0032 ld $32 5e91 0096 ld $96 5e92 0086 ld $86 5e93 0059 ld $59 5e94 0001 ld $01 5e95 00b8 ld $b8 5e96 0086 ld $86 5e97 002b ld $2b 5e98 0092 ld $92 5e99 0085 ld $85 5e9a 00cb ld $cb 5e9b 0072 ld $72 5e9c 0021 ld $21 5e9d 0092 ld $92 5e9e 0035 ld $35 5e9f 0053 ld $53 5ea0 00e6 ld $e6 5ea1 0021 ld $21 5ea2 0094 ld $94 5ea3 00e9 ld $e9 5ea4 00e9 ld $e9 5ea5 0099 ld $99 5ea6 0092 ld $92 5ea7 00e3 ld $e3 5ea8 0003 ld $03 5ea9 002b ld $2b 5eaa 0092 ld $92 5eab 0090 ld $90 5eac 00f4 ld $f4 5ead 0021 ld $21 5eae 0094 ld $94 5eaf 00b8 ld $b8 5eb0 0096 ld $96 5eb1 00e9 ld $e9 5eb2 00e9 ld $e9 5eb3 0099 ld $99 5eb4 0092 ld $92 5eb5 00e3 ld $e3 5eb6 0005 ld $05 5eb7 002b ld $2b 5eb8 0092 ld $92 5eb9 00dd ld $dd 5eba 0096 ld $96 5ebb 0095 ld $95 5ebc 0094 ld $94 5ebd 00b8 ld $b8 5ebe 0096 ld $96 5ebf 0035 ld $35 5ec0 0056 ld $56 5ec1 00d2 ld $d2 5ec2 0063 ld $63 5ec3 00ff ld $ff 5ec4 0075 ld $75 5ec5 00a0 ld $a0 5ec6 005f ld $5f 5ec7 00a7 ld $a7 5ec8 009c ld $9c 5ec9 00a4 ld $a4 5eca 0035 ld $35 5ecb 0056 ld $56 5ecc 00a7 ld $a7 5ecd 0016 ld $16 5ece 0000 ld $00 5ecf 00a4 ld $a4 5ed0 00a7 ld $a7 5ed1 0072 ld $72 5ed2 00a5 ld $a5 5ed3 0035 ld $35 5ed4 0050 ld $50 5ed5 00b5 ld $b5 5ed6 0016 ld $16 5ed7 0072 ld $72 5ed8 00a5 ld $a5 5ed9 00c7 ld $c7 5eda 0004 ld $04 5edb 0069 ld $69 5edc 00aa ld $aa 5edd 00ff ld $ff 5ede 00c7 ld $c7 5edf 00fb ld $fb 5ee0 0066 ld $66 5ee1 00aa ld $aa 5ee2 00ff ld $ff 5ee3 001a ld $1a 5ee4 0094 ld $94 5ee5 0035 ld $35 5ee6 003f ld $3f 5ee7 00d0 ld $d0 5ee8 00e6 ld $e6 5ee9 0001 ld $01 5eea 002b ld $2b 5eeb 0094 ld $94 5eec 004d ld $4d 5eed 0000 ld $00 5eee 009c ld $9c 5eef 0021 ld $21 5ef0 0092 ld $92 5ef1 0025 ld $25 5ef2 0000 ld $00 5ef3 00dd ld $dd 5ef4 0092 ld $92 5ef5 0025 ld $25 5ef6 0020 ld $20 5ef7 0090 ld $90 5ef8 00f6 ld $f6 5ef9 0021 ld $21 5efa 0098 ld $98 5efb fe00 bra ac ;+-----------------------------------+ 5efc fcfd bra $5efd ;| | 5efd 1418 ld $18,y ;| Trampoline for page $5e00 lookups | 5efe e006 jmp y,$06 ;| | 5eff c218 st [$18] ;+-----------------------------------+ 5f00 00b8 ld $b8 5f01 009a ld $9a 5f02 0035 ld $35 5f03 0053 ld $53 5f04 00f9 ld $f9 5f05 00c7 ld $c7 5f06 0010 ld $10 5f07 006f ld $6f 5f08 00aa ld $aa 5f09 0035 ld $35 5f0a 0072 ld $72 5f0b 00e2 ld $e2 5f0c 009c ld $9c 5f0d 0006 ld $06 5f0e 0090 ld $90 5f0f 00e4 ld $e4 5f10 009c ld $9c 5f11 0004 ld $04 5f12 002b ld $2b 5f13 009c ld $9c 5f14 0059 ld $59 5f15 0020 ld $20 5f16 00d1 ld $d1 5f17 0092 ld $92 5f18 0021 ld $21 5f19 0092 ld $92 5f1a 0025 ld $25 5f1b 0000 ld $00 5f1c 0038 ld $38 5f1d 0002 ld $02 5f1e 0092 ld $92 5f1f 0092 ld $92 5f20 0021 ld $21 5f21 0092 ld $92 5f22 0025 ld $25 5f23 0020 ld $20 5f24 0085 ld $85 5f25 00a5 ld $a5 5f26 0073 ld $73 5f27 0059 ld $59 5f28 0000 ld $00 5f29 0063 ld $63 5f2a 00ff ld $ff 5f2b 0076 ld $76 5f2c 00a1 ld $a1 5f2d 005e ld $5e 5f2e 0075 ld $75 5f2f 002b ld $2b 5f30 0082 ld $82 5f31 0046 ld $46 5f32 0082 ld $82 5f33 002b ld $2b 5f34 0084 ld $84 5f35 0046 ld $46 5f36 0082 ld $82 5f37 002b ld $2b 5f38 0086 ld $86 5f39 003b ld $3b 5f3a 0082 ld $82 5f3b 002b ld $2b 5f3c 0088 ld $88 5f3d 00c7 ld $c7 5f3e 00fd ld $fd 5f3f 0066 ld $66 5f40 00aa ld $aa 5f41 0065 ld $65 5f42 0081 ld $81 5f43 000f ld $0f 5f44 0085 ld $85 5f45 00ba ld $ba 5f46 0076 ld $76 5f47 0046 ld $46 5f48 0088 ld $88 5f49 0035 ld $35 5f4a 003f ld $3f 5f4b 00f7 ld $f7 5f4c 002b ld $2b 5f4d 0096 ld $96 5f4e 0082 ld $82 5f4f 0040 ld $40 5f50 0035 ld $35 5f51 003f ld $3f 5f52 00c7 ld $c7 5f53 0085 ld $85 5f54 00a7 ld $a7 5f55 006a ld $6a 5f56 0085 ld $85 5f57 00e6 ld $e6 5f58 0069 ld $69 5f59 0046 ld $46 5f5a 0086 ld $86 5f5b 0085 ld $85 5f5c 00eb ld $eb 5f5d 006a ld $6a 5f5e 0085 ld $85 5f5f 00a0 ld $a0 5f60 006b ld $6b 5f61 00c7 ld $c7 5f62 0080 ld $80 5f63 006f ld $6f 5f64 0096 ld $96 5f65 0035 ld $35 5f66 003f ld $3f 5f67 00dc ld $dc 5f68 0085 ld $85 5f69 00a7 ld $a7 5f6a 006a ld $6a 5f6b 0011 ld $11 5f6c 00a1 ld $a1 5f6d 007f ld $7f 5f6e 002b ld $2b 5f6f 0092 ld $92 5f70 004d ld $4d 5f71 0000 ld $00 5f72 0094 ld $94 5f73 0011 ld $11 5f74 00a0 ld $a0 5f75 007f ld $7f 5f76 002b ld $2b 5f77 009e ld $9e 5f78 001a ld $1a 5f79 0097 ld $97 5f7a 0099 ld $99 5f7b 009e ld $9e 5f7c 002b ld $2b 5f7d 009e ld $9e 5f7e 0032 ld $32 5f7f 009a ld $9a 5f80 00a4 ld $a4 5f81 002b ld $2b 5f82 0098 ld $98 5f83 0085 ld $85 5f84 00a4 ld $a4 5f85 006d ld $6d 5f86 00c7 ld $c7 5f87 0002 ld $02 5f88 0069 ld $69 5f89 00aa ld $aa 5f8a 0063 ld $63 5f8b 00ff ld $ff 5f8c 0077 ld $77 5f8d 00a0 ld $a0 5f8e 005f ld $5f 5f8f 001c ld $1c 5f90 00a4 ld $a4 5f91 00a4 ld $a4 5f92 0006 ld $06 5f93 00a7 ld $a7 5f94 009a ld $9a 5f95 00a4 ld $a4 5f96 0035 ld $35 5f97 0056 ld $56 5f98 00b4 ld $b4 5f99 00c7 ld $c7 5f9a 0008 ld $08 5f9b 006f ld $6f 5f9c 00aa ld $aa 5f9d 0035 ld $35 5f9e 0072 ld $72 5f9f 00b4 ld $b4 5fa0 0075 ld $75 5fa1 0085 ld $85 5fa2 00b7 ld $b7 5fa3 0077 ld $77 5fa4 0063 ld $63 5fa5 00ff ld $ff 5fa6 00c7 ld $c7 5fa7 0010 ld $10 5fa8 006f ld $6f 5fa9 00aa ld $aa 5faa 00bd ld $bd 5fab 00bc ld $bc 5fac 0073 ld $73 5fad 0059 ld $59 5fae 0002 ld $02 5faf 005e ld $5e 5fb0 00a4 ld $a4 5fb1 005e ld $5e 5fb2 0028 ld $28 5fb3 00c7 ld $c7 5fb4 0002 ld $02 5fb5 006f ld $6f 5fb6 00aa ld $aa 5fb7 0035 ld $35 5fb8 0072 ld $72 5fb9 00ca ld $ca 5fba 00ff ld $ff 5fbb 0075 ld $75 5fbc 00c7 ld $c7 5fbd 0004 ld $04 5fbe 006f ld $6f 5fbf 00aa ld $aa 5fc0 0035 ld $35 5fc1 0072 ld $72 5fc2 00df ld $df 5fc3 001c ld $1c 5fc4 00a5 ld $a5 5fc5 00a5 ld $a5 5fc6 0008 ld $08 5fc7 00a7 ld $a7 5fc8 0078 ld $78 5fc9 00a5 ld $a5 5fca 0035 ld $35 5fcb 0050 ld $50 5fcc 00f8 ld $f8 5fcd 0016 ld $16 5fce 0070 ld $70 5fcf 00a5 ld $a5 5fd0 0085 ld $85 5fd1 00dc ld $dc 5fd2 006e ld $6e 5fd3 0011 ld $11 5fd4 0000 ld $00 5fd5 0001 ld $01 5fd6 002b ld $2b 5fd7 0026 ld $26 5fd8 0016 ld $16 5fd9 0008 ld $08 5fda 0024 ld $24 5fdb 0016 ld $16 5fdc 0078 ld $78 5fdd 0025 ld $25 5fde 0011 ld $11 5fdf 00c0 ld $c0 5fe0 0020 ld $20 5fe1 002b ld $2b 5fe2 0022 ld $22 5fe3 00b4 ld $b4 5fe4 00fb ld $fb 5fe5 00c7 ld $c7 5fe6 0004 ld $04 5fe7 0069 ld $69 5fe8 00aa ld $aa 5fe9 0085 ld $85 5fea 00ac ld $ac 5feb 006b ld $6b 5fec 0063 ld $63 5fed 00ff ld $ff 5fee 0078 ld $78 5fef 00a0 ld $a0 5ff0 005f ld $5f 5ff1 0075 ld $75 5ff2 0085 ld $85 5ff3 00ac ld $ac 5ff4 0069 ld $69 5ff5 0011 ld $11 5ff6 0003 ld $03 5ff7 000b ld $0b 5ff8 002b ld $2b 5ff9 0022 ld $22 5ffa 0065 ld $65 5ffb fe00 bra ac ;+-----------------------------------+ 5ffc fcfd bra $5ffd ;| | 5ffd 1418 ld $18,y ;| Trampoline for page $5f00 lookups | 5ffe e006 jmp y,$06 ;| | 5fff c218 st [$18] ;+-----------------------------------+ 6000 0025 ld $25 6001 00a2 ld $a2 6002 0063 ld $63 6003 00ff ld $ff 6004 0011 ld $11 6005 0003 ld $03 6006 000b ld $0b 6007 002b ld $2b 6008 0022 ld $22 6009 0065 ld $65 600a 0025 ld $25 600b 00a3 ld $a3 600c 0059 ld $59 600d 0000 ld $00 600e 002b ld $2b 600f 0092 ld $92 6010 002b ld $2b 6011 0094 ld $94 6012 00ab ld $ab 6013 0082 ld $82 6014 0098 ld $98 6015 00a0 ld $a0 6016 0021 ld $21 6017 00a0 ld $a0 6018 0099 ld $99 6019 0098 ld $98 601a 00b8 ld $b8 601b 0082 ld $82 601c 002b ld $2b 601d 0088 ld $88 601e 0021 ld $21 601f 0096 ld $96 6020 00b8 ld $b8 6021 0092 ld $92 6022 002d ld $2d 6023 0026 ld $26 6024 0018 ld $18 6025 0082 ld $82 6026 0065 ld $65 6027 0024 ld $24 6028 0088 ld $88 6029 00b4 ld $b4 602a 00f3 ld $f3 602b 0021 ld $21 602c 0096 ld $96 602d 0099 ld $99 602e 0092 ld $92 602f 002d ld $2d 6030 0026 ld $26 6031 0018 ld $18 6032 0082 ld $82 6033 0065 ld $65 6034 0024 ld $24 6035 0088 ld $88 6036 00b4 ld $b4 6037 00f3 ld $f3 6038 0021 ld $21 6039 0094 ld $94 603a 0099 ld $99 603b 0092 ld $92 603c 0099 ld $99 603d 0092 ld $92 603e 00e3 ld $e3 603f 0001 ld $01 6040 002b ld $2b 6041 0094 ld $94 6042 0093 ld $93 6043 0092 ld $92 6044 0035 ld $35 6045 0050 ld $50 6046 00ba ld $ba 6047 0021 ld $21 6048 0094 ld $94 6049 00b8 ld $b8 604a 0098 ld $98 604b 00b8 ld $b8 604c 0098 ld $98 604d 00e3 ld $e3 604e 0001 ld $01 604f 002b ld $2b 6050 0094 ld $94 6051 009e ld $9e 6052 00ec ld $ec 6053 0098 ld $98 6054 00ff ld $ff 6055 0079 ld $79 6056 00a6 ld $a6 6057 0059 ld $59 6058 0075 ld $75 6059 0065 ld $65 605a 0082 ld $82 605b 000f ld $0f 605c 001a ld $1a 605d 0081 ld $81 605e 002f ld $2f 605f 0082 ld $82 6060 0062 ld $62 6061 0035 ld $35 6062 003f ld $3f 6063 00f9 ld $f9 6064 0085 ld $85 6065 00bb ld $bb 6066 0070 ld $70 6067 0065 ld $65 6068 0081 ld $81 6069 0082 ld $82 606a 00a7 ld $a7 606b 007f ld $7f 606c 0082 ld $82 606d 0035 ld $35 606e 004d ld $4d 606f 00f9 ld $f9 6070 0035 ld $35 6071 0072 ld $72 6072 00c2 ld $c2 6073 0085 ld $85 6074 00bc ld $bc 6075 0075 ld $75 6076 00a7 ld $a7 6077 000a ld $0a 6078 0082 ld $82 6079 0035 ld $35 607a 0072 ld $72 607b 00cb ld $cb 607c 0085 ld $85 607d 00cb ld $cb 607e 0071 ld $71 607f 0021 ld $21 6080 009e ld $9e 6081 00b8 ld $b8 6082 0092 ld $92 6083 0035 ld $35 6084 003f ld $3f 6085 00f9 ld $f9 6086 00a7 ld $a7 6087 0020 ld $20 6088 0082 ld $82 6089 0035 ld $35 608a 0050 ld $50 608b 00f9 ld $f9 608c 001a ld $1a 608d 0082 ld $82 608e 00d1 ld $d1 608f 0092 ld $92 6090 0021 ld $21 6091 0092 ld $92 6092 0025 ld $25 6093 0000 ld $00 6094 00a7 ld $a7 6095 0095 ld $95 6096 009a ld $9a 6097 0035 ld $35 6098 0050 ld $50 6099 00ec ld $ec 609a 0093 ld $93 609b 0094 ld $94 609c 0059 ld $59 609d 0000 ld $00 609e 0090 ld $90 609f 00f4 ld $f4 60a0 00c7 ld $c7 60a1 0010 ld $10 60a2 006f ld $6f 60a3 00aa ld $aa 60a4 00c7 ld $c7 60a5 0006 ld $06 60a6 002a ld $2a 60a7 0004 ld $04 60a8 002b ld $2b 60a9 009c ld $9c 60aa 0085 ld $85 60ab 00a5 ld $a5 60ac 0073 ld $73 60ad 0059 ld $59 60ae 0000 ld $00 60af 0063 ld $63 60b0 00ff ld $ff 60b1 007a ld $7a 60b2 00a6 ld $a6 60b3 0059 ld $59 60b4 0075 ld $75 60b5 00ab ld $ab 60b6 009a ld $9a 60b7 0082 ld $82 60b8 0086 ld $86 60b9 00b1 ld $b1 60ba 0036 ld $36 60bb 002b ld $2b 60bc 0092 ld $92 60bd 002b ld $2b 60be 0096 ld $96 60bf 002f ld $2f 60c0 009a ld $9a 60c1 0067 ld $67 60c2 00ab ld $ab 60c3 009c ld $9c 60c4 0084 ld $84 60c5 0088 ld $88 60c6 002b ld $2b 60c7 009e ld $9e 60c8 00b1 ld $b1 60c9 0036 ld $36 60ca 002b ld $2b 60cb 0094 ld $94 60cc 002f ld $2f 60cd 009c ld $9c 60ce 0067 ld $67 60cf 004d ld $4d 60d0 0000 ld $00 60d1 0098 ld $98 60d2 0021 ld $21 60d3 009a ld $9a 60d4 00b8 ld $b8 60d5 009c ld $9c 60d6 0035 ld $35 60d7 0053 ld $53 60d8 00d6 ld $d6 60d9 004d ld $4d 60da 0000 ld $00 60db 0096 ld $96 60dc 00c7 ld $c7 60dd 009c ld $9c 60de 0017 ld $17 60df 009a ld $9a 60e0 0021 ld $21 60e1 009e ld $9e 60e2 00b1 ld $b1 60e3 0036 ld $36 60e4 002b ld $2b 60e5 0098 ld $98 60e6 002d ld $2d 60e7 0082 ld $82 60e8 0084 ld $84 60e9 0082 ld $82 60ea 002d ld $2d 60eb 0084 ld $84 60ec 0088 ld $88 60ed 0086 ld $86 60ee 001a ld $1a 60ef 009a ld $9a 60f0 0018 ld $18 60f1 0018 ld $18 60f2 00e3 ld $e3 60f3 0001 ld $01 60f4 002b ld $2b 60f5 00a0 ld $a0 60f6 002b ld $2b 60f7 009e ld $9e 60f8 002f ld $2f 60f9 0094 ld $94 60fa 005e ld $5e 60fb fe00 bra ac ;+-----------------------------------+ 60fc fcfd bra $60fd ;| | 60fd 1418 ld $18,y ;| Trampoline for page $6000 lookups | 60fe e006 jmp y,$06 ;| | 60ff c218 st [$18] ;+-----------------------------------+ 6100 0099 ld $99 6101 0092 ld $92 6102 002b ld $2b 6103 0086 ld $86 6104 002f ld $2f 6105 0098 ld $98 6106 005e ld $5e 6107 0099 ld $99 6108 0096 ld $96 6109 002b ld $2b 610a 0088 ld $88 610b 004d ld $4d 610c 00a4 ld $a4 610d 0022 ld $22 610e 00b4 ld $b4 610f 00e3 ld $e3 6110 0063 ld $63 6111 00ff ld $ff 6112 007b ld $7b 6113 00a0 ld $a0 6114 0060 ld $60 6115 002b ld $2b 6116 0092 ld $92 6117 00c7 ld $c7 6118 0084 ld $84 6119 0089 ld $89 611a 0020 ld $20 611b 0035 ld $35 611c 0072 ld $72 611d 00d0 ld $d0 611e 00c7 ld $c7 611f 0010 ld $10 6120 006f ld $6f 6121 00aa ld $aa 6122 00bd ld $bd 6123 00a3 ld $a3 6124 006c ld $6c 6125 00c7 ld $c7 6126 0094 ld $94 6127 0025 ld $25 6128 0092 ld $92 6129 0016 ld $16 612a 0005 ld $05 612b 0096 ld $96 612c 0021 ld $21 612d 0094 ld $94 612e 007f ld $7f 612f 0000 ld $00 6130 005e ld $5e 6131 0026 ld $26 6132 00b4 ld $b4 6133 00cb ld $cb 6134 0093 ld $93 6135 0094 ld $94 6136 0093 ld $93 6137 0028 ld $28 6138 009e ld $9e 6139 00b5 ld $b5 613a 0096 ld $96 613b 0016 ld $16 613c 0000 ld $00 613d 0026 ld $26 613e 00b4 ld $b4 613f 00cb ld $cb 6140 0093 ld $93 6141 0028 ld $28 6142 0075 ld $75 6143 0085 ld $85 6144 00a0 ld $a0 6145 0077 ld $77 6146 0063 ld $63 6147 00ff ld $ff 6148 0008 ld $08 6149 0030 ld $30 614a 0030 ld $30 614b 003a ld $3a 614c 0030 ld $30 614d 0030 ld $30 614e 003a ld $3a 614f 0030 ld $30 6150 0030 ld $30 6151 0000 ld $00 6152 0000 ld $00 6153 0000 ld $00 6154 0000 ld $00 6155 0001 ld $01 6156 0059 ld $59 6157 0000 ld $00 6158 0001 ld $01 6159 0079 ld $79 615a 0000 ld $00 615b 0003 ld $03 615c 0003 ld $03 615d 0003 ld $03 * 6 times 6161 0005 ld $05 6162 0002 ld $02 6163 0000 ld $00 6164 0000 ld $00 6165 00cd ld $cd 6166 007d ld $7d 6167 00c9 ld $c9 6168 007d ld $7d 6169 00c5 ld $c5 616a 007d ld $7d 616b 00b8 ld $b8 616c 007d ld $7d 616d 003a ld $3a 616e 0000 ld $00 616f 003c ld $3c 6170 0000 ld $00 6171 003e ld $3e 6172 0000 ld $00 6173 00a0 ld $a0 6174 007c ld $7c 6175 007c ld $7c 6176 00a0 ld $a0 6177 0002 ld $02 6178 0000 ld $00 6179 0000 ld $00 617a 007d ld $7d 617b 00a2 ld $a2 617c 0006 ld $06 617d 00f8 ld $f8 617e 007b ld $7b 617f 00f0 ld $f0 6180 007b ld $7b 6181 00e6 ld $e6 6182 007b ld $7b 6183 007d ld $7d 6184 00b8 ld $b8 6185 0048 ld $48 6186 000b ld $0b 6187 0061 ld $61 6188 0075 ld $75 6189 0064 ld $64 618a 0069 ld $69 618b 006f ld $6f 618c 0028 ld $28 618d 0079 ld $79 618e 002f ld $2f 618f 006e ld $6e 6190 0029 ld $29 6191 003a ld $3a 6192 0000 ld $00 6193 0002 ld $02 6194 0053 ld $53 6195 003a ld $3a 6196 0000 ld $00 6197 0002 ld $02 6198 004d ld $4d 6199 003a ld $3a 619a 0000 ld $00 619b 0002 ld $02 619c 0048 ld $48 619d 003a ld $3a 619e 0000 ld $00 619f 000b ld $0b 61a0 0045 ld $45 61a1 006e ld $6e 61a2 0074 ld $74 61a3 0065 ld $65 61a4 0072 ld $72 61a5 0020 ld $20 61a6 0054 ld $54 61a7 0069 ld $69 61a8 006d ld $6d 61a9 0065 ld $65 61aa 0020 ld $20 61ab 0000 ld $00 61ac 0020 ld $20 61ad 0048 ld $48 61ae 0065 ld $65 61af 006c ld $6c 61b0 0070 ld $70 61b1 003a ld $3a 61b2 0020 ld $20 61b3 0050 ld $50 61b4 0072 ld $72 61b5 0065 ld $65 61b6 0073 ld $73 61b7 0073 ld $73 61b8 0020 ld $20 61b9 0045 ld $45 61ba 006e ld $6e 61bb 0074 ld $74 61bc 0065 ld $65 61bd 0072 ld $72 61be 0020 ld $20 61bf 0074 ld $74 61c0 006f ld $6f 61c1 0020 ld $20 61c2 0072 ld $72 61c3 0065 ld $65 61c4 0073 ld $73 61c5 0065 ld $65 61c6 0074 ld $74 61c7 0020 ld $20 61c8 0063 ld $63 61c9 006c ld $6c 61ca 006f ld $6f 61cb 0063 ld $63 61cc 006b ld $6b 61cd 0000 ld $00 61ce 0000 ld $00 61cf 0000 ld $00 ;End of gbas/menu/Clock_vX0.gt1, size 3287 ;+-----------------------------------+ ;| gbas/menu/Invader_vX0.gt1 | ;+-----------------------------------+ 61d0 dc43 st $43,[y,x++] ;'C' 61d1 dc6c st $6c,[y,x++] ;'l' 61d2 dc6f st $6f,[y,x++] ;'o' 61d3 dc63 st $63,[y,x++] ;'c' 61d4 dc6b st $6b,[y,x++] ;'k' 61d5 dc00 st $00,[y,x++] ;'\x00' 61d6 dc00 st $00,[y,x++] ;'\x00' 61d7 dc00 st $00,[y,x++] ;'\x00' 61d8 00f9 ld $f9 61d9 c218 st [$18] 61da 0054 ld $54 61db 14e0 ld $e0,y 61dc e036 jmp y,$36 61dd c219 st [$19] Invader: 61de 0000 ld $00 61df 007e ld $7e 61e0 0002 ld $02 61e1 0001 ld $01 61e2 0001 ld $01 61e3 0002 ld $02 61e4 0000 ld $00 61e5 00f8 ld $f8 61e6 0059 ld $59 61e7 0080 ld $80 61e8 002b ld $2b 61e9 0082 ld $82 61ea 0011 ld $11 61eb 00ac ld $ac 61ec 004f ld $4f 61ed 00cf ld $cf 61ee 0018 ld $18 61ef 0011 ld $11 61f0 0020 ld $20 61f1 000f ld $0f 61f2 002b ld $2b 61f3 00a2 ld $a2 61f4 00c7 ld $c7 61f5 0003 ld $03 61f6 0069 ld $69 61f7 0021 ld $21 61f8 004d ld $4d 61f9 0002 ld $02 61fa 00aa ld $aa 61fb fe00 bra ac ;+-----------------------------------+ 61fc fcfd bra $61fd ;| | 61fd 1418 ld $18,y ;| Trampoline for page $6100 lookups | 61fe e006 jmp y,$06 ;| | 61ff c218 st [$18] ;+-----------------------------------+ 6200 004d ld $4d 6201 0000 ld $00 6202 00d6 ld $d6 6203 004d ld $4d 6204 0000 ld $00 6205 00a6 ld $a6 6206 0016 ld $16 6207 0000 ld $00 6208 002d ld $2d 6209 004d ld $4d 620a 0000 ld $00 620b 002e ld $2e 620c 0085 ld $85 620d 00d8 ld $d8 620e 004c ld $4c 620f 0085 ld $85 6210 00bf ld $bf 6211 0025 ld $25 6212 0085 ld $85 6213 00fc ld $fc 6214 0022 ld $22 6215 0085 ld $85 6216 00f1 ld $f1 6217 0021 ld $21 6218 0085 ld $85 6219 00e8 ld $e8 621a 0021 ld $21 621b 002f ld $2f 621c 00d6 ld $d6 621d 006e ld $6e 621e 0085 ld $85 621f 00d6 ld $d6 6220 0002 ld $02 6221 0085 ld $85 6222 006d ld $6d 6223 0002 ld $02 6224 0085 ld $85 6225 00b5 ld $b5 6226 0002 ld $02 6227 0085 ld $85 6228 0052 ld $52 6229 0003 ld $03 622a 0085 ld $85 622b 00cb ld $cb 622c 0005 ld $05 622d 0085 ld $85 622e 00f4 ld $f4 622f 000d ld $0d 6230 0085 ld $85 6231 00d2 ld $d2 6232 000c ld $0c 6233 0085 ld $85 6234 00fc ld $fc 6235 000f ld $0f 6236 0085 ld $85 6237 007d ld $7d 6238 0003 ld $03 6239 0085 ld $85 623a 00c2 ld $c2 623b 0023 ld $23 623c 0085 ld $85 623d 00cc ld $cc 623e 0013 ld $13 623f 0085 ld $85 6240 00f6 ld $f6 6241 0012 ld $12 6242 0085 ld $85 6243 00d2 ld $d2 6244 0017 ld $17 6245 0085 ld $85 6246 00bb ld $bb 6247 0013 ld $13 6248 001a ld $1a 6249 0052 ld $52 624a 00bb ld $bb 624b 0062 ld $62 624c 0002 ld $02 624d 0090 ld $90 624e 0028 ld $28 624f 001a ld $1a 6250 0053 ld $53 6251 00bb ld $bb 6252 0069 ld $69 6253 0002 ld $02 6254 0090 ld $90 6255 0025 ld $25 6256 0090 ld $90 6257 002e ld $2e 6258 0075 ld $75 6259 0021 ld $21 625a 005c ld $5c 625b 00bb ld $bb 625c 0073 ld $73 625d 0002 ld $02 625e 0063 ld $63 625f 00ff ld $ff 6260 001a ld $1a 6261 0057 ld $57 6262 00bd ld $bd 6263 007a ld $7a 6264 0002 ld $02 6265 0063 ld $63 6266 00ff ld $ff 6267 0011 ld $11 6268 00e1 ld $e1 6269 0004 ld $04 626a 002b ld $2b 626b 0022 ld $22 626c 0085 ld $85 626d 00c3 ld $c3 626e 0011 ld $11 626f 0011 ld $11 6270 0000 ld $00 6271 003f ld $3f 6272 002b ld $2b 6273 0024 ld $24 6274 0021 ld $21 6275 0054 ld $54 6276 002b ld $2b 6277 0028 ld $28 6278 001a ld $1a 6279 0056 ld $56 627a 00bb ld $bb 627b 00a9 ld $a9 627c 0002 ld $02 627d 0016 ld $16 627e 00f8 ld $f8 627f 0026 ld $26 6280 00b4 ld $b4 6281 00cb ld $cb 6282 0038 ld $38 6283 0002 ld $02 6284 0055 ld $55 6285 0055 ld $55 6286 00a7 ld $a7 6287 000e ld $0e 6288 0055 ld $55 6289 00c5 ld $c5 628a 00a7 ld $a7 628b 0002 ld $02 628c 004d ld $4d 628d 0000 ld $00 628e 0056 ld $56 628f 0016 ld $16 6290 0000 ld $00 6291 0026 ld $26 6292 00b4 ld $b4 6293 00cb ld $cb 6294 0063 ld $63 6295 00ff ld $ff 6296 0016 ld $16 6297 0000 ld $00 6298 0026 ld $26 6299 00b4 ld $b4 629a 00cb ld $cb 629b 004d ld $4d 629c 0000 ld $00 629d 0056 ld $56 629e 0063 ld $63 629f 00ff ld $ff 62a0 0075 ld $75 62a1 00c7 ld $c7 62a2 0001 ld $01 62a3 0075 ld $75 62a4 004c ld $4c 62a5 00bd ld $bd 62a6 00c8 ld $c8 62a7 0002 ld $02 62a8 004d ld $4d 62a9 0004 ld $04 62aa 0082 ld $82 62ab 002d ld $2d 62ac 0084 ld $84 62ad 0036 ld $36 62ae 0034 ld $34 62af 0085 ld $85 62b0 00f4 ld $f4 62b1 004c ld $4c 62b2 0085 ld $85 62b3 00d4 ld $d4 62b4 0002 ld $02 62b5 004d ld $4d 62b6 0003 ld $03 62b7 0082 ld $82 62b8 002d ld $2d 62b9 0084 ld $84 62ba 0036 ld $36 62bb 0034 ld $34 62bc 0085 ld $85 62bd 00a1 ld $a1 62be 004f ld $4f 62bf 0063 ld $63 62c0 00ff ld $ff 62c1 0075 ld $75 62c2 00c7 ld $c7 62c3 00ff ld $ff 62c4 0075 ld $75 62c5 0011 ld $11 62c6 002b ld $2b 62c7 00c4 ld $c4 62c8 00c7 ld $c7 62c9 0001 ld $01 62ca 006f ld $6f 62cb 00c4 ld $c4 62cc 00bb ld $bb 62cd 00e7 ld $e7 62ce 0002 ld $02 62cf 0011 ld $11 62d0 0001 ld $01 62d1 0001 ld $01 62d2 002b ld $2b 62d3 004c ld $4c 62d4 00c7 ld $c7 62d5 0002 ld $02 62d6 006f ld $6f 62d7 00c4 ld $c4 62d8 00bb ld $bb 62d9 00fe ld $fe 62da 0003 ld $03 62db 0011 ld $11 62dc 0000 ld $00 62dd 0001 ld $01 62de 002b ld $2b 62df 004c ld $4c 62e0 0085 ld $85 62e1 0000 ld $00 62e2 0003 ld $03 62e3 0003 ld $03 62e4 0000 ld $00 62e5 00f9 ld $f9 62e6 00c7 ld $c7 62e7 0080 ld $80 62e8 006f ld $6f 62e9 0074 ld $74 62ea 00bd ld $bd 62eb 000f ld $0f 62ec 0003 ld $03 62ed 00c7 ld $c7 62ee 0080 ld $80 62ef 006f ld $6f 62f0 00c4 ld $c4 62f1 00bb ld $bb 62f2 000f ld $0f 62f3 0003 ld $03 62f4 0085 ld $85 62f5 0016 ld $16 62f6 0003 ld $03 62f7 0032 ld $32 62f8 0074 ld $74 62f9 00c4 ld $c4 62fa 0063 ld $63 62fb fe00 bra ac ;+-----------------------------------+ 62fc fcfd bra $62fd ;| | 62fd 1418 ld $18,y ;| Trampoline for page $6200 lookups | 62fe e006 jmp y,$06 ;| | 62ff c218 st [$18] ;+-----------------------------------+ 6300 00ff ld $ff 6301 0075 ld $75 6302 001a ld $1a 6303 0057 ld $57 6304 00bb ld $bb 6305 001c ld $1c 6306 0003 ld $03 6307 0063 ld $63 6308 00ff ld $ff 6309 0093 ld $93 630a 0058 ld $58 630b 0011 ld $11 630c 0000 ld $00 630d 0001 ld $01 630e 002b ld $2b 630f 0070 ld $70 6310 0011 ld $11 6311 0001 ld $01 6312 0001 ld $01 6313 002b ld $2b 6314 0056 ld $56 6315 001a ld $1a 6316 004c ld $4c 6317 00bb ld $bb 6318 003f ld $3f 6319 0003 ld $03 631a 0042 ld $42 631b 0006 ld $06 631c 00e8 ld $e8 631d 0034 ld $34 631e 0021 ld $21 631f 0036 ld $36 6320 00e3 ld $e3 6321 0003 ld $03 6322 002f ld $2f 6323 0018 ld $18 6324 005e ld $5e 6325 0099 ld $99 6326 00e8 ld $e8 6327 002b ld $2b 6328 0054 ld $54 6329 0085 ld $85 632a 0050 ld $50 632b 0003 ld $03 632c 0042 ld $42 632d 0005 ld $05 632e 00e8 ld $e8 632f 0034 ld $34 6330 0021 ld $21 6331 0036 ld $36 6332 00e3 ld $e3 6333 0003 ld $03 6334 002f ld $2f 6335 0018 ld $18 6336 005e ld $5e 6337 0099 ld $99 6338 00e8 ld $e8 6339 002b ld $2b 633a 0054 ld $54 633b 0063 ld $63 633c 00ff ld $ff 633d 0075 ld $75 633e 001a ld $1a 633f 004d ld $4d 6340 00bb ld $bb 6341 0079 ld $79 6342 0003 ld $03 6343 0016 ld $16 6344 0000 ld $00 6345 004d ld $4d 6346 001a ld $1a 6347 004c ld $4c 6348 00bb ld $bb 6349 006d ld $6d 634a 0003 ld $03 634b 0093 ld $93 634c 0034 ld $34 634d 0021 ld $21 634e 0034 ld $34 634f 00e6 ld $e6 6350 0093 ld $93 6351 00c3 ld $c3 6352 006a ld $6a 6353 0003 ld $03 6354 004d ld $4d 6355 0093 ld $93 6356 0034 ld $34 6357 0085 ld $85 6358 007b ld $7b 6359 0003 ld $03 635a 00dd ld $dd 635b 0034 ld $34 635c 0021 ld $21 635d 0034 ld $34 635e 00e6 ld $e6 635f 0001 ld $01 6360 00c5 ld $c5 6361 0079 ld $79 6362 0003 ld $03 6363 004d ld $4d 6364 0001 ld $01 6365 0034 ld $34 6366 0063 ld $63 6367 00ff ld $ff 6368 0075 ld $75 6369 0021 ld $21 636a 005c ld $5c 636b 00bb ld $bb 636c 0083 ld $83 636d 0003 ld $03 636e 0063 ld $63 636f 00ff ld $ff 6370 0021 ld $21 6371 0044 ld $44 6372 00bd ld $bd 6373 008a ld $8a 6374 0003 ld $03 6375 0063 ld $63 6376 00ff ld $ff 6377 003b ld $3b 6378 0044 ld $44 6379 002b ld $2b 637a 00c8 ld $c8 637b 0021 ld $21 637c 0044 ld $44 637d 00e3 ld $e3 637e 0002 ld $02 637f 00ad ld $ad 6380 0099 ld $99 6381 0038 ld $38 6382 002b ld $2b 6383 00c4 ld $c4 6384 0021 ld $21 6385 0044 ld $44 6386 00e3 ld $e3 6387 0003 ld $03 6388 00ad ld $ad 6389 002b ld $2b 638a 00ea ld $ea 638b 00ab ld $ab 638c 00c6 ld $c6 638d 00ea ld $ea 638e 003a ld $3a 638f 0021 ld $21 6390 00c6 ld $c6 6391 00e6 ld $e6 6392 006b ld $6b 6393 00bf ld $bf 6394 00ae ld $ae 6395 0003 ld $03 6396 0085 ld $85 6397 00da ld $da 6398 0012 ld $12 6399 0063 ld $63 639a 00ff ld $ff 639b 0021 ld $21 639c 0040 ld $40 639d 00c3 ld $c3 639e 00d4 ld $d4 639f 0003 ld $03 63a0 001a ld $1a 63a1 00c9 ld $c9 63a2 00e6 ld $e6 63a3 0001 ld $01 63a4 002b ld $2b 63a5 0096 ld $96 63a6 0053 ld $53 63a7 0096 ld $96 63a8 00a2 ld $a2 63a9 0079 ld $79 63aa 002b ld $2b 63ab 00ea ld $ea 63ac 0021 ld $21 63ad 00c4 ld $c4 63ae 002f ld $2f 63af 0018 ld $18 63b0 0073 ld $73 63b1 0082 ld $82 63b2 0001 ld $01 63b3 0099 ld $99 63b4 00ea ld $ea 63b5 002b ld $2b 63b6 0082 ld $82 63b7 002d ld $2d 63b8 0084 ld $84 63b9 00c6 ld $c6 63ba 00c4 ld $c4 63bb 0085 ld $85 63bc 00f4 ld $f4 63bd 004c ld $4c 63be 0085 ld $85 63bf 00f4 ld $f4 63c0 0003 ld $03 63c1 001a ld $1a 63c2 00c9 ld $c9 63c3 00e6 ld $e6 63c4 0001 ld $01 63c5 002b ld $2b 63c6 0096 ld $96 63c7 0053 ld $53 63c8 0096 ld $96 63c9 00a0 ld $a0 63ca 0078 ld $78 63cb 002b ld $2b 63cc 00ea ld $ea 63cd 0021 ld $21 63ce 00c4 ld $c4 63cf 002f ld $2f 63d0 0018 ld $18 63d1 0073 ld $73 63d2 0082 ld $82 63d3 0001 ld $01 63d4 0099 ld $99 63d5 00ea ld $ea 63d6 002b ld $2b 63d7 0082 ld $82 63d8 002d ld $2d 63d9 0084 ld $84 63da 00c6 ld $c6 63db 00c4 ld $c4 63dc 0085 ld $85 63dd 00a1 ld $a1 63de 004f ld $4f 63df 0021 ld $21 63e0 0050 ld $50 63e1 0085 ld $85 63e2 00a0 ld $a0 63e3 0004 ld $04 63e4 0004 ld $04 63e5 0000 ld $00 63e6 00f8 ld $f8 63e7 0000 ld $00 63e8 0000 ld $00 63e9 0000 ld $00 * 12 times 63f3 0001 ld $01 63f4 0001 ld $01 63f5 0001 ld $01 * 8 times 63fb fe00 bra ac ;+-----------------------------------+ 63fc fcfd bra $63fd ;| | 63fd 1418 ld $18,y ;| Trampoline for page $6300 lookups | 63fe e006 jmp y,$06 ;| | 63ff c218 st [$18] ;+-----------------------------------+ 6400 0001 ld $01 6401 0001 ld $01 6402 0001 ld $01 6403 0001 ld $01 6404 0002 ld $02 6405 0002 ld $02 6406 0002 ld $02 * 12 times 6410 0003 ld $03 6411 0003 ld $03 6412 0003 ld $03 * 12 times 641c 0004 ld $04 641d 0004 ld $04 641e 0004 ld $04 * 12 times 6428 0005 ld $05 6429 0005 ld $05 642a 0005 ld $05 * 12 times 6434 0006 ld $06 6435 0006 ld $06 6436 0006 ld $06 * 12 times 6440 0007 ld $07 6441 0007 ld $07 6442 0007 ld $07 * 12 times 644c 0008 ld $08 644d 0008 ld $08 644e 0008 ld $08 * 12 times 6458 0009 ld $09 6459 0009 ld $09 645a 0009 ld $09 * 12 times 6464 000a ld $0a 6465 000a ld $0a 6466 000a ld $0a * 12 times 6470 000b ld $0b 6471 000b ld $0b 6472 000b ld $0b * 12 times 647c 000c ld $0c 647d 000c ld $0c 647e 000c ld $0c * 12 times 6488 000d ld $0d 6489 000d ld $0d 648a 000d ld $0d 648b 000d ld $0d 648c 00bb ld $bb 648d 00ae ld $ae 648e 0004 ld $04 648f 004d ld $4d 6490 0011 ld $11 6491 0082 ld $82 6492 0065 ld $65 6493 0084 ld $84 6494 00c4 ld $c4 6495 0038 ld $38 6496 0002 ld $02 6497 0085 ld $85 6498 00c6 ld $c6 6499 0085 ld $85 649a 00a1 ld $a1 649b 004f ld $4f 649c 0021 ld $21 649d 00c4 ld $c4 649e 00e6 ld $e6 649f 0093 ld $93 64a0 00bf ld $bf 64a1 00bc ld $bc 64a2 0004 ld $04 64a3 009c ld $9c 64a4 0002 ld $02 64a5 002b ld $2b 64a6 0042 ld $42 64a7 0085 ld $85 64a8 00d2 ld $d2 64a9 0004 ld $04 64aa 0021 ld $21 64ab 00c4 ld $c4 64ac 00e6 ld $e6 64ad 0001 ld $01 64ae 00c1 ld $c1 64af 00d0 ld $d0 64b0 0004 ld $04 64b1 004d ld $4d 64b2 0002 ld $02 64b3 0042 ld $42 64b4 00c7 ld $c7 64b5 0031 ld $31 64b6 0075 ld $75 64b7 0059 ld $59 64b8 00bd ld $bd 64b9 00d0 ld $d0 64ba 0004 ld $04 64bb 004d ld $4d 64bc 0003 ld $03 64bd 0042 ld $42 64be 0021 ld $21 64bf 0044 ld $44 64c0 00e3 ld $e3 64c1 0006 ld $06 64c2 006f ld $6f 64c3 0044 ld $44 64c4 00c7 ld $c7 64c5 0080 ld $80 64c6 006f ld $6f 64c7 00c8 ld $c8 64c8 00bd ld $bd 64c9 00df ld $df 64ca 0004 ld $04 64cb 0063 ld $63 64cc 00ff ld $ff 64cd 0021 ld $21 64ce 0042 ld $42 64cf 00fc ld $fc 64d0 0040 ld $40 64d1 00bb ld $bb 64d2 00f0 ld $f0 64d3 0004 ld $04 64d4 004d ld $4d 64d5 0001 ld $01 64d6 0050 ld $50 64d7 0042 ld $42 64d8 0008 ld $08 64d9 003a ld $3a 64da 003a ld $3a 64db 0085 ld $85 64dc 007c ld $7c 64dd 0005 ld $05 64de 004d ld $4d 64df 0000 ld $00 64e0 0050 ld $50 64e1 0085 ld $85 64e2 0078 ld $78 64e3 0005 ld $05 64e4 0005 ld $05 64e5 0000 ld $00 64e6 00ff ld $ff 64e7 0000 ld $00 64e8 0000 ld $00 64e9 0000 ld $00 * 10 times 64f1 0001 ld $01 64f2 0001 ld $01 64f3 0001 ld $01 * 10 times 64fb fe00 bra ac ;+-----------------------------------+ 64fc fcfd bra $64fd ;| | 64fd 1418 ld $18,y ;| Trampoline for page $6400 lookups | 64fe e006 jmp y,$06 ;| | 64ff c218 st [$18] ;+-----------------------------------+ 6500 0002 ld $02 6501 0002 ld $02 6502 0002 ld $02 * 10 times 650a 0003 ld $03 650b 0003 ld $03 650c 0003 ld $03 * 10 times 6514 0004 ld $04 6515 0004 ld $04 6516 0004 ld $04 * 10 times 651e 0005 ld $05 651f 0005 ld $05 6520 0005 ld $05 * 10 times 6528 0006 ld $06 6529 0006 ld $06 652a 0006 ld $06 * 10 times 6532 0007 ld $07 6533 0007 ld $07 6534 0007 ld $07 * 10 times 653c 0008 ld $08 653d 0008 ld $08 653e 0008 ld $08 * 10 times 6546 0009 ld $09 6547 0009 ld $09 6548 0009 ld $09 * 10 times 6550 000a ld $0a 6551 000a ld $0a 6552 000a ld $0a * 10 times 655a 000b ld $0b 655b 000b ld $0b 655c 000b ld $0b * 10 times 6564 00a9 ld $a9 6565 0038 ld $38 6566 0042 ld $42 6567 0038 ld $38 6568 0032 ld $32 6569 0040 ld $40 656a 0042 ld $42 656b 0063 ld $63 656c 00ff ld $ff 656d 0075 ld $75 656e 0011 ld $11 656f 0000 ld $00 6570 000c ld $0c 6571 002b ld $2b 6572 0024 ld $24 6573 0011 ld $11 6574 00ff ld $ff 6575 00fe ld $fe 6576 0099 ld $99 6577 0054 ld $54 6578 002b ld $2b 6579 0028 ld $28 657a 001a ld $1a 657b 0006 ld $06 657c 0082 ld $82 657d 00c0 ld $c0 657e 005e ld $5e 657f 0026 ld $26 6580 00b4 ld $b4 6581 00cb ld $cb 6582 0093 ld $93 6583 0028 ld $28 6584 0016 ld $16 6585 0000 ld $00 6586 0026 ld $26 6587 00b4 ld $b4 6588 00cb ld $cb 6589 0093 ld $93 658a 0028 ld $28 658b 001a ld $1a 658c 0007 ld $07 658d 0082 ld $82 658e 00c0 ld $c0 658f 005e ld $5e 6590 0026 ld $26 6591 00b4 ld $b4 6592 00cb ld $cb 6593 0063 ld $63 6594 00ff ld $ff 6595 0075 ld $75 6596 004d ld $4d 6597 0014 ld $14 6598 00c6 ld $c6 6599 004d ld $4d 659a 005a ld $5a 659b 00c8 ld $c8 659c 004d ld $4d 659d 0000 ld $00 659e 00c4 ld $c4 659f 004d ld $4d 65a0 0000 ld $00 65a1 0082 ld $82 65a2 002d ld $2d 65a3 0084 ld $84 65a4 00c8 ld $c8 65a5 00c6 ld $c6 65a6 0085 ld $85 65a7 00a1 ld $a1 65a8 004f ld $4f 65a9 0042 ld $42 65aa 0030 ld $30 65ab 00c6 ld $c6 65ac 00c6 ld $c6 65ad 00a7 ld $a7 65ae 0002 ld $02 65af 00c4 ld $c4 65b0 0093 ld $93 65b1 00c4 ld $c4 65b2 00bd ld $bd 65b3 00b1 ld $b1 65b4 0005 ld $05 65b5 0063 ld $63 65b6 00ff ld $ff 65b7 0075 ld $75 65b8 0021 ld $21 65b9 005c ld $5c 65ba 00bb ld $bb 65bb 00ed ld $ed 65bc 0005 ld $05 65bd 0093 ld $93 65be 005e ld $5e 65bf 00c7 ld $c7 65c0 000a ld $0a 65c1 0075 ld $75 65c2 005e ld $5e 65c3 00bd ld $bd 65c4 00eb ld $eb 65c5 0005 ld $05 65c6 004d ld $4d 65c7 0011 ld $11 65c8 0082 ld $82 65c9 0065 ld $65 65ca 0084 ld $84 65cb 005c ld $5c 65cc 001c ld $1c 65cd 005d ld $5d 65ce 0085 ld $85 65cf 0008 ld $08 65d0 0085 ld $85 65d1 00a1 ld $a1 65d2 004f ld $4f 65d3 0059 ld $59 65d4 0000 ld $00 65d5 005e ld $5e 65d6 005e ld $5e 65d7 002b ld $2b 65d8 005c ld $5c 65d9 0063 ld $63 65da 00ff ld $ff 65db 001a ld $1a 65dc 0057 ld $57 65dd 00bd ld $bd 65de 00f4 ld $f4 65df 0005 ld $05 65e0 0063 ld $63 65e1 00ff ld $ff 65e2 001a ld $1a 65e3 0055 ld $55 65e4 00e6 ld $e6 65e5 000b ld $0b 65e6 002b ld $2b 65e7 00e8 ld $e8 65e8 0085 ld $85 65e9 0000 ld $00 65ea 0006 ld $06 65eb 0006 ld $06 65ec 0000 ld $00 65ed 0000 ld $00 65ee 00ab ld $ab 65ef 00ca ld $ca 65f0 00e8 ld $e8 65f1 003a ld $3a 65f2 0021 ld $21 65f3 00ca ld $ca 65f4 00c5 ld $c5 65f5 0009 ld $09 65f6 0006 ld $06 65f7 0063 ld $63 65f8 00ff ld $ff 65f9 001a ld $1a 65fa 0054 ld $54 65fb fe00 bra ac ;+-----------------------------------+ 65fc fcfd bra $65fd ;| | 65fd 1418 ld $18,y ;| Trampoline for page $6500 lookups | 65fe e006 jmp y,$06 ;| | 65ff c218 st [$18] ;+-----------------------------------+ 6600 00b8 ld $b8 6601 0038 ld $38 6602 002b ld $2b 6603 00c8 ld $c8 6604 0021 ld $21 6605 00c8 ld $c8 6606 00c5 ld $c5 6607 0016 ld $16 6608 0006 ld $06 6609 0063 ld $63 660a 00ff ld $ff 660b 0053 ld $53 660c 00c8 ld $c8 660d 0000 ld $00 660e 0004 ld $04 660f 002b ld $2b 6610 00c4 ld $c4 6611 0021 ld $21 6612 00c4 ld $c4 6613 00e6 ld $e6 6614 000a ld $0a 6615 00bf ld $bf 6616 009e ld $9e 6617 0008 ld $08 6618 0063 ld $63 6619 00ff ld $ff 661a 0085 ld $85 661b 00a0 ld $a0 661c 0008 ld $08 661d 00a6 ld $a6 661e 006e ld $6e 661f 00a6 ld $a6 6620 006d ld $6d 6621 00ba ld $ba 6622 006c ld $6c 6623 00b2 ld $b2 6624 006c ld $6c 6625 00aa ld $aa 6626 006c ld $6c 6627 00a2 ld $a2 6628 006c ld $6c 6629 00ba ld $ba 662a 006b ld $6b 662b 00b2 ld $b2 662c 006b ld $6b 662d 00aa ld $aa 662e 006b ld $6b 662f 00a2 ld $a2 6630 006b ld $6b 6631 00ba ld $ba 6632 006a ld $6a 6633 00b2 ld $b2 6634 006a ld $6a 6635 00aa ld $aa 6636 006a ld $6a 6637 00a2 ld $a2 6638 006a ld $6a 6639 00ba ld $ba 663a 0069 ld $69 663b 00b2 ld $b2 663c 0069 ld $69 663d 00aa ld $aa 663e 0069 ld $69 663f 00a2 ld $a2 6640 0069 ld $69 6641 00ba ld $ba 6642 0068 ld $68 6643 00b2 ld $b2 6644 0068 ld $68 6645 00aa ld $aa 6646 0068 ld $68 6647 00a2 ld $a2 6648 0068 ld $68 6649 00ba ld $ba 664a 0067 ld $67 664b 00b2 ld $b2 664c 0067 ld $67 664d 00aa ld $aa 664e 0067 ld $67 664f 00a2 ld $a2 6650 0067 ld $67 6651 00ba ld $ba 6652 0066 ld $66 6653 00b2 ld $b2 6654 0066 ld $66 6655 00aa ld $aa 6656 0066 ld $66 6657 00a2 ld $a2 6658 0066 ld $66 6659 00ae ld $ae 665a 0065 ld $65 665b 00a6 ld $a6 665c 0065 ld $65 665d 00a8 ld $a8 665e 0064 ld $64 665f 00a0 ld $a0 6660 0064 ld $64 6661 00a8 ld $a8 6662 0063 ld $63 6663 00a0 ld $a0 6664 0063 ld $63 6665 00ae ld $ae 6666 0062 ld $62 6667 00a6 ld $a6 6668 0062 ld $62 6669 00ae ld $ae 666a 0061 ld $61 666b 00a6 ld $a6 666c 0061 ld $61 666d 00ae ld $ae 666e 0060 ld $60 666f 00a6 ld $a6 6670 0060 ld $60 6671 00ae ld $ae 6672 005f ld $5f 6673 00a6 ld $a6 6674 005f ld $5f 6675 00ae ld $ae 6676 005e ld $5e 6677 00a6 ld $a6 6678 005e ld $5e 6679 00a2 ld $a2 667a 005d ld $5d 667b 00a2 ld $a2 667c 005c ld $5c 667d 00a2 ld $a2 667e 005b ld $5b 667f 00a2 ld $a2 6680 005a ld $5a 6681 00aa ld $aa 6682 0056 ld $56 6683 00a2 ld $a2 6684 0057 ld $57 6685 00f2 ld $f2 6686 0055 ld $55 6687 00a0 ld $a0 6688 0058 ld $58 6689 00a0 ld $a0 668a 0056 ld $56 668b 00e8 ld $e8 668c 0055 ld $55 668d 00de ld $de 668e 0055 ld $55 668f 00d4 ld $d4 6690 0055 ld $55 6691 00ca ld $ca 6692 0055 ld $55 6693 00c0 ld $c0 6694 0055 ld $55 6695 00b6 ld $b6 6696 0055 ld $55 6697 00ac ld $ac 6698 0055 ld $55 6699 00a2 ld $a2 669a 0055 ld $55 669b 00f6 ld $f6 669c 0054 ld $54 669d 00ec ld $ec 669e 0054 ld $54 669f 00e2 ld $e2 66a0 0054 ld $54 66a1 00d8 ld $d8 66a2 0054 ld $54 66a3 00ce ld $ce 66a4 0054 ld $54 66a5 00c4 ld $c4 66a6 0054 ld $54 66a7 00ba ld $ba 66a8 0054 ld $54 66a9 00b0 ld $b0 66aa 0054 ld $54 66ab 00a6 ld $a6 66ac 0054 ld $54 66ad 00a0 ld $a0 66ae 006d ld $6d 66af 00a0 ld $a0 66b0 0065 ld $65 66b1 00a0 ld $a0 66b2 0062 ld $62 66b3 00a0 ld $a0 66b4 0061 ld $61 66b5 00a0 ld $a0 66b6 0060 ld $60 66b7 00a0 ld $a0 66b8 005f ld $5f 66b9 00a0 ld $a0 66ba 005e ld $5e 66bb 00a0 ld $a0 66bc 0054 ld $54 66bd 00fa ld $fa 66be 0053 ld $53 66bf 00f4 ld $f4 66c0 0053 ld $53 66c1 00ee ld $ee 66c2 0053 ld $53 66c3 00e8 ld $e8 66c4 0053 ld $53 66c5 00e2 ld $e2 66c6 0053 ld $53 66c7 00dc ld $dc 66c8 0053 ld $53 66c9 00d6 ld $d6 66ca 0053 ld $53 66cb 00c8 ld $c8 66cc 0053 ld $53 66cd 00ba ld $ba 66ce 0053 ld $53 66cf 00ac ld $ac 66d0 0053 ld $53 66d1 00a6 ld $a6 66d2 0053 ld $53 66d3 00a0 ld $a0 66d4 0053 ld $53 66d5 00fa ld $fa 66d6 0052 ld $52 66d7 00f4 ld $f4 66d8 0052 ld $52 66d9 00ee ld $ee 66da 0052 ld $52 66db 00e8 ld $e8 66dc 0052 ld $52 66dd 00e2 ld $e2 66de 0052 ld $52 66df 00dc ld $dc 66e0 0052 ld $52 66e1 00d6 ld $d6 66e2 0052 ld $52 66e3 00d0 ld $d0 66e4 0052 ld $52 66e5 00c2 ld $c2 66e6 0052 ld $52 66e7 00b4 ld $b4 66e8 0052 ld $52 66e9 00a6 ld $a6 66ea 0052 ld $52 66eb 00f2 ld $f2 66ec 0051 ld $51 66ed 00e4 ld $e4 66ee 0051 ld $51 66ef 00d6 ld $d6 66f0 0051 ld $51 66f1 00c8 ld $c8 66f2 0051 ld $51 66f3 0008 ld $08 66f4 00a0 ld $a0 66f5 005f ld $5f 66f6 0053 ld $53 66f7 00ca ld $ca 66f8 0000 ld $00 66f9 0005 ld $05 66fa 002b ld $2b 66fb fe00 bra ac ;+-----------------------------------+ 66fc fcfd bra $66fd ;| | 66fd 1418 ld $18,y ;| Trampoline for page $6600 lookups | 66fe e006 jmp y,$06 ;| | 66ff c218 st [$18] ;+-----------------------------------+ 6700 00ea ld $ea 6701 0059 ld $59 6702 0004 ld $04 6703 00b8 ld $b8 6704 00ea ld $ea 6705 002b ld $2b 6706 00c6 ld $c6 6707 0021 ld $21 6708 00c6 ld $c6 6709 00e6 ld $e6 670a 0005 ld $05 670b 00bf ld $bf 670c 00b3 ld $b3 670d 0008 ld $08 670e 0063 ld $63 670f 00ff ld $ff 6710 0021 ld $21 6711 00c6 ld $c6 6712 00c5 ld $c5 6713 00ba ld $ba 6714 0008 ld $08 6715 0063 ld $63 6716 00ff ld $ff 6717 0032 ld $32 6718 0096 ld $96 6719 00c6 ld $c6 671a 0032 ld $32 671b 0098 ld $98 671c 00c4 ld $c4 671d 0011 ld $11 671e 00a0 ld $a0 671f 0059 ld $59 6720 0085 ld $85 6721 00d1 ld $d1 6722 004c ld $4c 6723 00f6 ld $f6 6724 002b ld $2b 6725 00cc ld $cc 6726 006f ld $6f 6727 00d2 ld $d2 6728 001a ld $1a 6729 00d3 ld $d3 672a 00bd ld $bd 672b 00d2 ld $d2 672c 0008 ld $08 672d 0063 ld $63 672e 00ff ld $ff 672f 0021 ld $21 6730 00cc ld $cc 6731 00e3 ld $e3 6732 0001 ld $01 6733 0025 ld $25 6734 0000 ld $00 6735 0016 ld $16 6736 0000 ld $00 6737 0056 ld $56 6738 0021 ld $21 6739 00cc ld $cc 673a 00e3 ld $e3 673b 0004 ld $04 673c 006f ld $6f 673d 00ce ld $ce 673e 0021 ld $21 673f 00cc ld $cc 6740 00e3 ld $e3 6741 0006 ld $06 6742 006f ld $6f 6743 00d0 ld $d0 6744 0042 ld $42 6745 0006 ld $06 6746 00e8 ld $e8 6747 00ce ld $ce 6748 007d ld $7d 6749 00d0 ld $d0 674a 0042 ld $42 674b 0004 ld $04 674c 00e8 ld $e8 674d 00d0 ld $d0 674e 007d ld $7d 674f 00ce ld $ce 6750 0021 ld $21 6751 0044 ld $44 6752 00fc ld $fc 6753 00cc ld $cc 6754 00bd ld $bd 6755 00a1 ld $a1 6756 0009 ld $09 6757 0085 ld $85 6758 00a0 ld $a0 6759 0009 ld $09 675a 0009 ld $09 675b 00a0 ld $a0 675c 005f ld $5f 675d 0032 ld $32 675e 0044 ld $44 675f 00d0 ld $d0 6760 0032 ld $32 6761 0096 ld $96 6762 00c6 ld $c6 6763 0032 ld $32 6764 0098 ld $98 6765 00c4 ld $c4 6766 0011 ld $11 6767 00a4 ld $a4 6768 0070 ld $70 6769 0085 ld $85 676a 00d1 ld $d1 676b 004c ld $4c 676c 00e3 ld $e3 676d 0001 ld $01 676e 00ad ld $ad 676f 002b ld $2b 6770 004e ld $4e 6771 0032 ld $32 6772 0096 ld $96 6773 00c6 ld $c6 6774 0032 ld $32 6775 0098 ld $98 6776 00c4 ld $c4 6777 0011 ld $11 6778 00a4 ld $a4 6779 0070 ld $70 677a 0085 ld $85 677b 00d1 ld $d1 677c 004c ld $4c 677d 00f6 ld $f6 677e 00c7 ld $c7 677f 0080 ld $80 6780 0021 ld $21 6781 0000 ld $00 6782 002b ld $2b 6783 009c ld $9c 6784 0032 ld $32 6785 0096 ld $96 6786 00c6 ld $c6 6787 0032 ld $32 6788 0098 ld $98 6789 00c4 ld $c4 678a 0011 ld $11 678b 00a4 ld $a4 678c 0070 ld $70 678d 0085 ld $85 678e 00d1 ld $d1 678f 004c ld $4c 6790 007d ld $7d 6791 009c ld $9c 6792 00c7 ld $c7 6793 0080 ld $80 6794 006f ld $6f 6795 00d2 ld $d2 6796 00bb ld $bb 6797 00e0 ld $e0 6798 0009 ld $09 6799 005b ld $5b 679a 00ce ld $ce 679b 0088 ld $88 679c 0080 ld $80 679d 00f0 ld $f0 679e 00ce ld $ce 679f 0085 ld $85 67a0 00f9 ld $f9 67a1 0011 ld $11 67a2 0021 ld $21 67a3 00c4 ld $c4 67a4 00e9 ld $e9 67a5 00e9 ld $e9 67a6 00e9 ld $e9 67a7 002b ld $2b 67a8 00ea ld $ea 67a9 0021 ld $21 67aa 00c4 ld $c4 67ab 00e9 ld $e9 67ac 00e9 ld $e9 67ad 0099 ld $99 67ae 00ea ld $ea 67af 0099 ld $99 67b0 0038 ld $38 67b1 002b ld $2b 67b2 00c8 ld $c8 67b3 0059 ld $59 67b4 0004 ld $04 67b5 00b8 ld $b8 67b6 00c6 ld $c6 67b7 002b ld $2b 67b8 00c6 ld $c6 67b9 0085 ld $85 67ba 00a0 ld $a0 67bb 000a ld $0a 67bc 000a ld $0a 67bd 00a0 ld $a0 67be 0060 ld $60 67bf 0021 ld $21 67c0 00c6 ld $c6 67c1 00e9 ld $e9 67c2 00e9 ld $e9 67c3 00e9 ld $e9 67c4 0099 ld $99 67c5 00c6 ld $c6 67c6 0099 ld $99 67c7 00c6 ld $c6 67c8 002b ld $2b 67c9 00ea ld $ea 67ca 00ab ld $ab 67cb 00ca ld $ca 67cc 00ea ld $ea 67cd 003a ld $3a 67ce 0021 ld $21 67cf 0040 ld $40 67d0 00c3 ld $c3 67d1 00bf ld $bf 67d2 000a ld $0a 67d3 004d ld $4d 67d4 0012 ld $12 67d5 0082 ld $82 67d6 002d ld $2d 67d7 0084 ld $84 67d8 00ca ld $ca 67d9 00c8 ld $c8 67da 0085 ld $85 67db 00a1 ld $a1 67dc 004f ld $4f 67dd 0085 ld $85 67de 00cb ld $cb 67df 000a ld $0a 67e0 004d ld $4d 67e1 0013 ld $13 67e2 0082 ld $82 67e3 002d ld $2d 67e4 0084 ld $84 67e5 00ca ld $ca 67e6 00c8 ld $c8 67e7 0085 ld $85 67e8 00f4 ld $f4 67e9 004c ld $4c 67ea 004d ld $4d 67eb 0000 ld $00 67ec 005e ld $5e 67ed 002f ld $2f 67ee 00ca ld $ca 67ef 005e ld $5e 67f0 0099 ld $99 67f1 00c8 ld $c8 67f2 002b ld $2b 67f3 005c ld $5c 67f4 0085 ld $85 67f5 00be ld $be 67f6 001b ld $1b 67f7 0021 ld $21 67f8 0050 ld $50 67f9 00bb ld $bb 67fa 00e8 ld $e8 67fb fe00 bra ac ;+-----------------------------------+ 67fc fcfd bra $67fd ;| | 67fd 1418 ld $18,y ;| Trampoline for page $6700 lookups | 67fe e006 jmp y,$06 ;| | 67ff c218 st [$18] ;+-----------------------------------+ 6800 000a ld $0a 6801 004d ld $4d 6802 0011 ld $11 6803 0082 ld $82 6804 0065 ld $65 6805 0084 ld $84 6806 00c8 ld $c8 6807 0038 ld $38 6808 0002 ld $02 6809 0085 ld $85 680a 00ca ld $ca 680b 0085 ld $85 680c 00a1 ld $a1 680d 004f ld $4f 680e 0093 ld $93 680f 0059 ld $59 6810 0063 ld $63 6811 00ff ld $ff 6812 0075 ld $75 6813 004d ld $4d 6814 0000 ld $00 6815 005a ld $5a 6816 003f ld $3f 6817 005a ld $5a 6818 00a0 ld $a0 6819 006e ld $6e 681a 002b ld $2b 681b 00c4 ld $c4 681c 0021 ld $21 681d 00c4 ld $c4 681e 00bb ld $bb 681f 00a4 ld $a4 6820 000b ld $0b 6821 0085 ld $85 6822 00a0 ld $a0 6823 000b ld $0b 6824 000b ld $0b 6825 00a0 ld $a0 6826 005f ld $5f 6827 0032 ld $32 6828 00c4 ld $c4 6829 00c4 ld $c4 682a 0085 ld $85 682b 00e3 ld $e3 682c 0011 ld $11 682d 0059 ld $59 682e 0000 ld $00 682f 0051 ld $51 6830 005a ld $5a 6831 00a0 ld $a0 6832 006e ld $6e 6833 00a7 ld $a7 6834 0002 ld $02 6835 005a ld $5a 6836 0093 ld $93 6837 005a ld $5a 6838 00bd ld $bd 6839 00f0 ld $f0 683a 000a ld $0a 683b 0059 ld $59 683c 0000 ld $00 683d 002b ld $2b 683e 00c6 ld $c6 683f 002b ld $2b 6840 00c8 ld $c8 6841 004d ld $4d 6842 003f ld $3f 6843 00ca ld $ca 6844 0021 ld $21 6845 00c6 ld $c6 6846 00e9 ld $e9 6847 00c7 ld $c7 6848 007d ld $7d 6849 001b ld $1b 684a 00a0 ld $a0 684b 006f ld $6f 684c 00c8 ld $c8 684d 0016 ld $16 684e 0001 ld $01 684f 0093 ld $93 6850 0032 ld $32 6851 0094 ld $94 6852 00c8 ld $c8 6853 0032 ld $32 6854 0096 ld $96 6855 00ca ld $ca 6856 004d ld $4d 6857 0000 ld $00 6858 0098 ld $98 6859 0085 ld $85 685a 00d7 ld $d7 685b 004d ld $4d 685c 0016 ld $16 685d 0002 ld $02 685e 0093 ld $93 685f 0032 ld $32 6860 0094 ld $94 6861 00c8 ld $c8 6862 0032 ld $32 6863 0096 ld $96 6864 00ca ld $ca 6865 004d ld $4d 6866 0000 ld $00 6867 0098 ld $98 6868 0085 ld $85 6869 00d7 ld $d7 686a 004d ld $4d 686b 0016 ld $16 686c 0003 ld $03 686d 0093 ld $93 686e 0032 ld $32 686f 0094 ld $94 6870 00c8 ld $c8 6871 0032 ld $32 6872 0096 ld $96 6873 00ca ld $ca 6874 004d ld $4d 6875 0000 ld $00 6876 0098 ld $98 6877 0085 ld $85 6878 00d7 ld $d7 6879 004d ld $4d 687a 0016 ld $16 687b 0004 ld $04 687c 0093 ld $93 687d 0032 ld $32 687e 0094 ld $94 687f 00c8 ld $c8 6880 0032 ld $32 6881 0096 ld $96 6882 00ca ld $ca 6883 0085 ld $85 6884 00a0 ld $a0 6885 000c ld $0c 6886 000c ld $0c 6887 00a0 ld $a0 6888 005f ld $5f 6889 004d ld $4d 688a 0000 ld $00 688b 0098 ld $98 688c 0085 ld $85 688d 00d7 ld $d7 688e 004d ld $4d 688f 0093 ld $93 6890 00c6 ld $c6 6891 00a7 ld $a7 6892 0020 ld $20 6893 00c6 ld $c6 6894 00bd ld $bd 6895 00af ld $af 6896 000c ld $0c 6897 004d ld $4d 6898 0000 ld $00 6899 00c6 ld $c6 689a 0021 ld $21 689b 00ca ld $ca 689c 002f ld $2f 689d 0018 ld $18 689e 0073 ld $73 689f 002f ld $2f 68a0 0018 ld $18 68a1 0073 ld $73 68a2 0082 ld $82 68a3 0001 ld $01 68a4 00e3 ld $e3 68a5 0014 ld $14 68a6 002b ld $2b 68a7 0082 ld $82 68a8 002d ld $2d 68a9 0084 ld $84 68aa 0036 ld $36 68ab 0034 ld $34 68ac 0085 ld $85 68ad 00a1 ld $a1 68ae 004f ld $4f 68af 002f ld $2f 68b0 00d6 ld $d6 68b1 006e ld $6e 68b2 004a ld $4a 68b3 00ca ld $ca 68b4 00bb ld $bb 68b5 000b ld $0b 68b6 0085 ld $85 68b7 00a0 ld $a0 68b8 0050 ld $50 68b9 0063 ld $63 68ba 00ff ld $ff 68bb 0075 ld $75 68bc 00a7 ld $a7 68bd 0003 ld $03 68be 004b ld $4b 68bf 00c5 ld $c5 68c0 00d9 ld $d9 68c1 000c ld $0c 68c2 0063 ld $63 68c3 00ff ld $ff 68c4 004d ld $4d 68c5 0000 ld $00 68c6 005a ld $5a 68c7 003f ld $3f 68c8 005a ld $5a 68c9 00a0 ld $a0 68ca 006e ld $6e 68cb 002b ld $2b 68cc 00c4 ld $c4 68cd 0021 ld $21 68ce 00c4 ld $c4 68cf 00bb ld $bb 68d0 00dc ld $dc 68d1 000d ld $0d 68d2 0011 ld $11 68d3 00e1 ld $e1 68d4 0004 ld $04 68d5 002b ld $2b 68d6 0022 ld $22 68d7 0011 ld $11 68d8 0000 ld $00 68d9 003f ld $3f 68da 002b ld $2b 68db 0024 ld $24 68dc 0021 ld $21 68dd 00c4 ld $c4 68de 002b ld $2b 68df 0028 ld $28 68e0 0016 ld $16 68e1 001f ld $1f 68e2 0026 ld $26 68e3 00b4 ld $b4 68e4 00cb ld $cb 68e5 0085 ld $85 68e6 00a0 ld $a0 68e7 000d ld $0d 68e8 000d ld $0d 68e9 00a0 ld $a0 68ea 005f ld $5f 68eb 0093 ld $93 68ec 00c5 ld $c5 68ed 00a7 ld $a7 68ee 0079 ld $79 68ef 00c5 ld $c5 68f0 00bf ld $bf 68f1 00b1 ld $b1 68f2 000d ld $0d 68f3 0016 ld $16 68f4 0000 ld $00 68f5 0026 ld $26 68f6 00b4 ld $b4 68f7 00cb ld $cb 68f8 004d ld $4d 68f9 0000 ld $00 68fa 00c4 ld $c4 68fb fe00 bra ac ;+-----------------------------------+ 68fc fcfd bra $68fd ;| | 68fd 1418 ld $18,y ;| Trampoline for page $6800 lookups | 68fe e006 jmp y,$06 ;| | 68ff c218 st [$18] ;+-----------------------------------+ 6900 0085 ld $85 6901 00db ld $db 6902 000d ld $0d 6903 0021 ld $21 6904 00c4 ld $c4 6905 00c7 ld $c7 6906 0007 ld $07 6907 001b ld $1b 6908 0000 ld $00 6909 00ad ld $ad 690a 008c ld $8c 690b 000c ld $0c 690c 00bd ld $bd 690d 00d9 ld $d9 690e 000d ld $0d 690f 0016 ld $16 6910 0000 ld $00 6911 0026 ld $26 6912 00b4 ld $b4 6913 00cb ld $cb 6914 00a7 ld $a7 6915 0072 ld $72 6916 00c5 ld $c5 6917 00c3 ld $c3 6918 00d3 ld $d3 6919 000d ld $0d 691a 0059 ld $59 691b 0000 ld $00 691c 0051 ld $51 691d 005a ld $5a 691e 00a0 ld $a0 691f 006e ld $6e 6920 0085 ld $85 6921 00e3 ld $e3 6922 0012 ld $12 6923 0063 ld $63 6924 00ff ld $ff 6925 0085 ld $85 6926 00b2 ld $b2 6927 0012 ld $12 6928 004d ld $4d 6929 0000 ld $00 692a 00c4 ld $c4 692b 0085 ld $85 692c 00e4 ld $e4 692d 000d ld $0d 692e 0032 ld $32 692f 00c4 ld $c4 6930 00c4 ld $c4 6931 0085 ld $85 6932 00c3 ld $c3 6933 000e ld $0e 6934 0021 ld $21 6935 00c4 ld $c4 6936 0051 ld $51 6937 005a ld $5a 6938 00a0 ld $a0 6939 006e ld $6e 693a 00a7 ld $a7 693b 0002 ld $02 693c 005a ld $5a 693d 0093 ld $93 693e 005a ld $5a 693f 00bd ld $bd 6940 00dc ld $dc 6941 000c ld $0c 6942 0063 ld $63 6943 00ff ld $ff 6944 0075 ld $75 6945 00c7 ld $c7 6946 0032 ld $32 6947 0075 ld $75 6948 0059 ld $59 6949 00bd ld $bd 694a 00bf ld $bf 694b 000e ld $0e 694c 0085 ld $85 694d 00a0 ld $a0 694e 000e ld $0e 694f 000e ld $0e 6950 00a0 ld $a0 6951 005e ld $5e 6952 0059 ld $59 6953 0000 ld $00 6954 002b ld $2b 6955 0044 ld $44 6956 002b ld $2b 6957 0046 ld $46 6958 0021 ld $21 6959 005c ld $5c 695a 00bd ld $bd 695b 00bf ld $bf 695c 000e ld $0e 695d 0021 ld $21 695e 0072 ld $72 695f 00bd ld $bd 6960 00bf ld $bf 6961 000e ld $0e 6962 0016 ld $16 6963 0001 ld $01 6964 0052 ld $52 6965 0093 ld $93 6966 0032 ld $32 6967 00a7 ld $a7 6968 0001 ld $01 6969 0033 ld $33 696a 00c3 ld $c3 696b 00bb ld $bb 696c 000e ld $0e 696d 0018 ld $18 696e 0033 ld $33 696f 001c ld $1c 6970 0030 ld $30 6971 0030 ld $30 6972 0004 ld $04 6973 0063 ld $63 6974 00ff ld $ff 6975 0075 ld $75 6976 0021 ld $21 6977 0046 ld $46 6978 00bd ld $bd 6979 00c9 ld $c9 697a 000e ld $0e 697b 0063 ld $63 697c 00ff ld $ff 697d 0021 ld $21 697e 0046 ld $46 697f 00e3 ld $e3 6980 0006 ld $06 6981 006f ld $6f 6982 0046 ld $46 6983 00b1 ld $b1 6984 002f ld $2f 6985 002f ld $2f 6986 0033 ld $33 6987 0019 ld $19 6988 00bb ld $bb 6989 00dc ld $dc 698a 000e ld $0e 698b 004d ld $4d 698c 0000 ld $00 698d 00c4 ld $c4 698e 0063 ld $63 698f 00ff ld $ff 6990 005b ld $5b 6991 0046 ld $46 6992 0082 ld $82 6993 000f ld $0f 6994 002b ld $2b 6995 00c6 ld $c6 6996 005b ld $5b 6997 0046 ld $46 6998 002b ld $2b 6999 00a0 ld $a0 699a 0085 ld $85 699b 00a0 ld $a0 699c 004d ld $4d 699d 0082 ld $82 699e 0007 ld $07 699f 002b ld $2b 69a0 00c8 ld $c8 69a1 0021 ld $21 69a2 0046 ld $46 69a3 00e3 ld $e3 69a4 0002 ld $02 69a5 006f ld $6f 69a6 00ca ld $ca 69a7 00a7 ld $a7 69a8 0004 ld $04 69a9 00c8 ld $c8 69aa 00bd ld $bd 69ab 00cc ld $cc 69ac 000f ld $0f 69ad 0085 ld $85 69ae 00a0 ld $a0 69af 000f ld $0f 69b0 000f ld $0f 69b1 00a0 ld $a0 69b2 0060 ld $60 69b3 0032 ld $32 69b4 0096 ld $96 69b5 00c8 ld $c8 69b6 0032 ld $32 69b7 0098 ld $98 69b8 00c6 ld $c6 69b9 0011 ld $11 69ba 00a4 ld $a4 69bb 0070 ld $70 69bc 0085 ld $85 69bd 00d1 ld $d1 69be 004c ld $4c 69bf 00f6 ld $f6 69c0 00c7 ld $c7 69c1 0080 ld $80 69c2 001f ld $1f 69c3 0000 ld $00 69c4 00bd ld $bd 69c5 00c9 ld $c9 69c6 000f ld $0f 69c7 0021 ld $21 69c8 0038 ld $38 69c9 002f ld $2f 69ca 00ca ld $ca 69cb 0060 ld $60 69cc 00e3 ld $e3 69cd 0005 ld $05 69ce 002b ld $2b 69cf 00e8 ld $e8 69d0 0021 ld $21 69d1 003a ld $3a 69d2 002f ld $2f 69d3 00cb ld $cb 69d4 0062 ld $62 69d5 00e3 ld $e3 69d6 000e ld $0e 69d7 002f ld $2f 69d8 0018 ld $18 69d9 005e ld $5e 69da 0099 ld $99 69db 00e8 ld $e8 69dc 002b ld $2b 69dd 00c4 ld $c4 69de 0085 ld $85 69df 00fa ld $fa 69e0 000f ld $0f 69e1 0042 ld $42 69e2 0001 ld $01 69e3 0096 ld $96 69e4 00c8 ld $c8 69e5 0032 ld $32 69e6 0098 ld $98 69e7 00c6 ld $c6 69e8 0011 ld $11 69e9 00a4 ld $a4 69ea 0070 ld $70 69eb 0085 ld $85 69ec 00d1 ld $d1 69ed 004c ld $4c 69ee 00f6 ld $f6 69ef 00c7 ld $c7 69f0 0080 ld $80 69f1 001f ld $1f 69f2 0000 ld $00 69f3 00bb ld $bb 69f4 00f8 ld $f8 69f5 000f ld $0f 69f6 0021 ld $21 69f7 0038 ld $38 69f8 002f ld $2f 69f9 00ca ld $ca 69fa 0060 ld $60 69fb fe00 bra ac ;+-----------------------------------+ 69fc fcfd bra $69fd ;| | 69fd 1418 ld $18,y ;| Trampoline for page $6900 lookups | 69fe e006 jmp y,$06 ;| | 69ff c218 st [$18] ;+-----------------------------------+ 6a00 00e3 ld $e3 6a01 0005 ld $05 6a02 002b ld $2b 6a03 00e8 ld $e8 6a04 0021 ld $21 6a05 003a ld $3a 6a06 002f ld $2f 6a07 00cb ld $cb 6a08 0062 ld $62 6a09 00e3 ld $e3 6a0a 000e ld $0e 6a0b 002f ld $2f 6a0c 0018 ld $18 6a0d 005e ld $5e 6a0e 0099 ld $99 6a0f 00e8 ld $e8 6a10 002b ld $2b 6a11 00c4 ld $c4 6a12 0063 ld $63 6a13 00ff ld $ff 6a14 0075 ld $75 6a15 0085 ld $85 6a16 00a0 ld $a0 6a17 0010 ld $10 6a18 0010 ld $10 6a19 00a0 ld $a0 6a1a 005f ld $5f 6a1b 0021 ld $21 6a1c 0060 ld $60 6a1d 00bb ld $bb 6a1e 00cd ld $cd 6a1f 0010 ld $10 6a20 004d ld $4d 6a21 0016 ld $16 6a22 0082 ld $82 6a23 0065 ld $65 6a24 0084 ld $84 6a25 0060 ld $60 6a26 001c ld $1c 6a27 0061 ld $61 6a28 0085 ld $85 6a29 0008 ld $08 6a2a 0085 ld $85 6a2b 00a1 ld $a1 6a2c 004f ld $4f 6a2d 0093 ld $93 6a2e 0062 ld $62 6a2f 00a7 ld $a7 6a30 0008 ld $08 6a31 0062 ld $62 6a32 00bd ld $bd 6a33 00cb ld $cb 6a34 0010 ld $10 6a35 004d ld $4d 6a36 0017 ld $17 6a37 0082 ld $82 6a38 0065 ld $65 6a39 0084 ld $84 6a3a 0060 ld $60 6a3b 001c ld $1c 6a3c 0061 ld $61 6a3d 0085 ld $85 6a3e 0008 ld $08 6a3f 0085 ld $85 6a40 00a1 ld $a1 6a41 004f ld $4f 6a42 0059 ld $59 6a43 0000 ld $00 6a44 002b ld $2b 6a45 0062 ld $62 6a46 002b ld $2b 6a47 0060 ld $60 6a48 0063 ld $63 6a49 00ff ld $ff 6a4a 0021 ld $21 6a4b 005c ld $5c 6a4c 00bb ld $bb 6a4d 00d4 ld $d4 6a4e 0010 ld $10 6a4f 0063 ld $63 6a50 00ff ld $ff 6a51 001a ld $1a 6a52 0057 ld $57 6a53 00bd ld $bd 6a54 00db ld $db 6a55 0010 ld $10 6a56 0063 ld $63 6a57 00ff ld $ff 6a58 0021 ld $21 6a59 0054 ld $54 6a5a 00c7 ld $c7 6a5b 0001 ld $01 6a5c 001d ld $1d 6a5d 0000 ld $00 6a5e 00ad ld $ad 6a5f 008c ld $8c 6a60 003f ld $3f 6a61 00bd ld $bd 6a62 00bf ld $bf 6a63 0011 ld $11 6a64 004d ld $4d 6a65 0000 ld $00 6a66 005a ld $5a 6a67 003f ld $3f 6a68 005a ld $5a 6a69 00a0 ld $a0 6a6a 006e ld $6e 6a6b 002b ld $2b 6a6c 00c4 ld $c4 6a6d 0021 ld $21 6a6e 00c4 ld $c4 6a6f 00bb ld $bb 6a70 00b7 ld $b7 6a71 0011 ld $11 6a72 001a ld $1a 6a73 00c4 ld $c4 6a74 002f ld $2f 6a75 0054 ld $54 6a76 001f ld $1f 6a77 0085 ld $85 6a78 00a0 ld $a0 6a79 0011 ld $11 6a7a 0011 ld $11 6a7b 00a0 ld $a0 6a7c 0060 ld $60 6a7d 00bd ld $bd 6a7e 00b7 ld $b7 6a7f 0011 ld $11 6a80 0032 ld $32 6a81 00c4 ld $c4 6a82 00c4 ld $c4 6a83 0085 ld $85 6a84 00e3 ld $e3 6a85 0011 ld $11 6a86 0059 ld $59 6a87 0000 ld $00 6a88 0051 ld $51 6a89 005a ld $5a 6a8a 00a0 ld $a0 6a8b 006e ld $6e 6a8c 0021 ld $21 6a8d 0054 ld $54 6a8e 00c7 ld $c7 6a8f 000b ld $0b 6a90 001d ld $1d 6a91 0003 ld $03 6a92 002b ld $2b 6a93 0060 ld $60 6a94 0063 ld $63 6a95 00ff ld $ff 6a96 00a7 ld $a7 6a97 0002 ld $02 6a98 005a ld $5a 6a99 0093 ld $93 6a9a 005a ld $5a 6a9b 00bd ld $bd 6a9c 00ea ld $ea 6a9d 0010 ld $10 6a9e 0063 ld $63 6a9f 00ff ld $ff 6aa0 0075 ld $75 6aa1 005b ld $5b 6aa2 0054 ld $54 6aa3 008c ld $8c 6aa4 000c ld $0c 6aa5 00bd ld $bd 6aa6 00d2 ld $d2 6aa7 0011 ld $11 6aa8 0016 ld $16 6aa9 0000 ld $00 6aaa 0056 ld $56 6aab 0085 ld $85 6aac 0081 ld $81 6aad 0005 ld $05 6aae 0085 ld $85 6aaf 00e1 ld $e1 6ab0 0011 ld $11 6ab1 005b ld $5b 6ab2 0054 ld $54 6ab3 008c ld $8c 6ab4 0003 ld $03 6ab5 00bd ld $bd 6ab6 00df ld $df 6ab7 0011 ld $11 6ab8 0016 ld $16 6ab9 0000 ld $00 6aba 0056 ld $56 6abb 004d ld $4d 6abc 0001 ld $01 6abd 006c ld $6c 6abe 0063 ld $63 6abf 00ff ld $ff 6ac0 0075 ld $75 6ac1 0011 ld $11 6ac2 00e1 ld $e1 6ac3 0004 ld $04 6ac4 002b ld $2b 6ac5 0022 ld $22 6ac6 0011 ld $11 6ac7 0000 ld $00 6ac8 003f ld $3f 6ac9 002b ld $2b 6aca 0024 ld $24 6acb 0021 ld $21 6acc 00c4 ld $c4 6acd 002b ld $2b 6ace 0028 ld $28 6acf 0016 ld $16 6ad0 0000 ld $00 6ad1 0026 ld $26 6ad2 00b4 ld $b4 6ad3 00cb ld $cb 6ad4 0063 ld $63 6ad5 00ff ld $ff 6ad6 0075 ld $75 6ad7 0011 ld $11 6ad8 00e1 ld $e1 6ad9 0004 ld $04 6ada 0085 ld $85 6adb 00a0 ld $a0 6adc 0012 ld $12 6add 0012 ld $12 6ade 00a0 ld $a0 6adf 005f ld $5f 6ae0 002b ld $2b 6ae1 0022 ld $22 6ae2 0011 ld $11 6ae3 0000 ld $00 6ae4 003f ld $3f 6ae5 002b ld $2b 6ae6 0024 ld $24 6ae7 0021 ld $21 6ae8 0054 ld $54 6ae9 002b ld $2b 6aea 0028 ld $28 6aeb 0016 ld $16 6aec 0000 ld $00 6aed 0026 ld $26 6aee 00b4 ld $b4 6aef 00cb ld $cb 6af0 0063 ld $63 6af1 00ff ld $ff 6af2 0075 ld $75 6af3 0011 ld $11 6af4 0000 ld $00 6af5 000c ld $0c 6af6 002b ld $2b 6af7 0024 ld $24 6af8 0011 ld $11 6af9 00ff ld $ff 6afa 0002 ld $02 6afb fe00 bra ac ;+-----------------------------------+ 6afc fcfd bra $6afd ;| | 6afd 1418 ld $18,y ;| Trampoline for page $6a00 lookups | 6afe e006 jmp y,$06 ;| | 6aff c218 st [$18] ;+-----------------------------------+ 6b00 0099 ld $99 6b01 00c4 ld $c4 6b02 002b ld $2b 6b03 0028 ld $28 6b04 001a ld $1a 6b05 0006 ld $06 6b06 0082 ld $82 6b07 0003 ld $03 6b08 005e ld $5e 6b09 0026 ld $26 6b0a 00b4 ld $b4 6b0b 00cb ld $cb 6b0c 0093 ld $93 6b0d 0028 ld $28 6b0e 0016 ld $16 6b0f 0000 ld $00 6b10 0026 ld $26 6b11 00b4 ld $b4 6b12 00cb ld $cb 6b13 0093 ld $93 6b14 0028 ld $28 6b15 001a ld $1a 6b16 0007 ld $07 6b17 0082 ld $82 6b18 0003 ld $03 6b19 005e ld $5e 6b1a 0026 ld $26 6b1b 00b4 ld $b4 6b1c 00cb ld $cb 6b1d 0063 ld $63 6b1e 00ff ld $ff 6b1f 0075 ld $75 6b20 0016 ld $16 6b21 0001 ld $01 6b22 0053 ld $53 6b23 0085 ld $85 6b24 00ee ld $ee 6b25 000a ld $0a 6b26 0063 ld $63 6b27 00ff ld $ff 6b28 0075 ld $75 6b29 0014 ld $14 6b2a 0031 ld $31 6b2b 0085 ld $85 6b2c 00f8 ld $f8 6b2d 001d ld $1d 6b2e 0085 ld $85 6b2f 00ee ld $ee 6b30 000a ld $0a 6b31 001a ld $1a 6b32 0031 ld $31 6b33 00bd ld $bd 6b34 00f2 ld $f2 6b35 0012 ld $12 6b36 0016 ld $16 6b37 0001 ld $01 6b38 0053 ld $53 6b39 0063 ld $63 6b3a 00ff ld $ff 6b3b 0075 ld $75 6b3c 0021 ld $21 6b3d 004e ld $4e 6b3e 00bd ld $bd 6b3f 00a0 ld $a0 6b40 0013 ld $13 6b41 0085 ld $85 6b42 00a0 ld $a0 6b43 0013 ld $13 6b44 0013 ld $13 6b45 00a0 ld $a0 6b46 0060 ld $60 6b47 0063 ld $63 6b48 00ff ld $ff 6b49 0011 ld $11 6b4a 00b7 ld $b7 6b4b 0071 ld $71 6b4c 002b ld $2b 6b4d 0096 ld $96 6b4e 0021 ld $21 6b4f 004e ld $4e 6b50 00e6 ld $e6 6b51 0001 ld $01 6b52 00c7 ld $c7 6b53 0075 ld $75 6b54 001b ld $1b 6b55 00a1 ld $a1 6b56 00ad ld $ad 6b57 0085 ld $85 6b58 00db ld $db 6b59 004e ld $4e 6b5a 0085 ld $85 6b5b 00ce ld $ce 6b5c 001b ld $1b 6b5d 004d ld $4d 6b5e 0000 ld $00 6b5f 004e ld $4e 6b60 0063 ld $63 6b61 00ff ld $ff 6b62 0075 ld $75 6b63 0093 ld $93 6b64 004a ld $4a 6b65 00c7 ld $c7 6b66 003c ld $3c 6b67 0075 ld $75 6b68 004a ld $4a 6b69 00bd ld $bd 6b6a 00c8 ld $c8 6b6b 0013 ld $13 6b6c 0016 ld $16 6b6d 0000 ld $00 6b6e 004a ld $4a 6b6f 0093 ld $93 6b70 004b ld $4b 6b71 0063 ld $63 6b72 00ff ld $ff 6b73 0075 ld $75 6b74 00a7 ld $a7 6b75 0038 ld $38 6b76 003a ld $3a 6b77 00bd ld $bd 6b78 00d3 ld $d3 6b79 0013 ld $13 6b7a 0063 ld $63 6b7b 00ff ld $ff 6b7c 0021 ld $21 6b7d 006c ld $6c 6b7e 00bb ld $bb 6b7f 00a3 ld $a3 6b80 0014 ld $14 6b81 0016 ld $16 6b82 0000 ld $00 6b83 0056 ld $56 6b84 0065 ld $65 6b85 006a ld $6a 6b86 0064 ld $64 6b87 00c7 ld $c7 6b88 000f ld $0f 6b89 006f ld $6f 6b8a 0058 ld $58 6b8b 0079 ld $79 6b8c 00cc ld $cc 6b8d 0056 ld $56 6b8e 006f ld $6f 6b8f 00c8 ld $c8 6b90 0011 ld $11 6b91 00b7 ld $b7 6b92 0071 ld $71 6b93 002b ld $2b 6b94 0096 ld $96 6b95 0021 ld $21 6b96 00c8 ld $c8 6b97 0085 ld $85 6b98 00db ld $db 6b99 004e ld $4e 6b9a 0011 ld $11 6b9b 00a0 ld $a0 6b9c 007b ld $7b 6b9d 002b ld $2b 6b9e 0096 ld $96 6b9f 0021 ld $21 6ba0 00c8 ld $c8 6ba1 0085 ld $85 6ba2 00db ld $db 6ba3 004e ld $4e 6ba4 0085 ld $85 6ba5 00a0 ld $a0 6ba6 0014 ld $14 6ba7 0014 ld $14 6ba8 00a0 ld $a0 6ba9 005f ld $5f 6baa 0085 ld $85 6bab 00ce ld $ce 6bac 001b ld $1b 6bad 0063 ld $63 6bae 00ff ld $ff 6baf 00c7 ld $c7 6bb0 0001 ld $01 6bb1 006f ld $6f 6bb2 004a ld $4a 6bb3 00bb ld $bb 6bb4 00ac ld $ac 6bb5 0014 ld $14 6bb6 0063 ld $63 6bb7 00ff ld $ff 6bb8 00a7 ld $a7 6bb9 001c ld $1c 6bba 004b ld $4b 6bbb 00bf ld $bf 6bbc 00d2 ld $d2 6bbd 0014 ld $14 6bbe 0016 ld $16 6bbf 0003 ld $03 6bc0 004b ld $4b 6bc1 00c7 ld $c7 6bc2 0001 ld $01 6bc3 006f ld $6f 6bc4 0058 ld $58 6bc5 002b ld $2b 6bc6 00c6 ld $c6 6bc7 0053 ld $53 6bc8 00c6 ld $c6 6bc9 00c8 ld $c8 6bca 007e ld $7e 6bcb 00c7 ld $c7 6bcc 0009 ld $09 6bcd 001b ld $1b 6bce 0000 ld $00 6bcf 002b ld $2b 6bd0 0064 ld $64 6bd1 0021 ld $21 6bd2 00c6 ld $c6 6bd3 00bb ld $bb 6bd4 00d2 ld $d2 6bd5 0014 ld $14 6bd6 0021 ld $21 6bd7 0064 ld $64 6bd8 00c7 ld $c7 6bd9 0080 ld $80 6bda 0021 ld $21 6bdb 0000 ld $00 6bdc 002b ld $2b 6bdd 0064 ld $64 6bde 0021 ld $21 6bdf 006a ld $6a 6be0 00bb ld $bb 6be1 00e5 ld $e5 6be2 0015 ld $15 6be3 00a7 ld $a7 6be4 000f ld $0f 6be5 006b ld $6b 6be6 00c5 ld $c5 6be7 00a7 ld $a7 6be8 0015 ld $15 6be9 001a ld $1a 6bea 004a ld $4a 6beb 0018 ld $18 6bec 0018 ld $18 6bed 0018 ld $18 6bee 0018 ld $18 6bef 0082 ld $82 6bf0 0001 ld $01 6bf1 00bb ld $bb 6bf2 00f7 ld $f7 6bf3 0014 ld $14 6bf4 004d ld $4d 6bf5 0025 ld $25 6bf6 0082 ld $82 6bf7 0065 ld $65 6bf8 0084 ld $84 6bf9 006a ld $6a 6bfa 0016 ld $16 6bfb fe00 bra ac ;+-----------------------------------+ 6bfc fcfd bra $6bfd ;| | 6bfd 1418 ld $18,y ;| Trampoline for page $6b00 lookups | 6bfe e006 jmp y,$06 ;| | 6bff c218 st [$18] ;+-----------------------------------+ 6c00 0011 ld $11 6c01 0085 ld $85 6c02 0085 ld $85 6c03 00a1 ld $a1 6c04 004f ld $4f 6c05 0085 ld $85 6c06 00a9 ld $a9 6c07 0015 ld $15 6c08 004d ld $4d 6c09 0026 ld $26 6c0a 0082 ld $82 6c0b 0085 ld $85 6c0c 00a0 ld $a0 6c0d 0015 ld $15 6c0e 0015 ld $15 6c0f 00a0 ld $a0 6c10 005f ld $5f 6c11 0065 ld $65 6c12 0084 ld $84 6c13 006a ld $6a 6c14 0016 ld $16 6c15 0011 ld $11 6c16 0085 ld $85 6c17 0085 ld $85 6c18 00a1 ld $a1 6c19 004f ld $4f 6c1a 0093 ld $93 6c1b 006b ld $6b 6c1c 00c7 ld $c7 6c1d 000f ld $0f 6c1e 0075 ld $75 6c1f 006b ld $6b 6c20 00bd ld $bd 6c21 00cf ld $cf 6c22 0015 ld $15 6c23 001a ld $1a 6c24 006a ld $6a 6c25 00e3 ld $e3 6c26 0003 ld $03 6c27 00c7 ld $c7 6c28 000a ld $0a 6c29 001b ld $1b 6c2a 0000 ld $00 6c2b 002b ld $2b 6c2c 00c4 ld $c4 6c2d 004d ld $4d 6c2e 0027 ld $27 6c2f 0082 ld $82 6c30 0065 ld $65 6c31 0084 ld $84 6c32 006a ld $6a 6c33 0016 ld $16 6c34 0011 ld $11 6c35 0085 ld $85 6c36 0085 ld $85 6c37 00a1 ld $a1 6c38 004f ld $4f 6c39 0032 ld $32 6c3a 00c4 ld $c4 6c3b 00c4 ld $c4 6c3c 0085 ld $85 6c3d 00cf ld $cf 6c3e 001d ld $1d 6c3f 0085 ld $85 6c40 00e7 ld $e7 6c41 0015 ld $15 6c42 00c7 ld $c7 6c43 002d ld $2d 6c44 0075 ld $75 6c45 006b ld $6b 6c46 00bd ld $bd 6c47 00e5 ld $e5 6c48 0015 ld $15 6c49 004d ld $4d 6c4a 0027 ld $27 6c4b 0082 ld $82 6c4c 0065 ld $65 6c4d 0084 ld $84 6c4e 006a ld $6a 6c4f 0016 ld $16 6c50 0011 ld $11 6c51 0085 ld $85 6c52 0085 ld $85 6c53 00a1 ld $a1 6c54 004f ld $4f 6c55 004d ld $4d 6c56 0000 ld $00 6c57 006a ld $6a 6c58 0021 ld $21 6c59 0064 ld $64 6c5a 00bd ld $bd 6c5b 00ec ld $ec 6c5c 0015 ld $15 6c5d 0063 ld $63 6c5e 00ff ld $ff 6c5f 0021 ld $21 6c60 0064 ld $64 6c61 00c7 ld $c7 6c62 007f ld $7f 6c63 001f ld $1f 6c64 00ff ld $ff 6c65 002b ld $2b 6c66 00c4 ld $c4 6c67 0021 ld $21 6c68 0064 ld $64 6c69 00c7 ld $c7 6c6a 0080 ld $80 6c6b 001f ld $1f 6c6c 0000 ld $00 6c6d 0085 ld $85 6c6e 00a0 ld $a0 6c6f 0016 ld $16 6c70 0016 ld $16 6c71 00a0 ld $a0 6c72 005f ld $5f 6c73 002b ld $2b 6c74 00c6 ld $c6 6c75 001a ld $1a 6c76 0064 ld $64 6c77 0018 ld $18 6c78 0018 ld $18 6c79 0082 ld $82 6c7a 0003 ld $03 6c7b 002b ld $2b 6c7c 00ca ld $ca 6c7d 00a7 ld $a7 6c7e 0003 ld $03 6c7f 00ca ld $ca 6c80 00bd ld $bd 6c81 00b1 ld $b1 6c82 0016 ld $16 6c83 004d ld $4d 6c84 0000 ld $00 6c85 00ca ld $ca 6c86 001a ld $1a 6c87 00c5 ld $c5 6c88 00e3 ld $e3 6c89 0003 ld $03 6c8a 002b ld $2b 6c8b 00cc ld $cc 6c8c 0021 ld $21 6c8d 00c6 ld $c6 6c8e 00bb ld $bb 6c8f 00f4 ld $f4 6c90 0016 ld $16 6c91 004d ld $4d 6c92 0001 ld $01 6c93 0082 ld $82 6c94 0065 ld $65 6c95 0084 ld $84 6c96 00c4 ld $c4 6c97 001c ld $1c 6c98 00c5 ld $c5 6c99 0085 ld $85 6c9a 0008 ld $08 6c9b 0085 ld $85 6c9c 00a1 ld $a1 6c9d 004f ld $4f 6c9e 0059 ld $59 6c9f 0034 ld $34 6ca0 00b8 ld $b8 6ca1 00ca ld $ca 6ca2 002b ld $2b 6ca3 0082 ld $82 6ca4 002d ld $2d 6ca5 0084 ld $84 6ca6 00cc ld $cc 6ca7 00c4 ld $c4 6ca8 0085 ld $85 6ca9 00a1 ld $a1 6caa 004f ld $4f 6cab 0014 ld $14 6cac 0064 ld $64 6cad 001a ld $1a 6cae 0064 ld $64 6caf 00bd ld $bd 6cb0 00f1 ld $f1 6cb1 0016 ld $16 6cb2 004d ld $4d 6cb3 0000 ld $00 6cb4 0064 ld $64 6cb5 0059 ld $59 6cb6 0000 ld $00 6cb7 002f ld $2f 6cb8 0003 ld $03 6cb9 0027 ld $27 6cba 004d ld $4d 6cbb 0027 ld $27 6cbc 0082 ld $82 6cbd 0016 ld $16 6cbe 0000 ld $00 6cbf 0084 ld $84 6cc0 0016 ld $16 6cc1 0011 ld $11 6cc2 0085 ld $85 6cc3 0085 ld $85 6cc4 00a1 ld $a1 6cc5 004f ld $4f 6cc6 0085 ld $85 6cc7 00d0 ld $d0 6cc8 0017 ld $17 6cc9 004d ld $4d 6cca 0002 ld $02 6ccb 0082 ld $82 6ccc 0065 ld $65 6ccd 0084 ld $84 6cce 00c4 ld $c4 6ccf 0085 ld $85 6cd0 00a0 ld $a0 6cd1 0017 ld $17 6cd2 0017 ld $17 6cd3 00a0 ld $a0 6cd4 0060 ld $60 6cd5 001c ld $1c 6cd6 00c5 ld $c5 6cd7 0085 ld $85 6cd8 0008 ld $08 6cd9 0085 ld $85 6cda 00f4 ld $f4 6cdb 004c ld $4c 6cdc 0059 ld $59 6cdd 0035 ld $35 6cde 0099 ld $99 6cdf 00ca ld $ca 6ce0 002b ld $2b 6ce1 0082 ld $82 6ce2 002d ld $2d 6ce3 0084 ld $84 6ce4 00cc ld $cc 6ce5 00c4 ld $c4 6ce6 0085 ld $85 6ce7 00f4 ld $f4 6ce8 004c ld $4c 6ce9 0093 ld $93 6cea 0064 ld $64 6ceb 00a7 ld $a7 6cec 008d ld $8d 6ced 0064 ld $64 6cee 00c3 ld $c3 6cef 00ce ld $ce 6cf0 0017 ld $17 6cf1 004d ld $4d 6cf2 0000 ld $00 6cf3 0064 ld $64 6cf4 0059 ld $59 6cf5 0000 ld $00 6cf6 002f ld $2f 6cf7 0003 ld $03 6cf8 0027 ld $27 6cf9 004d ld $4d 6cfa 0027 ld $27 6cfb fe00 bra ac ;+-----------------------------------+ 6cfc fcfd bra $6cfd ;| | 6cfd 1418 ld $18,y ;| Trampoline for page $6c00 lookups | 6cfe e006 jmp y,$06 ;| | 6cff c218 st [$18] ;+-----------------------------------+ 6d00 0082 ld $82 6d01 0016 ld $16 6d02 008d ld $8d 6d03 0084 ld $84 6d04 0016 ld $16 6d05 0011 ld $11 6d06 0085 ld $85 6d07 0085 ld $85 6d08 00a1 ld $a1 6d09 004f ld $4f 6d0a 0063 ld $63 6d0b 00ff ld $ff 6d0c 0075 ld $75 6d0d 0016 ld $16 6d0e 00ff ld $ff 6d0f 002c ld $2c 6d10 004d ld $4d 6d11 0031 ld $31 6d12 009e ld $9e 6d13 001a ld $1a 6d14 0059 ld $59 6d15 002b ld $2b 6d16 00a0 ld $a0 6d17 0021 ld $21 6d18 009e ld $9e 6d19 00b8 ld $b8 6d1a 00a0 ld $a0 6d1b 00e3 ld $e3 6d1c 0003 ld $03 6d1d 002b ld $2b 6d1e 00ca ld $ca 6d1f 001a ld $1a 6d20 006e ld $6e 6d21 00bd ld $bd 6d22 00aa ld $aa 6d23 0018 ld $18 6d24 00c7 ld $c7 6d25 0003 ld $03 6d26 006f ld $6f 6d27 006f ld $6f 6d28 00c7 ld $c7 6d29 0074 ld $74 6d2a 001b ld $1b 6d2b 00a0 ld $a0 6d2c 00ad ld $ad 6d2d 00b1 ld $b1 6d2e 0014 ld $14 6d2f 002b ld $2b 6d30 00c6 ld $c6 6d31 0016 ld $16 6d32 0001 ld $01 6d33 0093 ld $93 6d34 0032 ld $32 6d35 0094 ld $94 6d36 00c6 ld $c6 6d37 0085 ld $85 6d38 00a0 ld $a0 6d39 0018 ld $18 6d3a 0018 ld $18 6d3b 00a0 ld $a0 6d3c 0060 ld $60 6d3d 004d ld $4d 6d3e 003f ld $3f 6d3f 0096 ld $96 6d40 004d ld $4d 6d41 0003 ld $03 6d42 0098 ld $98 6d43 0085 ld $85 6d44 00d7 ld $d7 6d45 004d ld $4d 6d46 0085 ld $85 6d47 00c0 ld $c0 6d48 0018 ld $18 6d49 0044 ld $44 6d4a 0001 ld $01 6d4b 0082 ld $82 6d4c 00ca ld $ca 6d4d 0059 ld $59 6d4e 0004 ld $04 6d4f 0085 ld $85 6d50 00b8 ld $b8 6d51 004d ld $4d 6d52 002f ld $2f 6d53 006e ld $6e 6d54 001f ld $1f 6d55 00bd ld $bd 6d56 00be ld $be 6d57 0018 ld $18 6d58 0059 ld $59 6d59 0000 ld $00 6d5a 002f ld $2f 6d5b 0000 ld $00 6d5c 0027 ld $27 6d5d 001a ld $1a 6d5e 006e ld $6e 6d5f 00b8 ld $b8 6d60 00ca ld $ca 6d61 00bf ld $bf 6d62 00cd ld $cd 6d63 0018 ld $18 6d64 0016 ld $16 6d65 0000 ld $00 6d66 006e ld $6e 6d67 0093 ld $93 6d68 006f ld $6f 6d69 0085 ld $85 6d6a 00d1 ld $d1 6d6b 0018 ld $18 6d6c 0093 ld $93 6d6d 006e ld $6e 6d6e 001a ld $1a 6d6f 0071 ld $71 6d70 00bb ld $bb 6d71 00b3 ld $b3 6d72 0019 ld $19 6d73 001a ld $1a 6d74 0070 ld $70 6d75 00e9 ld $e9 6d76 00c7 ld $c7 6d77 007f ld $7f 6d78 001b ld $1b 6d79 00a0 ld $a0 6d7a 006f ld $6f 6d7b 00c6 ld $c6 6d7c 0011 ld $11 6d7d 00e0 ld $e0 6d7e 007f ld $7f 6d7f 002f ld $2f 6d80 0070 ld $70 6d81 0060 ld $60 6d82 00ad ld $ad 6d83 002b ld $2b 6d84 00c8 ld $c8 6d85 0016 ld $16 6d86 0002 ld $02 6d87 0093 ld $93 6d88 0032 ld $32 6d89 0094 ld $94 6d8a 00c6 ld $c6 6d8b 0032 ld $32 6d8c 0096 ld $96 6d8d 00c8 ld $c8 6d8e 004d ld $4d 6d8f 0003 ld $03 6d90 0098 ld $98 6d91 0085 ld $85 6d92 00d7 ld $d7 6d93 004d ld $4d 6d94 0016 ld $16 6d95 0003 ld $03 6d96 0093 ld $93 6d97 0032 ld $32 6d98 0094 ld $94 6d99 00c6 ld $c6 6d9a 0085 ld $85 6d9b 00a0 ld $a0 6d9c 0019 ld $19 6d9d 0019 ld $19 6d9e 00a0 ld $a0 6d9f 005e ld $5e 6da0 0032 ld $32 6da1 0096 ld $96 6da2 00c8 ld $c8 6da3 004d ld $4d 6da4 0000 ld $00 6da5 0098 ld $98 6da6 0085 ld $85 6da7 00d7 ld $d7 6da8 004d ld $4d 6da9 0093 ld $93 6daa 0070 ld $70 6dab 00c7 ld $c7 6dac 0020 ld $20 6dad 0075 ld $75 6dae 0070 ld $70 6daf 00bd ld $bd 6db0 00b3 ld $b3 6db1 0019 ld $19 6db2 0085 ld $85 6db3 00be ld $be 6db4 001b ld $1b 6db5 0021 ld $21 6db6 0064 ld $64 6db7 00fa ld $fa 6db8 0068 ld $68 6db9 00bb ld $bb 6dba 00d2 ld $d2 6dbb 001a ld $1a 6dbc 0021 ld $21 6dbd 0066 ld $66 6dbe 00e9 ld $e9 6dbf 00c7 ld $c7 6dc0 007e ld $7e 6dc1 001b ld $1b 6dc2 00a0 ld $a0 6dc3 00f6 ld $f6 6dc4 00b8 ld $b8 6dc5 0068 ld $68 6dc6 002b ld $2b 6dc7 00c6 ld $c6 6dc8 0016 ld $16 6dc9 0004 ld $04 6dca 0093 ld $93 6dcb 0032 ld $32 6dcc 0094 ld $94 6dcd 00c6 ld $c6 6dce 004d ld $4d 6dcf 0020 ld $20 6dd0 0096 ld $96 6dd1 004d ld $4d 6dd2 0002 ld $02 6dd3 0098 ld $98 6dd4 0085 ld $85 6dd5 00d7 ld $d7 6dd6 004d ld $4d 6dd7 0093 ld $93 6dd8 0066 ld $66 6dd9 00a7 ld $a7 6dda 000c ld $0c 6ddb 0066 ld $66 6ddc 00bd ld $bd 6ddd 00e0 ld $e0 6dde 0019 ld $19 6ddf 004d ld $4d 6de0 0000 ld $00 6de1 0066 ld $66 6de2 0021 ld $21 6de3 006c ld $6c 6de4 00bb ld $bb 6de5 00ee ld $ee 6de6 0019 ld $19 6de7 004d ld $4d 6de8 0001 ld $01 6de9 0068 ld $68 6dea 0059 ld $59 6deb 0000 ld $00 6dec 002b ld $2b 6ded 006c ld $6c 6dee 002b ld $2b 6def 0064 ld $64 6df0 0021 ld $21 6df1 0068 ld $68 6df2 00bb ld $bb 6df3 00d2 ld $d2 6df4 001a ld $1a 6df5 0016 ld $16 6df6 0003 ld $03 6df7 0093 ld $93 6df8 0032 ld $32 6df9 00a0 ld $a0 6dfa 00c6 ld $c6 6dfb fe00 bra ac ;+-----------------------------------+ 6dfc fcfd bra $6dfd ;| | 6dfd 1418 ld $18,y ;| Trampoline for page $6d00 lookups | 6dfe e006 jmp y,$06 ;| | 6dff c218 st [$18] ;+-----------------------------------+ 6e00 0085 ld $85 6e01 00a0 ld $a0 6e02 001a ld $1a 6e03 001a ld $1a 6e04 00a0 ld $a0 6e05 005f ld $5f 6e06 0085 ld $85 6e07 00a0 ld $a0 6e08 004d ld $4d 6e09 002b ld $2b 6e0a 0094 ld $94 6e0b 0032 ld $32 6e0c 0096 ld $96 6e0d 0048 ld $48 6e0e 004d ld $4d 6e0f 0000 ld $00 6e10 0098 ld $98 6e11 0085 ld $85 6e12 00d7 ld $d7 6e13 004d ld $4d 6e14 0021 ld $21 6e15 0066 ld $66 6e16 00bd ld $bd 6e17 00d2 ld $d2 6e18 001a ld $1a 6e19 0021 ld $21 6e1a 0068 ld $68 6e1b 00c7 ld $c7 6e1c 0002 ld $02 6e1d 001b ld $1b 6e1e 0058 ld $58 6e1f 002b ld $2b 6e20 0068 ld $68 6e21 0044 ld $44 6e22 000f ld $0f 6e23 0048 ld $48 6e24 0048 ld $48 6e25 0021 ld $21 6e26 0048 ld $48 6e27 00c1 ld $c1 6e28 00d2 ld $d2 6e29 001a ld $1a 6e2a 004d ld $4d 6e2b 003c ld $3c 6e2c 0048 ld $48 6e2d 004d ld $4d 6e2e 0000 ld $00 6e2f 0068 ld $68 6e30 0059 ld $59 6e31 0000 ld $00 6e32 002f ld $2f 6e33 0002 ld $02 6e34 0027 ld $27 6e35 0059 ld $59 6e36 0000 ld $00 6e37 002f ld $2f 6e38 0003 ld $03 6e39 0027 ld $27 6e3a 0021 ld $21 6e3b 005c ld $5c 6e3c 00fa ld $fa 6e3d 0072 ld $72 6e3e 00bb ld $bb 6e3f 00ba ld $ba 6e40 001b ld $1b 6e41 0059 ld $59 6e42 003f ld $3f 6e43 00b8 ld $b8 6e44 0072 ld $72 6e45 002b ld $2b 6e46 00c8 ld $c8 6e47 0016 ld $16 6e48 0002 ld $02 6e49 0093 ld $93 6e4a 001a ld $1a 6e4b 005f ld $5f 6e4c 00e9 ld $e9 6e4d 00c7 ld $c7 6e4e 007e ld $7e 6e4f 001b ld $1b 6e50 00c0 ld $c0 6e51 006f ld $6f 6e52 0094 ld $94 6e53 0032 ld $32 6e54 0096 ld $96 6e55 00c8 ld $c8 6e56 004d ld $4d 6e57 0003 ld $03 6e58 0098 ld $98 6e59 0085 ld $85 6e5a 00d7 ld $d7 6e5b 004d ld $4d 6e5c 0093 ld $93 6e5d 005f ld $5f 6e5e 00c7 ld $c7 6e5f 0003 ld $03 6e60 0075 ld $75 6e61 005f ld $5f 6e62 0085 ld $85 6e63 00a0 ld $a0 6e64 001b ld $1b 6e65 001b ld $1b 6e66 00a0 ld $a0 6e67 005e ld $5e 6e68 00bd ld $bd 6e69 00a4 ld $a4 6e6a 001b ld $1b 6e6b 0016 ld $16 6e6c 0000 ld $00 6e6d 005f ld $5f 6e6e 0042 ld $42 6e6f 0002 ld $02 6e70 0072 ld $72 6e71 0072 ld $72 6e72 0021 ld $21 6e73 0072 ld $72 6e74 00e6 ld $e6 6e75 0040 ld $40 6e76 00bf ld $bf 6e77 00ba ld $ba 6e78 001b ld $1b 6e79 0059 ld $59 6e7a 0000 ld $00 6e7b 005e ld $5e 6e7c 005f ld $5f 6e7d 002b ld $2b 6e7e 0072 ld $72 6e7f 0059 ld $59 6e80 0000 ld $00 6e81 002f ld $2f 6e82 0001 ld $01 6e83 0027 ld $27 6e84 0063 ld $63 6e85 00ff ld $ff 6e86 0075 ld $75 6e87 004d ld $4d 6e88 0000 ld $00 6e89 0070 ld $70 6e8a 0059 ld $59 6e8b 0000 ld $00 6e8c 002f ld $2f 6e8d 0001 ld $01 6e8e 0027 ld $27 6e8f 0059 ld $59 6e90 0000 ld $00 6e91 002f ld $2f 6e92 0002 ld $02 6e93 0027 ld $27 6e94 0063 ld $63 6e95 00ff ld $ff 6e96 0075 ld $75 6e97 0011 ld $11 6e98 00b7 ld $b7 6e99 0071 ld $71 6e9a 002b ld $2b 6e9b 0094 ld $94 6e9c 0011 ld $11 6e9d 00bd ld $bd 6e9e 0071 ld $71 6e9f 002b ld $2b 6ea0 0096 ld $96 6ea1 0059 ld $59 6ea2 0006 ld $06 6ea3 0085 ld $85 6ea4 00a0 ld $a0 6ea5 0051 ld $51 6ea6 004d ld $4d 6ea7 001f ld $1f 6ea8 00c6 ld $c6 6ea9 004d ld $4d 6eaa 0000 ld $00 6eab 00c4 ld $c4 6eac 0011 ld $11 6ead 00c2 ld $c2 6eae 0071 ld $71 6eaf 00b8 ld $b8 6eb0 00c4 ld $c4 6eb1 00ad ld $ad 6eb2 00e3 ld $e3 6eb3 001a ld $1a 6eb4 002b ld $2b 6eb5 0082 ld $82 6eb6 0065 ld $65 6eb7 0084 ld $84 6eb8 00c6 ld $c6 6eb9 0016 ld $16 6eba 0009 ld $09 6ebb 0085 ld $85 6ebc 0085 ld $85 6ebd 00a1 ld $a1 6ebe 004f ld $4f 6ebf 0042 ld $42 6ec0 0006 ld $06 6ec1 00c6 ld $c6 6ec2 00c6 ld $c6 6ec3 0085 ld $85 6ec4 00a0 ld $a0 6ec5 001c ld $1c 6ec6 001c ld $1c 6ec7 00a0 ld $a0 6ec8 005f ld $5f 6ec9 00a7 ld $a7 6eca 0005 ld $05 6ecb 00c4 ld $c4 6ecc 0093 ld $93 6ecd 00c4 ld $c4 6ece 00bd ld $bd 6ecf 00e2 ld $e2 6ed0 001b ld $1b 6ed1 0011 ld $11 6ed2 00c2 ld $c2 6ed3 0071 ld $71 6ed4 002b ld $2b 6ed5 0094 ld $94 6ed6 0011 ld $11 6ed7 00e5 ld $e5 6ed8 007d ld $7d 6ed9 002b ld $2b 6eda 0096 ld $96 6edb 0059 ld $59 6edc 0006 ld $06 6edd 0085 ld $85 6ede 00bb ld $bb 6edf 004e ld $4e 6ee0 008c ld $8c 6ee1 0001 ld $01 6ee2 00bd ld $bd 6ee3 00cc ld $cc 6ee4 001c ld $1c 6ee5 0011 ld $11 6ee6 00bd ld $bd 6ee7 0071 ld $71 6ee8 002b ld $2b 6ee9 0094 ld $94 6eea 0011 ld $11 6eeb 00e0 ld $e0 6eec 007d ld $7d 6eed 002b ld $2b 6eee 0096 ld $96 6eef 0059 ld $59 6ef0 0006 ld $06 6ef1 0085 ld $85 6ef2 00e0 ld $e0 6ef3 004c ld $4c 6ef4 0085 ld $85 6ef5 00d0 ld $d0 6ef6 001c ld $1c 6ef7 0063 ld $63 6ef8 00ff ld $ff 6ef9 0075 ld $75 6efa 004d ld $4d 6efb fe00 bra ac ;+-----------------------------------+ 6efc fcfd bra $6efd ;| | 6efd 1418 ld $18,y ;| Trampoline for page $6e00 lookups | 6efe e006 jmp y,$06 ;| | 6eff c218 st [$18] ;+-----------------------------------+ 6f00 0061 ld $61 6f01 00c6 ld $c6 6f02 004d ld $4d 6f03 0000 ld $00 6f04 00c4 ld $c4 6f05 0011 ld $11 6f06 00e5 ld $e5 6f07 007d ld $7d 6f08 00b8 ld $b8 6f09 00c4 ld $c4 6f0a 00ad ld $ad 6f0b 00e3 ld $e3 6f0c 001a ld $1a 6f0d 002b ld $2b 6f0e 0082 ld $82 6f0f 0065 ld $65 6f10 0084 ld $84 6f11 00c6 ld $c6 6f12 0016 ld $16 6f13 0009 ld $09 6f14 0085 ld $85 6f15 0085 ld $85 6f16 00a1 ld $a1 6f17 004f ld $4f 6f18 0042 ld $42 6f19 0006 ld $06 6f1a 00c6 ld $c6 6f1b 00c6 ld $c6 6f1c 00a7 ld $a7 6f1d 0005 ld $05 6f1e 00c4 ld $c4 6f1f 0093 ld $93 6f20 00c4 ld $c4 6f21 00bd ld $bd 6f22 00d5 ld $d5 6f23 001c ld $1c 6f24 0063 ld $63 6f25 00ff ld $ff 6f26 0075 ld $75 6f27 004d ld $4d 6f28 0024 ld $24 6f29 0082 ld $82 6f2a 0085 ld $85 6f2b 00a0 ld $a0 6f2c 001d ld $1d 6f2d 001d ld $1d 6f2e 00a0 ld $a0 6f2f 005f ld $5f 6f30 0016 ld $16 6f31 0002 ld $02 6f32 0084 ld $84 6f33 0016 ld $16 6f34 0009 ld $09 6f35 0085 ld $85 6f36 0085 ld $85 6f37 00a1 ld $a1 6f38 004f ld $4f 6f39 004d ld $4d 6f3a 0008 ld $08 6f3b 00c6 ld $c6 6f3c 004d ld $4d 6f3d 0000 ld $00 6f3e 00c4 ld $c4 6f3f 0011 ld $11 6f40 00a1 ld $a1 6f41 007c ld $7c 6f42 00b8 ld $b8 6f43 00c4 ld $c4 6f44 00ad ld $ad 6f45 00e3 ld $e3 6f46 001a ld $1a 6f47 002b ld $2b 6f48 0082 ld $82 6f49 0065 ld $65 6f4a 0084 ld $84 6f4b 00c6 ld $c6 6f4c 0016 ld $16 6f4d 0009 ld $09 6f4e 0085 ld $85 6f4f 0085 ld $85 6f50 00a1 ld $a1 6f51 004f ld $4f 6f52 0042 ld $42 6f53 0006 ld $06 6f54 00c6 ld $c6 6f55 00c6 ld $c6 6f56 0095 ld $95 6f57 00c4 ld $c4 6f58 008c ld $8c 6f59 0002 ld $02 6f5a 00bd ld $bd 6f5b 00ad ld $ad 6f5c 001d ld $1d 6f5d 0063 ld $63 6f5e 00ff ld $ff 6f5f 0075 ld $75 6f60 0032 ld $32 6f61 00c8 ld $c8 6f62 00c4 ld $c4 6f63 004d ld $4d 6f64 0000 ld $00 6f65 00c6 ld $c6 6f66 0011 ld $11 6f67 00a2 ld $a2 6f68 007b ld $7b 6f69 00b8 ld $b8 6f6a 00c6 ld $c6 6f6b 00ad ld $ad 6f6c 00e3 ld $e3 6f6d 0028 ld $28 6f6e 002b ld $2b 6f6f 0082 ld $82 6f70 0065 ld $65 6f71 0084 ld $84 6f72 00c8 ld $c8 6f73 001c ld $1c 6f74 00c9 ld $c9 6f75 0085 ld $85 6f76 0008 ld $08 6f77 0085 ld $85 6f78 00a1 ld $a1 6f79 004f ld $4f 6f7a 001c ld $1c 6f7b 00c8 ld $c8 6f7c 00c8 ld $c8 6f7d 0004 ld $04 6f7e 00a7 ld $a7 6f7f 0002 ld $02 6f80 00c6 ld $c6 6f81 0093 ld $93 6f82 00c6 ld $c6 6f83 00bd ld $bd 6f84 00d4 ld $d4 6f85 001d ld $1d 6f86 0063 ld $63 6f87 00ff ld $ff 6f88 0075 ld $75 6f89 004d ld $4d 6f8a 0001 ld $01 6f8b 00c4 ld $c4 6f8c 0085 ld $85 6f8d 00a0 ld $a0 6f8e 001e ld $1e 6f8f 001e ld $1e 6f90 00a0 ld $a0 6f91 005e ld $5e 6f92 004d ld $4d 6f93 0088 ld $88 6f94 00c6 ld $c6 6f95 0085 ld $85 6f96 00b8 ld $b8 6f97 001e ld $1e 6f98 004d ld $4d 6f99 0018 ld $18 6f9a 0082 ld $82 6f9b 0065 ld $65 6f9c 0084 ld $84 6f9d 00c6 ld $c6 6f9e 0016 ld $16 6f9f 000c ld $0c 6fa0 0085 ld $85 6fa1 0085 ld $85 6fa2 00a1 ld $a1 6fa3 004f ld $4f 6fa4 0042 ld $42 6fa5 0008 ld $08 6fa6 00c6 ld $c6 6fa7 00c6 ld $c6 6fa8 0093 ld $93 6fa9 00c4 ld $c4 6faa 0021 ld $21 6fab 00c4 ld $c4 6fac 002f ld $2f 6fad 0031 ld $31 6fae 0062 ld $62 6faf 00db ld $db 6fb0 0018 ld $18 6fb1 00bd ld $bd 6fb2 00a4 ld $a4 6fb3 001e ld $1e 6fb4 0085 ld $85 6fb5 00d7 ld $d7 6fb6 001e ld $1e 6fb7 004d ld $4d 6fb8 0019 ld $19 6fb9 0082 ld $82 6fba 0065 ld $65 6fbb 0084 ld $84 6fbc 00c6 ld $c6 6fbd 0016 ld $16 6fbe 000c ld $0c 6fbf 0085 ld $85 6fc0 0085 ld $85 6fc1 00a1 ld $a1 6fc2 004f ld $4f 6fc3 0042 ld $42 6fc4 0008 ld $08 6fc5 00c6 ld $c6 6fc6 00c6 ld $c6 6fc7 0093 ld $93 6fc8 00c4 ld $c4 6fc9 0021 ld $21 6fca 00c4 ld $c4 6fcb 00e6 ld $e6 6fcc 0003 ld $03 6fcd 00db ld $db 6fce 0018 ld $18 6fcf 00bd ld $bd 6fd0 00c3 ld $c3 6fd1 001e ld $1e 6fd2 0063 ld $63 6fd3 00ff ld $ff 6fd4 0075 ld $75 6fd5 0059 ld $59 6fd6 0000 ld $00 6fd7 002b ld $2b 6fd8 00c8 ld $c8 6fd9 002b ld $2b 6fda 00ca ld $ca 6fdb 002b ld $2b 6fdc 00cc ld $cc 6fdd 004d ld $4d 6fde 0004 ld $04 6fdf 00c6 ld $c6 6fe0 004d ld $4d 6fe1 0000 ld $00 6fe2 00c4 ld $c4 6fe3 0021 ld $21 6fe4 00c8 ld $c8 6fe5 00bd ld $bd 6fe6 00a1 ld $a1 6fe7 001f ld $1f 6fe8 0011 ld $11 6fe9 00a2 ld $a2 6fea 005a ld $5a 6feb 002b ld $2b 6fec 00ca ld $ca 6fed 0085 ld $85 6fee 00a0 ld $a0 6fef 001f ld $1f 6ff0 001f ld $1f 6ff1 00a0 ld $a0 6ff2 005f ld $5f 6ff3 0085 ld $85 6ff4 00b2 ld $b2 6ff5 001f ld $1f 6ff6 0044 ld $44 6ff7 0001 ld $01 6ff8 0096 ld $96 6ff9 00c8 ld $c8 6ffa 004d ld $4d 6ffb fe00 bra ac ;+-----------------------------------+ 6ffc fcfd bra $6ffd ;| | 6ffd 1418 ld $18,y ;| Trampoline for page $6f00 lookups | 6ffe e006 jmp y,$06 ;| | 6fff c218 st [$18] ;+-----------------------------------+ 7000 0000 ld $00 7001 0098 ld $98 7002 0011 ld $11 7003 002a ld $2a 7004 0006 ld $06 7005 0085 ld $85 7006 00d1 ld $d1 7007 004c ld $4c 7008 002b ld $2b 7009 00ca ld $ca 700a 00a7 ld $a7 700b 0031 ld $31 700c 00c8 ld $c8 700d 00bd ld $bd 700e 00be ld $be 700f 001f ld $1f 7010 0011 ld $11 7011 00a6 ld $a6 7012 006e ld $6e 7013 002b ld $2b 7014 00cc ld $cc 7015 0085 ld $85 7016 00cf ld $cf 7017 001f ld $1f 7018 0042 ld $42 7019 0001 ld $01 701a 0096 ld $96 701b 00c8 ld $c8 701c 004d ld $4d 701d 0000 ld $00 701e 0098 ld $98 701f 0011 ld $11 7020 002a ld $2a 7021 0006 ld $06 7022 0085 ld $85 7023 00d1 ld $d1 7024 004c ld $4c 7025 002b ld $2b 7026 00cc ld $cc 7027 0032 ld $32 7028 0096 ld $96 7029 00c8 ld $c8 702a 004d ld $4d 702b 0000 ld $00 702c 0098 ld $98 702d 0011 ld $11 702e 002a ld $2a 702f 0006 ld $06 7030 0085 ld $85 7031 00d1 ld $d1 7032 004c ld $4c 7033 002b ld $2b 7034 009c ld $9c 7035 0032 ld $32 7036 0096 ld $96 7037 00c6 ld $c6 7038 0032 ld $32 7039 0098 ld $98 703a 00c4 ld $c4 703b 0011 ld $11 703c 00a0 ld $a0 703d 0059 ld $59 703e 0085 ld $85 703f 00d1 ld $d1 7040 004c ld $4c 7041 007d ld $7d 7042 009c ld $9c 7043 0032 ld $32 7044 0096 ld $96 7045 00c6 ld $c6 7046 0032 ld $32 7047 0098 ld $98 7048 00c4 ld $c4 7049 0011 ld $11 704a 00a4 ld $a4 704b 0070 ld $70 704c 0085 ld $85 704d 00d1 ld $d1 704e 004c ld $4c 704f 00f6 ld $f6 7050 00c7 ld $c7 7051 007f ld $7f 7052 001f ld $1f 7053 00ff ld $ff 7054 0085 ld $85 7055 00a0 ld $a0 7056 0020 ld $20 7057 0020 ld $20 7058 00a0 ld $a0 7059 005e ld $5e 705a 002b ld $2b 705b 00ce ld $ce 705c 0032 ld $32 705d 009c ld $9c 705e 00ce ld $ce 705f 0032 ld $32 7060 0096 ld $96 7061 00c6 ld $c6 7062 0032 ld $32 7063 0098 ld $98 7064 00c4 ld $c4 7065 0011 ld $11 7066 00a4 ld $a4 7067 0070 ld $70 7068 0085 ld $85 7069 00d1 ld $d1 706a 004c ld $4c 706b 007d ld $7d 706c 009c ld $9c 706d 0021 ld $21 706e 00c6 ld $c6 706f 00e9 ld $e9 7070 00e9 ld $e9 7071 00e9 ld $e9 7072 00e9 ld $e9 7073 0082 ld $82 7074 0070 ld $70 7075 002f ld $2f 7076 00ce ld $ce 7077 001c ld $1c 7078 002b ld $2b 7079 00e8 ld $e8 707a 00c7 ld $c7 707b 000f ld $0f 707c 006f ld $6f 707d 00c4 ld $c4 707e 00fa ld $fa 707f 00e8 ld $e8 7080 005e ld $5e 7081 00ce ld $ce 7082 0032 ld $32 7083 009c ld $9c 7084 00ce ld $ce 7085 0032 ld $32 7086 0096 ld $96 7087 00c8 ld $c8 7088 004d ld $4d 7089 0000 ld $00 708a 0098 ld $98 708b 0011 ld $11 708c 002a ld $2a 708d 0006 ld $06 708e 0085 ld $85 708f 00d1 ld $d1 7090 004c ld $4c 7091 007d ld $7d 7092 009c ld $9c 7093 0053 ld $53 7094 00c4 ld $c4 7095 00a4 ld $a4 7096 006f ld $6f 7097 002b ld $2b 7098 00e8 ld $e8 7099 0053 ld $53 709a 00c6 ld $c6 709b 00a0 ld $a0 709c 007a ld $7a 709d 002f ld $2f 709e 0018 ld $18 709f 005e ld $5e 70a0 0099 ld $99 70a1 00e8 ld $e8 70a2 002b ld $2b 70a3 009c ld $9c 70a4 0032 ld $32 70a5 0096 ld $96 70a6 00c8 ld $c8 70a7 004d ld $4d 70a8 0001 ld $01 70a9 0098 ld $98 70aa 0011 ld $11 70ab 002a ld $2a 70ac 0006 ld $06 70ad 0085 ld $85 70ae 00d1 ld $d1 70af 004c ld $4c 70b0 007d ld $7d 70b1 009c ld $9c 70b2 0032 ld $32 70b3 009c ld $9c 70b4 00ca ld $ca 70b5 0085 ld $85 70b6 00a0 ld $a0 70b7 0021 ld $21 70b8 0021 ld $21 70b9 00a0 ld $a0 70ba 005f ld $5f 70bb 0032 ld $32 70bc 0096 ld $96 70bd 00c8 ld $c8 70be 004d ld $4d 70bf 0002 ld $02 70c0 0098 ld $98 70c1 0011 ld $11 70c2 002a ld $2a 70c3 0006 ld $06 70c4 0085 ld $85 70c5 00d1 ld $d1 70c6 004c ld $4c 70c7 007d ld $7d 70c8 009c ld $9c 70c9 0032 ld $32 70ca 009c ld $9c 70cb 00cc ld $cc 70cc 0032 ld $32 70cd 0096 ld $96 70ce 00c8 ld $c8 70cf 004d ld $4d 70d0 0003 ld $03 70d1 0098 ld $98 70d2 0011 ld $11 70d3 002a ld $2a 70d4 0006 ld $06 70d5 0085 ld $85 70d6 00d1 ld $d1 70d7 004c ld $4c 70d8 007d ld $7d 70d9 009c ld $9c 70da 0093 ld $93 70db 00c8 ld $c8 70dc 00a7 ld $a7 70dd 0009 ld $09 70de 00c4 ld $c4 70df 0093 ld $93 70e0 00c4 ld $c4 70e1 00bd ld $bd 70e2 00ef ld $ef 70e3 001e ld $1e 70e4 004a ld $4a 70e5 00c6 ld $c6 70e6 00ec ld $ec 70e7 001e ld $1e 70e8 004d ld $4d 70e9 0000 ld $00 70ea 00c4 ld $c4 70eb 0059 ld $59 70ec 0000 ld $00 70ed 0051 ld $51 70ee 00c4 ld $c4 70ef 00a0 ld $a0 70f0 006e ld $6e 70f1 00a7 ld $a7 70f2 0002 ld $02 70f3 00c4 ld $c4 70f4 0093 ld $93 70f5 00c4 ld $c4 70f6 00bd ld $bd 70f7 00ce ld $ce 70f8 0021 ld $21 70f9 0011 ld $11 70fa 00a6 ld $a6 70fb fe00 bra ac ;+-----------------------------------+ 70fc fcfd bra $70fd ;| | 70fd 1418 ld $18,y ;| Trampoline for page $7000 lookups | 70fe e006 jmp y,$06 ;| | 70ff c218 st [$18] ;+-----------------------------------+ 7100 006e ld $6e 7101 002b ld $2b 7102 0044 ld $44 7103 0032 ld $32 7104 0046 ld $46 7105 0044 ld $44 7106 0063 ld $63 7107 00ff ld $ff 7108 0075 ld $75 7109 004d ld $4d 710a 004a ld $4a 710b 009c ld $9c 710c 0085 ld $85 710d 00c7 ld $c7 710e 004d ld $4d 710f 0063 ld $63 7110 00ff ld $ff 7111 0075 ld $75 7112 0085 ld $85 7113 00a0 ld $a0 7114 0050 ld $50 7115 0011 ld $11 7116 00b7 ld $b7 7117 0071 ld $71 7118 002b ld $2b 7119 0096 ld $96 711a 0059 ld $59 711b 0000 ld $00 711c 0085 ld $85 711d 00a0 ld $a0 711e 0022 ld $22 711f 0022 ld $22 7120 00a0 ld $a0 7121 0060 ld $60 7122 0085 ld $85 7123 00db ld $db 7124 004e ld $4e 7125 0011 ld $11 7126 00a0 ld $a0 7127 007b ld $7b 7128 002b ld $2b 7129 0096 ld $96 712a 0059 ld $59 712b 0000 ld $00 712c 0085 ld $85 712d 00db ld $db 712e 004e ld $4e 712f 0011 ld $11 7130 00a0 ld $a0 7131 007c ld $7c 7132 002b ld $2b 7133 0096 ld $96 7134 001a ld $1a 7135 0032 ld $32 7136 0085 ld $85 7137 00db ld $db 7138 004e ld $4e 7139 004d ld $4d 713a 0000 ld $00 713b 003c ld $3c 713c 004d ld $4d 713d 0004 ld $04 713e 003e ld $3e 713f 0059 ld $59 7140 0002 ld $02 7141 002b ld $2b 7142 0042 ld $42 7143 002b ld $2b 7144 0040 ld $40 7145 00a7 ld $a7 7146 0018 ld $18 7147 0030 ld $30 7148 00c3 ld $c3 7149 00ca ld $ca 714a 0022 ld $22 714b 0016 ld $16 714c 0000 ld $00 714d 0030 ld $30 714e 004d ld $4d 714f 0001 ld $01 7150 0038 ld $38 7151 0059 ld $59 7152 0038 ld $38 7153 002f ld $2f 7154 0030 ld $30 7155 0060 ld $60 7156 002b ld $2b 7157 003a ld $3a 7158 0085 ld $85 7159 00d5 ld $d5 715a 004f ld $4f 715b 0085 ld $85 715c 00ce ld $ce 715d 001b ld $1b 715e 0085 ld $85 715f 00d0 ld $d0 7160 001c ld $1c 7161 0085 ld $85 7162 00f8 ld $f8 7163 001d ld $1d 7164 0085 ld $85 7165 00f8 ld $f8 7166 001c ld $1c 7167 0085 ld $85 7168 00a9 ld $a9 7169 0005 ld $05 716a 0085 ld $85 716b 00e2 ld $e2 716c 001e ld $1e 716d 00a7 ld $a7 716e 0064 ld $64 716f 0032 ld $32 7170 00bf ld $bf 7171 00f5 ld $f5 7172 0022 ld $22 7173 0085 ld $85 7174 00cb ld $cb 7175 0025 ld $25 7176 0085 ld $85 7177 00fa ld $fa 7178 0022 ld $22 7179 0085 ld $85 717a 00ed ld $ed 717b 0025 ld $25 717c 0063 ld $63 717d 00ff ld $ff 717e 0075 ld $75 717f 0085 ld $85 7180 00a0 ld $a0 7181 0023 ld $23 7182 0023 ld $23 7183 00a0 ld $a0 7184 005e ld $5e 7185 0011 ld $11 7186 0000 ld $00 7187 0003 ld $03 7188 002b ld $2b 7189 0030 ld $30 718a 0011 ld $11 718b 0000 ld $00 718c 001f ld $1f 718d 002b ld $2b 718e 0032 ld $32 718f 0011 ld $11 7190 00bd ld $bd 7191 0071 ld $71 7192 002b ld $2b 7193 0096 ld $96 7194 0059 ld $59 7195 0000 ld $00 7196 0085 ld $85 7197 00db ld $db 7198 004e ld $4e 7199 004d ld $4d 719a 003c ld $3c 719b 0048 ld $48 719c 004d ld $4d 719d 0001 ld $01 719e 0034 ld $34 719f 004d ld $4d 71a0 0072 ld $72 71a1 0036 ld $36 71a2 0085 ld $85 71a3 00ed ld $ed 71a4 0025 ld $25 71a5 0063 ld $63 71a6 00ff ld $ff 71a7 0075 ld $75 71a8 00c7 ld $c7 71a9 000f ld $0f 71aa 006f ld $6f 71ab 004a ld $4a 71ac 008c ld $8c 71ad 0001 ld $01 71ae 00bd ld $bd 71af 00a7 ld $a7 71b0 0025 ld $25 71b1 0021 ld $21 71b2 0078 ld $78 71b3 00bd ld $bd 71b4 00ea ld $ea 71b5 0023 ld $23 71b6 004d ld $4d 71b7 0038 ld $38 71b8 0082 ld $82 71b9 0016 ld $16 71ba 0049 ld $49 71bb 0084 ld $84 71bc 0016 ld $16 71bd 0008 ld $08 71be 0085 ld $85 71bf 004d ld $4d 71c0 0000 ld $00 71c1 0098 ld $98 71c2 0032 ld $32 71c3 0088 ld $88 71c4 0076 ld $76 71c5 0085 ld $85 71c6 00bb ld $bb 71c7 0050 ld $50 71c8 004d ld $4d 71c9 0001 ld $01 71ca 00c4 ld $c4 71cb 0085 ld $85 71cc 00ab ld $ab 71cd 0025 ld $25 71ce 0085 ld $85 71cf 00a9 ld $a9 71d0 0025 ld $25 71d1 00a7 ld $a7 71d2 0001 ld $01 71d3 0078 ld $78 71d4 00bd ld $bd 71d5 00b3 ld $b3 71d6 0024 ld $24 71d7 004d ld $4d 71d8 0038 ld $38 71d9 0082 ld $82 71da 0016 ld $16 71db 0049 ld $49 71dc 0084 ld $84 71dd 0016 ld $16 71de 0008 ld $08 71df 0085 ld $85 71e0 0085 ld $85 71e1 00a0 ld $a0 71e2 0024 ld $24 71e3 0024 ld $24 71e4 00a0 ld $a0 71e5 0060 ld $60 71e6 004d ld $4d 71e7 0000 ld $00 71e8 0098 ld $98 71e9 0059 ld $59 71ea 0007 ld $07 71eb 00b8 ld $b8 71ec 0076 ld $76 71ed 002b ld $2b 71ee 0088 ld $88 71ef 0085 ld $85 71f0 00bb ld $bb 71f1 0050 ld $50 71f2 004d ld $4d 71f3 0000 ld $00 71f4 00c4 ld $c4 71f5 0085 ld $85 71f6 00ab ld $ab 71f7 0025 ld $25 71f8 0085 ld $85 71f9 00a9 ld $a9 71fa 0025 ld $25 71fb fe00 bra ac ;+-----------------------------------+ 71fc fcfd bra $71fd ;| | 71fd 1418 ld $18,y ;| Trampoline for page $7100 lookups | 71fe e006 jmp y,$06 ;| | 71ff c218 st [$18] ;+-----------------------------------+ 7200 00a7 ld $a7 7201 0002 ld $02 7202 0078 ld $78 7203 00bd ld $bd 7204 00e3 ld $e3 7205 0024 ld $24 7206 0059 ld $59 7207 0007 ld $07 7208 00b8 ld $b8 7209 0076 ld $76 720a 002b ld $2b 720b 007a ld $7a 720c 0021 ld $21 720d 0076 ld $76 720e 00bd ld $bd 720f 00c7 ld $c7 7210 0024 ld $24 7211 004d ld $4d 7212 0000 ld $00 7213 007a ld $7a 7214 004d ld $4d 7215 0038 ld $38 7216 0082 ld $82 7217 0016 ld $16 7218 0049 ld $49 7219 0084 ld $84 721a 001c ld $1c 721b 0076 ld $76 721c 0085 ld $85 721d 0008 ld $08 721e 0032 ld $32 721f 0098 ld $98 7220 007a ld $7a 7221 004d ld $4d 7222 0000 ld $00 7223 0088 ld $88 7224 0085 ld $85 7225 00bb ld $bb 7226 0050 ld $50 7227 004d ld $4d 7228 0001 ld $01 7229 00c4 ld $c4 722a 0085 ld $85 722b 00ab ld $ab 722c 0025 ld $25 722d 0085 ld $85 722e 00a9 ld $a9 722f 0025 ld $25 7230 00a7 ld $a7 7231 0003 ld $03 7232 0078 ld $78 7233 00bd ld $bd 7234 00a7 ld $a7 7235 0025 ld $25 7236 004d ld $4d 7237 0038 ld $38 7238 0082 ld $82 7239 0016 ld $16 723a 0049 ld $49 723b 0084 ld $84 723c 0059 ld $59 723d 000f ld $0f 723e 00b8 ld $b8 723f 0076 ld $76 7240 005e ld $5e 7241 0085 ld $85 7242 0032 ld $32 7243 0098 ld $98 7244 0076 ld $76 7245 004d ld $4d 7246 0000 ld $00 7247 0088 ld $88 7248 0085 ld $85 7249 00a0 ld $a0 724a 0025 ld $25 724b 0025 ld $25 724c 00a0 ld $a0 724d 005e ld $5e 724e 0085 ld $85 724f 00bb ld $bb 7250 0050 ld $50 7251 004d ld $4d 7252 0000 ld $00 7253 00c4 ld $c4 7254 0085 ld $85 7255 00ab ld $ab 7256 0025 ld $25 7257 0063 ld $63 7258 00ff ld $ff 7259 0075 ld $75 725a 0095 ld $95 725b 0076 ld $76 725c 00a7 ld $a7 725d 0007 ld $07 725e 0076 ld $76 725f 00bd ld $bd 7260 00bb ld $bb 7261 0025 ld $25 7262 0032 ld $32 7263 0076 ld $76 7264 00c4 ld $c4 7265 0093 ld $93 7266 0078 ld $78 7267 00c7 ld $c7 7268 0003 ld $03 7269 0066 ld $66 726a 0078 ld $78 726b 0063 ld $63 726c 00ff ld $ff 726d 0075 ld $75 726e 004d ld $4d 726f 0002 ld $02 7270 0082 ld $82 7271 0085 ld $85 7272 00ea ld $ea 7273 004c ld $4c 7274 004d ld $4d 7275 0000 ld $00 7276 00a2 ld $a2 7277 0063 ld $63 7278 00ff ld $ff 7279 0075 ld $75 727a 004d ld $4d 727b 007f ld $7f 727c 00c6 ld $c6 727d 0011 ld $11 727e 0000 ld $00 727f 0001 ld $01 7280 002b ld $2b 7281 00c4 ld $c4 7282 0011 ld $11 7283 00ee ld $ee 7284 0001 ld $01 7285 002b ld $2b 7286 00d8 ld $d8 7287 004d ld $4d 7288 0002 ld $02 7289 00da ld $da 728a 0021 ld $21 728b 00c4 ld $c4 728c 0069 ld $69 728d 00c6 ld $c6 728e 00dd ld $dd 728f 00c6 ld $c6 7290 00a9 ld $a9 7291 00c4 ld $c4 7292 00c4 ld $c4 7293 00da ld $da 7294 00b8 ld $b8 7295 00d8 ld $d8 7296 00c3 ld $c3 7297 00da ld $da 7298 0025 ld $25 7299 0063 ld $63 729a 00ff ld $ff 729b 0075 ld $75 729c 004d ld $4d 729d 0008 ld $08 729e 00c6 ld $c6 729f 0011 ld $11 72a0 0000 ld $00 72a1 0001 ld $01 72a2 002b ld $2b 72a3 00c4 ld $c4 72a4 0011 ld $11 72a5 00ee ld $ee 72a6 0001 ld $01 72a7 002b ld $2b 72a8 00d8 ld $d8 72a9 0085 ld $85 72aa 00a0 ld $a0 72ab 0026 ld $26 72ac 0026 ld $26 72ad 00a0 ld $a0 72ae 0016 ld $16 72af 004d ld $4d 72b0 0002 ld $02 72b1 00da ld $da 72b2 0021 ld $21 72b3 00c4 ld $c4 72b4 0069 ld $69 72b5 00c6 ld $c6 72b6 0093 ld $93 72b7 00c6 ld $c6 72b8 00a9 ld $a9 72b9 00c4 ld $c4 72ba 00c4 ld $c4 72bb 00da ld $da 72bc 00b8 ld $b8 72bd 00d8 ld $d8 72be 00c3 ld $c3 72bf 00a1 ld $a1 72c0 0026 ld $26 72c1 0063 ld $63 72c2 00ff ld $ff 72c3 00b4 ld $b4 72c4 0080 ld $80 72c5 004c ld $4c 72c6 00d1 ld $d1 72c7 002e ld $2e 72c8 00a0 ld $a0 72c9 0096 ld $96 72ca 0099 ld $99 72cb 0098 ld $98 72cc 0099 ld $99 72cd 0098 ld $98 72ce 00ff ld $ff 72cf 004d ld $4d 72d0 0002 ld $02 72d1 00a4 ld $a4 72d2 00c7 ld $c7 72d3 00fb ld $fb 72d4 0066 ld $66 72d5 00aa ld $aa 72d6 00ff ld $ff 72d7 005e ld $5e 72d8 0092 ld $92 72d9 0023 ld $23 72da 0094 ld $94 72db 00d1 ld $d1 72dc 0096 ld $96 72dd 009e ld $9e 72de 00e0 ld $e0 72df 0092 ld $92 72e0 00ff ld $ff 72e1 0011 ld $11 72e2 0000 ld $00 72e3 000b ld $0b 72e4 002b ld $2b 72e5 0022 ld $22 72e6 0021 ld $21 72e7 0082 ld $82 72e8 00b4 ld $b4 72e9 00e6 ld $e6 72ea 00ff ld $ff 72eb 0075 ld $75 72ec 0011 ld $11 72ed 0040 ld $40 72ee 000c ld $0c 72ef 002b ld $2b 72f0 0022 ld $22 72f1 0085 ld $85 72f2 00e9 ld $e9 72f3 004d ld $4d 72f4 0063 ld $63 72f5 00ff ld $ff 72f6 004d ld $4d 72f7 00a0 ld $a0 72f8 005f ld $5f 72f9 0011 ld $11 72fa 0052 ld $52 72fb fe00 bra ac ;+-----------------------------------+ 72fc fcfd bra $72fd ;| | 72fd 1418 ld $18,y ;| Trampoline for page $7200 lookups | 72fe e006 jmp y,$06 ;| | 72ff c218 st [$18] ;+-----------------------------------+ 7300 0006 ld $06 7301 002b ld $2b 7302 0022 ld $22 7303 0021 ld $21 7304 00a0 ld $a0 7305 00b4 ld $b4 7306 00f5 ld $f5 7307 00ff ld $ff 7308 0075 ld $75 7309 0085 ld $85 730a 00d8 ld $d8 730b 004c ld $4c 730c 0011 ld $11 730d 0003 ld $03 730e 000b ld $0b 730f 002b ld $2b 7310 0022 ld $22 7311 0065 ld $65 7312 0025 ld $25 7313 00a2 ld $a2 7314 0063 ld $63 7315 00ff ld $ff 7316 002b ld $2b 7317 0084 ld $84 7318 0021 ld $21 7319 0082 ld $82 731a 00b8 ld $b8 731b 0084 ld $84 731c 0035 ld $35 731d 0056 ld $56 731e 00c2 ld $c2 731f 0021 ld $21 7320 0084 ld $84 7321 00ff ld $ff 7322 0021 ld $21 7323 0082 ld $82 7324 00ff ld $ff 7325 0059 ld $59 7326 0080 ld $80 7327 00b8 ld $b8 7328 009c ld $9c 7329 002b ld $2b 732a 009e ld $9e 732b 0018 ld $18 732c 009e ld $9e 732d 0059 ld $59 732e 0000 ld $00 732f 0060 ld $60 7330 009c ld $9c 7331 009e ld $9e 7332 00cf ld $cf 7333 009e ld $9e 7334 00ff ld $ff 7335 0018 ld $18 7336 0094 ld $94 7337 0021 ld $21 7338 0094 ld $94 7339 002f ld $2f 733a 0093 ld $93 733b 0024 ld $24 733c 001a ld $1a 733d 0096 ld $96 733e 002f ld $2f 733f 0093 ld $93 7340 002c ld $2c 7341 001a ld $1a 7342 0098 ld $98 7343 002f ld $2f 7344 0093 ld $93 7345 002f ld $2f 7346 00ff ld $ff 7347 003d ld $3d 7348 0082 ld $82 7349 008e ld $8e 734a 0006 ld $06 734b 006f ld $6f 734c 0086 ld $86 734d 0090 ld $90 734e 00f7 ld $f7 734f 002b ld $2b 7350 0024 ld $24 7351 0046 ld $46 7352 0086 ld $86 7353 0099 ld $99 7354 0084 ld $84 7355 00b4 ld $b4 7356 00ee ld $ee 7357 0046 ld $46 7358 0086 ld $86 7359 0035 ld $35 735a 0072 ld $72 735b 00ef ld $ef 735c 00ff ld $ff 735d 004e ld $4e 735e 00a2 ld $a2 735f 005d ld $5d 7360 002b ld $2b 7361 0086 ld $86 7362 0021 ld $21 7363 0082 ld $82 7364 00b8 ld $b8 7365 0086 ld $86 7366 0035 ld $35 7367 0050 ld $50 7368 00af ld $af 7369 002b ld $2b 736a 0082 ld $82 736b 0093 ld $93 736c 0084 ld $84 736d 0090 ld $90 736e 00a4 ld $a4 736f 0021 ld $21 7370 0096 ld $96 7371 0069 ld $69 7372 0084 ld $84 7373 00dd ld $dd 7374 0096 ld $96 7375 0016 ld $16 7376 0000 ld $00 7377 0084 ld $84 7378 00ff ld $ff 7379 005e ld $5e 737a 0092 ld $92 737b 005b ld $5b 737c 0096 ld $96 737d 002b ld $2b 737e 0098 ld $98 737f 005b ld $5b 7380 0094 ld $94 7381 00b8 ld $b8 7382 0098 ld $98 7383 0035 ld $35 7384 004d ld $4d 7385 00d3 ld $d3 7386 0035 ld $35 7387 0050 ld $50 7388 00d6 ld $d6 7389 00dd ld $dd 738a 0096 ld $96 738b 00dd ld $dd 738c 0094 ld $94 738d 009e ld $9e 738e 00bb ld $bb 738f 0092 ld $92 7390 0059 ld $59 7391 0000 ld $00 7392 00ff ld $ff 7393 0059 ld $59 7394 0001 ld $01 7395 00ff ld $ff 7396 009c ld $9c 7397 0001 ld $01 7398 00ff ld $ff 7399 002b ld $2b 739a 0082 ld $82 739b 0075 ld $75 739c 0042 ld $42 739d 0004 ld $04 739e 0096 ld $96 739f 0096 ld $96 73a0 004d ld $4d 73a1 0000 ld $00 73a2 0084 ld $84 73a3 0011 ld $11 73a4 0010 ld $10 73a5 0027 ld $27 73a6 0085 ld $85 73a7 00a2 ld $a2 73a8 004e ld $4e 73a9 0011 ld $11 73aa 00e8 ld $e8 73ab 0003 ld $03 73ac 0085 ld $85 73ad 00a2 ld $a2 73ae 004e ld $4e 73af 0059 ld $59 73b0 0064 ld $64 73b1 0085 ld $85 73b2 00a2 ld $a2 73b3 004e ld $4e 73b4 0059 ld $59 73b5 000a ld $0a 73b6 0085 ld $85 73b7 00a2 ld $a2 73b8 004e ld $4e 73b9 0069 ld $69 73ba 0082 ld $82 73bb 0063 ld $63 73bc 00ff ld $ff 73bd 004f ld $4f 73be 00a1 ld $a1 73bf 005e ld $5e 73c0 0075 ld $75 73c1 0011 ld $11 73c2 0000 ld $00 73c3 000c ld $0c 73c4 002b ld $2b 73c5 0022 ld $22 73c6 0085 ld $85 73c7 00e9 ld $e9 73c8 004d ld $4d 73c9 0063 ld $63 73ca 00ff ld $ff 73cb 001a ld $1a 73cc 0021 ld $21 73cd 0082 ld $82 73ce 00fc ld $fc 73cf 002b ld $2b 73d0 0084 ld $84 73d1 00b8 ld $b8 73d2 0082 ld $82 73d3 0035 ld $35 73d4 003f ld $3f 73d5 00d2 ld $d2 73d6 0021 ld $21 73d7 0082 ld $82 73d8 00e6 ld $e6 73d9 0080 ld $80 73da 0035 ld $35 73db 0072 ld $72 73dc 00c5 ld $c5 73dd 0021 ld $21 73de 0084 ld $84 73df 00b8 ld $b8 73e0 0082 ld $82 73e1 0035 ld $35 73e2 003f ld $3f 73e3 00d2 ld $d2 73e4 0090 ld $90 73e5 00cc ld $cc 73e6 0021 ld $21 73e7 0084 ld $84 73e8 00b8 ld $b8 73e9 0082 ld $82 73ea 0035 ld $35 73eb 004d ld $4d 73ec 00d2 ld $d2 73ed 001a ld $1a 73ee 0006 ld $06 73ef 00f0 ld $f0 73f0 007e ld $7e 73f1 0090 ld $90 73f2 00cc ld $cc 73f3 00ff ld $ff 73f4 0075 ld $75 73f5 0085 ld $85 73f6 00aa ld $aa 73f7 004d ld $4d 73f8 004d ld $4d 73f9 0008 ld $08 73fa 0094 ld $94 73fb fe00 bra ac ;+-----------------------------------+ 73fc fcfd bra $73fd ;| | 73fd 1418 ld $18,y ;| Trampoline for page $7300 lookups | 73fe e006 jmp y,$06 ;| | 73ff c218 st [$18] ;+-----------------------------------+ 7400 0016 ld $16 7401 003c ld $3c 7402 009e ld $9e 7403 0016 ld $16 7404 00a0 ld $a0 7405 0024 ld $24 7406 0016 ld $16 7407 0000 ld $00 7408 0026 ld $26 7409 0065 ld $65 740a 0027 ld $27 740b 0094 ld $94 740c 00b4 ld $b4 740d 00f3 ld $f3 740e 0016 ld $16 740f 00a0 ld $a0 7410 0024 ld $24 7411 0016 ld $16 7412 0000 ld $00 7413 0026 ld $26 7414 0059 ld $59 7415 0087 ld $87 7416 00b8 ld $b8 7417 0094 ld $94 7418 005e ld $5e 7419 0027 ld $27 741a 00b4 ld $b4 741b 00f3 ld $f3 741c 0093 ld $93 741d 0094 ld $94 741e 009e ld $9e 741f 00dd ld $dd 7420 009e ld $9e 7421 0063 ld $63 7422 00ff ld $ff 7423 0050 ld $50 7424 00a0 ld $a0 7425 005f ld $5f 7426 0059 ld $59 7427 0000 ld $00 7428 002f ld $2f 7429 0000 ld $00 742a 0027 ld $27 742b 002f ld $2f 742c 0001 ld $01 742d 0027 ld $27 742e 002f ld $2f 742f 0002 ld $02 7430 0027 ld $27 7431 002f ld $2f 7432 0003 ld $03 7433 0027 ld $27 7434 002f ld $2f 7435 0000 ld $00 7436 005c ld $5c 7437 002f ld $2f 7438 0001 ld $01 7439 005c ld $5c 743a 002f ld $2f 743b 0002 ld $02 743c 005c ld $5c 743d 002f ld $2f 743e 0003 ld $03 743f 005c ld $5c 7440 00ff ld $ff 7441 0075 ld $75 7442 0011 ld $11 7443 0000 ld $00 7444 000c ld $0c 7445 002b ld $2b 7446 0022 ld $22 7447 0021 ld $21 7448 0088 ld $88 7449 00b1 ld $b1 744a 003d ld $3d 744b 002b ld $2b 744c 0096 ld $96 744d 003d ld $3d 744e 0082 ld $82 744f 008e ld $8e 7450 0006 ld $06 7451 006f ld $6f 7452 0086 ld $86 7453 0090 ld $90 7454 00dd ld $dd 7455 0085 ld $85 7456 00e8 ld $e8 7457 0050 ld $50 7458 0099 ld $99 7459 0096 ld $96 745a 002b ld $2b 745b 0024 ld $24 745c 0046 ld $46 745d 0086 ld $86 745e 0099 ld $99 745f 0084 ld $84 7460 00b4 ld $b4 7461 00ee ld $ee 7462 0085 ld $85 7463 00e8 ld $e8 7464 0050 ld $50 7465 0046 ld $46 7466 0086 ld $86 7467 002b ld $2b 7468 0092 ld $92 7469 0035 ld $35 746a 0072 ld $72 746b 00cd ld $cd 746c 0063 ld $63 746d 00ff ld $ff 746e 001a ld $1a 746f 0098 ld $98 7470 0035 ld $35 7471 0072 ld $72 7472 00ee ld $ee 7473 0021 ld $21 7474 0092 ld $92 7475 00ff ld $ff 7476 00b1 ld $b1 7477 003d ld $3d 7478 0099 ld $99 7479 0092 ld $92 747a 002b ld $2b 747b 0094 ld $94 747c 00ad ld $ad 747d 002f ld $2f 747e 0018 ld $18 747f 0064 ld $64 7480 00f0 ld $f0 7481 0094 ld $94 7482 0021 ld $21 7483 0092 ld $92 7484 00ff ld $ff 7485 0051 ld $51 7486 00a0 ld $a0 7487 0060 ld $60 7488 005e ld $5e 7489 0092 ld $92 748a 004d ld $4d 748b 0000 ld $00 748c 009a ld $9a 748d 005b ld $5b 748e 0096 ld $96 748f 002b ld $2b 7490 0098 ld $98 7491 0023 ld $23 7492 0094 ld $94 7493 0099 ld $99 7494 0098 ld $98 7495 0099 ld $99 7496 009a ld $9a 7497 002b ld $2b 7498 0098 ld $98 7499 00e6 ld $e6 749a 000a ld $0a 749b 0035 ld $35 749c 0050 ld $50 749d 00ba ld $ba 749e 002b ld $2b 749f 0098 ld $98 74a0 0059 ld $59 74a1 0001 ld $01 74a2 0090 ld $90 74a3 00bc ld $bc 74a4 0059 ld $59 74a5 0000 ld $00 74a6 002b ld $2b 74a7 009a ld $9a 74a8 0021 ld $21 74a9 0098 ld $98 74aa 00d1 ld $d1 74ab 0096 ld $96 74ac 009e ld $9e 74ad 00a3 ld $a3 74ae 0092 ld $92 74af 00ff ld $ff 74b0 00aa ld $aa 74b1 0059 ld $59 74b2 0000 ld $00 74b3 0000 ld $00 74b4 00d5 ld $d5 74b5 0058 ld $58 74b6 0006 ld $06 74b7 0000 ld $00 74b8 00aa ld $aa 74b9 0058 ld $58 74ba 000c ld $0c 74bb 0000 ld $00 74bc 0000 ld $00 74bd 0000 ld $00 74be 00af ld $af 74bf 0076 ld $76 74c0 000c ld $0c 74c1 0000 ld $00 74c2 00a8 ld $a8 74c3 0076 ld $76 74c4 0006 ld $06 74c5 0000 ld $00 74c6 00a1 ld $a1 74c7 0076 ld $76 74c8 0000 ld $00 74c9 0000 ld $00 74ca 0000 ld $00 74cb 0000 ld $00 74cc 00a3 ld $a3 74cd 0078 ld $78 74ce 000c ld $0c 74cf 0000 ld $00 74d0 00a9 ld $a9 74d1 0077 ld $77 74d2 0006 ld $06 74d3 0000 ld $00 74d4 00a2 ld $a2 74d5 0077 ld $77 74d6 0000 ld $00 74d7 0000 ld $00 74d8 0000 ld $00 74d9 0000 ld $00 74da 00ca ld $ca 74db 007e ld $7e 74dc 000c ld $0c 74dd 0000 ld $00 74de 00b9 ld $b9 74df 007e ld $7e 74e0 0006 ld $06 74e1 0000 ld $00 74e2 00e6 ld $e6 74e3 007d ld $7d 74e4 0000 ld $00 74e5 0000 ld $00 74e6 0000 ld $00 74e7 0000 ld $00 74e8 0052 ld $52 74e9 00a6 ld $a6 74ea 005a ld $5a 74eb 00af ld $af 74ec 0076 ld $76 74ed 0000 ld $00 74ee 0000 ld $00 74ef 00a8 ld $a8 74f0 0076 ld $76 74f1 0006 ld $06 74f2 0000 ld $00 74f3 00a1 ld $a1 74f4 0076 ld $76 74f5 000c ld $0c 74f6 0000 ld $00 74f7 0000 ld $00 74f8 0000 ld $00 74f9 00a3 ld $a3 74fa 0078 ld $78 74fb fe00 bra ac ;+-----------------------------------+ 74fc fcfd bra $74fd ;| | 74fd 1418 ld $18,y ;| Trampoline for page $7400 lookups | 74fe e006 jmp y,$06 ;| | 74ff c218 st [$18] ;+-----------------------------------+ 7500 0000 ld $00 7501 0000 ld $00 7502 00a9 ld $a9 7503 0077 ld $77 7504 0006 ld $06 7505 0000 ld $00 7506 00a2 ld $a2 7507 0077 ld $77 7508 000c ld $0c 7509 0000 ld $00 750a 0000 ld $00 750b 0000 ld $00 750c 00ca ld $ca 750d 007e ld $7e 750e 0000 ld $00 750f 0000 ld $00 7510 00b9 ld $b9 7511 007e ld $7e 7512 0006 ld $06 7513 0000 ld $00 7514 00e6 ld $e6 7515 007d ld $7d 7516 000c ld $0c 7517 0000 ld $00 7518 0000 ld $00 7519 0000 ld $00 751a 00a4 ld $a4 751b 0075 ld $75 751c 0000 ld $00 751d 0000 ld $00 751e 0000 ld $00 751f 0000 ld $00 7520 00a4 ld $a4 7521 0075 ld $75 7522 0000 ld $00 7523 0000 ld $00 7524 0000 ld $00 7525 0000 ld $00 7526 00a4 ld $a4 7527 0075 ld $75 7528 0000 ld $00 7529 0000 ld $00 752a 0000 ld $00 752b 0000 ld $00 752c 00a4 ld $a4 752d 0075 ld $75 752e 0000 ld $00 752f 0000 ld $00 7530 0000 ld $00 7531 0000 ld $00 7532 00a4 ld $a4 7533 0072 ld $72 7534 0000 ld $00 7535 0000 ld $00 7536 0000 ld $00 7537 0000 ld $00 7538 00a4 ld $a4 7539 0075 ld $75 753a 0000 ld $00 753b 0000 ld $00 753c 0000 ld $00 753d 0000 ld $00 753e 00a4 ld $a4 753f 0073 ld $73 7540 0000 ld $00 7541 0000 ld $00 7542 0000 ld $00 7543 0000 ld $00 7544 00a4 ld $a4 7545 0075 ld $75 7546 0000 ld $00 7547 0000 ld $00 7548 0000 ld $00 7549 0000 ld $00 754a 0053 ld $53 754b 00a0 ld $a0 754c 0060 ld $60 754d 00a4 ld $a4 754e 0074 ld $74 754f 0000 ld $00 7550 0000 ld $00 7551 0000 ld $00 7552 0000 ld $00 7553 00a4 ld $a4 7554 0075 ld $75 7555 0000 ld $00 7556 0000 ld $00 7557 0000 ld $00 7558 0000 ld $00 7559 00d5 ld $d5 755a 005a ld $5a 755b 0000 ld $00 755c 0000 ld $00 755d 00aa ld $aa 755e 005a ld $5a 755f 0006 ld $06 7560 0000 ld $00 7561 00d5 ld $d5 7562 0059 ld $59 7563 000c ld $0c 7564 0000 ld $00 7565 0000 ld $00 7566 0000 ld $00 7567 00aa ld $aa 7568 005c ld $5c 7569 0000 ld $00 756a 0000 ld $00 756b 00d5 ld $d5 756c 005b ld $5b 756d 0006 ld $06 756e 0000 ld $00 756f 00aa ld $aa 7570 005b ld $5b 7571 000c ld $0c 7572 0000 ld $00 7573 0000 ld $00 7574 0000 ld $00 7575 00d5 ld $d5 7576 005d ld $5d 7577 0000 ld $00 7578 0000 ld $00 7579 00aa ld $aa 757a 005d ld $5d 757b 0006 ld $06 757c 0000 ld $00 757d 00d5 ld $d5 757e 005c ld $5c 757f 000c ld $0c 7580 0000 ld $00 7581 0000 ld $00 7582 0000 ld $00 7583 00b6 ld $b6 7584 005e ld $5e 7585 0000 ld $00 7586 0000 ld $00 7587 0000 ld $00 7588 0000 ld $00 7589 00db ld $db 758a 005e ld $5e 758b 0000 ld $00 758c 0000 ld $00 758d 0000 ld $00 758e 0000 ld $00 758f 00b6 ld $b6 7590 005f ld $5f 7591 0000 ld $00 7592 0000 ld $00 7593 0000 ld $00 7594 0000 ld $00 7595 00db ld $db 7596 005f ld $5f 7597 0000 ld $00 7598 0000 ld $00 7599 0000 ld $00 759a 0000 ld $00 759b 00b6 ld $b6 759c 0060 ld $60 759d 0000 ld $00 759e 0000 ld $00 759f 0000 ld $00 75a0 0000 ld $00 75a1 00db ld $db 75a2 0060 ld $60 75a3 0000 ld $00 75a4 0000 ld $00 75a5 0000 ld $00 75a6 0000 ld $00 75a7 00b6 ld $b6 75a8 0061 ld $61 75a9 0000 ld $00 75aa 0000 ld $00 75ab 0000 ld $00 75ac 0000 ld $00 75ad 0054 ld $54 75ae 00a0 ld $a0 75af 0060 ld $60 75b0 00db ld $db 75b1 0061 ld $61 75b2 0000 ld $00 75b3 0000 ld $00 75b4 0000 ld $00 75b5 0000 ld $00 75b6 00b6 ld $b6 75b7 0065 ld $65 75b8 0000 ld $00 75b9 0000 ld $00 75ba 00db ld $db 75bb 0064 ld $64 75bc 0006 ld $06 75bd 0000 ld $00 75be 0000 ld $00 75bf 0000 ld $00 75c0 00b6 ld $b6 75c1 0076 ld $76 75c2 0000 ld $00 75c3 0000 ld $00 75c4 00db ld $db 75c5 0065 ld $65 75c6 0006 ld $06 75c7 0000 ld $00 75c8 0000 ld $00 75c9 0000 ld $00 75ca 00c3 ld $c3 75cb 0067 ld $67 75cc 0006 ld $06 75cd 0000 ld $00 75ce 00c3 ld $c3 75cf 0066 ld $66 75d0 0000 ld $00 75d1 0000 ld $00 75d2 0000 ld $00 75d3 0000 ld $00 75d4 00c3 ld $c3 75d5 0067 ld $67 75d6 0000 ld $00 75d7 0000 ld $00 75d8 00c3 ld $c3 75d9 0066 ld $66 75da 0006 ld $06 75db 0000 ld $00 75dc 0000 ld $00 75dd 0000 ld $00 75de 00c3 ld $c3 75df 0069 ld $69 75e0 0000 ld $00 75e1 0000 ld $00 75e2 00c3 ld $c3 75e3 0068 ld $68 75e4 0006 ld $06 75e5 0000 ld $00 75e6 0000 ld $00 75e7 0000 ld $00 75e8 00c3 ld $c3 75e9 006b ld $6b 75ea 0006 ld $06 75eb 0000 ld $00 75ec 00c3 ld $c3 75ed 006a ld $6a 75ee 0000 ld $00 75ef 0000 ld $00 75f0 0000 ld $00 75f1 0000 ld $00 75f2 00c3 ld $c3 75f3 006d ld $6d 75f4 0006 ld $06 75f5 0000 ld $00 75f6 00c3 ld $c3 75f7 006c ld $6c 75f8 0000 ld $00 75f9 0000 ld $00 75fa 0000 ld $00 75fb fe00 bra ac ;+-----------------------------------+ 75fc fcfd bra $75fd ;| | 75fd 1418 ld $18,y ;| Trampoline for page $7500 lookups | 75fe e006 jmp y,$06 ;| | 75ff c218 st [$18] ;+-----------------------------------+ 7600 0000 ld $00 7601 00c3 ld $c3 7602 006b ld $6b 7603 0000 ld $00 7604 0000 ld $00 7605 00c3 ld $c3 7606 006a ld $6a 7607 0006 ld $06 7608 0000 ld $00 7609 0000 ld $00 760a 0000 ld $00 760b 00c3 ld $c3 760c 006d ld $6d 760d 0000 ld $00 760e 0000 ld $00 760f 00c3 ld $c3 7610 006c ld $6c 7611 0006 ld $06 7612 0000 ld $00 7613 0000 ld $00 7614 0000 ld $00 7615 0055 ld $55 7616 00a2 ld $a2 7617 005e ld $5e 7618 00c3 ld $c3 7619 006f ld $6f 761a 0006 ld $06 761b 0000 ld $00 761c 00c3 ld $c3 761d 006e ld $6e 761e 0000 ld $00 761f 0000 ld $00 7620 0000 ld $00 7621 0000 ld $00 7622 00c3 ld $c3 7623 0071 ld $71 7624 0006 ld $06 7625 0000 ld $00 7626 00c3 ld $c3 7627 0070 ld $70 7628 0000 ld $00 7629 0000 ld $00 762a 0000 ld $00 762b 0000 ld $00 762c 00c3 ld $c3 762d 006f ld $6f 762e 0000 ld $00 762f 0000 ld $00 7630 00c3 ld $c3 7631 006e ld $6e 7632 0006 ld $06 7633 0000 ld $00 7634 0000 ld $00 7635 0000 ld $00 7636 00c3 ld $c3 7637 0071 ld $71 7638 0000 ld $00 7639 0000 ld $00 763a 00c3 ld $c3 763b 0070 ld $70 763c 0006 ld $06 763d 0000 ld $00 763e 0000 ld $00 763f 0000 ld $00 7640 00c3 ld $c3 7641 0073 ld $73 7642 0006 ld $06 7643 0000 ld $00 7644 00c3 ld $c3 7645 0072 ld $72 7646 0000 ld $00 7647 0000 ld $00 7648 0000 ld $00 7649 0000 ld $00 764a 00c3 ld $c3 764b 0075 ld $75 764c 0006 ld $06 764d 0000 ld $00 764e 00c3 ld $c3 764f 0074 ld $74 7650 0000 ld $00 7651 0000 ld $00 7652 0000 ld $00 7653 0000 ld $00 7654 00c3 ld $c3 7655 0073 ld $73 7656 0000 ld $00 7657 0000 ld $00 7658 00c3 ld $c3 7659 0072 ld $72 765a 0006 ld $06 765b 0000 ld $00 765c 0000 ld $00 765d 0000 ld $00 765e 00c3 ld $c3 765f 0075 ld $75 7660 0000 ld $00 7661 0000 ld $00 7662 00c3 ld $c3 7663 0074 ld $74 7664 0006 ld $06 7665 0000 ld $00 7666 0000 ld $00 7667 0000 ld $00 7668 00d5 ld $d5 7669 0078 ld $78 766a 000c ld $0c 766b 0000 ld $00 766c 00aa ld $aa 766d 0078 ld $78 766e 0006 ld $06 766f 0000 ld $00 7670 00d5 ld $d5 7671 0077 ld $77 7672 0000 ld $00 7673 0000 ld $00 7674 0000 ld $00 7675 0000 ld $00 7676 0056 ld $56 7677 00a0 ld $a0 7678 004c ld $4c 7679 00b0 ld $b0 767a 0077 ld $77 767b 0006 ld $06 767c 0000 ld $00 767d 00db ld $db 767e 0076 ld $76 767f 0000 ld $00 7680 0000 ld $00 7681 0000 ld $00 7682 0000 ld $00 7683 00a5 ld $a5 7684 007c ld $7c 7685 0000 ld $00 7686 0000 ld $00 7687 00f9 ld $f9 7688 007e ld $7e 7689 0000 ld $00 768a 000f ld $0f 768b 00a5 ld $a5 768c 007b ld $7b 768d 0006 ld $06 768e 0000 ld $00 768f 00f2 ld $f2 7690 007e ld $7e 7691 0006 ld $06 7692 000f ld $0f 7693 00a5 ld $a5 7694 007a ld $7a 7695 000c ld $0c 7696 0000 ld $00 7697 00eb ld $eb 7698 007e ld $7e 7699 000c ld $0c 769a 000f ld $0f 769b 00a5 ld $a5 769c 0079 ld $79 769d 0012 ld $12 769e 0000 ld $00 769f 00e4 ld $e4 76a0 007e ld $7e 76a1 0012 ld $12 76a2 000f ld $0f 76a3 0000 ld $00 76a4 0000 ld $00 76a5 0064 ld $64 76a6 0000 ld $00 76a7 0032 ld $32 76a8 0000 ld $00 76a9 0032 ld $32 76aa 0000 ld $00 76ab 0064 ld $64 76ac 0000 ld $00 76ad 0096 ld $96 76ae 0000 ld $00 76af 0064 ld $64 76b0 0000 ld $00 76b1 0064 ld $64 76b2 0000 ld $00 76b3 0032 ld $32 76b4 0000 ld $00 76b5 002c ld $2c 76b6 0001 ld $01 76b7 0064 ld $64 76b8 0000 ld $00 76b9 0064 ld $64 76ba 0000 ld $00 76bb 0064 ld $64 76bc 0000 ld $00 76bd 0032 ld $32 76be 0000 ld $00 76bf 0096 ld $96 76c0 0000 ld $00 76c1 0064 ld $64 76c2 0000 ld $00 76c3 0032 ld $32 76c4 0000 ld $00 76c5 0057 ld $57 76c6 00a2 ld $a2 76c7 000e ld $0e 76c8 00d5 ld $d5 76c9 0078 ld $78 76ca 0000 ld $00 76cb 0000 ld $00 76cc 00aa ld $aa 76cd 0078 ld $78 76ce 0006 ld $06 76cf 0000 ld $00 76d0 00d5 ld $d5 76d1 0077 ld $77 76d2 000c ld $0c 76d3 0000 ld $00 76d4 0000 ld $00 76d5 0000 ld $00 76d6 0058 ld $58 76d7 00a0 ld $a0 76d8 0060 ld $60 76d9 00b0 ld $b0 76da 0077 ld $77 76db 0000 ld $00 76dc 0000 ld $00 76dd 00db ld $db 76de 0076 ld $76 76df 0006 ld $06 76e0 0000 ld $00 76e1 0000 ld $00 76e2 0000 ld $00 76e3 0011 ld $11 76e4 0011 ld $11 76e5 0011 ld $11 * 6 times 76e9 000f ld $0f 76ea 0011 ld $11 76eb 000f ld $0f 76ec 000f ld $0f 76ed 000f ld $0f 76ee 0011 ld $11 76ef 0011 ld $11 76f0 0011 ld $11 * 5 times 76f3 000f ld $0f 76f4 0011 ld $11 76f5 000f ld $0f 76f6 0011 ld $11 76f7 0011 ld $11 76f8 000f ld $0f 76f9 0011 ld $11 76fa 0011 ld $11 76fb fe00 bra ac ;+-----------------------------------+ 76fc fcfd bra $76fd ;| | 76fd 1418 ld $18,y ;| Trampoline for page $7600 lookups | 76fe e006 jmp y,$06 ;| | 76ff c218 st [$18] ;+-----------------------------------+ 7700 000f ld $0f 7701 0011 ld $11 7702 000f ld $0f 7703 0011 ld $11 7704 0011 ld $11 7705 0011 ld $11 7706 000f ld $0f 7707 0011 ld $11 7708 000f ld $0f 7709 0011 ld $11 770a 0011 ld $11 770b 0011 ld $11 * 9 times 7712 00f9 ld $f9 7713 0011 ld $11 7714 0011 ld $11 7715 0011 ld $11 * 6 times 7719 000f ld $0f 771a 0011 ld $11 771b 0011 ld $11 771c 0011 ld $11 771d 0011 ld $11 771e 000f ld $0f 771f 000f ld $0f 7720 000f ld $0f 7721 0011 ld $11 7722 0011 ld $11 7723 000f ld $0f 7724 0011 ld $11 7725 000f ld $0f 7726 0011 ld $11 7727 0011 ld $11 7728 0011 ld $11 7729 000f ld $0f 772a 000f ld $0f 772b 000f ld $0f 772c 0011 ld $11 772d 0011 ld $11 772e 0011 ld $11 772f 000f ld $0f 7730 0011 ld $11 7731 000f ld $0f 7732 000f ld $0f 7733 0011 ld $11 7734 0011 ld $11 7735 0011 ld $11 7736 000f ld $0f 7737 0011 ld $11 7738 0011 ld $11 7739 0011 ld $11 * 6 times 773d 00f9 ld $f9 773e 0059 ld $59 773f 00a0 ld $a0 7740 0060 ld $60 7741 00ec ld $ec 7742 0057 ld $57 7743 00d8 ld $d8 7744 0057 ld $57 7745 00c4 ld $c4 7746 0057 ld $57 7747 00b0 ld $b0 7748 0057 ld $57 7749 00ec ld $ec 774a 0056 ld $56 774b 0011 ld $11 774c 0011 ld $11 774d 0011 ld $11 * 14 times 7759 000f ld $0f 775a 000f ld $0f 775b 0011 ld $11 775c 000f ld $0f 775d 0011 ld $11 775e 000f ld $0f 775f 0011 ld $11 7760 000f ld $0f 7761 0011 ld $11 7762 0011 ld $11 7763 0011 ld $11 7764 000f ld $0f 7765 0011 ld $11 7766 000f ld $0f 7767 0011 ld $11 7768 0011 ld $11 7769 0011 ld $11 776a 0011 ld $11 776b 000f ld $0f 776c 000f ld $0f 776d 0011 ld $11 776e 0011 ld $11 776f 0011 ld $11 * 8 times 7775 00f9 ld $f9 7776 0000 ld $00 7777 0000 ld $00 7778 0000 ld $00 * 42 times 77a0 00f9 ld $f9 77a1 005a ld $5a 77a2 00aa ld $aa 77a3 0056 ld $56 77a4 0000 ld $00 77a5 0000 ld $00 77a6 0000 ld $00 * 42 times 77ce 00f9 ld $f9 77cf 0000 ld $00 77d0 0000 ld $00 77d1 0000 ld $00 * 42 times 77f9 00f9 ld $f9 77fa 005b ld $5b 77fb fe00 bra ac ;+-----------------------------------+ 77fc fcfd bra $77fd ;| | 77fd 1418 ld $18,y ;| Trampoline for page $7700 lookups | 77fe e006 jmp y,$06 ;| | 77ff c218 st [$18] ;+-----------------------------------+ 7800 00aa ld $aa 7801 0056 ld $56 7802 0013 ld $13 7803 0013 ld $13 7804 0000 ld $00 7805 0000 ld $00 7806 0013 ld $13 7807 0000 ld $00 7808 0000 ld $00 7809 0000 ld $00 780a 0013 ld $13 780b 0000 ld $00 780c 0000 ld $00 780d 0000 ld $00 780e 0013 ld $13 780f 0013 ld $13 7810 0000 ld $00 7811 0000 ld $00 7812 0000 ld $00 * 5 times 7815 0013 ld $13 7816 0013 ld $13 7817 0000 ld $00 7818 0013 ld $13 7819 0000 ld $00 781a 0013 ld $13 781b 0013 ld $13 781c 0013 ld $13 781d 0000 ld $00 781e 0000 ld $00 781f 0000 ld $00 7820 0013 ld $13 7821 0000 ld $00 7822 0000 ld $00 7823 0013 ld $13 7824 0000 ld $00 7825 0000 ld $00 7826 0000 ld $00 7827 0013 ld $13 7828 0000 ld $00 7829 0000 ld $00 782a 0013 ld $13 782b 0000 ld $00 782c 00f9 ld $f9 782d 0013 ld $13 782e 0013 ld $13 782f 0000 ld $00 7830 0013 ld $13 7831 0000 ld $00 7832 0013 ld $13 7833 0000 ld $00 7834 0013 ld $13 7835 0013 ld $13 7836 0013 ld $13 * 6 times 783a 0000 ld $00 783b 0013 ld $13 783c 0000 ld $00 783d 0000 ld $00 783e 0000 ld $00 783f 0000 ld $00 7840 0013 ld $13 7841 0000 ld $00 7842 0000 ld $00 7843 0000 ld $00 7844 0013 ld $13 7845 0000 ld $00 7846 0000 ld $00 7847 0013 ld $13 7848 0000 ld $00 7849 0000 ld $00 784a 0000 ld $00 784b 0013 ld $13 784c 0013 ld $13 784d 0000 ld $00 784e 0013 ld $13 784f 0000 ld $00 7850 0013 ld $13 7851 0013 ld $13 7852 0000 ld $00 7853 0013 ld $13 7854 0000 ld $00 7855 0013 ld $13 7856 0000 ld $00 7857 00f9 ld $f9 7858 005c ld $5c 7859 00aa ld $aa 785a 0056 ld $56 785b 0013 ld $13 785c 0000 ld $00 785d 0000 ld $00 785e 0000 ld $00 785f 0013 ld $13 7860 0000 ld $00 7861 0000 ld $00 7862 0013 ld $13 7863 0000 ld $00 7864 0013 ld $13 7865 0013 ld $13 7866 0013 ld $13 7867 0000 ld $00 7868 0000 ld $00 7869 0013 ld $13 786a 0013 ld $13 786b 0000 ld $00 786c 0000 ld $00 786d 0013 ld $13 786e 0013 ld $13 786f 0013 ld $13 7870 0000 ld $00 7871 0013 ld $13 7872 0000 ld $00 7873 0000 ld $00 7874 0013 ld $13 7875 0000 ld $00 7876 0013 ld $13 7877 0000 ld $00 7878 0013 ld $13 7879 0013 ld $13 787a 0000 ld $00 787b 0000 ld $00 787c 0013 ld $13 787d 0013 ld $13 787e 0000 ld $00 787f 0013 ld $13 7880 0000 ld $00 7881 0013 ld $13 7882 0013 ld $13 7883 0000 ld $00 7884 0000 ld $00 7885 00f9 ld $f9 7886 0013 ld $13 7887 0000 ld $00 7888 0000 ld $00 7889 0000 ld $00 * 5 times 788c 0013 ld $13 788d 0000 ld $00 788e 0013 ld $13 788f 0000 ld $00 7890 0000 ld $00 7891 0000 ld $00 7892 0013 ld $13 7893 0013 ld $13 7894 0000 ld $00 7895 0000 ld $00 7896 0000 ld $00 * 5 times 7899 0013 ld $13 789a 0013 ld $13 789b 0000 ld $00 789c 0000 ld $00 789d 0000 ld $00 789e 0013 ld $13 789f 0013 ld $13 78a0 0013 ld $13 78a1 0000 ld $00 78a2 0000 ld $00 78a3 0000 ld $00 78a4 0013 ld $13 78a5 0000 ld $00 78a6 0000 ld $00 78a7 0013 ld $13 78a8 0000 ld $00 78a9 0000 ld $00 78aa 0013 ld $13 78ab 0000 ld $00 78ac 0000 ld $00 78ad 0000 ld $00 * 5 times 78b0 00f9 ld $f9 78b1 005d ld $5d 78b2 00aa ld $aa 78b3 0056 ld $56 78b4 0000 ld $00 78b5 0013 ld $13 78b6 0000 ld $00 78b7 0013 ld $13 78b8 0000 ld $00 78b9 0000 ld $00 78ba 0013 ld $13 78bb 0013 ld $13 78bc 0013 ld $13 78bd 0013 ld $13 78be 0000 ld $00 78bf 0013 ld $13 78c0 0013 ld $13 78c1 0000 ld $00 78c2 0013 ld $13 78c3 0013 ld $13 78c4 0013 ld $13 78c5 0000 ld $00 78c6 0000 ld $00 78c7 0013 ld $13 78c8 0013 ld $13 78c9 0000 ld $00 78ca 0013 ld $13 78cb 0013 ld $13 78cc 0013 ld $13 * 7 times 78d1 0000 ld $00 78d2 0013 ld $13 78d3 0000 ld $00 78d4 0013 ld $13 78d5 0013 ld $13 78d6 0000 ld $00 78d7 0013 ld $13 78d8 0000 ld $00 78d9 0000 ld $00 78da 0000 ld $00 * 6 times 78de 00f9 ld $f9 78df 0000 ld $00 78e0 0000 ld $00 78e1 0000 ld $00 * 5 times 78e4 0013 ld $13 78e5 0000 ld $00 78e6 0013 ld $13 78e7 0000 ld $00 78e8 0013 ld $13 78e9 0013 ld $13 78ea 0013 ld $13 78eb 0000 ld $00 78ec 0000 ld $00 78ed 0013 ld $13 78ee 0013 ld $13 78ef 0000 ld $00 78f0 0013 ld $13 78f1 0000 ld $00 78f2 0013 ld $13 78f3 0013 ld $13 78f4 0000 ld $00 78f5 0013 ld $13 78f6 0013 ld $13 78f7 0000 ld $00 78f8 0013 ld $13 78f9 0000 ld $00 78fa 0013 ld $13 78fb fe00 bra ac ;+-----------------------------------+ 78fc fcfd bra $78fd ;| | 78fd 1418 ld $18,y ;| Trampoline for page $7800 lookups | 78fe e006 jmp y,$06 ;| | 78ff c218 st [$18] ;+-----------------------------------+ 7900 0000 ld $00 7901 0013 ld $13 7902 0013 ld $13 7903 0000 ld $00 7904 0000 ld $00 7905 0013 ld $13 7906 0013 ld $13 7907 0000 ld $00 7908 0000 ld $00 7909 0000 ld $00 790a 0000 ld $00 790b 0013 ld $13 790c 0000 ld $00 790d 0000 ld $00 790e 00f9 ld $f9 790f 005e ld $5e 7910 00a0 ld $a0 7911 0006 ld $06 7912 00b6 ld $b6 7913 0062 ld $62 7914 0000 ld $00 7915 0000 ld $00 7916 0000 ld $00 7917 0000 ld $00 7918 005e ld $5e 7919 00b6 ld $b6 791a 004a ld $4a 791b 003f ld $3f 791c 0000 ld $00 791d 0000 ld $00 791e 0000 ld $00 * 5 times 7921 003f ld $3f 7922 0000 ld $00 7923 0000 ld $00 7924 0000 ld $00 * 5 times 7927 003f ld $3f 7928 0000 ld $00 7929 0000 ld $00 792a 0000 ld $00 * 5 times 792d 003f ld $3f 792e 0000 ld $00 792f 0000 ld $00 7930 0000 ld $00 * 5 times 7933 003f ld $3f 7934 0000 ld $00 7935 0000 ld $00 7936 0000 ld $00 * 5 times 7939 003f ld $3f 793a 003f ld $3f 793b 003f ld $3f * 5 times 793e 0000 ld $00 793f 00fa ld $fa 7940 0000 ld $00 7941 003f ld $3f 7942 003f ld $3f 7943 003f ld $3f 7944 0000 ld $00 7945 0000 ld $00 7946 003f ld $3f 7947 0000 ld $00 7948 0000 ld $00 7949 0000 ld $00 794a 003f ld $3f 794b 0000 ld $00 794c 003f ld $3f 794d 0000 ld $00 794e 0000 ld $00 794f 0000 ld $00 7950 003f ld $3f 7951 0000 ld $00 7952 0000 ld $00 7953 003f ld $3f 7954 003f ld $3f 7955 003f ld $3f 7956 003f ld $3f 7957 0000 ld $00 7958 0000 ld $00 7959 0000 ld $00 * 5 times 795c 003f ld $3f 795d 0000 ld $00 795e 0000 ld $00 795f 003f ld $3f 7960 003f ld $3f 7961 003f ld $3f 7962 0000 ld $00 7963 0000 ld $00 7964 00fa ld $fa 7965 005f ld $5f 7966 00a0 ld $a0 7967 0006 ld $06 7968 00db ld $db 7969 0062 ld $62 796a 0000 ld $00 796b 0000 ld $00 796c 0000 ld $00 796d 0000 ld $00 796e 005f ld $5f 796f 00b6 ld $b6 7970 004a ld $4a 7971 0000 ld $00 7972 003f ld $3f 7973 003f ld $3f 7974 003f ld $3f 7975 0000 ld $00 7976 0000 ld $00 7977 003f ld $3f 7978 0000 ld $00 7979 0000 ld $00 797a 0000 ld $00 797b 003f ld $3f 797c 0000 ld $00 797d 0000 ld $00 797e 003f ld $3f 797f 003f ld $3f 7980 003f ld $3f 7981 0000 ld $00 7982 0000 ld $00 7983 003f ld $3f 7984 0000 ld $00 7985 0000 ld $00 7986 0000 ld $00 7987 003f ld $3f 7988 0000 ld $00 7989 003f ld $3f 798a 0000 ld $00 798b 0000 ld $00 798c 0000 ld $00 798d 003f ld $3f 798e 0000 ld $00 798f 0000 ld $00 7990 003f ld $3f 7991 003f ld $3f 7992 003f ld $3f 7993 0000 ld $00 7994 0000 ld $00 7995 00fa ld $fa 7996 003f ld $3f 7997 003f ld $3f 7998 003f ld $3f * 5 times 799b 0000 ld $00 799c 003f ld $3f 799d 0000 ld $00 799e 0000 ld $00 799f 0000 ld $00 79a0 003f ld $3f 79a1 0000 ld $00 79a2 0000 ld $00 79a3 0000 ld $00 79a4 0000 ld $00 79a5 003f ld $3f 79a6 0000 ld $00 79a7 0000 ld $00 79a8 0000 ld $00 79a9 0000 ld $00 79aa 003f ld $3f 79ab 0000 ld $00 79ac 0000 ld $00 79ad 0000 ld $00 * 5 times 79b0 003f ld $3f 79b1 0000 ld $00 79b2 0000 ld $00 79b3 0000 ld $00 * 5 times 79b6 003f ld $3f 79b7 0000 ld $00 79b8 0000 ld $00 79b9 0000 ld $00 79ba 00fa ld $fa 79bb 0060 ld $60 79bc 00a0 ld $a0 79bd 0006 ld $06 79be 00b0 ld $b0 79bf 0063 ld $63 79c0 0000 ld $00 79c1 0000 ld $00 79c2 0000 ld $00 79c3 0000 ld $00 79c4 0060 ld $60 79c5 00b6 ld $b6 79c6 004a ld $4a 79c7 0000 ld $00 79c8 003f ld $3f 79c9 003f ld $3f 79ca 003f ld $3f 79cb 0000 ld $00 79cc 0000 ld $00 79cd 003f ld $3f 79ce 0000 ld $00 79cf 0000 ld $00 79d0 0000 ld $00 * 5 times 79d3 003f ld $3f 79d4 003f ld $3f 79d5 003f ld $3f 79d6 003f ld $3f 79d7 0000 ld $00 79d8 0000 ld $00 79d9 003f ld $3f 79da 0000 ld $00 79db 0000 ld $00 79dc 0000 ld $00 79dd 003f ld $3f 79de 0000 ld $00 79df 003f ld $3f 79e0 0000 ld $00 79e1 0000 ld $00 79e2 0000 ld $00 79e3 003f ld $3f 79e4 0000 ld $00 79e5 0000 ld $00 79e6 003f ld $3f 79e7 003f ld $3f 79e8 003f ld $3f 79e9 0000 ld $00 79ea 0000 ld $00 79eb 00fa ld $fa 79ec 003f ld $3f 79ed 003f ld $3f 79ee 003f ld $3f * 5 times 79f1 0000 ld $00 79f2 003f ld $3f 79f3 0000 ld $00 79f4 0000 ld $00 79f5 0000 ld $00 * 6 times 79f9 003f ld $3f 79fa 003f ld $3f 79fb fe00 bra ac ;+-----------------------------------+ 79fc fcfd bra $79fd ;| | 79fd 1418 ld $18,y ;| Trampoline for page $7900 lookups | 79fe e006 jmp y,$06 ;| | 79ff c218 st [$18] ;+-----------------------------------+ 7a00 003f ld $3f 7a01 0000 ld $00 7a02 0000 ld $00 7a03 0000 ld $00 * 6 times 7a07 003f ld $3f 7a08 0000 ld $00 7a09 003f ld $3f 7a0a 0000 ld $00 7a0b 0000 ld $00 7a0c 0000 ld $00 7a0d 003f ld $3f 7a0e 0000 ld $00 7a0f 0000 ld $00 7a10 003f ld $3f 7a11 003f ld $3f 7a12 003f ld $3f 7a13 0000 ld $00 7a14 0000 ld $00 7a15 00fa ld $fa 7a16 0061 ld $61 7a17 00a0 ld $a0 7a18 0006 ld $06 7a19 00ed ld $ed 7a1a 007d ld $7d 7a1b 0000 ld $00 7a1c 0000 ld $00 7a1d 0000 ld $00 7a1e 0000 ld $00 7a1f 0061 ld $61 7a20 00b6 ld $b6 7a21 004a ld $4a 7a22 0000 ld $00 7a23 0000 ld $00 7a24 0000 ld $00 7a25 003f ld $3f 7a26 0000 ld $00 7a27 0000 ld $00 7a28 003f ld $3f 7a29 0000 ld $00 7a2a 0000 ld $00 7a2b 003f ld $3f 7a2c 0000 ld $00 7a2d 0000 ld $00 7a2e 003f ld $3f 7a2f 0000 ld $00 7a30 0000 ld $00 7a31 003f ld $3f 7a32 0000 ld $00 7a33 0000 ld $00 7a34 003f ld $3f 7a35 003f ld $3f 7a36 003f ld $3f * 5 times 7a39 0000 ld $00 7a3a 0000 ld $00 7a3b 0000 ld $00 7a3c 0000 ld $00 7a3d 003f ld $3f 7a3e 0000 ld $00 7a3f 0000 ld $00 7a40 0000 ld $00 * 5 times 7a43 003f ld $3f 7a44 0000 ld $00 7a45 0000 ld $00 7a46 00fa ld $fa 7a47 0000 ld $00 7a48 003f ld $3f 7a49 003f ld $3f 7a4a 003f ld $3f 7a4b 0000 ld $00 7a4c 0000 ld $00 7a4d 003f ld $3f 7a4e 0000 ld $00 7a4f 0000 ld $00 7a50 0000 ld $00 7a51 003f ld $3f 7a52 0000 ld $00 7a53 0000 ld $00 7a54 0000 ld $00 7a55 003f ld $3f 7a56 003f ld $3f 7a57 0000 ld $00 7a58 0000 ld $00 7a59 0000 ld $00 * 6 times 7a5d 003f ld $3f 7a5e 0000 ld $00 7a5f 003f ld $3f 7a60 0000 ld $00 7a61 0000 ld $00 7a62 0000 ld $00 7a63 003f ld $3f 7a64 0000 ld $00 7a65 0000 ld $00 7a66 003f ld $3f 7a67 003f ld $3f 7a68 003f ld $3f 7a69 0000 ld $00 7a6a 0000 ld $00 7a6b 00fa ld $fa 7a6c 0062 ld $62 7a6d 00a0 ld $a0 7a6e 0006 ld $06 7a6f 00d1 ld $d1 7a70 007e ld $7e 7a71 0000 ld $00 7a72 0000 ld $00 7a73 0000 ld $00 7a74 0000 ld $00 7a75 0062 ld $62 7a76 00b6 ld $b6 7a77 004a ld $4a 7a78 0000 ld $00 7a79 003f ld $3f 7a7a 003f ld $3f 7a7b 003f ld $3f 7a7c 0000 ld $00 7a7d 0000 ld $00 7a7e 003f ld $3f 7a7f 0000 ld $00 7a80 0000 ld $00 7a81 0000 ld $00 7a82 003f ld $3f 7a83 0000 ld $00 7a84 0000 ld $00 7a85 0000 ld $00 * 5 times 7a88 003f ld $3f 7a89 0000 ld $00 7a8a 0000 ld $00 7a8b 003f ld $3f 7a8c 003f ld $3f 7a8d 003f ld $3f 7a8e 0000 ld $00 7a8f 0000 ld $00 7a90 003f ld $3f 7a91 0000 ld $00 7a92 0000 ld $00 7a93 0000 ld $00 * 5 times 7a96 003f ld $3f 7a97 003f ld $3f 7a98 003f ld $3f * 5 times 7a9b 0000 ld $00 7a9c 00fa ld $fa 7a9d 0000 ld $00 7a9e 0000 ld $00 7a9f 003f ld $3f 7aa0 0000 ld $00 7aa1 0000 ld $00 7aa2 0000 ld $00 7aa3 0000 ld $00 7aa4 003f ld $3f 7aa5 003f ld $3f 7aa6 0000 ld $00 7aa7 0000 ld $00 7aa8 0000 ld $00 7aa9 003f ld $3f 7aaa 0000 ld $00 7aab 003f ld $3f 7aac 0000 ld $00 7aad 0000 ld $00 7aae 0000 ld $00 * 5 times 7ab1 003f ld $3f 7ab2 0000 ld $00 7ab3 0000 ld $00 7ab4 0000 ld $00 * 5 times 7ab7 003f ld $3f 7ab8 0000 ld $00 7ab9 0000 ld $00 7aba 0000 ld $00 7abb 003f ld $3f 7abc 003f ld $3f 7abd 003f ld $3f * 5 times 7ac0 0000 ld $00 7ac1 00fa ld $fa 7ac2 0063 ld $63 7ac3 00b0 ld $b0 7ac4 0050 ld $50 7ac5 0000 ld $00 7ac6 003f ld $3f 7ac7 003f ld $3f 7ac8 003f ld $3f 7ac9 0000 ld $00 7aca 0000 ld $00 7acb 003f ld $3f 7acc 003f ld $3f 7acd 0000 ld $00 7ace 0000 ld $00 7acf 003f ld $3f 7ad0 0000 ld $00 7ad1 003f ld $3f 7ad2 0000 ld $00 7ad3 003f ld $3f 7ad4 0000 ld $00 7ad5 003f ld $3f 7ad6 0000 ld $00 7ad7 003f ld $3f 7ad8 0000 ld $00 7ad9 003f ld $3f 7ada 0000 ld $00 7adb 003f ld $3f 7adc 0000 ld $00 7add 003f ld $3f 7ade 0000 ld $00 7adf 0000 ld $00 7ae0 003f ld $3f 7ae1 003f ld $3f 7ae2 0000 ld $00 7ae3 0000 ld $00 7ae4 003f ld $3f 7ae5 003f ld $3f 7ae6 003f ld $3f 7ae7 0000 ld $00 7ae8 0000 ld $00 7ae9 00fa ld $fa 7aea 0000 ld $00 7aeb 0000 ld $00 7aec 0000 ld $00 * 17 times 7afb fe00 bra ac ;+-----------------------------------+ 7afc fcfd bra $7afd ;| | 7afd 1418 ld $18,y ;| Trampoline for page $7a00 lookups | 7afe e006 jmp y,$06 ;| | 7aff c218 st [$18] ;+-----------------------------------+ 7b00 0000 ld $00 7b01 0000 ld $00 7b02 0000 ld $00 * 25 times 7b19 00f9 ld $f9 7b1a 0064 ld $64 7b1b 00b0 ld $b0 7b1c 0050 ld $50 7b1d 003f ld $3f 7b1e 0000 ld $00 7b1f 0000 ld $00 7b20 0000 ld $00 7b21 0000 ld $00 7b22 003f ld $3f 7b23 0000 ld $00 7b24 003f ld $3f 7b25 0000 ld $00 7b26 0000 ld $00 7b27 003f ld $3f 7b28 0000 ld $00 7b29 0000 ld $00 7b2a 0000 ld $00 7b2b 003f ld $3f 7b2c 003f ld $3f 7b2d 0000 ld $00 7b2e 0000 ld $00 7b2f 003f ld $3f 7b30 003f ld $3f 7b31 0000 ld $00 7b32 0000 ld $00 7b33 003f ld $3f 7b34 003f ld $3f 7b35 0000 ld $00 7b36 0000 ld $00 7b37 003f ld $3f 7b38 003f ld $3f 7b39 0000 ld $00 7b3a 0000 ld $00 7b3b 0000 ld $00 7b3c 003f ld $3f 7b3d 0000 ld $00 7b3e 0000 ld $00 7b3f 003f ld $3f 7b40 0000 ld $00 7b41 003f ld $3f 7b42 0000 ld $00 7b43 0000 ld $00 7b44 0000 ld $00 7b45 0000 ld $00 7b46 003f ld $3f 7b47 00f9 ld $f9 7b48 0000 ld $00 7b49 0000 ld $00 7b4a 000c ld $0c 7b4b 0000 ld $00 7b4c 0000 ld $00 7b4d 0000 ld $00 7b4e 0000 ld $00 7b4f 000c ld $0c 7b50 0000 ld $00 7b51 0000 ld $00 7b52 000c ld $0c 7b53 0000 ld $00 7b54 0000 ld $00 7b55 0000 ld $00 7b56 000c ld $0c 7b57 0000 ld $00 7b58 0000 ld $00 7b59 0000 ld $00 7b5a 000c ld $0c 7b5b 0000 ld $00 7b5c 0000 ld $00 7b5d 0000 ld $00 7b5e 000c ld $0c 7b5f 0000 ld $00 7b60 0000 ld $00 7b61 000c ld $0c 7b62 0000 ld $00 7b63 0000 ld $00 7b64 0000 ld $00 7b65 000c ld $0c 7b66 000c ld $0c 7b67 000c ld $0c 7b68 0000 ld $00 7b69 000c ld $0c 7b6a 0000 ld $00 7b6b 0000 ld $00 7b6c 00fa ld $fa 7b6d 0065 ld $65 7b6e 00a0 ld $a0 7b6f 0006 ld $06 7b70 00d5 ld $d5 7b71 0063 ld $63 7b72 0000 ld $00 7b73 0000 ld $00 7b74 0000 ld $00 7b75 0000 ld $00 7b76 0065 ld $65 7b77 00b6 ld $b6 7b78 004a ld $4a 7b79 0000 ld $00 7b7a 0000 ld $00 7b7b 000c ld $0c 7b7c 0000 ld $00 7b7d 0000 ld $00 7b7e 000c ld $0c 7b7f 000c ld $0c 7b80 0000 ld $00 7b81 0000 ld $00 7b82 000c ld $0c 7b83 0000 ld $00 7b84 0000 ld $00 7b85 0000 ld $00 7b86 0000 ld $00 7b87 000c ld $0c 7b88 0000 ld $00 7b89 0000 ld $00 7b8a 000c ld $0c 7b8b 000c ld $0c 7b8c 0000 ld $00 7b8d 0000 ld $00 7b8e 0000 ld $00 7b8f 000c ld $0c 7b90 0000 ld $00 7b91 0000 ld $00 7b92 0000 ld $00 7b93 000c ld $0c 7b94 000c ld $0c 7b95 0000 ld $00 7b96 000c ld $0c 7b97 0000 ld $00 7b98 000c ld $0c 7b99 0000 ld $00 7b9a 000c ld $0c 7b9b 000c ld $0c 7b9c 0000 ld $00 7b9d 00fa ld $fa 7b9e 0000 ld $00 7b9f 0000 ld $00 7ba0 0000 ld $00 * 8 times 7ba6 000c ld $0c 7ba7 0000 ld $00 7ba8 0000 ld $00 7ba9 0000 ld $00 * 6 times 7bad 000c ld $0c 7bae 0000 ld $00 7baf 0000 ld $00 7bb0 000c ld $0c 7bb1 0000 ld $00 7bb2 000c ld $0c 7bb3 0000 ld $00 7bb4 0000 ld $00 7bb5 0000 ld $00 7bb6 000c ld $0c 7bb7 000c ld $0c 7bb8 000c ld $0c 7bb9 0000 ld $00 7bba 0000 ld $00 7bbb 0000 ld $00 7bbc 000c ld $0c 7bbd 000c ld $0c 7bbe 000c ld $0c 7bbf 000c ld $0c 7bc0 0000 ld $00 7bc1 000c ld $0c 7bc2 00fa ld $fa 7bc3 0066 ld $66 7bc4 00c3 ld $c3 7bc5 003d ld $3d 7bc6 0000 ld $00 7bc7 0000 ld $00 7bc8 003f ld $3f 7bc9 0000 ld $00 7bca 0000 ld $00 7bcb 0000 ld $00 7bcc 0000 ld $00 7bcd 003f ld $3f 7bce 0000 ld $00 7bcf 0000 ld $00 7bd0 003f ld $3f 7bd1 0000 ld $00 7bd2 003f ld $3f 7bd3 0000 ld $00 7bd4 0000 ld $00 7bd5 003f ld $3f 7bd6 0000 ld $00 7bd7 0000 ld $00 7bd8 0000 ld $00 7bd9 0000 ld $00 7bda 003f ld $3f 7bdb 0000 ld $00 7bdc 0000 ld $00 7bdd 0000 ld $00 * 7 times 7be2 003f ld $3f 7be3 003f ld $3f 7be4 0000 ld $00 7be5 0000 ld $00 7be6 003f ld $3f 7be7 0000 ld $00 7be8 0000 ld $00 7be9 0000 ld $00 7bea 003f ld $3f 7beb 0000 ld $00 7bec 0000 ld $00 7bed 003f ld $3f 7bee 0000 ld $00 7bef 0000 ld $00 7bf0 0000 ld $00 7bf1 003f ld $3f 7bf2 0000 ld $00 7bf3 0000 ld $00 7bf4 003f ld $3f 7bf5 0000 ld $00 7bf6 0000 ld $00 7bf7 0000 ld $00 7bf8 003f ld $3f 7bf9 0000 ld $00 7bfa 0000 ld $00 7bfb fe00 bra ac ;+-----------------------------------+ 7bfc fcfd bra $7bfd ;| | 7bfd 1418 ld $18,y ;| Trampoline for page $7b00 lookups | 7bfe e006 jmp y,$06 ;| | 7bff c218 st [$18] ;+-----------------------------------+ 7c00 0000 ld $00 7c01 0000 ld $00 7c02 0000 ld $00 * 7 times 7c07 00f6 ld $f6 7c08 0067 ld $67 7c09 00c3 ld $c3 7c0a 003d ld $3d 7c0b 0000 ld $00 7c0c 0000 ld $00 7c0d 0000 ld $00 7c0e 0000 ld $00 7c0f 003f ld $3f 7c10 0000 ld $00 7c11 0000 ld $00 7c12 0000 ld $00 7c13 003f ld $3f 7c14 0000 ld $00 7c15 0000 ld $00 7c16 003f ld $3f 7c17 0000 ld $00 7c18 0000 ld $00 7c19 0000 ld $00 7c1a 003f ld $3f 7c1b 0000 ld $00 7c1c 0000 ld $00 7c1d 0000 ld $00 * 6 times 7c21 003f ld $3f 7c22 0000 ld $00 7c23 0000 ld $00 7c24 003f ld $3f 7c25 003f ld $3f 7c26 0000 ld $00 7c27 0000 ld $00 7c28 0000 ld $00 * 7 times 7c2d 003f ld $3f 7c2e 0000 ld $00 7c2f 0000 ld $00 7c30 0000 ld $00 7c31 0000 ld $00 7c32 003f ld $3f 7c33 0000 ld $00 7c34 0000 ld $00 7c35 0000 ld $00 7c36 0000 ld $00 7c37 003f ld $3f 7c38 0000 ld $00 7c39 0000 ld $00 7c3a 003f ld $3f 7c3b 0000 ld $00 7c3c 0000 ld $00 7c3d 0000 ld $00 7c3e 0000 ld $00 7c3f 003f ld $3f 7c40 0000 ld $00 7c41 0000 ld $00 7c42 0000 ld $00 * 7 times 7c47 00f6 ld $f6 7c48 0068 ld $68 7c49 00c3 ld $c3 7c4a 003d ld $3d 7c4b 0000 ld $00 7c4c 0000 ld $00 7c4d 0000 ld $00 * 60 times 7c87 00f6 ld $f6 7c88 0069 ld $69 7c89 00c3 ld $c3 7c8a 003d ld $3d 7c8b 0000 ld $00 7c8c 0000 ld $00 7c8d 0000 ld $00 * 60 times 7cc7 00f6 ld $f6 7cc8 006a ld $6a 7cc9 00c3 ld $c3 7cca 003d ld $3d 7ccb 0000 ld $00 7ccc 0000 ld $00 7ccd 0000 ld $00 * 6 times 7cd1 003f ld $3f 7cd2 0000 ld $00 7cd3 0000 ld $00 7cd4 0000 ld $00 * 5 times 7cd7 003f ld $3f 7cd8 003f ld $3f 7cd9 0000 ld $00 7cda 0000 ld $00 7cdb 0000 ld $00 * 5 times 7cde 003f ld $3f 7cdf 003f ld $3f 7ce0 0000 ld $00 7ce1 0000 ld $00 7ce2 0000 ld $00 7ce3 003f ld $3f 7ce4 003f ld $3f 7ce5 003f ld $3f 7ce6 0000 ld $00 7ce7 0000 ld $00 7ce8 0000 ld $00 7ce9 0000 ld $00 7cea 003f ld $3f 7ceb 0000 ld $00 7cec 0000 ld $00 7ced 0000 ld $00 * 6 times 7cf1 003f ld $3f 7cf2 0000 ld $00 7cf3 0000 ld $00 7cf4 0000 ld $00 7cf5 0000 ld $00 7cf6 003f ld $3f 7cf7 0000 ld $00 7cf8 0000 ld $00 7cf9 0000 ld $00 7cfa 0000 ld $00 7cfb fe00 bra ac ;+-----------------------------------+ 7cfc fcfd bra $7cfd ;| | 7cfd 1418 ld $18,y ;| Trampoline for page $7c00 lookups | 7cfe e006 jmp y,$06 ;| | 7cff c218 st [$18] ;+-----------------------------------+ 7d00 0000 ld $00 7d01 0000 ld $00 7d02 0000 ld $00 * 12 times 7d0c 00f6 ld $f6 7d0d 006b ld $6b 7d0e 00c3 ld $c3 7d0f 003d ld $3d 7d10 0000 ld $00 7d11 0000 ld $00 7d12 0000 ld $00 7d13 0000 ld $00 7d14 003f ld $3f 7d15 003f ld $3f 7d16 0000 ld $00 7d17 0000 ld $00 7d18 0000 ld $00 7d19 003f ld $3f 7d1a 003f ld $3f 7d1b 003f ld $3f 7d1c 0000 ld $00 7d1d 0000 ld $00 7d1e 003f ld $3f 7d1f 003f ld $3f 7d20 003f ld $3f 7d21 003f ld $3f 7d22 0000 ld $00 7d23 003f ld $3f 7d24 003f ld $3f 7d25 0000 ld $00 7d26 003f ld $3f 7d27 003f ld $3f 7d28 0000 ld $00 7d29 003f ld $3f 7d2a 003f ld $3f 7d2b 003f ld $3f * 5 times 7d2e 0000 ld $00 7d2f 0000 ld $00 7d30 003f ld $3f 7d31 0000 ld $00 7d32 003f ld $3f 7d33 003f ld $3f 7d34 0000 ld $00 7d35 003f ld $3f 7d36 0000 ld $00 7d37 0000 ld $00 7d38 0000 ld $00 * 6 times 7d3c 003f ld $3f 7d3d 0000 ld $00 7d3e 0000 ld $00 7d3f 0000 ld $00 * 15 times 7d4c 00f6 ld $f6 7d4d 006c ld $6c 7d4e 00c3 ld $c3 7d4f 003d ld $3d 7d50 0000 ld $00 7d51 0000 ld $00 7d52 0000 ld $00 * 6 times 7d56 003f ld $3f 7d57 0000 ld $00 7d58 0000 ld $00 7d59 0000 ld $00 * 5 times 7d5c 003f ld $3f 7d5d 003f ld $3f 7d5e 0000 ld $00 7d5f 0000 ld $00 7d60 0000 ld $00 * 5 times 7d63 003f ld $3f 7d64 003f ld $3f 7d65 0000 ld $00 7d66 0000 ld $00 7d67 0000 ld $00 7d68 003f ld $3f 7d69 003f ld $3f 7d6a 003f ld $3f 7d6b 0000 ld $00 7d6c 0000 ld $00 7d6d 0000 ld $00 7d6e 003f ld $3f 7d6f 0000 ld $00 7d70 0000 ld $00 7d71 0000 ld $00 * 6 times 7d75 003f ld $3f 7d76 0000 ld $00 7d77 0000 ld $00 7d78 0000 ld $00 7d79 0000 ld $00 7d7a 003f ld $3f 7d7b 0000 ld $00 7d7c 003f ld $3f 7d7d 0000 ld $00 7d7e 0000 ld $00 7d7f 0000 ld $00 * 15 times 7d8c 00f6 ld $f6 7d8d 006d ld $6d 7d8e 00a0 ld $a0 7d8f 0006 ld $06 7d90 00b0 ld $b0 7d91 0064 ld $64 7d92 0000 ld $00 7d93 0000 ld $00 7d94 0000 ld $00 7d95 0000 ld $00 7d96 006d ld $6d 7d97 00ae ld $ae 7d98 0014 ld $14 7d99 0000 ld $00 7d9a 0003 ld $03 7d9b 0000 ld $00 7d9c 0003 ld $03 7d9d 0000 ld $00 7d9e 0003 ld $03 7d9f 0000 ld $00 7da0 0003 ld $03 7da1 0000 ld $00 7da2 0003 ld $03 7da3 0000 ld $00 7da4 0003 ld $03 7da5 0000 ld $00 7da6 0003 ld $03 7da7 0000 ld $00 7da8 0003 ld $03 7da9 0000 ld $00 7daa 0003 ld $03 7dab 0000 ld $00 7dac 0003 ld $03 7dad 006d ld $6d 7dae 00c3 ld $c3 7daf 003d ld $3d 7db0 0000 ld $00 7db1 0000 ld $00 7db2 0000 ld $00 7db3 0000 ld $00 7db4 003f ld $3f 7db5 003f ld $3f 7db6 0000 ld $00 7db7 0000 ld $00 7db8 0000 ld $00 7db9 003f ld $3f 7dba 003f ld $3f 7dbb 003f ld $3f 7dbc 0000 ld $00 7dbd 0000 ld $00 7dbe 003f ld $3f 7dbf 003f ld $3f 7dc0 003f ld $3f 7dc1 003f ld $3f 7dc2 0000 ld $00 7dc3 003f ld $3f 7dc4 003f ld $3f 7dc5 0000 ld $00 7dc6 003f ld $3f 7dc7 003f ld $3f 7dc8 0000 ld $00 7dc9 003f ld $3f 7dca 003f ld $3f 7dcb 003f ld $3f * 5 times 7dce 0000 ld $00 7dcf 0000 ld $00 7dd0 0000 ld $00 7dd1 003f ld $3f 7dd2 0000 ld $00 7dd3 0000 ld $00 7dd4 0000 ld $00 7dd5 0000 ld $00 7dd6 003f ld $3f 7dd7 0000 ld $00 7dd8 003f ld $3f 7dd9 003f ld $3f 7dda 0000 ld $00 7ddb 003f ld $3f 7ddc 0000 ld $00 7ddd 003f ld $3f 7dde 0000 ld $00 7ddf 0000 ld $00 7de0 0000 ld $00 * 14 times 7dec 00f6 ld $f6 7ded 006e ld $6e 7dee 00a0 ld $a0 7def 0006 ld $06 7df0 0000 ld $00 7df1 0000 ld $00 7df2 0000 ld $00 * 6 times 7df6 006e ld $6e 7df7 00ae ld $ae 7df8 0014 ld $14 7df9 0000 ld $00 7dfa 0003 ld $03 7dfb fe00 bra ac ;+-----------------------------------+ 7dfc fcfd bra $7dfd ;| | 7dfd 1418 ld $18,y ;| Trampoline for page $7d00 lookups | 7dfe e006 jmp y,$06 ;| | 7dff c218 st [$18] ;+-----------------------------------+ 7e00 0000 ld $00 7e01 0003 ld $03 7e02 0000 ld $00 7e03 0003 ld $03 7e04 0000 ld $00 7e05 0003 ld $03 7e06 0000 ld $00 7e07 0003 ld $03 7e08 0000 ld $00 7e09 0003 ld $03 7e0a 0000 ld $00 7e0b 0003 ld $03 7e0c 0000 ld $00 7e0d 0003 ld $03 7e0e 0000 ld $00 7e0f 0003 ld $03 7e10 0000 ld $00 7e11 0003 ld $03 7e12 006e ld $6e 7e13 00c3 ld $c3 7e14 003d ld $3d 7e15 0000 ld $00 7e16 003f ld $3f 7e17 0000 ld $00 7e18 0000 ld $00 7e19 0000 ld $00 7e1a 0000 ld $00 7e1b 003f ld $3f 7e1c 0000 ld $00 7e1d 0000 ld $00 7e1e 0000 ld $00 * 5 times 7e21 003f ld $3f 7e22 003f ld $3f 7e23 0000 ld $00 7e24 0000 ld $00 7e25 0000 ld $00 * 5 times 7e28 003f ld $3f 7e29 003f ld $3f 7e2a 0000 ld $00 7e2b 0000 ld $00 7e2c 0000 ld $00 7e2d 003f ld $3f 7e2e 003f ld $3f 7e2f 003f ld $3f 7e30 003f ld $3f 7e31 0000 ld $00 7e32 0000 ld $00 7e33 003f ld $3f 7e34 003f ld $3f 7e35 0000 ld $00 7e36 003f ld $3f 7e37 0000 ld $00 7e38 0000 ld $00 7e39 0000 ld $00 7e3a 003f ld $3f 7e3b 0000 ld $00 7e3c 003f ld $3f 7e3d 0000 ld $00 7e3e 0000 ld $00 7e3f 003f ld $3f 7e40 0000 ld $00 7e41 0000 ld $00 7e42 0000 ld $00 * 17 times 7e51 00f6 ld $f6 7e52 006f ld $6f 7e53 00a4 ld $a4 7e54 001e ld $1e 7e55 0000 ld $00 7e56 000c ld $0c 7e57 0018 ld $18 7e58 0024 ld $24 7e59 0030 ld $30 7e5a 003c ld $3c 7e5b 0048 ld $48 7e5c 0054 ld $54 7e5d 0060 ld $60 7e5e 006c ld $6c 7e5f 0000 ld $00 7e60 0002 ld $02 7e61 0000 ld $00 7e62 0002 ld $02 7e63 0000 ld $00 7e64 0002 ld $02 7e65 0000 ld $00 7e66 0002 ld $02 7e67 0000 ld $00 7e68 0002 ld $02 7e69 0000 ld $00 7e6a 0002 ld $02 7e6b 0000 ld $00 7e6c 0002 ld $02 7e6d 0000 ld $00 7e6e 0002 ld $02 7e6f 0000 ld $00 7e70 0002 ld $02 7e71 0000 ld $00 7e72 0002 ld $02 7e73 006f ld $6f 7e74 00c3 ld $c3 7e75 003d ld $3d 7e76 0000 ld $00 7e77 0000 ld $00 7e78 003f ld $3f 7e79 0000 ld $00 7e7a 0000 ld $00 7e7b 0000 ld $00 * 6 times 7e7f 003f ld $3f 7e80 0000 ld $00 7e81 0000 ld $00 7e82 0000 ld $00 7e83 0000 ld $00 7e84 003f ld $3f 7e85 003f ld $3f 7e86 003f ld $3f 7e87 003f ld $3f 7e88 0000 ld $00 7e89 003f ld $3f 7e8a 003f ld $3f 7e8b 0000 ld $00 7e8c 003f ld $3f 7e8d 003f ld $3f 7e8e 003f ld $3f * 9 times 7e95 0000 ld $00 7e96 003f ld $3f 7e97 003f ld $3f 7e98 003f ld $3f * 5 times 7e9b 0000 ld $00 7e9c 003f ld $3f 7e9d 0000 ld $00 7e9e 0000 ld $00 7e9f 0000 ld $00 * 6 times 7ea3 003f ld $3f 7ea4 0000 ld $00 7ea5 0000 ld $00 7ea6 0000 ld $00 * 14 times 7eb2 00f6 ld $f6 7eb3 0070 ld $70 7eb4 00a4 ld $a4 7eb5 001e ld $1e 7eb6 00a2 ld $a2 7eb7 0071 ld $71 7eb8 00ae ld $ae 7eb9 0070 ld $70 7eba 00ae ld $ae 7ebb 006f ld $6f 7ebc 00ae ld $ae 7ebd 006e ld $6e 7ebe 00ae ld $ae 7ebf 006d ld $6d 7ec0 0000 ld $00 7ec1 0002 ld $02 7ec2 0000 ld $00 7ec3 0002 ld $02 7ec4 0000 ld $00 7ec5 0002 ld $02 7ec6 0000 ld $00 7ec7 0002 ld $02 7ec8 0000 ld $00 7ec9 0002 ld $02 7eca 0000 ld $00 7ecb 0002 ld $02 7ecc 0000 ld $00 7ecd 0002 ld $02 7ece 0000 ld $00 7ecf 0002 ld $02 7ed0 0000 ld $00 7ed1 0002 ld $02 7ed2 0000 ld $00 7ed3 0002 ld $02 7ed4 0070 ld $70 7ed5 00c3 ld $c3 7ed6 003d ld $3d 7ed7 0000 ld $00 7ed8 003f ld $3f 7ed9 0000 ld $00 7eda 0000 ld $00 7edb 0000 ld $00 7edc 0000 ld $00 7edd 003f ld $3f 7ede 0000 ld $00 7edf 0000 ld $00 7ee0 003f ld $3f 7ee1 0000 ld $00 7ee2 0000 ld $00 7ee3 003f ld $3f 7ee4 003f ld $3f 7ee5 0000 ld $00 7ee6 003f ld $3f 7ee7 0000 ld $00 7ee8 0000 ld $00 7ee9 0000 ld $00 7eea 003f ld $3f 7eeb 003f ld $3f 7eec 003f ld $3f 7eed 0000 ld $00 7eee 0000 ld $00 7eef 003f ld $3f 7ef0 003f ld $3f 7ef1 003f ld $3f 7ef2 003f ld $3f 7ef3 0000 ld $00 7ef4 0000 ld $00 7ef5 003f ld $3f 7ef6 003f ld $3f 7ef7 003f ld $3f 7ef8 0000 ld $00 7ef9 0000 ld $00 7efa 0000 ld $00 7efb fe00 bra ac ;+-----------------------------------+ 7efc fcfd bra $7efd ;| | 7efd 1418 ld $18,y ;| Trampoline for page $7e00 lookups | 7efe e006 jmp y,$06 ;| | 7eff c218 st [$18] ;+-----------------------------------+ 7f00 0000 ld $00 7f01 003f ld $3f 7f02 0000 ld $00 7f03 0000 ld $00 7f04 0000 ld $00 * 6 times 7f08 003f ld $3f 7f09 0000 ld $00 7f0a 0000 ld $00 7f0b 0000 ld $00 * 15 times 7f18 00f6 ld $f6 7f19 0071 ld $71 7f1a 00a2 ld $a2 7f1b 0014 ld $14 7f1c 0000 ld $00 7f1d 0001 ld $01 7f1e 0000 ld $00 7f1f 0001 ld $01 7f20 0000 ld $00 7f21 0001 ld $01 7f22 0000 ld $00 7f23 0001 ld $01 7f24 0000 ld $00 7f25 0001 ld $01 7f26 0000 ld $00 7f27 0001 ld $01 7f28 0000 ld $00 7f29 0001 ld $01 7f2a 0000 ld $00 7f2b 0001 ld $01 7f2c 0000 ld $00 7f2d 0001 ld $01 7f2e 0080 ld $80 7f2f 0001 ld $01 7f30 0071 ld $71 7f31 00b7 ld $b7 7f32 0049 ld $49 7f33 0000 ld $00 7f34 0000 ld $00 7f35 0000 ld $00 * 14 times 7f41 003f ld $3f 7f42 0000 ld $00 7f43 0000 ld $00 7f44 0000 ld $00 7f45 003f ld $3f 7f46 0000 ld $00 7f47 0000 ld $00 7f48 003f ld $3f 7f49 0000 ld $00 7f4a 0000 ld $00 7f4b 003f ld $3f 7f4c 0000 ld $00 7f4d 003f ld $3f 7f4e 003f ld $3f 7f4f 003f ld $3f * 7 times 7f54 0000 ld $00 7f55 003f ld $3f 7f56 003f ld $3f 7f57 003f ld $3f * 8 times 7f5d 0000 ld $00 7f5e 003f ld $3f 7f5f 003f ld $3f 7f60 003f ld $3f * 5 times 7f63 0000 ld $00 7f64 0000 ld $00 7f65 003f ld $3f 7f66 0000 ld $00 7f67 0000 ld $00 7f68 0000 ld $00 7f69 0000 ld $00 7f6a 003f ld $3f 7f6b 0000 ld $00 7f6c 0000 ld $00 7f6d 0000 ld $00 * 16 times 7f7b 00f6 ld $f6 7f7c 0072 ld $72 7f7d 00a4 ld $a4 7f7e 005c ld $5c 7f7f 0017 ld $17 7f80 0017 ld $17 7f81 0017 ld $17 7f82 0000 ld $00 7f83 0000 ld $00 7f84 0000 ld $00 7f85 0017 ld $17 7f86 0000 ld $00 7f87 0000 ld $00 7f88 0000 ld $00 * 5 times 7f8b 0017 ld $17 7f8c 0017 ld $17 7f8d 0017 ld $17 7f8e 0000 ld $00 7f8f 0000 ld $00 7f90 0000 ld $00 * 5 times 7f93 0017 ld $17 7f94 0000 ld $00 7f95 0000 ld $00 7f96 0000 ld $00 7f97 0017 ld $17 7f98 0017 ld $17 7f99 0017 ld $17 7f9a 0000 ld $00 7f9b 0000 ld $00 7f9c 0000 ld $00 7f9d 00fb ld $fb 7f9e 003f ld $3f 7f9f 0000 ld $00 7fa0 0000 ld $00 7fa1 0000 ld $00 * 5 times 7fa4 003f ld $3f 7fa5 003f ld $3f 7fa6 003f ld $3f 7fa7 0000 ld $00 7fa8 0000 ld $00 7fa9 0000 ld $00 7faa 003f ld $3f 7fab 003f ld $3f 7fac 003f ld $3f 7fad 003f ld $3f 7fae 0000 ld $00 7faf 0000 ld $00 7fb0 0000 ld $00 7fb1 0000 ld $00 7fb2 003f ld $3f 7fb3 003f ld $3f 7fb4 0000 ld $00 7fb5 0000 ld $00 7fb6 003f ld $3f 7fb7 003f ld $3f 7fb8 003f ld $3f 7fb9 003f ld $3f 7fba 0000 ld $00 7fbb 0000 ld $00 7fbc 003f ld $3f 7fbd 003f ld $3f 7fbe 0000 ld $00 7fbf 0000 ld $00 7fc0 0000 ld $00 * 5 times 7fc3 003f ld $3f 7fc4 003f ld $3f 7fc5 0000 ld $00 7fc6 0000 ld $00 7fc7 0000 ld $00 7fc8 003f ld $3f 7fc9 003f ld $3f 7fca 0000 ld $00 7fcb 0000 ld $00 7fcc 0000 ld $00 * 16 times 7fda 00f6 ld $f6 7fdb 0073 ld $73 7fdc 00a4 ld $a4 7fdd 005c ld $5c 7fde 0017 ld $17 7fdf 0017 ld $17 7fe0 0017 ld $17 7fe1 0000 ld $00 7fe2 0000 ld $00 7fe3 0000 ld $00 * 5 times 7fe6 0017 ld $17 7fe7 0000 ld $00 7fe8 0000 ld $00 7fe9 0000 ld $00 7fea 0000 ld $00 7feb 0017 ld $17 7fec 0017 ld $17 7fed 0000 ld $00 7fee 0000 ld $00 7fef 0000 ld $00 * 5 times 7ff2 0017 ld $17 7ff3 0000 ld $00 7ff4 0000 ld $00 7ff5 0000 ld $00 7ff6 0017 ld $17 7ff7 0017 ld $17 7ff8 0017 ld $17 7ff9 0000 ld $00 7ffa 0000 ld $00 7ffb fe00 bra ac ;+-----------------------------------+ 7ffc fcfd bra $7ffd ;| | 7ffd 1418 ld $18,y ;| Trampoline for page $7f00 lookups | 7ffe e006 jmp y,$06 ;| | 7fff c218 st [$18] ;+-----------------------------------+ 8000 0000 ld $00 8001 00fb ld $fb 8002 0000 ld $00 8003 0000 ld $00 8004 0000 ld $00 8005 003f ld $3f 8006 003f ld $3f 8007 003f ld $3f 8008 0000 ld $00 8009 003f ld $3f 800a 003f ld $3f 800b 003f ld $3f * 13 times 8016 0000 ld $00 8017 0000 ld $00 8018 003f ld $3f 8019 003f ld $3f 801a 003f ld $3f * 8 times 8020 0000 ld $00 8021 0000 ld $00 8022 003f ld $3f 8023 003f ld $3f 8024 003f ld $3f 8025 003f ld $3f 8026 0000 ld $00 8027 003f ld $3f 8028 003f ld $3f 8029 0000 ld $00 802a 0000 ld $00 802b 0000 ld $00 * 5 times 802e 003f ld $3f 802f 003f ld $3f 8030 0000 ld $00 8031 0000 ld $00 8032 0000 ld $00 * 14 times 803e 00f6 ld $f6 803f 0074 ld $74 8040 00a0 ld $a0 8041 0060 ld $60 8042 0028 ld $28 8043 0026 ld $26 8044 0024 ld $24 8045 0022 ld $22 8046 0000 ld $00 8047 0017 ld $17 8048 0000 ld $00 8049 0000 ld $00 804a 0000 ld $00 804b 0000 ld $00 804c 0017 ld $17 804d 0017 ld $17 804e 0000 ld $00 804f 0000 ld $00 8050 0000 ld $00 * 5 times 8053 0017 ld $17 8054 0000 ld $00 8055 0000 ld $00 8056 0000 ld $00 * 5 times 8059 0017 ld $17 805a 0000 ld $00 805b 0000 ld $00 805c 0000 ld $00 805d 0000 ld $00 805e 0017 ld $17 805f 0017 ld $17 8060 0017 ld $17 8061 0000 ld $00 8062 0000 ld $00 8063 0000 ld $00 8064 00fb ld $fb 8065 003f ld $3f 8066 0000 ld $00 8067 0000 ld $00 8068 0000 ld $00 * 5 times 806b 003f ld $3f 806c 003f ld $3f 806d 003f ld $3f 806e 0000 ld $00 806f 0000 ld $00 8070 0000 ld $00 8071 003f ld $3f 8072 003f ld $3f 8073 003f ld $3f 8074 003f ld $3f 8075 0000 ld $00 8076 0000 ld $00 8077 0000 ld $00 8078 0000 ld $00 8079 003f ld $3f 807a 003f ld $3f 807b 0000 ld $00 807c 0000 ld $00 807d 003f ld $3f 807e 003f ld $3f 807f 003f ld $3f 8080 003f ld $3f 8081 0000 ld $00 8082 0000 ld $00 8083 003f ld $3f 8084 0000 ld $00 8085 0000 ld $00 8086 0000 ld $00 * 5 times 8089 003f ld $3f 808a 003f ld $3f 808b 0000 ld $00 808c 0000 ld $00 808d 0000 ld $00 * 6 times 8091 003f ld $3f 8092 003f ld $3f 8093 0000 ld $00 8094 0000 ld $00 8095 0000 ld $00 * 14 times 80a1 00f6 ld $f6 80a2 0075 ld $75 80a3 00a1 ld $a1 80a4 005f ld $5f 80a5 001e ld $1e 80a6 0014 ld $14 80a7 000a ld $0a 80a8 0017 ld $17 80a9 0017 ld $17 80aa 0017 ld $17 80ab 0000 ld $00 80ac 0000 ld $00 80ad 0000 ld $00 80ae 0017 ld $17 80af 0000 ld $00 80b0 0017 ld $17 80b1 0000 ld $00 80b2 0000 ld $00 80b3 0000 ld $00 80b4 0017 ld $17 80b5 0000 ld $00 80b6 0017 ld $17 80b7 0000 ld $00 80b8 0000 ld $00 80b9 0000 ld $00 80ba 0017 ld $17 80bb 0000 ld $00 80bc 0017 ld $17 80bd 0000 ld $00 80be 0000 ld $00 80bf 0000 ld $00 80c0 0017 ld $17 80c1 0017 ld $17 80c2 0017 ld $17 80c3 0000 ld $00 80c4 0000 ld $00 80c5 0000 ld $00 80c6 00fb ld $fb 80c7 0000 ld $00 80c8 0000 ld $00 80c9 0000 ld $00 80ca 003f ld $3f 80cb 003f ld $3f 80cc 003f ld $3f 80cd 0000 ld $00 80ce 003f ld $3f 80cf 003f ld $3f 80d0 003f ld $3f * 13 times 80db 0000 ld $00 80dc 0000 ld $00 80dd 003f ld $3f 80de 003f ld $3f 80df 003f ld $3f * 8 times 80e5 0000 ld $00 80e6 0000 ld $00 80e7 0000 ld $00 80e8 003f ld $3f 80e9 003f ld $3f 80ea 003f ld $3f 80eb 0000 ld $00 80ec 0000 ld $00 80ed 003f ld $3f 80ee 003f ld $3f 80ef 0000 ld $00 80f0 0000 ld $00 80f1 003f ld $3f 80f2 003f ld $3f 80f3 0000 ld $00 80f4 0000 ld $00 80f5 0000 ld $00 * 8 times 80fb fe00 bra ac ;+-----------------------------------+ 80fc fcfd bra $80fd ;| | 80fd 1418 ld $18,y ;| Trampoline for page $8000 lookups | 80fe e006 jmp y,$06 ;| | 80ff c218 st [$18] ;+-----------------------------------+ 8100 0000 ld $00 8101 0000 ld $00 8102 0000 ld $00 * 8 times 8108 00f6 ld $f6 8109 0076 ld $76 810a 00a1 ld $a1 810b 005f ld $5f 810c 0003 ld $03 810d 0003 ld $03 810e 0000 ld $00 810f 0000 ld $00 8110 0000 ld $00 8111 0000 ld $00 8112 00ff ld $ff 8113 0003 ld $03 8114 0003 ld $03 8115 0000 ld $00 8116 0003 ld $03 8117 0003 ld $03 8118 0000 ld $00 8119 00ff ld $ff 811a 0000 ld $00 811b 0003 ld $03 811c 0000 ld $00 811d 0003 ld $03 811e 0003 ld $03 811f 0000 ld $00 8120 00ff ld $ff 8121 0000 ld $00 8122 0000 ld $00 8123 0000 ld $00 8124 000c ld $0c 8125 0000 ld $00 8126 0000 ld $00 8127 0000 ld $00 * 7 times 812c 000c ld $0c 812d 0000 ld $00 812e 000c ld $0c 812f 0000 ld $00 8130 000c ld $0c 8131 0000 ld $00 8132 0000 ld $00 8133 0000 ld $00 * 6 times 8137 000c ld $0c 8138 000c ld $0c 8139 000c ld $0c 813a 0000 ld $00 813b 000c ld $0c 813c 000c ld $0c 813d 000c ld $0c 813e 000c ld $0c 813f 0000 ld $00 8140 000c ld $0c 8141 000c ld $0c 8142 000c ld $0c * 5 times 8145 00fa ld $fa 8146 0000 ld $00 8147 0000 ld $00 8148 0000 ld $00 * 6 times 814c 000c ld $0c 814d 0000 ld $00 814e 0000 ld $00 814f 0000 ld $00 * 5 times 8152 000c ld $0c 8153 000c ld $0c 8154 000c ld $0c 8155 000c ld $0c 8156 0000 ld $00 8157 0000 ld $00 8158 000c ld $0c 8159 000c ld $0c 815a 000c ld $0c * 5 times 815d 0000 ld $00 815e 000c ld $0c 815f 000c ld $0c 8160 000c ld $0c * 5 times 8163 0000 ld $00 8164 000c ld $0c 8165 000c ld $0c 8166 000c ld $0c * 5 times 8169 0000 ld $00 816a 00fa ld $fa 816b 0077 ld $77 816c 00a2 ld $a2 816d 005e ld $5e 816e 0003 ld $03 816f 0000 ld $00 8170 0003 ld $03 8171 0000 ld $00 8172 0000 ld $00 8173 0000 ld $00 8174 00ff ld $ff 8175 0003 ld $03 8176 0000 ld $00 8177 0003 ld $03 8178 0003 ld $03 8179 0000 ld $00 817a 0003 ld $03 817b 00ff ld $ff 817c 0000 ld $00 817d 0000 ld $00 817e 0000 ld $00 * 5 times 8181 000c ld $0c 8182 0000 ld $00 8183 0000 ld $00 8184 0000 ld $00 8185 0000 ld $00 8186 000c ld $0c 8187 000c ld $0c 8188 0000 ld $00 8189 000c ld $0c 818a 000c ld $0c 818b 000c ld $0c * 23 times 81a0 00fa ld $fa 81a1 0000 ld $00 81a2 0000 ld $00 81a3 0000 ld $00 * 6 times 81a7 0003 ld $03 81a8 0000 ld $00 81a9 0000 ld $00 81aa 0000 ld $00 * 5 times 81ad 0003 ld $03 81ae 0003 ld $03 81af 0000 ld $00 81b0 0000 ld $00 81b1 0000 ld $00 * 5 times 81b4 0003 ld $03 81b5 0003 ld $03 81b6 0000 ld $00 81b7 0000 ld $00 81b8 0000 ld $00 81b9 0003 ld $03 81ba 0003 ld $03 81bb 0003 ld $03 81bc 0003 ld $03 81bd 0000 ld $00 81be 0000 ld $00 81bf 0003 ld $03 81c0 0003 ld $03 81c1 0000 ld $00 81c2 0000 ld $00 81c3 0000 ld $00 81c4 0000 ld $00 81c5 0003 ld $03 81c6 0000 ld $00 81c7 0000 ld $00 81c8 0000 ld $00 * 5 times 81cb 00f9 ld $f9 81cc 0078 ld $78 81cd 00a0 ld $a0 81ce 0060 ld $60 81cf 000d ld $0d 81d0 0009 ld $09 81d1 0005 ld $05 81d2 0000 ld $00 81d3 0000 ld $00 81d4 0003 ld $03 81d5 0003 ld $03 81d6 0000 ld $00 81d7 0003 ld $03 81d8 00ff ld $ff 81d9 0003 ld $03 81da 0003 ld $03 81db 0003 ld $03 * 5 times 81de 0000 ld $00 81df 0003 ld $03 81e0 0003 ld $03 81e1 0003 ld $03 * 12 times 81eb 0000 ld $00 81ec 0003 ld $03 81ed 0003 ld $03 81ee 0000 ld $00 81ef 0003 ld $03 81f0 0003 ld $03 81f1 0003 ld $03 * 8 times 81f7 0000 ld $00 81f8 0003 ld $03 81f9 0003 ld $03 81fa 0000 ld $00 81fb fe00 bra ac ;+-----------------------------------+ 81fc fcfd bra $81fd ;| | 81fd 1418 ld $18,y ;| Trampoline for page $8100 lookups | 81fe e006 jmp y,$06 ;| | 81ff c218 st [$18] ;+-----------------------------------+ 8200 0000 ld $00 8201 0003 ld $03 8202 0000 ld $00 8203 0000 ld $00 8204 0000 ld $00 * 6 times 8208 00f9 ld $f9 8209 0000 ld $00 820a 0000 ld $00 820b 0000 ld $00 * 5 times 820e 0003 ld $03 820f 0000 ld $00 8210 0000 ld $00 8211 0000 ld $00 8212 0003 ld $03 8213 0003 ld $03 8214 0003 ld $03 8215 0000 ld $00 8216 0000 ld $00 8217 0003 ld $03 8218 0003 ld $03 8219 0003 ld $03 821a 0003 ld $03 821b 0000 ld $00 821c 0003 ld $03 821d 0003 ld $03 821e 0000 ld $00 821f 0003 ld $03 8220 0003 ld $03 8221 0003 ld $03 * 8 times 8227 0000 ld $00 8228 0000 ld $00 8229 0003 ld $03 822a 0003 ld $03 822b 0003 ld $03 822c 0000 ld $00 822d 0000 ld $00 822e 0000 ld $00 822f 0000 ld $00 8230 0003 ld $03 8231 0000 ld $00 8232 0000 ld $00 8233 00f9 ld $f9 8234 0079 ld $79 8235 00a2 ld $a2 8236 005e ld $5e 8237 000f ld $0f 8238 000b ld $0b 8239 0007 ld $07 823a 000c ld $0c 823b 000c ld $0c 823c 0000 ld $00 823d 0000 ld $00 823e 0000 ld $00 823f 0000 ld $00 8240 000c ld $0c 8241 000c ld $0c 8242 000c ld $0c 8243 0000 ld $00 8244 0000 ld $00 8245 0000 ld $00 8246 000c ld $0c 8247 000c ld $0c 8248 000c ld $0c 8249 000c ld $0c 824a 0000 ld $00 824b 0000 ld $00 824c 000c ld $0c 824d 000c ld $0c 824e 000c ld $0c * 5 times 8251 0000 ld $00 8252 000c ld $0c 8253 000c ld $0c 8254 000c ld $0c * 66 times 8294 00ff ld $ff 8295 007a ld $7a 8296 00a0 ld $a0 8297 0060 ld $60 8298 0028 ld $28 8299 001e ld $1e 829a 0014 ld $14 829b 000a ld $0a 829c 0000 ld $00 829d 000c ld $0c 829e 000c ld $0c 829f 000c ld $0c * 78 times 82eb 0000 ld $00 82ec 0000 ld $00 82ed 0000 ld $00 82ee 0000 ld $00 82ef 000c ld $0c 82f0 000c ld $0c 82f1 0000 ld $00 82f2 0000 ld $00 82f3 0000 ld $00 * 5 times 82f6 000c ld $0c 82f7 00ff ld $ff 82f8 007b ld $7b 82f9 00a0 ld $a0 82fa 0060 ld $60 82fb fe00 bra ac ;+-----------------------------------+ 82fc fcfd bra $82fd ;| | 82fd 1418 ld $18,y ;| Trampoline for page $8200 lookups | 82fe e006 jmp y,$06 ;| | 82ff c218 st [$18] ;+-----------------------------------+ 8300 0000 ld $00 8301 0000 ld $00 8302 0000 ld $00 * 5 times 8305 000c ld $0c 8306 000c ld $0c 8307 000c ld $0c * 80 times 8355 0000 ld $00 8356 0000 ld $00 8357 0000 ld $00 8358 0000 ld $00 8359 000c ld $0c 835a 0000 ld $00 835b 0000 ld $00 835c 0000 ld $00 * 5 times 835f 00ff ld $ff 8360 007c ld $7c 8361 00a0 ld $a0 8362 0060 ld $60 8363 0000 ld $00 8364 0000 ld $00 8365 0000 ld $00 * 9 times 836c 000c ld $0c 836d 000c ld $0c 836e 0000 ld $00 836f 0000 ld $00 8370 0000 ld $00 8371 000c ld $0c 8372 000c ld $0c 8373 000c ld $0c 8374 0000 ld $00 8375 0000 ld $00 8376 000c ld $0c 8377 000c ld $0c 8378 000c ld $0c 8379 000c ld $0c 837a 0000 ld $00 837b 000c ld $0c 837c 000c ld $0c 837d 000c ld $0c * 71 times 83c2 00ff ld $ff 83c3 007d ld $7d 83c4 00a0 ld $a0 83c5 0060 ld $60 83c6 0009 ld $09 83c7 0000 ld $00 83c8 0067 ld $67 83c9 0000 ld $00 83ca 008d ld $8d 83cb 0000 ld $00 83cc 005e ld $5e 83cd 0000 ld $00 83ce 00c5 ld $c5 83cf 0000 ld $00 83d0 007a ld $7a 83d1 0000 ld $00 83d2 0071 ld $71 83d3 0000 ld $00 83d4 0071 ld $71 83d5 0000 ld $00 83d6 0009 ld $09 83d7 0000 ld $00 83d8 00a9 ld $a9 83d9 0000 ld $00 83da 001c ld $1c 83db 0000 ld $00 83dc 00a9 ld $a9 83dd 0000 ld $00 83de 009f ld $9f 83df 0000 ld $00 83e0 001c ld $1c 83e1 0000 ld $00 83e2 0083 ld $83 83e3 0000 ld $00 83e4 0019 ld $19 83e5 0001 ld $01 83e6 004b ld $4b 83e7 0000 ld $00 83e8 0054 ld $54 83e9 0000 ld $00 83ea 00f4 ld $f4 83eb 0000 ld $00 83ec 00c5 ld $c5 83ed 0000 ld $00 83ee 0083 ld $83 83ef 0000 ld $00 83f0 00e1 ld $e1 83f1 0000 ld $00 83f2 001c ld $1c 83f3 0000 ld $00 83f4 00e1 ld $e1 83f5 0000 ld $00 83f6 0071 ld $71 83f7 0000 ld $00 83f8 007a ld $7a 83f9 0000 ld $00 83fa 0000 ld $00 83fb fe00 bra ac ;+-----------------------------------+ 83fc fcfd bra $83fd ;| | 83fd 1418 ld $18,y ;| Trampoline for page $8300 lookups | 83fe e006 jmp y,$06 ;| | 83ff c218 st [$18] ;+-----------------------------------+ 8400 0000 ld $00 8401 0096 ld $96 8402 0000 ld $00 8403 00ce ld $ce 8404 0000 ld $00 8405 00bc ld $bc 8406 0000 ld $00 8407 00fd ld $fd 8408 0000 ld $00 8409 0096 ld $96 840a 0000 ld $00 840b 0000 ld $00 840c 0000 ld $00 * 8 times 8412 0003 ld $03 8413 0003 ld $03 8414 0000 ld $00 8415 0000 ld $00 8416 0000 ld $00 8417 00ff ld $ff 8418 0000 ld $00 8419 0000 ld $00 841a 0000 ld $00 * 18 times 842a 00fd ld $fd 842b 007e ld $7e 842c 00a0 ld $a0 842d 0018 ld $18 842e 00b8 ld $b8 842f 000b ld $0b 8430 00e4 ld $e4 8431 000c ld $0c 8432 0010 ld $10 8433 000e ld $0e 8434 003c ld $3c 8435 000f ld $0f 8436 0068 ld $68 8437 0010 ld $10 8438 0094 ld $94 8439 0011 ld $11 843a 00b8 ld $b8 843b 000b ld $0b 843c 00e4 ld $e4 843d 000c ld $0c 843e 0010 ld $10 843f 000e ld $0e 8440 003c ld $3c 8441 000f ld $0f 8442 0068 ld $68 8443 0010 ld $10 8444 0094 ld $94 8445 0011 ld $11 8446 007e ld $7e 8447 00b9 ld $b9 8448 000d ld $0d 8449 0000 ld $00 844a 0003 ld $03 844b 0003 ld $03 844c 0000 ld $00 844d 0003 ld $03 844e 0003 ld $03 844f 00ff ld $ff 8450 0000 ld $00 8451 0000 ld $00 8452 0039 ld $39 8453 0009 ld $09 8454 00d1 ld $d1 8455 000e ld $0e 8456 007e ld $7e 8457 00c8 ld $c8 8458 0038 ld $38 8459 0000 ld $00 845a 008d ld $8d 845b 0000 ld $00 845c 0003 ld $03 845d 0003 ld $03 845e 0000 ld $00 845f 0003 ld $03 8460 0003 ld $03 8461 00ff ld $ff 8462 0000 ld $00 8463 0000 ld $00 8464 000c ld $0c 8465 000c ld $0c 8466 0000 ld $00 8467 0000 ld $00 8468 000c ld $0c 8469 000c ld $0c 846a 000c ld $0c * 12 times 8474 00fd ld $fd 8475 000c ld $0c 8476 000c ld $0c 8477 000c ld $0c * 6 times 847b 00ff ld $ff 847c 0000 ld $00 847d 0000 ld $00 847e 0000 ld $00 * 6 times 8482 00ff ld $ff 8483 0000 ld $00 8484 0000 ld $00 8485 0000 ld $00 * 6 times 8489 00ff ld $ff 848a 000c ld $0c 848b 000c ld $0c 848c 000c ld $0c * 6 times 8490 00ff ld $ff 8491 007f ld $7f 8492 00a0 ld $a0 8493 0060 ld $60 8494 0020 ld $20 8495 004e ld $4e 8496 0007 ld $07 8497 004c ld $4c 8498 001e ld $1e 8499 004a ld $4a 849a 0061 ld $61 849b 0048 ld $48 849c 00cc ld $cc 849d 0046 ld $46 849e 005b ld $5b 849f 0045 ld $45 84a0 000b ld $0b 84a1 0044 ld $44 84a2 00d9 ld $d9 84a3 0042 ld $42 84a4 00c2 ld $c2 84a5 0041 ld $41 84a6 00c5 ld $c5 84a7 0040 ld $40 84a8 00de ld $de 84a9 003f ld $3f 84aa 000b ld $0b 84ab 003f ld $3f 84ac 004c ld $4c 84ad 003e ld $3e 84ae 009e ld $9e 84af 003d ld $3d 84b0 00ff ld $ff 84b1 003c ld $3c 84b2 006e ld $6e 84b3 003c ld $3c 84b4 00eb ld $eb 84b5 003b ld $3b 84b6 0073 ld $73 84b7 003b ld $3b 84b8 0006 ld $06 84b9 003b ld $3b 84ba 00a3 ld $a3 84bb 003a ld $3a 84bc 0048 ld $48 84bd 003a ld $3a 84be 00f6 ld $f6 84bf 0039 ld $39 84c0 00ab ld $ab 84c1 0039 ld $39 84c2 0067 ld $67 84c3 0039 ld $39 84c4 0028 ld $28 84c5 0039 ld $39 84c6 00f0 ld $f0 84c7 0038 ld $38 84c8 00bc ld $bc 84c9 0038 ld $38 84ca 008d ld $8d 84cb 0038 ld $38 84cc 0063 ld $63 84cd 0038 ld $38 84ce 003c ld $3c 84cf 0038 ld $38 84d0 0018 ld $18 84d1 0038 ld $38 84d2 00f8 ld $f8 84d3 0037 ld $37 84d4 0020 ld $20 84d5 0020 ld $20 84d6 0020 ld $20 * 5 times 84d9 001f ld $1f 84da 001f ld $1f 84db 001e ld $1e 84dc 001e ld $1e 84dd 001d ld $1d 84de 001b ld $1b 84df 001a ld $1a 84e0 0019 ld $19 84e1 0017 ld $17 84e2 0015 ld $15 84e3 0013 ld $13 84e4 0011 ld $11 84e5 000f ld $0f 84e6 000d ld $0d 84e7 000b ld $0b 84e8 0009 ld $09 84e9 0008 ld $08 84ea 0006 ld $06 84eb 0005 ld $05 84ec 0004 ld $04 84ed 0003 ld $03 84ee 0002 ld $02 84ef 0002 ld $02 84f0 0001 ld $01 84f1 0001 ld $01 84f2 0001 ld $01 84f3 0000 ld $00 84f4 0000 ld $00 84f5 0000 ld $00 ;End of gbas/menu/Invader_vX0.gt1, size 8984 ;+-----------------------------------+ ;| gbas/menu/VideoPoker_vX0.gt1 | ;+-----------------------------------+ 84f6 0200 nop ;5 fillers 84f7 0200 nop 84f8 0200 nop * 5 times 84fb fe00 bra ac ;+-----------------------------------+ 84fc fcfd bra $84fd ;| | 84fd 1418 ld $18,y ;| Trampoline for page $8400 lookups | 84fe e006 jmp y,$06 ;| | 84ff c218 st [$18] ;+-----------------------------------+ 8500 dc49 st $49,[y,x++] ;'I' 8501 dc6e st $6e,[y,x++] ;'n' 8502 dc76 st $76,[y,x++] ;'v' 8503 dc61 st $61,[y,x++] ;'a' 8504 dc64 st $64,[y,x++] ;'d' 8505 dc65 st $65,[y,x++] ;'e' 8506 dc72 st $72,[y,x++] ;'r' 8507 dc00 st $00,[y,x++] ;'\x00' 8508 00de ld $de 8509 c218 st [$18] 850a 0061 ld $61 850b 14e0 ld $e0,y 850c e036 jmp y,$36 850d c219 st [$19] VideoPoker: 850e 0000 ld $00 850f 007e ld $7e 8510 0002 ld $02 8511 0001 ld $01 8512 0001 ld $01 8513 0002 ld $02 8514 0000 ld $00 8515 00f6 ld $f6 8516 0059 ld $59 8517 0080 ld $80 8518 002b ld $2b 8519 0082 ld $82 851a 0011 ld $11 851b 00a9 ld $a9 851c 0065 ld $65 851d 00cf ld $cf 851e 0018 ld $18 851f 0011 ld $11 8520 0020 ld $20 8521 000f ld $0f 8522 002b ld $2b 8523 00a2 ld $a2 8524 00c7 ld $c7 8525 0003 ld $03 8526 0069 ld $69 8527 0021 ld $21 8528 004d ld $4d 8529 0002 ld $02 852a 00aa ld $aa 852b 004d ld $4d 852c 0000 ld $00 852d 00d6 ld $d6 852e 004d ld $4d 852f 0000 ld $00 8530 00a6 ld $a6 8531 0016 ld $16 8532 0000 ld $00 8533 002d ld $2d 8534 004d ld $4d 8535 0000 ld $00 8536 002e ld $2e 8537 0085 ld $85 8538 00c7 ld $c7 8539 0060 ld $60 853a 0085 ld $85 853b 00a2 ld $a2 853c 0066 ld $66 853d 004d ld $4d 853e 0002 ld $02 853f 0082 ld $82 8540 0085 ld $85 8541 00a0 ld $a0 8542 0062 ld $62 8543 00c7 ld $c7 8544 0003 ld $03 8545 0072 ld $72 8546 0021 ld $21 8547 005e ld $5e 8548 0021 ld $21 8549 0085 ld $85 854a 00a0 ld $a0 854b 0063 ld $63 854c 0085 ld $85 854d 00a2 ld $a2 854e 0066 ld $66 854f 004d ld $4d 8550 0019 ld $19 8551 0030 ld $30 8552 004d ld $4d 8553 0001 ld $01 8554 0032 ld $32 8555 004d ld $4d 8556 0000 ld $00 8557 0034 ld $34 8558 004d ld $4d 8559 0002 ld $02 855a 0036 ld $36 855b 004d ld $4d 855c 0000 ld $00 855d 0038 ld $38 855e 004d ld $4d 855f 0000 ld $00 8560 003a ld $3a 8561 004d ld $4d 8562 0000 ld $00 8563 003c ld $3c 8564 004d ld $4d 8565 0000 ld $00 8566 003e ld $3e 8567 004d ld $4d 8568 0000 ld $00 8569 0040 ld $40 856a 004d ld $4d 856b 0000 ld $00 856c 0042 ld $42 856d 004d ld $4d 856e 0000 ld $00 856f 0044 ld $44 8570 004d ld $4d 8571 0000 ld $00 8572 0046 ld $46 8573 004d ld $4d 8574 0000 ld $00 8575 0048 ld $48 8576 004d ld $4d 8577 0000 ld $00 8578 004a ld $4a 8579 004d ld $4d 857a 00ff ld $ff 857b 004c ld $4c 857c 0016 ld $16 857d 003f ld $3f 857e 00a2 ld $a2 857f 0016 ld $16 8580 003f ld $3f 8581 00a3 ld $a3 8582 004d ld $4d 8583 0003 ld $03 8584 0082 ld $82 8585 004d ld $4d 8586 0002 ld $02 8587 0084 ld $84 8588 004d ld $4d 8589 009c ld $9c 858a 0086 ld $86 858b 004d ld $4d 858c 0069 ld $69 858d 0088 ld $88 858e 0085 ld $85 858f 00c2 ld $c2 8590 0067 ld $67 8591 0016 ld $16 8592 002a ld $2a 8593 00a3 ld $a3 8594 004d ld $4d 8595 0003 ld $03 8596 0090 ld $90 8597 004d ld $4d 8598 0002 ld $02 8599 0096 ld $96 859a 004d ld $4d 859b 009c ld $9c 859c 0098 ld $98 859d 004d ld $4d 859e 0069 ld $69 859f 00ac ld $ac 85a0 0085 ld $85 85a1 00d2 ld $d2 85a2 0065 ld $65 85a3 0016 ld $16 85a4 0000 ld $00 85a5 00a3 ld $a3 85a6 0016 ld $16 85a7 0010 ld $10 85a8 00a4 ld $a4 85a9 0016 ld $16 85aa 0005 ld $05 85ab 00a5 ld $a5 85ac 0085 ld $85 85ad 00dc ld $dc 85ae 0063 ld $63 85af 0011 ld $11 85b0 00b9 ld $b9 85b1 0071 ld $71 85b2 0085 ld $85 85b3 00aa ld $aa 85b4 0061 ld $61 85b5 0085 ld $85 85b6 00b7 ld $b7 85b7 0069 ld $69 85b8 0016 ld $16 85b9 0003 ld $03 85ba 00a3 ld $a3 85bb 0016 ld $16 85bc 0050 ld $50 85bd 00a4 ld $a4 85be 0016 ld $16 85bf 0005 ld $05 85c0 00a5 ld $a5 85c1 0085 ld $85 85c2 00dc ld $dc 85c3 0063 ld $63 85c4 0011 ld $11 85c5 00ac ld $ac 85c6 0071 ld $71 85c7 0085 ld $85 85c8 00aa ld $aa 85c9 0061 ld $61 85ca 0085 ld $85 85cb 00b7 ld $b7 85cc 0069 ld $69 85cd 004d ld $4d 85ce 0001 ld $01 85cf 0082 ld $82 85d0 0016 ld $16 85d1 0028 ld $28 85d2 0084 ld $84 85d3 0016 ld $16 85d4 0018 ld $18 85d5 0085 ld $85 85d6 0085 ld $85 85d7 00cf ld $cf 85d8 0060 ld $60 85d9 004d ld $4d 85da 0003 ld $03 85db 0082 ld $82 85dc 0016 ld $16 85dd 003c ld $3c 85de 0084 ld $84 85df 0016 ld $16 85e0 0018 ld $18 85e1 0085 ld $85 85e2 0085 ld $85 85e3 00cf ld $cf 85e4 0060 ld $60 85e5 004d ld $4d 85e6 0002 ld $02 85e7 0082 ld $82 85e8 0016 ld $16 85e9 0050 ld $50 85ea 0084 ld $84 85eb 0016 ld $16 85ec 0018 ld $18 85ed 0085 ld $85 85ee 0085 ld $85 85ef 00cf ld $cf 85f0 0060 ld $60 85f1 004d ld $4d 85f2 0000 ld $00 85f3 0082 ld $82 85f4 0016 ld $16 85f5 0064 ld $64 85f6 0084 ld $84 85f7 0016 ld $16 85f8 0018 ld $18 85f9 0085 ld $85 85fa 0085 ld $85 85fb fe00 bra ac ;+-----------------------------------+ 85fc fcfd bra $85fd ;| | 85fd 1418 ld $18,y ;| Trampoline for page $8500 lookups | 85fe e006 jmp y,$06 ;| | 85ff c218 st [$18] ;+-----------------------------------+ 8600 00cf ld $cf 8601 0060 ld $60 8602 0016 ld $16 8603 0000 ld $00 8604 00a3 ld $a3 8605 0016 ld $16 8606 0008 ld $08 8607 00a4 ld $a4 8608 0016 ld $16 8609 0021 ld $21 860a 00a5 ld $a5 860b 0085 ld $85 860c 00dc ld $dc 860d 0063 ld $63 860e 0085 ld $85 860f 0000 ld $00 8610 0003 ld $03 8611 0003 ld $03 8612 0000 ld $00 8613 00f8 ld $f8 8614 0011 ld $11 8615 00b1 ld $b1 8616 0070 ld $70 8617 0085 ld $85 8618 00aa ld $aa 8619 0061 ld $61 861a 0085 ld $85 861b 00b7 ld $b7 861c 0069 ld $69 861d 0016 ld $16 861e 0015 ld $15 861f 00a3 ld $a3 8620 0016 ld $16 8621 002a ld $2a 8622 00a2 ld $a2 8623 0016 ld $16 8624 0008 ld $08 8625 00a4 ld $a4 8626 0016 ld $16 8627 002d ld $2d 8628 00a5 ld $a5 8629 0085 ld $85 862a 00dc ld $dc 862b 0063 ld $63 862c 0011 ld $11 862d 00b1 ld $b1 862e 006f ld $6f 862f 0085 ld $85 8630 00aa ld $aa 8631 0061 ld $61 8632 0085 ld $85 8633 00b7 ld $b7 8634 0069 ld $69 8635 0016 ld $16 8636 003f ld $3f 8637 00a2 ld $a2 8638 0016 ld $16 8639 0008 ld $08 863a 00a4 ld $a4 863b 0016 ld $16 863c 0037 ld $37 863d 00a5 ld $a5 863e 0085 ld $85 863f 00dc ld $dc 8640 0063 ld $63 8641 0011 ld $11 8642 00e6 ld $e6 8643 006e ld $6e 8644 0085 ld $85 8645 00aa ld $aa 8646 0061 ld $61 8647 0085 ld $85 8648 00b7 ld $b7 8649 0069 ld $69 864a 0016 ld $16 864b 002a ld $2a 864c 00a2 ld $a2 864d 0016 ld $16 864e 0008 ld $08 864f 00a4 ld $a4 8650 0016 ld $16 8651 0041 ld $41 8652 00a5 ld $a5 8653 0085 ld $85 8654 00dc ld $dc 8655 0063 ld $63 8656 0011 ld $11 8657 00cc ld $cc 8658 006e ld $6e 8659 0085 ld $85 865a 00aa ld $aa 865b 0061 ld $61 865c 0085 ld $85 865d 00b7 ld $b7 865e 0069 ld $69 865f 0016 ld $16 8660 003f ld $3f 8661 00a2 ld $a2 8662 0016 ld $16 8663 0008 ld $08 8664 00a4 ld $a4 8665 0016 ld $16 8666 004b ld $4b 8667 00a5 ld $a5 8668 0085 ld $85 8669 00dc ld $dc 866a 0063 ld $63 866b 0011 ld $11 866c 00b2 ld $b2 866d 006e ld $6e 866e 0085 ld $85 866f 00aa ld $aa 8670 0061 ld $61 8671 0085 ld $85 8672 00b7 ld $b7 8673 0069 ld $69 8674 0016 ld $16 8675 002a ld $2a 8676 00a2 ld $a2 8677 0016 ld $16 8678 0008 ld $08 8679 00a4 ld $a4 867a 0016 ld $16 867b 0055 ld $55 867c 00a5 ld $a5 867d 0085 ld $85 867e 00dc ld $dc 867f 0063 ld $63 8680 0011 ld $11 8681 00e6 ld $e6 8682 006d ld $6d 8683 0085 ld $85 8684 00aa ld $aa 8685 0061 ld $61 8686 0085 ld $85 8687 00b7 ld $b7 8688 0069 ld $69 8689 0016 ld $16 868a 003f ld $3f 868b 00a2 ld $a2 868c 0016 ld $16 868d 0008 ld $08 868e 00a4 ld $a4 868f 0016 ld $16 8690 005f ld $5f 8691 00a5 ld $a5 8692 0085 ld $85 8693 00dc ld $dc 8694 0063 ld $63 8695 0011 ld $11 8696 00cc ld $cc 8697 006d ld $6d 8698 0085 ld $85 8699 00aa ld $aa 869a 0061 ld $61 869b 0085 ld $85 869c 00b7 ld $b7 869d 0069 ld $69 869e 0016 ld $16 869f 0015 ld $15 86a0 00a3 ld $a3 86a1 004d ld $4d 86a2 0006 ld $06 86a3 0090 ld $90 86a4 004d ld $4d 86a5 002a ld $2a 86a6 0096 ld $96 86a7 004d ld $4d 86a8 0099 ld $99 86a9 0098 ld $98 86aa 004d ld $4d 86ab 002a ld $2a 86ac 00ac ld $ac 86ad 0085 ld $85 86ae 00d2 ld $d2 86af 0065 ld $65 86b0 004d ld $4d 86b1 0034 ld $34 86b2 0090 ld $90 86b3 004d ld $4d 86b4 0021 ld $21 86b5 0096 ld $96 86b6 004d ld $4d 86b7 0034 ld $34 86b8 0098 ld $98 86b9 004d ld $4d 86ba 0067 ld $67 86bb 00ac ld $ac 86bc 0085 ld $85 86bd 00d2 ld $d2 86be 0065 ld $65 86bf 004d ld $4d 86c0 0064 ld $64 86c1 0090 ld $90 86c2 004d ld $4d 86c3 0021 ld $21 86c4 0096 ld $96 86c5 004d ld $4d 86c6 0064 ld $64 86c7 0098 ld $98 86c8 004d ld $4d 86c9 0067 ld $67 86ca 00ac ld $ac 86cb 0085 ld $85 86cc 00d2 ld $d2 86cd 0065 ld $65 86ce 0016 ld $16 86cf 003f ld $3f 86d0 00a3 ld $a3 86d1 0016 ld $16 86d2 0020 ld $20 86d3 00a2 ld $a2 86d4 0016 ld $16 86d5 001b ld $1b 86d6 00a4 ld $a4 86d7 0016 ld $16 86d8 006d ld $6d 86d9 00a5 ld $a5 86da 0085 ld $85 86db 00dc ld $dc 86dc 0063 ld $63 86dd 0011 ld $11 86de 00b9 ld $b9 86df 006d ld $6d 86e0 0085 ld $85 86e1 00aa ld $aa 86e2 0061 ld $61 86e3 0085 ld $85 86e4 00b7 ld $b7 86e5 0069 ld $69 86e6 001a ld $1a 86e7 0011 ld $11 86e8 002b ld $2b 86e9 004c ld $4c 86ea 00a7 ld $a7 86eb 007f ld $7f 86ec 004c ld $4c 86ed 006b ld $6b 86ee 00e8 ld $e8 86ef 00a7 ld $a7 86f0 000a ld $0a 86f1 004c ld $4c 86f2 006b ld $6b 86f3 0018 ld $18 86f4 00fa ld $fa 86f5 00e8 ld $e8 86f6 00bb ld $bb 86f7 00e8 ld $e8 86f8 0003 ld $03 86f9 0090 ld $90 86fa 00ea ld $ea 86fb fe00 bra ac ;+-----------------------------------+ 86fc fcfd bra $86fd ;| | 86fd 1418 ld $18,y ;| Trampoline for page $8600 lookups | 86fe e006 jmp y,$06 ;| | 86ff c218 st [$18] ;+-----------------------------------+ 8700 0085 ld $85 8701 00ec ld $ec 8702 0003 ld $03 8703 0090 ld $90 8704 00d0 ld $d0 8705 0016 ld $16 8706 0020 ld $20 8707 00a2 ld $a2 8708 0085 ld $85 8709 00a2 ld $a2 870a 0066 ld $66 870b 0085 ld $85 870c 007a ld $7a 870d 0006 ld $06 870e 0085 ld $85 870f 0000 ld $00 8710 0004 ld $04 8711 0004 ld $04 8712 0000 ld $00 8713 00f9 ld $f9 8714 0016 ld $16 8715 0010 ld $10 8716 00a2 ld $a2 8717 0016 ld $16 8718 0010 ld $10 8719 00a3 ld $a3 871a 004d ld $4d 871b 0003 ld $03 871c 0082 ld $82 871d 004d ld $4d 871e 0000 ld $00 871f 0084 ld $84 8720 004d ld $4d 8721 009c ld $9c 8722 0086 ld $86 8723 004d ld $4d 8724 002f ld $2f 8725 0088 ld $88 8726 0085 ld $85 8727 00c2 ld $c2 8728 0067 ld $67 8729 0016 ld $16 872a 003f ld $3f 872b 00a3 ld $a3 872c 004d ld $4d 872d 0003 ld $03 872e 0090 ld $90 872f 004d ld $4d 8730 0000 ld $00 8731 0096 ld $96 8732 004d ld $4d 8733 009c ld $9c 8734 0098 ld $98 8735 004d ld $4d 8736 002f ld $2f 8737 00ac ld $ac 8738 0085 ld $85 8739 00d2 ld $d2 873a 0065 ld $65 873b 0085 ld $85 873c 00f4 ld $f4 873d 000d ld $0d 873e 0085 ld $85 873f 00bc ld $bc 8740 0014 ld $14 8741 0085 ld $85 8742 00f3 ld $f3 8743 0010 ld $10 8744 0085 ld $85 8745 00ec ld $ec 8746 0013 ld $13 8747 0021 ld $21 8748 0036 ld $36 8749 00bd ld $bd 874a 003c ld $3c 874b 0004 ld $04 874c 0085 ld $85 874d 006b ld $6b 874e 0005 ld $05 874f 0085 ld $85 8750 0041 ld $41 8751 0004 ld $04 8752 0085 ld $85 8753 0043 ld $43 8754 0004 ld $04 8755 0090 ld $90 8756 0031 ld $31 8757 0075 ld $75 8758 001a ld $1a 8759 0011 ld $11 875a 002b ld $2b 875b 004c ld $4c 875c 00a7 ld $a7 875d 00fe ld $fe 875e 004c ld $4c 875f 006b ld $6b 8760 00e8 ld $e8 8761 00a7 ld $a7 8762 0001 ld $01 8763 0036 ld $36 8764 006b ld $6b 8765 0018 ld $18 8766 00f8 ld $f8 8767 00e8 ld $e8 8768 00bb ld $bb 8769 006b ld $6b 876a 0004 ld $04 876b 0042 ld $42 876c 0001 ld $01 876d 0038 ld $38 876e 0038 ld $38 876f 00a7 ld $a7 8770 0005 ld $05 8771 0038 ld $38 8772 00bd ld $bd 8773 0062 ld $62 8774 0004 ld $04 8775 004d ld $4d 8776 0000 ld $00 8777 0038 ld $38 8778 0085 ld $85 8779 00b0 ld $b0 877a 000a ld $0a 877b 004d ld $4d 877c 000f ld $0f 877d 0082 ld $82 877e 0085 ld $85 877f 00a2 ld $a2 8780 0061 ld $61 8781 00a7 ld $a7 8782 00fd ld $fd 8783 004c ld $4c 8784 006b ld $6b 8785 00e8 ld $e8 8786 00a7 ld $a7 8787 0001 ld $01 8788 0036 ld $36 8789 006b ld $6b 878a 0018 ld $18 878b 00f8 ld $f8 878c 00e8 ld $e8 878d 00bb ld $bb 878e 0091 ld $91 878f 0004 ld $04 8790 0044 ld $44 8791 0001 ld $01 8792 0038 ld $38 8793 0038 ld $38 8794 009c ld $9c 8795 0001 ld $01 8796 00fc ld $fc 8797 0038 ld $38 8798 00bd ld $bd 8799 0088 ld $88 879a 0004 ld $04 879b 004d ld $4d 879c 0004 ld $04 879d 0038 ld $38 879e 0085 ld $85 879f 00b0 ld $b0 87a0 000a ld $0a 87a1 004d ld $4d 87a2 000f ld $0f 87a3 0082 ld $82 87a4 0085 ld $85 87a5 00a2 ld $a2 87a6 0061 ld $61 87a7 00a7 ld $a7 87a8 00f7 ld $f7 87a9 004c ld $4c 87aa 006b ld $6b 87ab 00e8 ld $e8 87ac 00a7 ld $a7 87ad 0002 ld $02 87ae 0036 ld $36 87af 006b ld $6b 87b0 0018 ld $18 87b1 00f8 ld $f8 87b2 00e8 ld $e8 87b3 00bb ld $bb 87b4 00ba ld $ba 87b5 0004 ld $04 87b6 0042 ld $42 87b7 0001 ld $01 87b8 0032 ld $32 87b9 0032 ld $32 87ba 0021 ld $21 87bb 0032 ld $32 87bc 00e6 ld $e6 87bd 0005 ld $05 87be 00c3 ld $c3 87bf 00ae ld $ae 87c0 0004 ld $04 87c1 004d ld $4d 87c2 0001 ld $01 87c3 0032 ld $32 87c4 0085 ld $85 87c5 00ec ld $ec 87c6 0013 ld $13 87c7 0085 ld $85 87c8 001e ld $1e 87c9 0006 ld $06 87ca 004d ld $4d 87cb 000f ld $0f 87cc 0082 ld $82 87cd 0085 ld $85 87ce 00a2 ld $a2 87cf 0061 ld $61 87d0 00a7 ld $a7 87d1 00fb ld $fb 87d2 004c ld $4c 87d3 006b ld $6b 87d4 00e8 ld $e8 87d5 00a7 ld $a7 87d6 0002 ld $02 87d7 0036 ld $36 87d8 006b ld $6b 87d9 0018 ld $18 87da 00f8 ld $f8 87db 00e8 ld $e8 87dc 00bb ld $bb 87dd 00e3 ld $e3 87de 0004 ld $04 87df 0044 ld $44 87e0 0001 ld $01 87e1 0032 ld $32 87e2 0032 ld $32 87e3 0021 ld $21 87e4 0032 ld $32 87e5 00e6 ld $e6 87e6 0001 ld $01 87e7 00c5 ld $c5 87e8 00d7 ld $d7 87e9 0004 ld $04 87ea 004d ld $4d 87eb 0005 ld $05 87ec 0032 ld $32 87ed 0085 ld $85 87ee 00ec ld $ec 87ef 0013 ld $13 87f0 0085 ld $85 87f1 001e ld $1e 87f2 0006 ld $06 87f3 004d ld $4d 87f4 000f ld $0f 87f5 0082 ld $82 87f6 0085 ld $85 87f7 00a2 ld $a2 87f8 0061 ld $61 87f9 00a7 ld $a7 87fa 00bf ld $bf 87fb fe00 bra ac ;+-----------------------------------+ 87fc fcfd bra $87fd ;| | 87fd 1418 ld $18,y ;| Trampoline for page $8700 lookups | 87fe e006 jmp y,$06 ;| | 87ff c218 st [$18] ;+-----------------------------------+ 8800 004c ld $4c 8801 00bd ld $bd 8802 004f ld $4f 8803 0005 ld $05 8804 00a7 ld $a7 8805 0001 ld $01 8806 0036 ld $36 8807 00bd ld $bd 8808 0015 ld $15 8809 0005 ld $05 880a 004d ld $4d 880b 0002 ld $02 880c 0036 ld $36 880d 009c ld $9c 880e 0001 ld $01 880f 0085 ld $85 8810 0000 ld $00 8811 0005 ld $05 8812 0005 ld $05 8813 0000 ld $00 8814 00ff ld $ff 8815 002b ld $2b 8816 0038 ld $38 8817 0085 ld $85 8818 00b0 ld $b0 8819 000a ld $0a 881a 0085 ld $85 881b 00ca ld $ca 881c 0009 ld $09 881d 0085 ld $85 881e 00a2 ld $a2 881f 0016 ld $16 8820 0085 ld $85 8821 00b2 ld $b2 8822 0028 ld $28 8823 0085 ld $85 8824 00ee ld $ee 8825 0012 ld $12 8826 0085 ld $85 8827 00f4 ld $f4 8828 000d ld $0d 8829 0085 ld $85 882a 004b ld $4b 882b 0005 ld $05 882c 004d ld $4d 882d 0001 ld $01 882e 0036 ld $36 882f 004d ld $4d 8830 0000 ld $00 8831 0048 ld $48 8832 0085 ld $85 8833 00bd ld $bd 8834 0006 ld $06 8835 0085 ld $85 8836 00bc ld $bc 8837 0014 ld $14 8838 0021 ld $21 8839 0032 ld $32 883a 00b8 ld $b8 883b 0030 ld $30 883c 00c3 ld $c3 883d 002e ld $2e 883e 0005 ld $05 883f 0032 ld $32 8840 0032 ld $32 8841 0030 ld $30 8842 0085 ld $85 8843 00ec ld $ec 8844 0013 ld $13 8845 00ab ld $ab 8846 0030 ld $30 8847 0032 ld $32 8848 0030 ld $30 8849 0021 ld $21 884a 0030 ld $30 884b 00c5 ld $c5 884c 003a ld $3a 884d 0005 ld $05 884e 004d ld $4d 884f 0000 ld $00 8850 0030 ld $30 8851 0085 ld $85 8852 00f3 ld $f3 8853 0010 ld $10 8854 0085 ld $85 8855 00f4 ld $f4 8856 000d ld $0d 8857 0085 ld $85 8858 00a0 ld $a0 8859 0008 ld $08 885a 0085 ld $85 885b 00a2 ld $a2 885c 0016 ld $16 885d 0085 ld $85 885e 00b0 ld $b0 885f 000a ld $0a 8860 004d ld $4d 8861 000f ld $0f 8862 0082 ld $82 8863 0085 ld $85 8864 00a2 ld $a2 8865 0061 ld $61 8866 00a7 ld $a7 8867 007f ld $7f 8868 004c ld $4c 8869 006b ld $6b 886a 00e8 ld $e8 886b 00a7 ld $a7 886c 0001 ld $01 886d 0036 ld $36 886e 006b ld $6b 886f 0018 ld $18 8870 00f8 ld $f8 8871 00e8 ld $e8 8872 00bb ld $bb 8873 0067 ld $67 8874 0005 ld $05 8875 0085 ld $85 8876 00c0 ld $c0 8877 000c ld $0c 8878 004d ld $4d 8879 000f ld $0f 887a 0082 ld $82 887b 0085 ld $85 887c 00a2 ld $a2 887d 0061 ld $61 887e 0063 ld $63 887f 00ff ld $ff 8880 0075 ld $75 8881 001a ld $1a 8882 0011 ld $11 8883 002b ld $2b 8884 004c ld $4c 8885 00a7 ld $a7 8886 007f ld $7f 8887 004c ld $4c 8888 00bd ld $bd 8889 0083 ld $83 888a 0005 ld $05 888b 004d ld $4d 888c 0019 ld $19 888d 0030 ld $30 888e 0085 ld $85 888f 00bd ld $bd 8890 0006 ld $06 8891 0085 ld $85 8892 00bc ld $bc 8893 0014 ld $14 8894 0085 ld $85 8895 00f3 ld $f3 8896 0010 ld $10 8897 004d ld $4d 8898 0002 ld $02 8899 0036 ld $36 889a 0063 ld $63 889b 00ff ld $ff 889c 0075 ld $75 889d 0016 ld $16 889e 003f ld $3f 889f 00a3 ld $a3 88a0 0016 ld $16 88a1 0003 ld $03 88a2 00a2 ld $a2 88a3 0016 ld $16 88a4 0014 ld $14 88a5 00a4 ld $a4 88a6 0016 ld $16 88a7 0033 ld $33 88a8 00a5 ld $a5 88a9 0085 ld $85 88aa 00dc ld $dc 88ab 0063 ld $63 88ac 0011 ld $11 88ad 00a3 ld $a3 88ae 006d ld $6d 88af 0085 ld $85 88b0 00aa ld $aa 88b1 0061 ld $61 88b2 0085 ld $85 88b3 00b7 ld $b7 88b4 0069 ld $69 88b5 0085 ld $85 88b6 00f3 ld $f3 88b7 0005 ld $05 88b8 0063 ld $63 88b9 00ff ld $ff 88ba 0075 ld $75 88bb 0016 ld $16 88bc 0002 ld $02 88bd 002c ld $2c 88be 0016 ld $16 88bf 0001 ld $01 88c0 0093 ld $93 88c1 0059 ld $59 88c2 0028 ld $28 88c3 00b1 ld $b1 88c4 0011 ld $11 88c5 002b ld $2b 88c6 0094 ld $94 88c7 0085 ld $85 88c8 00bf ld $bf 88c9 0060 ld $60 88ca 004d ld $4d 88cb 0002 ld $02 88cc 0082 ld $82 88cd 0085 ld $85 88ce 00a2 ld $a2 88cf 0061 ld $61 88d0 0016 ld $16 88d1 0002 ld $02 88d2 002c ld $2c 88d3 0016 ld $16 88d4 0001 ld $01 88d5 0093 ld $93 88d6 0059 ld $59 88d7 002d ld $2d 88d8 00b1 ld $b1 88d9 0011 ld $11 88da 002b ld $2b 88db 0094 ld $94 88dc 0085 ld $85 88dd 00bf ld $bf 88de 0060 ld $60 88df 0063 ld $63 88e0 00ff ld $ff 88e1 0075 ld $75 88e2 0016 ld $16 88e3 0004 ld $04 88e4 002c ld $2c 88e5 0016 ld $16 88e6 0001 ld $01 88e7 0093 ld $93 88e8 0059 ld $59 88e9 0028 ld $28 88ea 00b1 ld $b1 88eb 0011 ld $11 88ec 002b ld $2b 88ed 0094 ld $94 88ee 0085 ld $85 88ef 00bf ld $bf 88f0 0060 ld $60 88f1 004d ld $4d 88f2 0004 ld $04 88f3 0082 ld $82 88f4 0085 ld $85 88f5 00a2 ld $a2 88f6 0061 ld $61 88f7 0016 ld $16 88f8 0004 ld $04 88f9 002c ld $2c 88fa 0016 ld $16 88fb fe00 bra ac ;+-----------------------------------+ 88fc fcfd bra $88fd ;| | 88fd 1418 ld $18,y ;| Trampoline for page $8800 lookups | 88fe e006 jmp y,$06 ;| | 88ff c218 st [$18] ;+-----------------------------------+ 8900 0001 ld $01 8901 0093 ld $93 8902 0059 ld $59 8903 002d ld $2d 8904 00b1 ld $b1 8905 0011 ld $11 8906 002b ld $2b 8907 0094 ld $94 8908 0085 ld $85 8909 00bf ld $bf 890a 0060 ld $60 890b 0063 ld $63 890c 00ff ld $ff 890d 0075 ld $75 890e 0016 ld $16 890f 0004 ld $04 8910 002c ld $2c 8911 0016 ld $16 8912 0001 ld $01 8913 0093 ld $93 8914 0059 ld $59 8915 002d ld $2d 8916 0085 ld $85 8917 0000 ld $00 8918 0006 ld $06 8919 0006 ld $06 891a 0000 ld $00 891b 0000 ld $00 891c 00b1 ld $b1 891d 0011 ld $11 891e 002b ld $2b 891f 0094 ld $94 8920 0085 ld $85 8921 00bf ld $bf 8922 0060 ld $60 8923 004d ld $4d 8924 0004 ld $04 8925 0082 ld $82 8926 0085 ld $85 8927 00a2 ld $a2 8928 0061 ld $61 8929 0016 ld $16 892a 0004 ld $04 892b 002c ld $2c 892c 0016 ld $16 892d 0001 ld $01 892e 0093 ld $93 892f 0059 ld $59 8930 0028 ld $28 8931 00b1 ld $b1 8932 0011 ld $11 8933 002b ld $2b 8934 0094 ld $94 8935 0085 ld $85 8936 00bf ld $bf 8937 0060 ld $60 8938 0063 ld $63 8939 00ff ld $ff 893a 0075 ld $75 893b 0016 ld $16 893c 0005 ld $05 893d 002c ld $2c 893e 0016 ld $16 893f 0001 ld $01 8940 0093 ld $93 8941 0021 ld $21 8942 0032 ld $32 8943 00e3 ld $e3 8944 003c ld $3c 8945 00b1 ld $b1 8946 0011 ld $11 8947 002b ld $2b 8948 0094 ld $94 8949 0085 ld $85 894a 00bf ld $bf 894b 0060 ld $60 894c 0063 ld $63 894d 00ff ld $ff 894e 0075 ld $75 894f 004d ld $4d 8950 000a ld $0a 8951 0082 ld $82 8952 0085 ld $85 8953 00a2 ld $a2 8954 0061 ld $61 8955 0016 ld $16 8956 0004 ld $04 8957 002c ld $2c 8958 0016 ld $16 8959 0001 ld $01 895a 0093 ld $93 895b 0059 ld $59 895c 003c ld $3c 895d 00b1 ld $b1 895e 0011 ld $11 895f 002b ld $2b 8960 0094 ld $94 8961 0085 ld $85 8962 00bf ld $bf 8963 0060 ld $60 8964 004d ld $4d 8965 0008 ld $08 8966 0082 ld $82 8967 0085 ld $85 8968 00a2 ld $a2 8969 0061 ld $61 896a 0016 ld $16 896b 0002 ld $02 896c 002c ld $2c 896d 0016 ld $16 896e 0001 ld $01 896f 0093 ld $93 8970 0059 ld $59 8971 003c ld $3c 8972 00b1 ld $b1 8973 0011 ld $11 8974 002b ld $2b 8975 0094 ld $94 8976 0085 ld $85 8977 00bf ld $bf 8978 0060 ld $60 8979 004d ld $4d 897a 0004 ld $04 897b 0082 ld $82 897c 0085 ld $85 897d 00a2 ld $a2 897e 0061 ld $61 897f 0016 ld $16 8980 0014 ld $14 8981 002c ld $2c 8982 0016 ld $16 8983 0001 ld $01 8984 0093 ld $93 8985 0059 ld $59 8986 0041 ld $41 8987 00b1 ld $b1 8988 0011 ld $11 8989 002b ld $2b 898a 0094 ld $94 898b 0085 ld $85 898c 00bf ld $bf 898d 0060 ld $60 898e 004d ld $4d 898f 0014 ld $14 8990 0082 ld $82 8991 0085 ld $85 8992 00a2 ld $a2 8993 0061 ld $61 8994 0063 ld $63 8995 00ff ld $ff 8996 0075 ld $75 8997 004d ld $4d 8998 0000 ld $00 8999 004e ld $4e 899a 004d ld $4d 899b 0000 ld $00 899c 0050 ld $50 899d 0021 ld $21 899e 004e ld $4e 899f 0055 ld $55 89a0 0050 ld $50 89a1 00cb ld $cb 89a2 0070 ld $70 89a3 0032 ld $32 89a4 0024 ld $24 89a5 0050 ld $50 89a6 004d ld $4d 89a7 000d ld $0d 89a8 0026 ld $26 89a9 0085 ld $85 89aa 00a0 ld $a0 89ab 0067 ld $67 89ac 0021 ld $21 89ad 0028 ld $28 89ae 00e3 ld $e3 89af 0002 ld $02 89b0 0055 ld $55 89b1 0050 ld $50 89b2 00cb ld $cb 89b3 0071 ld $71 89b4 0057 ld $57 89b5 0050 ld $50 89b6 00cb ld $cb 89b7 006f ld $6f 89b8 0000 ld $00 89b9 0032 ld $32 89ba 0024 ld $24 89bb 0050 ld $50 89bc 004d ld $4d 89bd 000d ld $0d 89be 0026 ld $26 89bf 0085 ld $85 89c0 00a0 ld $a0 89c1 0067 ld $67 89c2 0021 ld $21 89c3 0028 ld $28 89c4 00e3 ld $e3 89c5 0002 ld $02 89c6 008c ld $8c 89c7 000e ld $0e 89c8 00bd ld $bd 89c9 00b1 ld $b1 89ca 0006 ld $06 89cb 0042 ld $42 89cc 0001 ld $01 89cd 004e ld $4e 89ce 004e ld $4e 89cf 00a7 ld $a7 89d0 0033 ld $33 89d1 0050 ld $50 89d2 0093 ld $93 89d3 0050 ld $50 89d4 00bd ld $bd 89d5 007f ld $7f 89d6 0006 ld $06 89d7 0063 ld $63 89d8 00ff ld $ff 89d9 0075 ld $75 89da 004d ld $4d 89db 0000 ld $00 89dc 0050 ld $50 89dd 0057 ld $57 89de 0050 ld $50 89df 00cb ld $cb 89e0 006f ld $6f 89e1 0000 ld $00 89e2 00a7 ld $a7 89e3 0033 ld $33 89e4 0050 ld $50 89e5 0093 ld $93 89e6 0050 ld $50 89e7 00bd ld $bd 89e8 00bf ld $bf 89e9 0006 ld $06 89ea 0016 ld $16 89eb 0020 ld $20 89ec 00a3 ld $a3 89ed 0016 ld $16 89ee 0020 ld $20 89ef 00a2 ld $a2 89f0 004d ld $4d 89f1 0000 ld $00 89f2 0038 ld $38 89f3 0016 ld $16 89f4 0007 ld $07 89f5 00a4 ld $a4 89f6 0016 ld $16 89f7 0033 ld $33 89f8 00a5 ld $a5 89f9 0085 ld $85 89fa 00dc ld $dc 89fb fe00 bra ac ;+-----------------------------------+ 89fc fcfd bra $89fd ;| | 89fd 1418 ld $18,y ;| Trampoline for page $8900 lookups | 89fe e006 jmp y,$06 ;| | 89ff c218 st [$18] ;+-----------------------------------+ 8a00 0063 ld $63 8a01 0011 ld $11 8a02 00e5 ld $e5 8a03 006c ld $6c 8a04 0085 ld $85 8a05 00aa ld $aa 8a06 0061 ld $61 8a07 0085 ld $85 8a08 00b7 ld $b7 8a09 0069 ld $69 8a0a 0016 ld $16 8a0b 0000 ld $00 8a0c 00a4 ld $a4 8a0d 0016 ld $16 8a0e 006e ld $6e 8a0f 00a5 ld $a5 8a10 0085 ld $85 8a11 00dc ld $dc 8a12 0063 ld $63 8a13 0011 ld $11 8a14 00a1 ld $a1 8a15 0071 ld $71 8a16 0085 ld $85 8a17 00aa ld $aa 8a18 0061 ld $61 8a19 0085 ld $85 8a1a 00b7 ld $b7 8a1b 0069 ld $69 8a1c 0063 ld $63 8a1d 00ff ld $ff 8a1e 0085 ld $85 8a1f 00a0 ld $a0 8a20 0008 ld $08 8a21 0008 ld $08 8a22 00a0 ld $a0 8a23 0060 ld $60 8a24 0075 ld $75 8a25 004d ld $4d 8a26 0000 ld $00 8a27 0050 ld $50 8a28 0059 ld $59 8a29 0034 ld $34 8a2a 002b ld $2b 8a2b 0026 ld $26 8a2c 0085 ld $85 8a2d 00a0 ld $a0 8a2e 0064 ld $64 8a2f 002b ld $2b 8a30 003a ld $3a 8a31 0053 ld $53 8a32 003a ld $3a 8a33 00cb ld $cb 8a34 006f ld $6f 8a35 00bd ld $bd 8a36 00c0 ld $c0 8a37 0008 ld $08 8a38 0021 ld $21 8a39 003a ld $3a 8a3a 0055 ld $55 8a3b 0050 ld $50 8a3c 00c5 ld $c5 8a3d 0071 ld $71 8a3e 0057 ld $57 8a3f 003a ld $3a 8a40 00cb ld $cb 8a41 006f ld $6f 8a42 0001 ld $01 8a43 0085 ld $85 8a44 00c5 ld $c5 8a45 0008 ld $08 8a46 0085 ld $85 8a47 00a4 ld $a4 8a48 0008 ld $08 8a49 00a7 ld $a7 8a4a 0004 ld $04 8a4b 0050 ld $50 8a4c 0093 ld $93 8a4d 0050 ld $50 8a4e 00bd ld $bd 8a4f 00a2 ld $a2 8a50 0008 ld $08 8a51 004d ld $4d 8a52 0000 ld $00 8a53 0038 ld $38 8a54 0063 ld $63 8a55 00ff ld $ff 8a56 004d ld $4d 8a57 000a ld $0a 8a58 009c ld $9c 8a59 0011 ld $11 8a5a 00c5 ld $c5 8a5b 0071 ld $71 8a5c 0069 ld $69 8a5d 009c ld $9c 8a5e 004d ld $4d 8a5f 0001 ld $01 8a60 009c ld $9c 8a61 0011 ld $11 8a62 00d5 ld $d5 8a63 006f ld $6f 8a64 0069 ld $69 8a65 009c ld $9c 8a66 004d ld $4d 8a67 0018 ld $18 8a68 009c ld $9c 8a69 0011 ld $11 8a6a 00c6 ld $c6 8a6b 0071 ld $71 8a6c 0069 ld $69 8a6d 009c ld $9c 8a6e 004d ld $4d 8a6f 0001 ld $01 8a70 009c ld $9c 8a71 0011 ld $11 8a72 00e3 ld $e3 8a73 006f ld $6f 8a74 0069 ld $69 8a75 009c ld $9c 8a76 004d ld $4d 8a77 002f ld $2f 8a78 009c ld $9c 8a79 0011 ld $11 8a7a 00c7 ld $c7 8a7b 0071 ld $71 8a7c 0069 ld $69 8a7d 009c ld $9c 8a7e 004d ld $4d 8a7f 0001 ld $01 8a80 009c ld $9c 8a81 0085 ld $85 8a82 00a0 ld $a0 8a83 0009 ld $09 8a84 0009 ld $09 8a85 00a0 ld $a0 8a86 0060 ld $60 8a87 0011 ld $11 8a88 00fa ld $fa 8a89 006f ld $6f 8a8a 0069 ld $69 8a8b 009c ld $9c 8a8c 004d ld $4d 8a8d 0033 ld $33 8a8e 009c ld $9c 8a8f 0011 ld $11 8a90 00c8 ld $c8 8a91 0071 ld $71 8a92 0069 ld $69 8a93 009c ld $9c 8a94 004d ld $4d 8a95 0001 ld $01 8a96 009c ld $9c 8a97 0011 ld $11 8a98 00fe ld $fe 8a99 006f ld $6f 8a9a 0069 ld $69 8a9b 009c ld $9c 8a9c 004d ld $4d 8a9d 0009 ld $09 8a9e 009c ld $9c 8a9f 0011 ld $11 8aa0 00c9 ld $c9 8aa1 0071 ld $71 8aa2 0069 ld $69 8aa3 009c ld $9c 8aa4 004d ld $4d 8aa5 0001 ld $01 8aa6 009c ld $9c 8aa7 0011 ld $11 8aa8 00d4 ld $d4 8aa9 006f ld $6f 8aaa 0069 ld $69 8aab 009c ld $9c 8aac 004d ld $4d 8aad 0000 ld $00 8aae 0038 ld $38 8aaf 0063 ld $63 8ab0 00ff ld $ff 8ab1 0075 ld $75 8ab2 004d ld $4d 8ab3 0000 ld $00 8ab4 0050 ld $50 8ab5 0053 ld $53 8ab6 0050 ld $50 8ab7 00c5 ld $c5 8ab8 0071 ld $71 8ab9 002b ld $2b 8aba 003c ld $3c 8abb 0053 ld $53 8abc 003c ld $3c 8abd 00cb ld $cb 8abe 006f ld $6f 8abf 008c ld $8c 8ac0 0001 ld $01 8ac1 00bd ld $bd 8ac2 00a4 ld $a4 8ac3 000a ld $0a 8ac4 0059 ld $59 8ac5 0034 ld $34 8ac6 002b ld $2b 8ac7 0026 ld $26 8ac8 0085 ld $85 8ac9 00a0 ld $a0 8aca 0064 ld $64 8acb 002b ld $2b 8acc 003a ld $3a 8acd 0053 ld $53 8ace 003a ld $3a 8acf 00cb ld $cb 8ad0 006f ld $6f 8ad1 00bd ld $bd 8ad2 00a1 ld $a1 8ad3 000a ld $0a 8ad4 0057 ld $57 8ad5 003c ld $3c 8ad6 00cb ld $cb 8ad7 006f ld $6f 8ad8 0003 ld $03 8ad9 0021 ld $21 8ada 003a ld $3a 8adb 0055 ld $55 8adc 0050 ld $50 8add 00c5 ld $c5 8ade 0071 ld $71 8adf 0057 ld $57 8ae0 003a ld $3a 8ae1 00cb ld $cb 8ae2 006f ld $6f 8ae3 0001 ld $01 8ae4 0085 ld $85 8ae5 00a0 ld $a0 8ae6 000a ld $0a 8ae7 000a ld $0a 8ae8 00a0 ld $a0 8ae9 005f ld $5f 8aea 0085 ld $85 8aeb 00a6 ld $a6 8aec 000a ld $0a 8aed 0085 ld $85 8aee 00dd ld $dd 8aef 0009 ld $09 8af0 00a7 ld $a7 8af1 0004 ld $04 8af2 0050 ld $50 8af3 0093 ld $93 8af4 0050 ld $50 8af5 00bd ld $bd 8af6 00cc ld $cc 8af7 0009 ld $09 8af8 0063 ld $63 8af9 00ff ld $ff 8afa 0075 ld $75 8afb fe00 bra ac ;+-----------------------------------+ 8afc fcfd bra $8afd ;| | 8afd 1418 ld $18,y ;| Trampoline for page $8a00 lookups | 8afe e006 jmp y,$06 ;| | 8aff c218 st [$18] ;+-----------------------------------+ 8b00 0016 ld $16 8b01 0000 ld $00 8b02 00a3 ld $a3 8b03 004d ld $4d 8b04 0003 ld $03 8b05 0090 ld $90 8b06 004d ld $4d 8b07 003c ld $3c 8b08 0096 ld $96 8b09 004d ld $4d 8b0a 0020 ld $20 8b0b 0098 ld $98 8b0c 004d ld $4d 8b0d 006b ld $6b 8b0e 00ac ld $ac 8b0f 0085 ld $85 8b10 00d2 ld $d2 8b11 0065 ld $65 8b12 004d ld $4d 8b13 0022 ld $22 8b14 0090 ld $90 8b15 004d ld $4d 8b16 003c ld $3c 8b17 0096 ld $96 8b18 004d ld $4d 8b19 003f ld $3f 8b1a 0098 ld $98 8b1b 004d ld $4d 8b1c 006b ld $6b 8b1d 00ac ld $ac 8b1e 0085 ld $85 8b1f 00d2 ld $d2 8b20 0065 ld $65 8b21 004d ld $4d 8b22 0041 ld $41 8b23 0090 ld $90 8b24 004d ld $4d 8b25 003c ld $3c 8b26 0096 ld $96 8b27 004d ld $4d 8b28 005e ld $5e 8b29 0098 ld $98 8b2a 004d ld $4d 8b2b 006b ld $6b 8b2c 00ac ld $ac 8b2d 0085 ld $85 8b2e 00d2 ld $d2 8b2f 0065 ld $65 8b30 004d ld $4d 8b31 0060 ld $60 8b32 0090 ld $90 8b33 004d ld $4d 8b34 003c ld $3c 8b35 0096 ld $96 8b36 004d ld $4d 8b37 007d ld $7d 8b38 0098 ld $98 8b39 004d ld $4d 8b3a 006b ld $6b 8b3b 00ac ld $ac 8b3c 0085 ld $85 8b3d 00d2 ld $d2 8b3e 0065 ld $65 8b3f 004d ld $4d 8b40 007f ld $7f 8b41 0090 ld $90 8b42 004d ld $4d 8b43 003c ld $3c 8b44 0096 ld $96 8b45 004d ld $4d 8b46 009c ld $9c 8b47 0098 ld $98 8b48 004d ld $4d 8b49 006b ld $6b 8b4a 00ac ld $ac 8b4b 0085 ld $85 8b4c 00a0 ld $a0 8b4d 000b ld $0b 8b4e 000b ld $0b 8b4f 00a0 ld $a0 8b50 005f ld $5f 8b51 0085 ld $85 8b52 00d2 ld $d2 8b53 0065 ld $65 8b54 0016 ld $16 8b55 0003 ld $03 8b56 00a3 ld $a3 8b57 0021 ld $21 8b58 0038 ld $38 8b59 00bd ld $bd 8b5a 00bb ld $bb 8b5b 000b ld $0b 8b5c 004d ld $4d 8b5d 0003 ld $03 8b5e 0090 ld $90 8b5f 004d ld $4d 8b60 003c ld $3c 8b61 0096 ld $96 8b62 004d ld $4d 8b63 0020 ld $20 8b64 0098 ld $98 8b65 004d ld $4d 8b66 006b ld $6b 8b67 00ac ld $ac 8b68 0085 ld $85 8b69 00d2 ld $d2 8b6a 0065 ld $65 8b6b 0085 ld $85 8b6c 00be ld $be 8b6d 000c ld $0c 8b6e 00a7 ld $a7 8b6f 0001 ld $01 8b70 0038 ld $38 8b71 00bd ld $bd 8b72 00d3 ld $d3 8b73 000b ld $0b 8b74 004d ld $4d 8b75 0022 ld $22 8b76 0090 ld $90 8b77 004d ld $4d 8b78 003c ld $3c 8b79 0096 ld $96 8b7a 004d ld $4d 8b7b 003f ld $3f 8b7c 0098 ld $98 8b7d 004d ld $4d 8b7e 006b ld $6b 8b7f 00ac ld $ac 8b80 0085 ld $85 8b81 00d2 ld $d2 8b82 0065 ld $65 8b83 0085 ld $85 8b84 00be ld $be 8b85 000c ld $0c 8b86 00a7 ld $a7 8b87 0002 ld $02 8b88 0038 ld $38 8b89 00bd ld $bd 8b8a 00eb ld $eb 8b8b 000b ld $0b 8b8c 004d ld $4d 8b8d 0041 ld $41 8b8e 0090 ld $90 8b8f 004d ld $4d 8b90 003c ld $3c 8b91 0096 ld $96 8b92 004d ld $4d 8b93 005e ld $5e 8b94 0098 ld $98 8b95 004d ld $4d 8b96 006b ld $6b 8b97 00ac ld $ac 8b98 0085 ld $85 8b99 00d2 ld $d2 8b9a 0065 ld $65 8b9b 0085 ld $85 8b9c 00be ld $be 8b9d 000c ld $0c 8b9e 00a7 ld $a7 8b9f 0003 ld $03 8ba0 0038 ld $38 8ba1 00bd ld $bd 8ba2 00a7 ld $a7 8ba3 000c ld $0c 8ba4 004d ld $4d 8ba5 0060 ld $60 8ba6 0090 ld $90 8ba7 004d ld $4d 8ba8 003c ld $3c 8ba9 0096 ld $96 8baa 004d ld $4d 8bab 007d ld $7d 8bac 0098 ld $98 8bad 0085 ld $85 8bae 00a0 ld $a0 8baf 000c ld $0c 8bb0 000c ld $0c 8bb1 00a0 ld $a0 8bb2 005f ld $5f 8bb3 004d ld $4d 8bb4 006b ld $6b 8bb5 00ac ld $ac 8bb6 0085 ld $85 8bb7 00d2 ld $d2 8bb8 0065 ld $65 8bb9 0085 ld $85 8bba 00be ld $be 8bbb 000c ld $0c 8bbc 00a7 ld $a7 8bbd 0004 ld $04 8bbe 0038 ld $38 8bbf 00bd ld $bd 8bc0 00bc ld $bc 8bc1 000c ld $0c 8bc2 004d ld $4d 8bc3 007f ld $7f 8bc4 0090 ld $90 8bc5 004d ld $4d 8bc6 003c ld $3c 8bc7 0096 ld $96 8bc8 004d ld $4d 8bc9 009c ld $9c 8bca 0098 ld $98 8bcb 004d ld $4d 8bcc 006b ld $6b 8bcd 00ac ld $ac 8bce 0085 ld $85 8bcf 00d2 ld $d2 8bd0 0065 ld $65 8bd1 0063 ld $63 8bd2 00ff ld $ff 8bd3 0075 ld $75 8bd4 0016 ld $16 8bd5 001f ld $1f 8bd6 00a3 ld $a3 8bd7 0016 ld $16 8bd8 0020 ld $20 8bd9 00a2 ld $a2 8bda 0021 ld $21 8bdb 0038 ld $38 8bdc 00bd ld $bd 8bdd 00d0 ld $d0 8bde 000c ld $0c 8bdf 004d ld $4d 8be0 0007 ld $07 8be1 004a ld $4a 8be2 0085 ld $85 8be3 00a3 ld $a3 8be4 000d ld $0d 8be5 00a7 ld $a7 8be6 0001 ld $01 8be7 0038 ld $38 8be8 00bd ld $bd 8be9 00dc ld $dc 8bea 000c ld $0c 8beb 004d ld $4d 8bec 0026 ld $26 8bed 004a ld $4a 8bee 0085 ld $85 8bef 00a3 ld $a3 8bf0 000d ld $0d 8bf1 00a7 ld $a7 8bf2 0002 ld $02 8bf3 0038 ld $38 8bf4 00bd ld $bd 8bf5 00e8 ld $e8 8bf6 000c ld $0c 8bf7 004d ld $4d 8bf8 0045 ld $45 8bf9 004a ld $4a 8bfa 0085 ld $85 8bfb fe00 bra ac ;+-----------------------------------+ 8bfc fcfd bra $8bfd ;| | 8bfd 1418 ld $18,y ;| Trampoline for page $8b00 lookups | 8bfe e006 jmp y,$06 ;| | 8bff c218 st [$18] ;+-----------------------------------+ 8c00 00a3 ld $a3 8c01 000d ld $0d 8c02 00a7 ld $a7 8c03 0003 ld $03 8c04 0038 ld $38 8c05 00bd ld $bd 8c06 00f4 ld $f4 8c07 000c ld $0c 8c08 004d ld $4d 8c09 0064 ld $64 8c0a 004a ld $4a 8c0b 0085 ld $85 8c0c 00a3 ld $a3 8c0d 000d ld $0d 8c0e 00a7 ld $a7 8c0f 0004 ld $04 8c10 0038 ld $38 8c11 00bd ld $bd 8c12 00a1 ld $a1 8c13 000d ld $0d 8c14 0085 ld $85 8c15 00a0 ld $a0 8c16 000d ld $0d 8c17 000d ld $0d 8c18 00a0 ld $a0 8c19 005e ld $5e 8c1a 004d ld $4d 8c1b 0083 ld $83 8c1c 004a ld $4a 8c1d 0053 ld $53 8c1e 0038 ld $38 8c1f 00c5 ld $c5 8c20 0071 ld $71 8c21 002b ld $2b 8c22 003c ld $3c 8c23 0053 ld $53 8c24 003c ld $3c 8c25 00cb ld $cb 8c26 006f ld $6f 8c27 008c ld $8c 8c28 0001 ld $01 8c29 00bd ld $bd 8c2a 00cd ld $cd 8c2b 000d ld $0d 8c2c 0057 ld $57 8c2d 003c ld $3c 8c2e 00cb ld $cb 8c2f 006f ld $6f 8c30 0002 ld $02 8c31 0065 ld $65 8c32 00a4 ld $a4 8c33 004a ld $4a 8c34 0016 ld $16 8c35 0033 ld $33 8c36 00a5 ld $a5 8c37 0085 ld $85 8c38 00dc ld $dc 8c39 0063 ld $63 8c3a 0011 ld $11 8c3b 00ab ld $ab 8c3c 0070 ld $70 8c3d 0085 ld $85 8c3e 00aa ld $aa 8c3f 0061 ld $61 8c40 0085 ld $85 8c41 00b7 ld $b7 8c42 0069 ld $69 8c43 0085 ld $85 8c44 00cc ld $cc 8c45 0005 ld $05 8c46 0085 ld $85 8c47 00f2 ld $f2 8c48 000d ld $0d 8c49 0053 ld $53 8c4a 003c ld $3c 8c4b 00cb ld $cb 8c4c 006f ld $6f 8c4d 008c ld $8c 8c4e 0002 ld $02 8c4f 00bd ld $bd 8c50 00f0 ld $f0 8c51 000d ld $0d 8c52 0057 ld $57 8c53 003c ld $3c 8c54 00cb ld $cb 8c55 006f ld $6f 8c56 0001 ld $01 8c57 0065 ld $65 8c58 00a4 ld $a4 8c59 004a ld $4a 8c5a 0016 ld $16 8c5b 0033 ld $33 8c5c 00a5 ld $a5 8c5d 0085 ld $85 8c5e 00dc ld $dc 8c5f 0063 ld $63 8c60 0011 ld $11 8c61 00a5 ld $a5 8c62 0070 ld $70 8c63 0085 ld $85 8c64 00aa ld $aa 8c65 0061 ld $61 8c66 0085 ld $85 8c67 00b7 ld $b7 8c68 0069 ld $69 8c69 0085 ld $85 8c6a 00f3 ld $f3 8c6b 0005 ld $05 8c6c 0063 ld $63 8c6d 00ff ld $ff 8c6e 0075 ld $75 8c6f 0016 ld $16 8c70 0010 ld $10 8c71 00a2 ld $a2 8c72 0016 ld $16 8c73 002a ld $2a 8c74 00a3 ld $a3 8c75 0085 ld $85 8c76 00a0 ld $a0 8c77 000e ld $0e 8c78 000e ld $0e 8c79 00a0 ld $a0 8c7a 0060 ld $60 8c7b 00a7 ld $a7 8c7c 000a ld $0a 8c7d 0048 ld $48 8c7e 00bd ld $bd 8c7f 00a7 ld $a7 8c80 000e ld $0e 8c81 0016 ld $16 8c82 000f ld $0f 8c83 00a3 ld $a3 8c84 0016 ld $16 8c85 0020 ld $20 8c86 00a4 ld $a4 8c87 0016 ld $16 8c88 0002 ld $02 8c89 00a5 ld $a5 8c8a 0085 ld $85 8c8b 00dc ld $dc 8c8c 0063 ld $63 8c8d 0011 ld $11 8c8e 00a0 ld $a0 8c8f 006e ld $6e 8c90 0085 ld $85 8c91 00aa ld $aa 8c92 0061 ld $61 8c93 0085 ld $85 8c94 00b7 ld $b7 8c95 0069 ld $69 8c96 0016 ld $16 8c97 002a ld $2a 8c98 00a3 ld $a3 8c99 00a7 ld $a7 8c9a 0009 ld $09 8c9b 0048 ld $48 8c9c 00bd ld $bd 8c9d 00c5 ld $c5 8c9e 000e ld $0e 8c9f 0016 ld $16 8ca0 000f ld $0f 8ca1 00a3 ld $a3 8ca2 0016 ld $16 8ca3 0005 ld $05 8ca4 00a4 ld $a4 8ca5 0016 ld $16 8ca6 000b ld $0b 8ca7 00a5 ld $a5 8ca8 0085 ld $85 8ca9 00dc ld $dc 8caa 0063 ld $63 8cab 0011 ld $11 8cac 00a3 ld $a3 8cad 006f ld $6f 8cae 0085 ld $85 8caf 00aa ld $aa 8cb0 0061 ld $61 8cb1 0085 ld $85 8cb2 00b7 ld $b7 8cb3 0069 ld $69 8cb4 0016 ld $16 8cb5 002a ld $2a 8cb6 00a3 ld $a3 8cb7 00a7 ld $a7 8cb8 0007 ld $07 8cb9 0048 ld $48 8cba 00bd ld $bd 8cbb 00e3 ld $e3 8cbc 000e ld $0e 8cbd 0016 ld $16 8cbe 000f ld $0f 8cbf 00a3 ld $a3 8cc0 0016 ld $16 8cc1 0005 ld $05 8cc2 00a4 ld $a4 8cc3 0016 ld $16 8cc4 0014 ld $14 8cc5 00a5 ld $a5 8cc6 0085 ld $85 8cc7 00dc ld $dc 8cc8 0063 ld $63 8cc9 0011 ld $11 8cca 00d7 ld $d7 8ccb 006c ld $6c 8ccc 0085 ld $85 8ccd 00aa ld $aa 8cce 0061 ld $61 8ccf 0085 ld $85 8cd0 00b7 ld $b7 8cd1 0069 ld $69 8cd2 0016 ld $16 8cd3 002a ld $2a 8cd4 00a3 ld $a3 8cd5 00a7 ld $a7 8cd6 0006 ld $06 8cd7 0048 ld $48 8cd8 0085 ld $85 8cd9 00a0 ld $a0 8cda 000f ld $0f 8cdb 000f ld $0f 8cdc 00a0 ld $a0 8cdd 0060 ld $60 8cde 00bd ld $bd 8cdf 00a4 ld $a4 8ce0 000f ld $0f 8ce1 0016 ld $16 8ce2 000f ld $0f 8ce3 00a3 ld $a3 8ce4 0016 ld $16 8ce5 0005 ld $05 8ce6 00a4 ld $a4 8ce7 0016 ld $16 8ce8 001d ld $1d 8ce9 00a5 ld $a5 8cea 0085 ld $85 8ceb 00dc ld $dc 8cec 0063 ld $63 8ced 0011 ld $11 8cee 00ca ld $ca 8cef 006c ld $6c 8cf0 0085 ld $85 8cf1 00aa ld $aa 8cf2 0061 ld $61 8cf3 0085 ld $85 8cf4 00b7 ld $b7 8cf5 0069 ld $69 8cf6 0016 ld $16 8cf7 002a ld $2a 8cf8 00a3 ld $a3 8cf9 00a7 ld $a7 8cfa 0005 ld $05 8cfb fe00 bra ac ;+-----------------------------------+ 8cfc fcfd bra $8cfd ;| | 8cfd 1418 ld $18,y ;| Trampoline for page $8c00 lookups | 8cfe e006 jmp y,$06 ;| | 8cff c218 st [$18] ;+-----------------------------------+ 8d00 0048 ld $48 8d01 00bd ld $bd 8d02 00c2 ld $c2 8d03 000f ld $0f 8d04 0016 ld $16 8d05 000f ld $0f 8d06 00a3 ld $a3 8d07 0016 ld $16 8d08 0005 ld $05 8d09 00a4 ld $a4 8d0a 0016 ld $16 8d0b 0026 ld $26 8d0c 00a5 ld $a5 8d0d 0085 ld $85 8d0e 00dc ld $dc 8d0f 0063 ld $63 8d10 0011 ld $11 8d11 00bd ld $bd 8d12 006c ld $6c 8d13 0085 ld $85 8d14 00aa ld $aa 8d15 0061 ld $61 8d16 0085 ld $85 8d17 00b7 ld $b7 8d18 0069 ld $69 8d19 0016 ld $16 8d1a 002a ld $2a 8d1b 00a3 ld $a3 8d1c 00a7 ld $a7 8d1d 0004 ld $04 8d1e 0048 ld $48 8d1f 00bd ld $bd 8d20 00e0 ld $e0 8d21 000f ld $0f 8d22 0016 ld $16 8d23 000f ld $0f 8d24 00a3 ld $a3 8d25 0016 ld $16 8d26 005a ld $5a 8d27 00a4 ld $a4 8d28 0016 ld $16 8d29 000b ld $0b 8d2a 00a5 ld $a5 8d2b 0085 ld $85 8d2c 00dc ld $dc 8d2d 0063 ld $63 8d2e 0011 ld $11 8d2f 00b0 ld $b0 8d30 006c ld $6c 8d31 0085 ld $85 8d32 00aa ld $aa 8d33 0061 ld $61 8d34 0085 ld $85 8d35 00b7 ld $b7 8d36 0069 ld $69 8d37 0016 ld $16 8d38 002a ld $2a 8d39 00a3 ld $a3 8d3a 00a7 ld $a7 8d3b 0003 ld $03 8d3c 0048 ld $48 8d3d 00bd ld $bd 8d3e 00a1 ld $a1 8d3f 0010 ld $10 8d40 0085 ld $85 8d41 00a0 ld $a0 8d42 0010 ld $10 8d43 0010 ld $10 8d44 00a0 ld $a0 8d45 005f ld $5f 8d46 0016 ld $16 8d47 000f ld $0f 8d48 00a3 ld $a3 8d49 0016 ld $16 8d4a 005a ld $5a 8d4b 00a4 ld $a4 8d4c 0016 ld $16 8d4d 0014 ld $14 8d4e 00a5 ld $a5 8d4f 0085 ld $85 8d50 00dc ld $dc 8d51 0063 ld $63 8d52 0011 ld $11 8d53 00a3 ld $a3 8d54 006c ld $6c 8d55 0085 ld $85 8d56 00aa ld $aa 8d57 0061 ld $61 8d58 0085 ld $85 8d59 00b7 ld $b7 8d5a 0069 ld $69 8d5b 0016 ld $16 8d5c 002a ld $2a 8d5d 00a3 ld $a3 8d5e 00a7 ld $a7 8d5f 0002 ld $02 8d60 0048 ld $48 8d61 00bd ld $bd 8d62 00bf ld $bf 8d63 0010 ld $10 8d64 0016 ld $16 8d65 000f ld $0f 8d66 00a3 ld $a3 8d67 0016 ld $16 8d68 005a ld $5a 8d69 00a4 ld $a4 8d6a 0016 ld $16 8d6b 001d ld $1d 8d6c 00a5 ld $a5 8d6d 0085 ld $85 8d6e 00dc ld $dc 8d6f 0063 ld $63 8d70 0011 ld $11 8d71 00f3 ld $f3 8d72 006b ld $6b 8d73 0085 ld $85 8d74 00aa ld $aa 8d75 0061 ld $61 8d76 0085 ld $85 8d77 00b7 ld $b7 8d78 0069 ld $69 8d79 0016 ld $16 8d7a 002a ld $2a 8d7b 00a3 ld $a3 8d7c 00a7 ld $a7 8d7d 0001 ld $01 8d7e 0048 ld $48 8d7f 00bd ld $bd 8d80 00dd ld $dd 8d81 0010 ld $10 8d82 0016 ld $16 8d83 000f ld $0f 8d84 00a3 ld $a3 8d85 0016 ld $16 8d86 005a ld $5a 8d87 00a4 ld $a4 8d88 0016 ld $16 8d89 0026 ld $26 8d8a 00a5 ld $a5 8d8b 0085 ld $85 8d8c 00dc ld $dc 8d8d 0063 ld $63 8d8e 0011 ld $11 8d8f 00e6 ld $e6 8d90 006b ld $6b 8d91 0085 ld $85 8d92 00aa ld $aa 8d93 0061 ld $61 8d94 0085 ld $85 8d95 00b7 ld $b7 8d96 0069 ld $69 8d97 0063 ld $63 8d98 00ff ld $ff 8d99 0075 ld $75 8d9a 0016 ld $16 8d9b 0020 ld $20 8d9c 00a2 ld $a2 8d9d 0016 ld $16 8d9e 003f ld $3f 8d9f 00a3 ld $a3 8da0 0021 ld $21 8da1 0030 ld $30 8da2 0085 ld $85 8da3 00a0 ld $a0 8da4 0011 ld $11 8da5 0011 ld $11 8da6 00a0 ld $a0 8da7 0060 ld $60 8da8 00e6 ld $e6 8da9 000a ld $0a 8daa 00c5 ld $c5 8dab 00c9 ld $c9 8dac 0011 ld $11 8dad 0016 ld $16 8dae 006a ld $6a 8daf 00a4 ld $a4 8db0 0016 ld $16 8db1 006e ld $6e 8db2 00a5 ld $a5 8db3 0085 ld $85 8db4 00dc ld $dc 8db5 0063 ld $63 8db6 0011 ld $11 8db7 00dd ld $dd 8db8 006b ld $6b 8db9 0085 ld $85 8dba 00aa ld $aa 8dbb 0061 ld $61 8dbc 0085 ld $85 8dbd 00b7 ld $b7 8dbe 0069 ld $69 8dbf 0016 ld $16 8dc0 0094 ld $94 8dc1 00a4 ld $a4 8dc2 0016 ld $16 8dc3 006e ld $6e 8dc4 00a5 ld $a5 8dc5 0085 ld $85 8dc6 00dc ld $dc 8dc7 0063 ld $63 8dc8 0021 ld $21 8dc9 0030 ld $30 8dca 0085 ld $85 8dcb 00a7 ld $a7 8dcc 006a ld $6a 8dcd 0085 ld $85 8dce 00b7 ld $b7 8dcf 0069 ld $69 8dd0 0085 ld $85 8dd1 00ec ld $ec 8dd2 0012 ld $12 8dd3 0021 ld $21 8dd4 0030 ld $30 8dd5 00e6 ld $e6 8dd6 0064 ld $64 8dd7 00c5 ld $c5 8dd8 00f6 ld $f6 8dd9 0011 ld $11 8dda 0016 ld $16 8ddb 006a ld $6a 8ddc 00a4 ld $a4 8ddd 0016 ld $16 8dde 006e ld $6e 8ddf 00a5 ld $a5 8de0 0085 ld $85 8de1 00dc ld $dc 8de2 0063 ld $63 8de3 0011 ld $11 8de4 00d5 ld $d5 8de5 006b ld $6b 8de6 0085 ld $85 8de7 00aa ld $aa 8de8 0061 ld $61 8de9 0085 ld $85 8dea 00b7 ld $b7 8deb 0069 ld $69 8dec 0016 ld $16 8ded 008e ld $8e 8dee 00a4 ld $a4 8def 0016 ld $16 8df0 006e ld $6e 8df1 00a5 ld $a5 8df2 0085 ld $85 8df3 00dc ld $dc 8df4 0063 ld $63 8df5 0021 ld $21 8df6 0030 ld $30 8df7 0085 ld $85 8df8 00a7 ld $a7 8df9 006a ld $6a 8dfa 0085 ld $85 8dfb fe00 bra ac ;+-----------------------------------+ 8dfc fcfd bra $8dfd ;| | 8dfd 1418 ld $18,y ;| Trampoline for page $8d00 lookups | 8dfe e006 jmp y,$06 ;| | 8dff c218 st [$18] ;+-----------------------------------+ 8e00 00b7 ld $b7 8e01 0069 ld $69 8e02 0085 ld $85 8e03 00ec ld $ec 8e04 0012 ld $12 8e05 0011 ld $11 8e06 00e7 ld $e7 8e07 0003 ld $03 8e08 00b8 ld $b8 8e09 0030 ld $30 8e0a 0085 ld $85 8e0b 00a0 ld $a0 8e0c 0012 ld $12 8e0d 0012 ld $12 8e0e 00a0 ld $a0 8e0f 0060 ld $60 8e10 00c3 ld $c3 8e11 00c7 ld $c7 8e12 0012 ld $12 8e13 0016 ld $16 8e14 006a ld $6a 8e15 00a4 ld $a4 8e16 0016 ld $16 8e17 006e ld $6e 8e18 00a5 ld $a5 8e19 0085 ld $85 8e1a 00dc ld $dc 8e1b 0063 ld $63 8e1c 0011 ld $11 8e1d 00ce ld $ce 8e1e 006b ld $6b 8e1f 0085 ld $85 8e20 00aa ld $aa 8e21 0061 ld $61 8e22 0085 ld $85 8e23 00b7 ld $b7 8e24 0069 ld $69 8e25 0016 ld $16 8e26 0088 ld $88 8e27 00a4 ld $a4 8e28 0016 ld $16 8e29 006e ld $6e 8e2a 00a5 ld $a5 8e2b 0085 ld $85 8e2c 00dc ld $dc 8e2d 0063 ld $63 8e2e 0021 ld $21 8e2f 0030 ld $30 8e30 0085 ld $85 8e31 00a7 ld $a7 8e32 006a ld $6a 8e33 0085 ld $85 8e34 00b7 ld $b7 8e35 0069 ld $69 8e36 0085 ld $85 8e37 00ec ld $ec 8e38 0012 ld $12 8e39 0016 ld $16 8e3a 006a ld $6a 8e3b 00a4 ld $a4 8e3c 0016 ld $16 8e3d 006e ld $6e 8e3e 00a5 ld $a5 8e3f 0085 ld $85 8e40 00dc ld $dc 8e41 0063 ld $63 8e42 0011 ld $11 8e43 00c8 ld $c8 8e44 006b ld $6b 8e45 0085 ld $85 8e46 00aa ld $aa 8e47 0061 ld $61 8e48 0085 ld $85 8e49 00b7 ld $b7 8e4a 0069 ld $69 8e4b 0016 ld $16 8e4c 0082 ld $82 8e4d 00a4 ld $a4 8e4e 0016 ld $16 8e4f 006e ld $6e 8e50 00a5 ld $a5 8e51 0085 ld $85 8e52 00dc ld $dc 8e53 0063 ld $63 8e54 0021 ld $21 8e55 0030 ld $30 8e56 0085 ld $85 8e57 00a7 ld $a7 8e58 006a ld $6a 8e59 0085 ld $85 8e5a 00b7 ld $b7 8e5b 0069 ld $69 8e5c 0063 ld $63 8e5d 00ff ld $ff 8e5e 0075 ld $75 8e5f 0021 ld $21 8e60 0034 ld $34 8e61 00c3 ld $c3 8e62 00d8 ld $d8 8e63 0013 ld $13 8e64 0016 ld $16 8e65 0003 ld $03 8e66 00a2 ld $a2 8e67 0016 ld $16 8e68 000f ld $0f 8e69 00a3 ld $a3 8e6a 0016 ld $16 8e6b 0003 ld $03 8e6c 00a4 ld $a4 8e6d 0085 ld $85 8e6e 00a0 ld $a0 8e6f 0013 ld $13 8e70 0013 ld $13 8e71 00a0 ld $a0 8e72 005f ld $5f 8e73 0016 ld $16 8e74 006e ld $6e 8e75 00a5 ld $a5 8e76 0085 ld $85 8e77 00dc ld $dc 8e78 0063 ld $63 8e79 0011 ld $11 8e7a 00c2 ld $c2 8e7b 006b ld $6b 8e7c 0085 ld $85 8e7d 00aa ld $aa 8e7e 0061 ld $61 8e7f 0085 ld $85 8e80 00b7 ld $b7 8e81 0069 ld $69 8e82 0016 ld $16 8e83 001a ld $1a 8e84 00a4 ld $a4 8e85 0016 ld $16 8e86 006e ld $6e 8e87 00a5 ld $a5 8e88 0085 ld $85 8e89 00dc ld $dc 8e8a 0063 ld $63 8e8b 0021 ld $21 8e8c 0034 ld $34 8e8d 0085 ld $85 8e8e 00a7 ld $a7 8e8f 006a ld $6a 8e90 0085 ld $85 8e91 00b7 ld $b7 8e92 0069 ld $69 8e93 00a9 ld $a9 8e94 0030 ld $30 8e95 0034 ld $34 8e96 0030 ld $30 8e97 0011 ld $11 8e98 000f ld $0f 8e99 0027 ld $27 8e9a 00b8 ld $b8 8e9b 0030 ld $30 8e9c 00c5 ld $c5 8e9d 00cf ld $cf 8e9e 0013 ld $13 8e9f 0011 ld $11 8ea0 000f ld $0f 8ea1 0027 ld $27 8ea2 002b ld $2b 8ea3 0030 ld $30 8ea4 004d ld $4d 8ea5 0000 ld $00 8ea6 0034 ld $34 8ea7 0085 ld $85 8ea8 00f3 ld $f3 8ea9 0010 ld $10 8eaa 0085 ld $85 8eab 0032 ld $32 8eac 0006 ld $06 8ead 0021 ld $21 8eae 0030 ld $30 8eaf 00e6 ld $e6 8eb0 0001 ld $01 8eb1 00c5 ld $c5 8eb2 00e8 ld $e8 8eb3 0013 ld $13 8eb4 004d ld $4d 8eb5 0000 ld $00 8eb6 0036 ld $36 8eb7 0085 ld $85 8eb8 00bd ld $bd 8eb9 0006 ld $06 8eba 0085 ld $85 8ebb 0087 ld $87 8ebc 0005 ld $05 8ebd 0063 ld $63 8ebe 00ff ld $ff 8ebf 0075 ld $75 8ec0 0016 ld $16 8ec1 0020 ld $20 8ec2 00a2 ld $a2 8ec3 0016 ld $16 8ec4 003f ld $3f 8ec5 00a3 ld $a3 8ec6 0016 ld $16 8ec7 0039 ld $39 8ec8 00a4 ld $a4 8ec9 0016 ld $16 8eca 006e ld $6e 8ecb 00a5 ld $a5 8ecc 0085 ld $85 8ecd 00dc ld $dc 8ece 0063 ld $63 8ecf 0085 ld $85 8ed0 00a0 ld $a0 8ed1 0014 ld $14 8ed2 0014 ld $14 8ed3 00a0 ld $a0 8ed4 005f ld $5f 8ed5 0011 ld $11 8ed6 00bc ld $bc 8ed7 006b ld $6b 8ed8 0085 ld $85 8ed9 00aa ld $aa 8eda 0061 ld $61 8edb 0085 ld $85 8edc 00b7 ld $b7 8edd 0069 ld $69 8ede 0016 ld $16 8edf 0050 ld $50 8ee0 00a4 ld $a4 8ee1 0016 ld $16 8ee2 006e ld $6e 8ee3 00a5 ld $a5 8ee4 0085 ld $85 8ee5 00dc ld $dc 8ee6 0063 ld $63 8ee7 0021 ld $21 8ee8 0032 ld $32 8ee9 0085 ld $85 8eea 00a7 ld $a7 8eeb 006a ld $6a 8eec 0085 ld $85 8eed 00b7 ld $b7 8eee 0069 ld $69 8eef 0063 ld $63 8ef0 00ff ld $ff 8ef1 0075 ld $75 8ef2 0016 ld $16 8ef3 0000 ld $00 8ef4 00a3 ld $a3 8ef5 004d ld $4d 8ef6 0003 ld $03 8ef7 0082 ld $82 8ef8 004d ld $4d 8ef9 003c ld $3c 8efa 0084 ld $84 8efb fe00 bra ac ;+-----------------------------------+ 8efc fcfd bra $8efd ;| | 8efd 1418 ld $18,y ;| Trampoline for page $8e00 lookups | 8efe e006 jmp y,$06 ;| | 8eff c218 st [$18] ;+-----------------------------------+ 8f00 004d ld $4d 8f01 0020 ld $20 8f02 0086 ld $86 8f03 004d ld $4d 8f04 006b ld $6b 8f05 0088 ld $88 8f06 0085 ld $85 8f07 00c2 ld $c2 8f08 0067 ld $67 8f09 004d ld $4d 8f0a 0022 ld $22 8f0b 0082 ld $82 8f0c 004d ld $4d 8f0d 003c ld $3c 8f0e 0084 ld $84 8f0f 004d ld $4d 8f10 003f ld $3f 8f11 0086 ld $86 8f12 004d ld $4d 8f13 006b ld $6b 8f14 0088 ld $88 8f15 0085 ld $85 8f16 00c2 ld $c2 8f17 0067 ld $67 8f18 004d ld $4d 8f19 0041 ld $41 8f1a 0082 ld $82 8f1b 004d ld $4d 8f1c 003c ld $3c 8f1d 0084 ld $84 8f1e 004d ld $4d 8f1f 005e ld $5e 8f20 0086 ld $86 8f21 004d ld $4d 8f22 006b ld $6b 8f23 0088 ld $88 8f24 0085 ld $85 8f25 00c2 ld $c2 8f26 0067 ld $67 8f27 004d ld $4d 8f28 0060 ld $60 8f29 0082 ld $82 8f2a 004d ld $4d 8f2b 003c ld $3c 8f2c 0084 ld $84 8f2d 004d ld $4d 8f2e 007d ld $7d 8f2f 0086 ld $86 8f30 004d ld $4d 8f31 006b ld $6b 8f32 0088 ld $88 8f33 0085 ld $85 8f34 00c2 ld $c2 8f35 0067 ld $67 8f36 0085 ld $85 8f37 00a0 ld $a0 8f38 0015 ld $15 8f39 0015 ld $15 8f3a 00a0 ld $a0 8f3b 0060 ld $60 8f3c 004d ld $4d 8f3d 007f ld $7f 8f3e 0082 ld $82 8f3f 004d ld $4d 8f40 003c ld $3c 8f41 0084 ld $84 8f42 004d ld $4d 8f43 009c ld $9c 8f44 0086 ld $86 8f45 004d ld $4d 8f46 006b ld $6b 8f47 0088 ld $88 8f48 0085 ld $85 8f49 00c2 ld $c2 8f4a 0067 ld $67 8f4b 0016 ld $16 8f4c 0015 ld $15 8f4d 00a3 ld $a3 8f4e 004d ld $4d 8f4f 0004 ld $04 8f50 0082 ld $82 8f51 004d ld $4d 8f52 003d ld $3d 8f53 0084 ld $84 8f54 004d ld $4d 8f55 001f ld $1f 8f56 0086 ld $86 8f57 004d ld $4d 8f58 006a ld $6a 8f59 0088 ld $88 8f5a 0085 ld $85 8f5b 00c2 ld $c2 8f5c 0067 ld $67 8f5d 004d ld $4d 8f5e 0023 ld $23 8f5f 0082 ld $82 8f60 004d ld $4d 8f61 003d ld $3d 8f62 0084 ld $84 8f63 004d ld $4d 8f64 003e ld $3e 8f65 0086 ld $86 8f66 004d ld $4d 8f67 006a ld $6a 8f68 0088 ld $88 8f69 0085 ld $85 8f6a 00c2 ld $c2 8f6b 0067 ld $67 8f6c 004d ld $4d 8f6d 0042 ld $42 8f6e 0082 ld $82 8f6f 004d ld $4d 8f70 003d ld $3d 8f71 0084 ld $84 8f72 004d ld $4d 8f73 005d ld $5d 8f74 0086 ld $86 8f75 004d ld $4d 8f76 006a ld $6a 8f77 0088 ld $88 8f78 0085 ld $85 8f79 00c2 ld $c2 8f7a 0067 ld $67 8f7b 004d ld $4d 8f7c 0061 ld $61 8f7d 0082 ld $82 8f7e 004d ld $4d 8f7f 003d ld $3d 8f80 0084 ld $84 8f81 004d ld $4d 8f82 007c ld $7c 8f83 0086 ld $86 8f84 004d ld $4d 8f85 006a ld $6a 8f86 0088 ld $88 8f87 0085 ld $85 8f88 00c2 ld $c2 8f89 0067 ld $67 8f8a 004d ld $4d 8f8b 0080 ld $80 8f8c 0082 ld $82 8f8d 004d ld $4d 8f8e 003d ld $3d 8f8f 0084 ld $84 8f90 004d ld $4d 8f91 009b ld $9b 8f92 0086 ld $86 8f93 004d ld $4d 8f94 006a ld $6a 8f95 0088 ld $88 8f96 0085 ld $85 8f97 00c2 ld $c2 8f98 0067 ld $67 8f99 0085 ld $85 8f9a 00a0 ld $a0 8f9b 0016 ld $16 8f9c 0016 ld $16 8f9d 00a0 ld $a0 8f9e 0060 ld $60 8f9f 0063 ld $63 8fa0 00ff ld $ff 8fa1 0075 ld $75 8fa2 0016 ld $16 8fa3 0000 ld $00 8fa4 00a3 ld $a3 8fa5 0016 ld $16 8fa6 003f ld $3f 8fa7 00a2 ld $a2 8fa8 0011 ld $11 8fa9 00c5 ld $c5 8faa 0071 ld $71 8fab 00ad ld $ad 8fac 002b ld $2b 8fad 0096 ld $96 8fae 0053 ld $53 8faf 0096 ld $96 8fb0 00cb ld $cb 8fb1 006f ld $6f 8fb2 008c ld $8c 8fb3 0001 ld $01 8fb4 00bd ld $bd 8fb5 00cc ld $cc 8fb6 0019 ld $19 8fb7 00a7 ld $a7 8fb8 0002 ld $02 8fb9 0036 ld $36 8fba 00bd ld $bd 8fbb 00e0 ld $e0 8fbc 0016 ld $16 8fbd 0016 ld $16 8fbe 0000 ld $00 8fbf 00a3 ld $a3 8fc0 004d ld $4d 8fc1 0003 ld $03 8fc2 0082 ld $82 8fc3 004d ld $4d 8fc4 003c ld $3c 8fc5 0084 ld $84 8fc6 004d ld $4d 8fc7 0020 ld $20 8fc8 0086 ld $86 8fc9 004d ld $4d 8fca 006b ld $6b 8fcb 0088 ld $88 8fcc 0085 ld $85 8fcd 00c2 ld $c2 8fce 0067 ld $67 8fcf 0016 ld $16 8fd0 0015 ld $15 8fd1 00a3 ld $a3 8fd2 004d ld $4d 8fd3 0004 ld $04 8fd4 0082 ld $82 8fd5 004d ld $4d 8fd6 003d ld $3d 8fd7 0084 ld $84 8fd8 004d ld $4d 8fd9 001f ld $1f 8fda 0086 ld $86 8fdb 004d ld $4d 8fdc 006a ld $6a 8fdd 0088 ld $88 8fde 0085 ld $85 8fdf 00c2 ld $c2 8fe0 0067 ld $67 8fe1 004d ld $4d 8fe2 0008 ld $08 8fe3 0082 ld $82 8fe4 0085 ld $85 8fe5 00a2 ld $a2 8fe6 0061 ld $61 8fe7 0085 ld $85 8fe8 00a5 ld $a5 8fe9 0005 ld $05 8fea 0016 ld $16 8feb 003f ld $3f 8fec 00a3 ld $a3 8fed 004d ld $4d 8fee 0004 ld $04 8fef 0082 ld $82 8ff0 004d ld $4d 8ff1 003d ld $3d 8ff2 0084 ld $84 8ff3 004d ld $4d 8ff4 001f ld $1f 8ff5 0086 ld $86 8ff6 004d ld $4d 8ff7 006a ld $6a 8ff8 0088 ld $88 8ff9 0085 ld $85 8ffa 00c2 ld $c2 8ffb fe00 bra ac ;+-----------------------------------+ 8ffc fcfd bra $8ffd ;| | 8ffd 1418 ld $18,y ;| Trampoline for page $8f00 lookups | 8ffe e006 jmp y,$06 ;| | 8fff c218 st [$18] ;+-----------------------------------+ 9000 0067 ld $67 9001 0085 ld $85 9002 00a0 ld $a0 9003 0017 ld $17 9004 0017 ld $17 9005 00a0 ld $a0 9006 0060 ld $60 9007 0011 ld $11 9008 00c5 ld $c5 9009 0071 ld $71 900a 00ad ld $ad 900b 002b ld $2b 900c 0096 ld $96 900d 0053 ld $53 900e 0096 ld $96 900f 00cb ld $cb 9010 0070 ld $70 9011 008c ld $8c 9012 0002 ld $02 9013 006b ld $6b 9014 00ea ld $ea 9015 0011 ld $11 9016 00c5 ld $c5 9017 0071 ld $71 9018 00ad ld $ad 9019 002b ld $2b 901a 0096 ld $96 901b 0053 ld $53 901c 0096 ld $96 901d 00cb ld $cb 901e 0070 ld $70 901f 008c ld $8c 9020 0001 ld $01 9021 006b ld $6b 9022 0018 ld $18 9023 00fa ld $fa 9024 00ea ld $ea 9025 00bb ld $bb 9026 00c5 ld $c5 9027 0017 ld $17 9028 0016 ld $16 9029 0003 ld $03 902a 00a3 ld $a3 902b 0085 ld $85 902c 00ca ld $ca 902d 0017 ld $17 902e 0016 ld $16 902f 0000 ld $00 9030 00a3 ld $a3 9031 0011 ld $11 9032 00c5 ld $c5 9033 0071 ld $71 9034 00ad ld $ad 9035 002b ld $2b 9036 0096 ld $96 9037 0053 ld $53 9038 0096 ld $96 9039 00cb ld $cb 903a 0071 ld $71 903b 008c ld $8c 903c 000e ld $0e 903d 00bd ld $bd 903e 00ec ld $ec 903f 0017 ld $17 9040 0016 ld $16 9041 0007 ld $07 9042 00a4 ld $a4 9043 0016 ld $16 9044 003f ld $3f 9045 00a5 ld $a5 9046 0085 ld $85 9047 00dc ld $dc 9048 0063 ld $63 9049 0011 ld $11 904a 00a2 ld $a2 904b 007d ld $7d 904c 0085 ld $85 904d 00aa ld $aa 904e 0061 ld $61 904f 0085 ld $85 9050 00b7 ld $b7 9051 0069 ld $69 9052 0085 ld $85 9053 00b9 ld $b9 9054 0019 ld $19 9055 0011 ld $11 9056 00c5 ld $c5 9057 0071 ld $71 9058 00ad ld $ad 9059 002b ld $2b 905a 0096 ld $96 905b 0053 ld $53 905c 0096 ld $96 905d 00cb ld $cb 905e 0071 ld $71 905f 008c ld $8c 9060 000d ld $0d 9061 00bd ld $bd 9062 00b3 ld $b3 9063 0018 ld $18 9064 0085 ld $85 9065 00a0 ld $a0 9066 0018 ld $18 9067 0018 ld $18 9068 00a0 ld $a0 9069 0060 ld $60 906a 0016 ld $16 906b 0007 ld $07 906c 00a4 ld $a4 906d 0016 ld $16 906e 003f ld $3f 906f 00a5 ld $a5 9070 0085 ld $85 9071 00dc ld $dc 9072 0063 ld $63 9073 0011 ld $11 9074 00a2 ld $a2 9075 007c ld $7c 9076 0085 ld $85 9077 00aa ld $aa 9078 0061 ld $61 9079 0085 ld $85 907a 00b7 ld $b7 907b 0069 ld $69 907c 0085 ld $85 907d 00b9 ld $b9 907e 0019 ld $19 907f 0011 ld $11 9080 00c5 ld $c5 9081 0071 ld $71 9082 00ad ld $ad 9083 002b ld $2b 9084 0096 ld $96 9085 0053 ld $53 9086 0096 ld $96 9087 00cb ld $cb 9088 0071 ld $71 9089 008c ld $8c 908a 000c ld $0c 908b 00bd ld $bd 908c 00d7 ld $d7 908d 0018 ld $18 908e 0016 ld $16 908f 0007 ld $07 9090 00a4 ld $a4 9091 0016 ld $16 9092 003f ld $3f 9093 00a5 ld $a5 9094 0085 ld $85 9095 00dc ld $dc 9096 0063 ld $63 9097 0011 ld $11 9098 00a2 ld $a2 9099 007b ld $7b 909a 0085 ld $85 909b 00aa ld $aa 909c 0061 ld $61 909d 0085 ld $85 909e 00b7 ld $b7 909f 0069 ld $69 90a0 0085 ld $85 90a1 00b9 ld $b9 90a2 0019 ld $19 90a3 0011 ld $11 90a4 00c5 ld $c5 90a5 0071 ld $71 90a6 00ad ld $ad 90a7 002b ld $2b 90a8 0096 ld $96 90a9 0053 ld $53 90aa 0096 ld $96 90ab 00cb ld $cb 90ac 0071 ld $71 90ad 008c ld $8c 90ae 000b ld $0b 90af 00bd ld $bd 90b0 009e ld $9e 90b1 0019 ld $19 90b2 0016 ld $16 90b3 0007 ld $07 90b4 00a4 ld $a4 90b5 0016 ld $16 90b6 003f ld $3f 90b7 00a5 ld $a5 90b8 0085 ld $85 90b9 00dc ld $dc 90ba 0063 ld $63 90bb 0011 ld $11 90bc 00a2 ld $a2 90bd 007a ld $7a 90be 0085 ld $85 90bf 00aa ld $aa 90c0 0061 ld $61 90c1 0085 ld $85 90c2 00b7 ld $b7 90c3 0069 ld $69 90c4 0085 ld $85 90c5 00b9 ld $b9 90c6 0019 ld $19 90c7 0085 ld $85 90c8 00a0 ld $a0 90c9 0019 ld $19 90ca 0019 ld $19 90cb 00a0 ld $a0 90cc 005e ld $5e 90cd 0016 ld $16 90ce 0007 ld $07 90cf 00a4 ld $a4 90d0 0016 ld $16 90d1 003f ld $3f 90d2 00a5 ld $a5 90d3 0085 ld $85 90d4 00dc ld $dc 90d5 0063 ld $63 90d6 0011 ld $11 90d7 00c5 ld $c5 90d8 0071 ld $71 90d9 00ad ld $ad 90da 002b ld $2b 90db 0096 ld $96 90dc 0053 ld $53 90dd 0096 ld $96 90de 00cb ld $cb 90df 0071 ld $71 90e0 0085 ld $85 90e1 00a7 ld $a7 90e2 006a ld $6a 90e3 0085 ld $85 90e4 00b7 ld $b7 90e5 0069 ld $69 90e6 0011 ld $11 90e7 00c5 ld $c5 90e8 0071 ld $71 90e9 00ad ld $ad 90ea 002b ld $2b 90eb 0096 ld $96 90ec 0053 ld $53 90ed 0096 ld $96 90ee 00cb ld $cb 90ef 0070 ld $70 90f0 002b ld $2b 90f1 0082 ld $82 90f2 0016 ld $16 90f3 000b ld $0b 90f4 0084 ld $84 90f5 0016 ld $16 90f6 0056 ld $56 90f7 0085 ld $85 90f8 0085 ld $85 90f9 00cf ld $cf 90fa 0060 ld $60 90fb fe00 bra ac ;+-----------------------------------+ 90fc fcfd bra $90fd ;| | 90fd 1418 ld $18,y ;| Trampoline for page $9000 lookups | 90fe e006 jmp y,$06 ;| | 90ff c218 st [$18] ;+-----------------------------------+ 9100 0011 ld $11 9101 00c6 ld $c6 9102 0071 ld $71 9103 00ad ld $ad 9104 002b ld $2b 9105 0096 ld $96 9106 0053 ld $53 9107 0096 ld $96 9108 00cb ld $cb 9109 006f ld $6f 910a 008c ld $8c 910b 0001 ld $01 910c 00bd ld $bd 910d 00f3 ld $f3 910e 001c ld $1c 910f 00a7 ld $a7 9110 0002 ld $02 9111 0036 ld $36 9112 00bd ld $bd 9113 00aa ld $aa 9114 001a ld $1a 9115 0016 ld $16 9116 0000 ld $00 9117 00a3 ld $a3 9118 004d ld $4d 9119 0022 ld $22 911a 0082 ld $82 911b 004d ld $4d 911c 003c ld $3c 911d 0084 ld $84 911e 004d ld $4d 911f 003f ld $3f 9120 0086 ld $86 9121 004d ld $4d 9122 006b ld $6b 9123 0088 ld $88 9124 0085 ld $85 9125 00c2 ld $c2 9126 0067 ld $67 9127 0016 ld $16 9128 0015 ld $15 9129 00a3 ld $a3 912a 004d ld $4d 912b 0023 ld $23 912c 0082 ld $82 912d 0085 ld $85 912e 00a0 ld $a0 912f 001a ld $1a 9130 001a ld $1a 9131 00a0 ld $a0 9132 0060 ld $60 9133 004d ld $4d 9134 003d ld $3d 9135 0084 ld $84 9136 004d ld $4d 9137 003e ld $3e 9138 0086 ld $86 9139 004d ld $4d 913a 006a ld $6a 913b 0088 ld $88 913c 0085 ld $85 913d 00c2 ld $c2 913e 0067 ld $67 913f 004d ld $4d 9140 0008 ld $08 9141 0082 ld $82 9142 0085 ld $85 9143 00a2 ld $a2 9144 0061 ld $61 9145 0085 ld $85 9146 00a5 ld $a5 9147 0005 ld $05 9148 0016 ld $16 9149 003f ld $3f 914a 00a3 ld $a3 914b 004d ld $4d 914c 0023 ld $23 914d 0082 ld $82 914e 004d ld $4d 914f 003d ld $3d 9150 0084 ld $84 9151 004d ld $4d 9152 003e ld $3e 9153 0086 ld $86 9154 004d ld $4d 9155 006a ld $6a 9156 0088 ld $88 9157 0085 ld $85 9158 00c2 ld $c2 9159 0067 ld $67 915a 0011 ld $11 915b 00c6 ld $c6 915c 0071 ld $71 915d 00ad ld $ad 915e 002b ld $2b 915f 0096 ld $96 9160 0053 ld $53 9161 0096 ld $96 9162 00cb ld $cb 9163 0070 ld $70 9164 008c ld $8c 9165 0002 ld $02 9166 006b ld $6b 9167 00ea ld $ea 9168 0011 ld $11 9169 00c6 ld $c6 916a 0071 ld $71 916b 00ad ld $ad 916c 002b ld $2b 916d 0096 ld $96 916e 0053 ld $53 916f 0096 ld $96 9170 00cb ld $cb 9171 0070 ld $70 9172 008c ld $8c 9173 0001 ld $01 9174 006b ld $6b 9175 0018 ld $18 9176 00fa ld $fa 9177 00ea ld $ea 9178 00bb ld $bb 9179 00ec ld $ec 917a 001a ld $1a 917b 0016 ld $16 917c 0003 ld $03 917d 00a3 ld $a3 917e 0085 ld $85 917f 00f1 ld $f1 9180 001a ld $1a 9181 0016 ld $16 9182 0000 ld $00 9183 00a3 ld $a3 9184 0011 ld $11 9185 00c6 ld $c6 9186 0071 ld $71 9187 00ad ld $ad 9188 002b ld $2b 9189 0096 ld $96 918a 0053 ld $53 918b 0096 ld $96 918c 00cb ld $cb 918d 0071 ld $71 918e 008c ld $8c 918f 000e ld $0e 9190 0085 ld $85 9191 00a0 ld $a0 9192 001b ld $1b 9193 001b ld $1b 9194 00a0 ld $a0 9195 0060 ld $60 9196 00bd ld $bd 9197 00b6 ld $b6 9198 001b ld $1b 9199 0016 ld $16 919a 0026 ld $26 919b 00a4 ld $a4 919c 0016 ld $16 919d 003f ld $3f 919e 00a5 ld $a5 919f 0085 ld $85 91a0 00dc ld $dc 91a1 0063 ld $63 91a2 0011 ld $11 91a3 00a2 ld $a2 91a4 007d ld $7d 91a5 0085 ld $85 91a6 00aa ld $aa 91a7 0061 ld $61 91a8 0085 ld $85 91a9 00b7 ld $b7 91aa 0069 ld $69 91ab 0085 ld $85 91ac 00e0 ld $e0 91ad 001c ld $1c 91ae 0011 ld $11 91af 00c6 ld $c6 91b0 0071 ld $71 91b1 00ad ld $ad 91b2 002b ld $2b 91b3 0096 ld $96 91b4 0053 ld $53 91b5 0096 ld $96 91b6 00cb ld $cb 91b7 0071 ld $71 91b8 008c ld $8c 91b9 000d ld $0d 91ba 00bd ld $bd 91bb 00da ld $da 91bc 001b ld $1b 91bd 0016 ld $16 91be 0026 ld $26 91bf 00a4 ld $a4 91c0 0016 ld $16 91c1 003f ld $3f 91c2 00a5 ld $a5 91c3 0085 ld $85 91c4 00dc ld $dc 91c5 0063 ld $63 91c6 0011 ld $11 91c7 00a2 ld $a2 91c8 007c ld $7c 91c9 0085 ld $85 91ca 00aa ld $aa 91cb 0061 ld $61 91cc 0085 ld $85 91cd 00b7 ld $b7 91ce 0069 ld $69 91cf 0085 ld $85 91d0 00e0 ld $e0 91d1 001c ld $1c 91d2 0011 ld $11 91d3 00c6 ld $c6 91d4 0071 ld $71 91d5 00ad ld $ad 91d6 002b ld $2b 91d7 0096 ld $96 91d8 0053 ld $53 91d9 0096 ld $96 91da 00cb ld $cb 91db 0071 ld $71 91dc 008c ld $8c 91dd 000c ld $0c 91de 00bd ld $bd 91df 00a1 ld $a1 91e0 001c ld $1c 91e1 0016 ld $16 91e2 0026 ld $26 91e3 00a4 ld $a4 91e4 0016 ld $16 91e5 003f ld $3f 91e6 00a5 ld $a5 91e7 0085 ld $85 91e8 00dc ld $dc 91e9 0063 ld $63 91ea 0011 ld $11 91eb 00a2 ld $a2 91ec 007b ld $7b 91ed 0085 ld $85 91ee 00aa ld $aa 91ef 0061 ld $61 91f0 0085 ld $85 91f1 00b7 ld $b7 91f2 0069 ld $69 91f3 0085 ld $85 91f4 00a0 ld $a0 91f5 001c ld $1c 91f6 001c ld $1c 91f7 00a0 ld $a0 91f8 005e ld $5e 91f9 0085 ld $85 91fa 00e0 ld $e0 91fb fe00 bra ac ;+-----------------------------------+ 91fc fcfd bra $91fd ;| | 91fd 1418 ld $18,y ;| Trampoline for page $9100 lookups | 91fe e006 jmp y,$06 ;| | 91ff c218 st [$18] ;+-----------------------------------+ 9200 001c ld $1c 9201 0011 ld $11 9202 00c6 ld $c6 9203 0071 ld $71 9204 00ad ld $ad 9205 002b ld $2b 9206 0096 ld $96 9207 0053 ld $53 9208 0096 ld $96 9209 00cb ld $cb 920a 0071 ld $71 920b 008c ld $8c 920c 000b ld $0b 920d 00bd ld $bd 920e 00c5 ld $c5 920f 001c ld $1c 9210 0016 ld $16 9211 0026 ld $26 9212 00a4 ld $a4 9213 0016 ld $16 9214 003f ld $3f 9215 00a5 ld $a5 9216 0085 ld $85 9217 00dc ld $dc 9218 0063 ld $63 9219 0011 ld $11 921a 00a2 ld $a2 921b 007a ld $7a 921c 0085 ld $85 921d 00aa ld $aa 921e 0061 ld $61 921f 0085 ld $85 9220 00b7 ld $b7 9221 0069 ld $69 9222 0085 ld $85 9223 00e0 ld $e0 9224 001c ld $1c 9225 0016 ld $16 9226 0026 ld $26 9227 00a4 ld $a4 9228 0016 ld $16 9229 003f ld $3f 922a 00a5 ld $a5 922b 0085 ld $85 922c 00dc ld $dc 922d 0063 ld $63 922e 0011 ld $11 922f 00c6 ld $c6 9230 0071 ld $71 9231 00ad ld $ad 9232 002b ld $2b 9233 0096 ld $96 9234 0053 ld $53 9235 0096 ld $96 9236 00cb ld $cb 9237 0071 ld $71 9238 0085 ld $85 9239 00a7 ld $a7 923a 006a ld $6a 923b 0085 ld $85 923c 00b7 ld $b7 923d 0069 ld $69 923e 0011 ld $11 923f 00c6 ld $c6 9240 0071 ld $71 9241 00ad ld $ad 9242 002b ld $2b 9243 0096 ld $96 9244 0053 ld $53 9245 0096 ld $96 9246 00cb ld $cb 9247 0070 ld $70 9248 002b ld $2b 9249 0082 ld $82 924a 0016 ld $16 924b 002a ld $2a 924c 0084 ld $84 924d 0016 ld $16 924e 0056 ld $56 924f 0085 ld $85 9250 0085 ld $85 9251 00cf ld $cf 9252 0060 ld $60 9253 0011 ld $11 9254 00c7 ld $c7 9255 0071 ld $71 9256 00ad ld $ad 9257 002b ld $2b 9258 0096 ld $96 9259 0085 ld $85 925a 00a0 ld $a0 925b 001d ld $1d 925c 001d ld $1d 925d 00a0 ld $a0 925e 005f ld $5f 925f 0053 ld $53 9260 0096 ld $96 9261 00cb ld $cb 9262 006f ld $6f 9263 008c ld $8c 9264 0001 ld $01 9265 00bd ld $bd 9266 00c3 ld $c3 9267 0020 ld $20 9268 00a7 ld $a7 9269 0002 ld $02 926a 0036 ld $36 926b 00bd ld $bd 926c 00d1 ld $d1 926d 001d ld $1d 926e 0016 ld $16 926f 0000 ld $00 9270 00a3 ld $a3 9271 004d ld $4d 9272 0041 ld $41 9273 0082 ld $82 9274 004d ld $4d 9275 003c ld $3c 9276 0084 ld $84 9277 004d ld $4d 9278 005e ld $5e 9279 0086 ld $86 927a 004d ld $4d 927b 006b ld $6b 927c 0088 ld $88 927d 0085 ld $85 927e 00c2 ld $c2 927f 0067 ld $67 9280 0016 ld $16 9281 0015 ld $15 9282 00a3 ld $a3 9283 004d ld $4d 9284 0042 ld $42 9285 0082 ld $82 9286 004d ld $4d 9287 003d ld $3d 9288 0084 ld $84 9289 004d ld $4d 928a 005d ld $5d 928b 0086 ld $86 928c 004d ld $4d 928d 006a ld $6a 928e 0088 ld $88 928f 0085 ld $85 9290 00c2 ld $c2 9291 0067 ld $67 9292 004d ld $4d 9293 0008 ld $08 9294 0082 ld $82 9295 0085 ld $85 9296 00a2 ld $a2 9297 0061 ld $61 9298 0085 ld $85 9299 00a5 ld $a5 929a 0005 ld $05 929b 0016 ld $16 929c 003f ld $3f 929d 00a3 ld $a3 929e 004d ld $4d 929f 0042 ld $42 92a0 0082 ld $82 92a1 004d ld $4d 92a2 003d ld $3d 92a3 0084 ld $84 92a4 004d ld $4d 92a5 005d ld $5d 92a6 0086 ld $86 92a7 004d ld $4d 92a8 006a ld $6a 92a9 0088 ld $88 92aa 0085 ld $85 92ab 00c2 ld $c2 92ac 0067 ld $67 92ad 0011 ld $11 92ae 00c7 ld $c7 92af 0071 ld $71 92b0 00ad ld $ad 92b1 002b ld $2b 92b2 0096 ld $96 92b3 0053 ld $53 92b4 0096 ld $96 92b5 00cb ld $cb 92b6 0070 ld $70 92b7 008c ld $8c 92b8 0002 ld $02 92b9 006b ld $6b 92ba 00ea ld $ea 92bb 0085 ld $85 92bc 00a0 ld $a0 92bd 001e ld $1e 92be 001e ld $1e 92bf 00a0 ld $a0 92c0 005b ld $5b 92c1 0011 ld $11 92c2 00c7 ld $c7 92c3 0071 ld $71 92c4 00ad ld $ad 92c5 002b ld $2b 92c6 0096 ld $96 92c7 0053 ld $53 92c8 0096 ld $96 92c9 00cb ld $cb 92ca 0070 ld $70 92cb 008c ld $8c 92cc 0001 ld $01 92cd 006b ld $6b 92ce 0018 ld $18 92cf 00fa ld $fa 92d0 00ea ld $ea 92d1 00bb ld $bb 92d2 00b7 ld $b7 92d3 001e ld $1e 92d4 0016 ld $16 92d5 0003 ld $03 92d6 00a3 ld $a3 92d7 0085 ld $85 92d8 00bc ld $bc 92d9 001e ld $1e 92da 0016 ld $16 92db 0000 ld $00 92dc 00a3 ld $a3 92dd 0011 ld $11 92de 00c7 ld $c7 92df 0071 ld $71 92e0 00ad ld $ad 92e1 002b ld $2b 92e2 0096 ld $96 92e3 0053 ld $53 92e4 0096 ld $96 92e5 00cb ld $cb 92e6 0071 ld $71 92e7 008c ld $8c 92e8 000e ld $0e 92e9 00bd ld $bd 92ea 00de ld $de 92eb 001e ld $1e 92ec 0016 ld $16 92ed 0045 ld $45 92ee 00a4 ld $a4 92ef 0016 ld $16 92f0 003f ld $3f 92f1 00a5 ld $a5 92f2 0085 ld $85 92f3 00dc ld $dc 92f4 0063 ld $63 92f5 0011 ld $11 92f6 00a2 ld $a2 92f7 007d ld $7d 92f8 0085 ld $85 92f9 00aa ld $aa 92fa 0061 ld $61 92fb fe00 bra ac ;+-----------------------------------+ 92fc fcfd bra $92fd ;| | 92fd 1418 ld $18,y ;| Trampoline for page $9200 lookups | 92fe e006 jmp y,$06 ;| | 92ff c218 st [$18] ;+-----------------------------------+ 9300 0085 ld $85 9301 00b7 ld $b7 9302 0069 ld $69 9303 0085 ld $85 9304 00b0 ld $b0 9305 0020 ld $20 9306 0011 ld $11 9307 00c7 ld $c7 9308 0071 ld $71 9309 00ad ld $ad 930a 002b ld $2b 930b 0096 ld $96 930c 0053 ld $53 930d 0096 ld $96 930e 00cb ld $cb 930f 0071 ld $71 9310 008c ld $8c 9311 000d ld $0d 9312 00bd ld $bd 9313 00aa ld $aa 9314 001f ld $1f 9315 0016 ld $16 9316 0045 ld $45 9317 00a4 ld $a4 9318 0016 ld $16 9319 003f ld $3f 931a 00a5 ld $a5 931b 0085 ld $85 931c 00dc ld $dc 931d 0063 ld $63 931e 0085 ld $85 931f 00a0 ld $a0 9320 001f ld $1f 9321 001f ld $1f 9322 00a0 ld $a0 9323 0060 ld $60 9324 0011 ld $11 9325 00a2 ld $a2 9326 007c ld $7c 9327 0085 ld $85 9328 00aa ld $aa 9329 0061 ld $61 932a 0085 ld $85 932b 00b7 ld $b7 932c 0069 ld $69 932d 0085 ld $85 932e 00b0 ld $b0 932f 0020 ld $20 9330 0011 ld $11 9331 00c7 ld $c7 9332 0071 ld $71 9333 00ad ld $ad 9334 002b ld $2b 9335 0096 ld $96 9336 0053 ld $53 9337 0096 ld $96 9338 00cb ld $cb 9339 0071 ld $71 933a 008c ld $8c 933b 000c ld $0c 933c 00bd ld $bd 933d 00ce ld $ce 933e 001f ld $1f 933f 0016 ld $16 9340 0045 ld $45 9341 00a4 ld $a4 9342 0016 ld $16 9343 003f ld $3f 9344 00a5 ld $a5 9345 0085 ld $85 9346 00dc ld $dc 9347 0063 ld $63 9348 0011 ld $11 9349 00a2 ld $a2 934a 007b ld $7b 934b 0085 ld $85 934c 00aa ld $aa 934d 0061 ld $61 934e 0085 ld $85 934f 00b7 ld $b7 9350 0069 ld $69 9351 0085 ld $85 9352 00b0 ld $b0 9353 0020 ld $20 9354 0011 ld $11 9355 00c7 ld $c7 9356 0071 ld $71 9357 00ad ld $ad 9358 002b ld $2b 9359 0096 ld $96 935a 0053 ld $53 935b 0096 ld $96 935c 00cb ld $cb 935d 0071 ld $71 935e 008c ld $8c 935f 000b ld $0b 9360 00bd ld $bd 9361 00f2 ld $f2 9362 001f ld $1f 9363 0016 ld $16 9364 0045 ld $45 9365 00a4 ld $a4 9366 0016 ld $16 9367 003f ld $3f 9368 00a5 ld $a5 9369 0085 ld $85 936a 00dc ld $dc 936b 0063 ld $63 936c 0011 ld $11 936d 00a2 ld $a2 936e 007a ld $7a 936f 0085 ld $85 9370 00aa ld $aa 9371 0061 ld $61 9372 0085 ld $85 9373 00b7 ld $b7 9374 0069 ld $69 9375 0085 ld $85 9376 00b0 ld $b0 9377 0020 ld $20 9378 0016 ld $16 9379 0045 ld $45 937a 00a4 ld $a4 937b 0016 ld $16 937c 003f ld $3f 937d 00a5 ld $a5 937e 0085 ld $85 937f 00dc ld $dc 9380 0063 ld $63 9381 0085 ld $85 9382 00a0 ld $a0 9383 0020 ld $20 9384 0020 ld $20 9385 00a0 ld $a0 9386 005e ld $5e 9387 0011 ld $11 9388 00c7 ld $c7 9389 0071 ld $71 938a 00ad ld $ad 938b 002b ld $2b 938c 0096 ld $96 938d 0053 ld $53 938e 0096 ld $96 938f 00cb ld $cb 9390 0071 ld $71 9391 0085 ld $85 9392 00a7 ld $a7 9393 006a ld $6a 9394 0085 ld $85 9395 00b7 ld $b7 9396 0069 ld $69 9397 0011 ld $11 9398 00c7 ld $c7 9399 0071 ld $71 939a 00ad ld $ad 939b 002b ld $2b 939c 0096 ld $96 939d 0053 ld $53 939e 0096 ld $96 939f 00cb ld $cb 93a0 0070 ld $70 93a1 002b ld $2b 93a2 0082 ld $82 93a3 0016 ld $16 93a4 0049 ld $49 93a5 0084 ld $84 93a6 0016 ld $16 93a7 0056 ld $56 93a8 0085 ld $85 93a9 0085 ld $85 93aa 00cf ld $cf 93ab 0060 ld $60 93ac 0011 ld $11 93ad 00c8 ld $c8 93ae 0071 ld $71 93af 00ad ld $ad 93b0 002b ld $2b 93b1 0096 ld $96 93b2 0053 ld $53 93b3 0096 ld $96 93b4 00cb ld $cb 93b5 006f ld $6f 93b6 008c ld $8c 93b7 0001 ld $01 93b8 00bd ld $bd 93b9 00ea ld $ea 93ba 0023 ld $23 93bb 00a7 ld $a7 93bc 0002 ld $02 93bd 0036 ld $36 93be 00bd ld $bd 93bf 00a1 ld $a1 93c0 0021 ld $21 93c1 0016 ld $16 93c2 0000 ld $00 93c3 00a3 ld $a3 93c4 004d ld $4d 93c5 0060 ld $60 93c6 0082 ld $82 93c7 004d ld $4d 93c8 003c ld $3c 93c9 0084 ld $84 93ca 004d ld $4d 93cb 007d ld $7d 93cc 0086 ld $86 93cd 004d ld $4d 93ce 006b ld $6b 93cf 0088 ld $88 93d0 0085 ld $85 93d1 00c2 ld $c2 93d2 0067 ld $67 93d3 0016 ld $16 93d4 0015 ld $15 93d5 00a3 ld $a3 93d6 004d ld $4d 93d7 0061 ld $61 93d8 0082 ld $82 93d9 004d ld $4d 93da 003d ld $3d 93db 0084 ld $84 93dc 004d ld $4d 93dd 007c ld $7c 93de 0086 ld $86 93df 004d ld $4d 93e0 006a ld $6a 93e1 0088 ld $88 93e2 0085 ld $85 93e3 00a0 ld $a0 93e4 0021 ld $21 93e5 0021 ld $21 93e6 00a0 ld $a0 93e7 0060 ld $60 93e8 0085 ld $85 93e9 00c2 ld $c2 93ea 0067 ld $67 93eb 004d ld $4d 93ec 0008 ld $08 93ed 0082 ld $82 93ee 0085 ld $85 93ef 00a2 ld $a2 93f0 0061 ld $61 93f1 0085 ld $85 93f2 00a5 ld $a5 93f3 0005 ld $05 93f4 0016 ld $16 93f5 003f ld $3f 93f6 00a3 ld $a3 93f7 004d ld $4d 93f8 0061 ld $61 93f9 0082 ld $82 93fa 004d ld $4d 93fb fe00 bra ac ;+-----------------------------------+ 93fc fcfd bra $93fd ;| | 93fd 1418 ld $18,y ;| Trampoline for page $9300 lookups | 93fe e006 jmp y,$06 ;| | 93ff c218 st [$18] ;+-----------------------------------+ 9400 003d ld $3d 9401 0084 ld $84 9402 004d ld $4d 9403 007c ld $7c 9404 0086 ld $86 9405 004d ld $4d 9406 006a ld $6a 9407 0088 ld $88 9408 0085 ld $85 9409 00c2 ld $c2 940a 0067 ld $67 940b 0011 ld $11 940c 00c8 ld $c8 940d 0071 ld $71 940e 00ad ld $ad 940f 002b ld $2b 9410 0096 ld $96 9411 0053 ld $53 9412 0096 ld $96 9413 00cb ld $cb 9414 0070 ld $70 9415 008c ld $8c 9416 0002 ld $02 9417 006b ld $6b 9418 00ea ld $ea 9419 0011 ld $11 941a 00c8 ld $c8 941b 0071 ld $71 941c 00ad ld $ad 941d 002b ld $2b 941e 0096 ld $96 941f 0053 ld $53 9420 0096 ld $96 9421 00cb ld $cb 9422 0070 ld $70 9423 008c ld $8c 9424 0001 ld $01 9425 006b ld $6b 9426 0018 ld $18 9427 00fa ld $fa 9428 00ea ld $ea 9429 00bb ld $bb 942a 00e3 ld $e3 942b 0021 ld $21 942c 0016 ld $16 942d 0003 ld $03 942e 00a3 ld $a3 942f 0085 ld $85 9430 00e8 ld $e8 9431 0021 ld $21 9432 0016 ld $16 9433 0000 ld $00 9434 00a3 ld $a3 9435 0011 ld $11 9436 00c8 ld $c8 9437 0071 ld $71 9438 00ad ld $ad 9439 002b ld $2b 943a 0096 ld $96 943b 0053 ld $53 943c 0096 ld $96 943d 00cb ld $cb 943e 0071 ld $71 943f 008c ld $8c 9440 000e ld $0e 9441 00bd ld $bd 9442 00ad ld $ad 9443 0022 ld $22 9444 0016 ld $16 9445 0064 ld $64 9446 00a4 ld $a4 9447 0016 ld $16 9448 003f ld $3f 9449 00a5 ld $a5 944a 0085 ld $85 944b 00a0 ld $a0 944c 0022 ld $22 944d 0022 ld $22 944e 00a0 ld $a0 944f 0060 ld $60 9450 0085 ld $85 9451 00dc ld $dc 9452 0063 ld $63 9453 0011 ld $11 9454 00a2 ld $a2 9455 007d ld $7d 9456 0085 ld $85 9457 00aa ld $aa 9458 0061 ld $61 9459 0085 ld $85 945a 00b7 ld $b7 945b 0069 ld $69 945c 0085 ld $85 945d 00d7 ld $d7 945e 0023 ld $23 945f 0011 ld $11 9460 00c8 ld $c8 9461 0071 ld $71 9462 00ad ld $ad 9463 002b ld $2b 9464 0096 ld $96 9465 0053 ld $53 9466 0096 ld $96 9467 00cb ld $cb 9468 0071 ld $71 9469 008c ld $8c 946a 000d ld $0d 946b 00bd ld $bd 946c 00d1 ld $d1 946d 0022 ld $22 946e 0016 ld $16 946f 0064 ld $64 9470 00a4 ld $a4 9471 0016 ld $16 9472 003f ld $3f 9473 00a5 ld $a5 9474 0085 ld $85 9475 00dc ld $dc 9476 0063 ld $63 9477 0011 ld $11 9478 00a2 ld $a2 9479 007c ld $7c 947a 0085 ld $85 947b 00aa ld $aa 947c 0061 ld $61 947d 0085 ld $85 947e 00b7 ld $b7 947f 0069 ld $69 9480 0085 ld $85 9481 00d7 ld $d7 9482 0023 ld $23 9483 0011 ld $11 9484 00c8 ld $c8 9485 0071 ld $71 9486 00ad ld $ad 9487 002b ld $2b 9488 0096 ld $96 9489 0053 ld $53 948a 0096 ld $96 948b 00cb ld $cb 948c 0071 ld $71 948d 008c ld $8c 948e 000c ld $0c 948f 00bd ld $bd 9490 00f5 ld $f5 9491 0022 ld $22 9492 0016 ld $16 9493 0064 ld $64 9494 00a4 ld $a4 9495 0016 ld $16 9496 003f ld $3f 9497 00a5 ld $a5 9498 0085 ld $85 9499 00dc ld $dc 949a 0063 ld $63 949b 0011 ld $11 949c 00a2 ld $a2 949d 007b ld $7b 949e 0085 ld $85 949f 00aa ld $aa 94a0 0061 ld $61 94a1 0085 ld $85 94a2 00b7 ld $b7 94a3 0069 ld $69 94a4 0085 ld $85 94a5 00d7 ld $d7 94a6 0023 ld $23 94a7 0011 ld $11 94a8 00c8 ld $c8 94a9 0071 ld $71 94aa 00ad ld $ad 94ab 002b ld $2b 94ac 0096 ld $96 94ad 0085 ld $85 94ae 00a0 ld $a0 94af 0023 ld $23 94b0 0023 ld $23 94b1 00a0 ld $a0 94b2 005e ld $5e 94b3 0053 ld $53 94b4 0096 ld $96 94b5 00cb ld $cb 94b6 0071 ld $71 94b7 008c ld $8c 94b8 000b ld $0b 94b9 00bd ld $bd 94ba 00bc ld $bc 94bb 0023 ld $23 94bc 0016 ld $16 94bd 0064 ld $64 94be 00a4 ld $a4 94bf 0016 ld $16 94c0 003f ld $3f 94c1 00a5 ld $a5 94c2 0085 ld $85 94c3 00dc ld $dc 94c4 0063 ld $63 94c5 0011 ld $11 94c6 00a2 ld $a2 94c7 007a ld $7a 94c8 0085 ld $85 94c9 00aa ld $aa 94ca 0061 ld $61 94cb 0085 ld $85 94cc 00b7 ld $b7 94cd 0069 ld $69 94ce 0085 ld $85 94cf 00d7 ld $d7 94d0 0023 ld $23 94d1 0016 ld $16 94d2 0064 ld $64 94d3 00a4 ld $a4 94d4 0016 ld $16 94d5 003f ld $3f 94d6 00a5 ld $a5 94d7 0085 ld $85 94d8 00dc ld $dc 94d9 0063 ld $63 94da 0011 ld $11 94db 00c8 ld $c8 94dc 0071 ld $71 94dd 00ad ld $ad 94de 002b ld $2b 94df 0096 ld $96 94e0 0053 ld $53 94e1 0096 ld $96 94e2 00cb ld $cb 94e3 0071 ld $71 94e4 0085 ld $85 94e5 00a7 ld $a7 94e6 006a ld $6a 94e7 0085 ld $85 94e8 00b7 ld $b7 94e9 0069 ld $69 94ea 0011 ld $11 94eb 00c8 ld $c8 94ec 0071 ld $71 94ed 00ad ld $ad 94ee 002b ld $2b 94ef 0096 ld $96 94f0 0053 ld $53 94f1 0096 ld $96 94f2 00cb ld $cb 94f3 0070 ld $70 94f4 002b ld $2b 94f5 0082 ld $82 94f6 0016 ld $16 94f7 0068 ld $68 94f8 0084 ld $84 94f9 0016 ld $16 94fa 0056 ld $56 94fb fe00 bra ac ;+-----------------------------------+ 94fc fcfd bra $94fd ;| | 94fd 1418 ld $18,y ;| Trampoline for page $9400 lookups | 94fe e006 jmp y,$06 ;| | 94ff c218 st [$18] ;+-----------------------------------+ 9500 0085 ld $85 9501 0085 ld $85 9502 00cf ld $cf 9503 0060 ld $60 9504 0011 ld $11 9505 00c9 ld $c9 9506 0071 ld $71 9507 00ad ld $ad 9508 002b ld $2b 9509 0096 ld $96 950a 0053 ld $53 950b 0096 ld $96 950c 00cb ld $cb 950d 006f ld $6f 950e 008c ld $8c 950f 0001 ld $01 9510 00bd ld $bd 9511 00b6 ld $b6 9512 0027 ld $27 9513 0085 ld $85 9514 00a0 ld $a0 9515 0024 ld $24 9516 0024 ld $24 9517 00a0 ld $a0 9518 0060 ld $60 9519 00a7 ld $a7 951a 0002 ld $02 951b 0036 ld $36 951c 00bd ld $bd 951d 00c8 ld $c8 951e 0024 ld $24 951f 0016 ld $16 9520 0000 ld $00 9521 00a3 ld $a3 9522 004d ld $4d 9523 007f ld $7f 9524 0082 ld $82 9525 004d ld $4d 9526 003c ld $3c 9527 0084 ld $84 9528 004d ld $4d 9529 009c ld $9c 952a 0086 ld $86 952b 004d ld $4d 952c 006b ld $6b 952d 0088 ld $88 952e 0085 ld $85 952f 00c2 ld $c2 9530 0067 ld $67 9531 0016 ld $16 9532 0015 ld $15 9533 00a3 ld $a3 9534 004d ld $4d 9535 0080 ld $80 9536 0082 ld $82 9537 004d ld $4d 9538 003d ld $3d 9539 0084 ld $84 953a 004d ld $4d 953b 009b ld $9b 953c 0086 ld $86 953d 004d ld $4d 953e 006a ld $6a 953f 0088 ld $88 9540 0085 ld $85 9541 00c2 ld $c2 9542 0067 ld $67 9543 004d ld $4d 9544 0008 ld $08 9545 0082 ld $82 9546 0085 ld $85 9547 00a2 ld $a2 9548 0061 ld $61 9549 0085 ld $85 954a 00a5 ld $a5 954b 0005 ld $05 954c 0016 ld $16 954d 003f ld $3f 954e 00a3 ld $a3 954f 004d ld $4d 9550 0080 ld $80 9551 0082 ld $82 9552 004d ld $4d 9553 003d ld $3d 9554 0084 ld $84 9555 004d ld $4d 9556 009b ld $9b 9557 0086 ld $86 9558 004d ld $4d 9559 006a ld $6a 955a 0088 ld $88 955b 0085 ld $85 955c 00c2 ld $c2 955d 0067 ld $67 955e 0011 ld $11 955f 00c9 ld $c9 9560 0071 ld $71 9561 00ad ld $ad 9562 002b ld $2b 9563 0096 ld $96 9564 0053 ld $53 9565 0096 ld $96 9566 00cb ld $cb 9567 0070 ld $70 9568 008c ld $8c 9569 0002 ld $02 956a 006b ld $6b 956b 00ea ld $ea 956c 0011 ld $11 956d 00c9 ld $c9 956e 0071 ld $71 956f 00ad ld $ad 9570 002b ld $2b 9571 0096 ld $96 9572 0053 ld $53 9573 0096 ld $96 9574 00cb ld $cb 9575 0070 ld $70 9576 0085 ld $85 9577 00a0 ld $a0 9578 0025 ld $25 9579 0025 ld $25 957a 00a0 ld $a0 957b 0060 ld $60 957c 008c ld $8c 957d 0001 ld $01 957e 006b ld $6b 957f 0018 ld $18 9580 00fa ld $fa 9581 00ea ld $ea 9582 00bb ld $bb 9583 00ad ld $ad 9584 0025 ld $25 9585 0016 ld $16 9586 0003 ld $03 9587 00a3 ld $a3 9588 0085 ld $85 9589 00b2 ld $b2 958a 0025 ld $25 958b 0016 ld $16 958c 0000 ld $00 958d 00a3 ld $a3 958e 0011 ld $11 958f 00c9 ld $c9 9590 0071 ld $71 9591 00ad ld $ad 9592 002b ld $2b 9593 0096 ld $96 9594 0053 ld $53 9595 0096 ld $96 9596 00cb ld $cb 9597 0071 ld $71 9598 008c ld $8c 9599 000e ld $0e 959a 00bd ld $bd 959b 00d4 ld $d4 959c 0025 ld $25 959d 0016 ld $16 959e 0083 ld $83 959f 00a4 ld $a4 95a0 0016 ld $16 95a1 003f ld $3f 95a2 00a5 ld $a5 95a3 0085 ld $85 95a4 00dc ld $dc 95a5 0063 ld $63 95a6 0011 ld $11 95a7 00a2 ld $a2 95a8 007d ld $7d 95a9 0085 ld $85 95aa 00aa ld $aa 95ab 0061 ld $61 95ac 0085 ld $85 95ad 00b7 ld $b7 95ae 0069 ld $69 95af 0085 ld $85 95b0 00a3 ld $a3 95b1 0027 ld $27 95b2 0011 ld $11 95b3 00c9 ld $c9 95b4 0071 ld $71 95b5 00ad ld $ad 95b6 002b ld $2b 95b7 0096 ld $96 95b8 0053 ld $53 95b9 0096 ld $96 95ba 00cb ld $cb 95bb 0071 ld $71 95bc 008c ld $8c 95bd 000d ld $0d 95be 00bd ld $bd 95bf 00f8 ld $f8 95c0 0025 ld $25 95c1 0016 ld $16 95c2 0083 ld $83 95c3 00a4 ld $a4 95c4 0016 ld $16 95c5 003f ld $3f 95c6 00a5 ld $a5 95c7 0085 ld $85 95c8 00dc ld $dc 95c9 0063 ld $63 95ca 0011 ld $11 95cb 00a2 ld $a2 95cc 007c ld $7c 95cd 0085 ld $85 95ce 00aa ld $aa 95cf 0061 ld $61 95d0 0085 ld $85 95d1 00b7 ld $b7 95d2 0069 ld $69 95d3 0085 ld $85 95d4 00a3 ld $a3 95d5 0027 ld $27 95d6 0011 ld $11 95d7 00c9 ld $c9 95d8 0071 ld $71 95d9 0085 ld $85 95da 00a0 ld $a0 95db 0026 ld $26 95dc 0026 ld $26 95dd 00a0 ld $a0 95de 005e ld $5e 95df 00ad ld $ad 95e0 002b ld $2b 95e1 0096 ld $96 95e2 0053 ld $53 95e3 0096 ld $96 95e4 00cb ld $cb 95e5 0071 ld $71 95e6 008c ld $8c 95e7 000c ld $0c 95e8 00bd ld $bd 95e9 00bf ld $bf 95ea 0026 ld $26 95eb 0016 ld $16 95ec 0083 ld $83 95ed 00a4 ld $a4 95ee 0016 ld $16 95ef 003f ld $3f 95f0 00a5 ld $a5 95f1 0085 ld $85 95f2 00dc ld $dc 95f3 0063 ld $63 95f4 0011 ld $11 95f5 00a2 ld $a2 95f6 007b ld $7b 95f7 0085 ld $85 95f8 00aa ld $aa 95f9 0061 ld $61 95fa 0085 ld $85 95fb fe00 bra ac ;+-----------------------------------+ 95fc fcfd bra $95fd ;| | 95fd 1418 ld $18,y ;| Trampoline for page $9500 lookups | 95fe e006 jmp y,$06 ;| | 95ff c218 st [$18] ;+-----------------------------------+ 9600 00b7 ld $b7 9601 0069 ld $69 9602 0085 ld $85 9603 00a3 ld $a3 9604 0027 ld $27 9605 0011 ld $11 9606 00c9 ld $c9 9607 0071 ld $71 9608 00ad ld $ad 9609 002b ld $2b 960a 0096 ld $96 960b 0053 ld $53 960c 0096 ld $96 960d 00cb ld $cb 960e 0071 ld $71 960f 008c ld $8c 9610 000b ld $0b 9611 00bd ld $bd 9612 00e3 ld $e3 9613 0026 ld $26 9614 0016 ld $16 9615 0083 ld $83 9616 00a4 ld $a4 9617 0016 ld $16 9618 003f ld $3f 9619 00a5 ld $a5 961a 0085 ld $85 961b 00dc ld $dc 961c 0063 ld $63 961d 0011 ld $11 961e 00a2 ld $a2 961f 007a ld $7a 9620 0085 ld $85 9621 00aa ld $aa 9622 0061 ld $61 9623 0085 ld $85 9624 00b7 ld $b7 9625 0069 ld $69 9626 0085 ld $85 9627 00a3 ld $a3 9628 0027 ld $27 9629 0016 ld $16 962a 0083 ld $83 962b 00a4 ld $a4 962c 0016 ld $16 962d 003f ld $3f 962e 00a5 ld $a5 962f 0085 ld $85 9630 00dc ld $dc 9631 0063 ld $63 9632 0011 ld $11 9633 00c9 ld $c9 9634 0071 ld $71 9635 00ad ld $ad 9636 002b ld $2b 9637 0096 ld $96 9638 0053 ld $53 9639 0096 ld $96 963a 00cb ld $cb 963b 0071 ld $71 963c 0085 ld $85 963d 00a7 ld $a7 963e 006a ld $6a 963f 0085 ld $85 9640 00a0 ld $a0 9641 0027 ld $27 9642 0027 ld $27 9643 00a0 ld $a0 9644 0060 ld $60 9645 0085 ld $85 9646 00b7 ld $b7 9647 0069 ld $69 9648 0011 ld $11 9649 00c9 ld $c9 964a 0071 ld $71 964b 00ad ld $ad 964c 002b ld $2b 964d 0096 ld $96 964e 0053 ld $53 964f 0096 ld $96 9650 00cb ld $cb 9651 0070 ld $70 9652 002b ld $2b 9653 0082 ld $82 9654 0016 ld $16 9655 0087 ld $87 9656 0084 ld $84 9657 0016 ld $16 9658 0056 ld $56 9659 0085 ld $85 965a 0085 ld $85 965b 00cf ld $cf 965c 0060 ld $60 965d 0063 ld $63 965e 00ff ld $ff 965f 0075 ld $75 9660 004d ld $4d 9661 0000 ld $00 9662 0050 ld $50 9663 0059 ld $59 9664 0001 ld $01 9665 0099 ld $99 9666 0050 ld $50 9667 002b ld $2b 9668 00e8 ld $e8 9669 0059 ld $59 966a 0001 ld $01 966b 0099 ld $99 966c 0050 ld $50 966d 002b ld $2b 966e 0052 ld $52 966f 0053 ld $53 9670 0050 ld $50 9671 00c5 ld $c5 9672 0071 ld $71 9673 002b ld $2b 9674 003e ld $3e 9675 0053 ld $53 9676 0052 ld $52 9677 00c5 ld $c5 9678 0071 ld $71 9679 002b ld $2b 967a 0040 ld $40 967b 0053 ld $53 967c 003e ld $3e 967d 00cb ld $cb 967e 0071 ld $71 967f 002b ld $2b 9680 00e8 ld $e8 9681 0053 ld $53 9682 0040 ld $40 9683 00cb ld $cb 9684 0071 ld $71 9685 002b ld $2b 9686 00ea ld $ea 9687 0021 ld $21 9688 00e8 ld $e8 9689 00b8 ld $b8 968a 00ea ld $ea 968b 00c3 ld $c3 968c 009e ld $9e 968d 0028 ld $28 968e 0053 ld $53 968f 0050 ld $50 9690 00c5 ld $c5 9691 0071 ld $71 9692 002b ld $2b 9693 003c ld $3c 9694 0053 ld $53 9695 0052 ld $52 9696 00c5 ld $c5 9697 0071 ld $71 9698 0055 ld $55 9699 0050 ld $50 969a 00c5 ld $c5 969b 0071 ld $71 969c 0021 ld $21 969d 003c ld $3c 969e 0055 ld $55 969f 0052 ld $52 96a0 00c5 ld $c5 96a1 0071 ld $71 96a2 0085 ld $85 96a3 00a0 ld $a0 96a4 0028 ld $28 96a5 0028 ld $28 96a6 00a0 ld $a0 96a7 005e ld $5e 96a8 00a7 ld $a7 96a9 0004 ld $04 96aa 0052 ld $52 96ab 0093 ld $93 96ac 0052 ld $52 96ad 00bd ld $bd 96ae 00c8 ld $c8 96af 0027 ld $27 96b0 00a7 ld $a7 96b1 0003 ld $03 96b2 0050 ld $50 96b3 0093 ld $93 96b4 0050 ld $50 96b5 00bd ld $bd 96b6 00bc ld $bc 96b7 0027 ld $27 96b8 0063 ld $63 96b9 00ff ld $ff 96ba 0075 ld $75 96bb 004d ld $4d 96bc 0000 ld $00 96bd 0044 ld $44 96be 004d ld $4d 96bf 0000 ld $00 96c0 0046 ld $46 96c1 004d ld $4d 96c2 0000 ld $00 96c3 0048 ld $48 96c4 0016 ld $16 96c5 001f ld $1f 96c6 00a3 ld $a3 96c7 0016 ld $16 96c8 0020 ld $20 96c9 00a2 ld $a2 96ca 0085 ld $85 96cb 00ba ld $ba 96cc 0027 ld $27 96cd 0011 ld $11 96ce 00c5 ld $c5 96cf 0071 ld $71 96d0 00ad ld $ad 96d1 002b ld $2b 96d2 0096 ld $96 96d3 0053 ld $53 96d4 0096 ld $96 96d5 00cb ld $cb 96d6 0071 ld $71 96d7 002b ld $2b 96d8 0054 ld $54 96d9 0011 ld $11 96da 00c6 ld $c6 96db 0071 ld $71 96dc 00ad ld $ad 96dd 002b ld $2b 96de 0096 ld $96 96df 0053 ld $53 96e0 0096 ld $96 96e1 00cb ld $cb 96e2 0071 ld $71 96e3 002b ld $2b 96e4 0056 ld $56 96e5 0011 ld $11 96e6 00c7 ld $c7 96e7 0071 ld $71 96e8 00ad ld $ad 96e9 002b ld $2b 96ea 0096 ld $96 96eb 0053 ld $53 96ec 0096 ld $96 96ed 00cb ld $cb 96ee 0071 ld $71 96ef 002b ld $2b 96f0 0058 ld $58 96f1 0011 ld $11 96f2 00c8 ld $c8 96f3 0071 ld $71 96f4 00ad ld $ad 96f5 002b ld $2b 96f6 0096 ld $96 96f7 0053 ld $53 96f8 0096 ld $96 96f9 00cb ld $cb 96fa 0071 ld $71 96fb fe00 bra ac ;+-----------------------------------+ 96fc fcfd bra $96fd ;| | 96fd 1418 ld $18,y ;| Trampoline for page $9600 lookups | 96fe e006 jmp y,$06 ;| | 96ff c218 st [$18] ;+-----------------------------------+ 9700 002b ld $2b 9701 005a ld $5a 9702 0011 ld $11 9703 00c9 ld $c9 9704 0071 ld $71 9705 00ad ld $ad 9706 002b ld $2b 9707 0096 ld $96 9708 0085 ld $85 9709 00a0 ld $a0 970a 0029 ld $29 970b 0029 ld $29 970c 00a0 ld $a0 970d 0060 ld $60 970e 0053 ld $53 970f 0096 ld $96 9710 00cb ld $cb 9711 0071 ld $71 9712 002b ld $2b 9713 005c ld $5c 9714 0085 ld $85 9715 00c1 ld $c1 9716 002e ld $2e 9717 0085 ld $85 9718 00ad ld $ad 9719 002d ld $2d 971a 0085 ld $85 971b 00c1 ld $c1 971c 0031 ld $31 971d 00a7 ld $a7 971e 000a ld $0a 971f 0048 ld $48 9720 00bd ld $bd 9721 00c0 ld $c0 9722 0029 ld $29 9723 004d ld $4d 9724 00fa ld $fa 9725 0024 ld $24 9726 0032 ld $32 9727 0026 ld $26 9728 0032 ld $32 9729 0085 ld $85 972a 00e5 ld $e5 972b 0060 ld $60 972c 002b ld $2b 972d 0034 ld $34 972e 0063 ld $63 972f 00ff ld $ff 9730 0085 ld $85 9731 00ac ld $ac 9732 0031 ld $31 9733 00a7 ld $a7 9734 0009 ld $09 9735 0048 ld $48 9736 00bd ld $bd 9737 00d6 ld $d6 9738 0029 ld $29 9739 004d ld $4d 973a 0032 ld $32 973b 0024 ld $24 973c 0032 ld $32 973d 0026 ld $26 973e 0032 ld $32 973f 0085 ld $85 9740 00e5 ld $e5 9741 0060 ld $60 9742 002b ld $2b 9743 0034 ld $34 9744 0063 ld $63 9745 00ff ld $ff 9746 0085 ld $85 9747 00c6 ld $c6 9748 0030 ld $30 9749 00a7 ld $a7 974a 0007 ld $07 974b 0048 ld $48 974c 00bd ld $bd 974d 00ec ld $ec 974e 0029 ld $29 974f 004d ld $4d 9750 0019 ld $19 9751 0024 ld $24 9752 0032 ld $32 9753 0026 ld $26 9754 0032 ld $32 9755 0085 ld $85 9756 00e5 ld $e5 9757 0060 ld $60 9758 002b ld $2b 9759 0034 ld $34 975a 0063 ld $63 975b 00ff ld $ff 975c 0085 ld $85 975d 00df ld $df 975e 002f ld $2f 975f 00a7 ld $a7 9760 0006 ld $06 9761 0048 ld $48 9762 00bd ld $bd 9763 00a0 ld $a0 9764 002a ld $2a 9765 0021 ld $21 9766 0032 ld $32 9767 00b1 ld $b1 9768 0053 ld $53 9769 002b ld $2b 976a 0034 ld $34 976b 0085 ld $85 976c 00a0 ld $a0 976d 002a ld $2a 976e 002a ld $2a 976f 00a0 ld $a0 9770 0060 ld $60 9771 0063 ld $63 9772 00ff ld $ff 9773 00a7 ld $a7 9774 0001 ld $01 9775 0046 ld $46 9776 00bd ld $bd 9777 00b1 ld $b1 9778 002a ld $2a 9779 004d ld $4d 977a 0005 ld $05 977b 0048 ld $48 977c 0021 ld $21 977d 0032 ld $32 977e 00b1 ld $b1 977f 004d ld $4d 9780 002b ld $2b 9781 0034 ld $34 9782 0063 ld $63 9783 00ff ld $ff 9784 00a7 ld $a7 9785 0001 ld $01 9786 0044 ld $44 9787 00bd ld $bd 9788 00c2 ld $c2 9789 002a ld $2a 978a 004d ld $4d 978b 0004 ld $04 978c 0048 ld $48 978d 0021 ld $21 978e 0032 ld $32 978f 00e9 ld $e9 9790 00e9 ld $e9 9791 002b ld $2b 9792 0034 ld $34 9793 0063 ld $63 9794 00ff ld $ff 9795 0085 ld $85 9796 00bc ld $bc 9797 002c ld $2c 9798 00a7 ld $a7 9799 0003 ld $03 979a 0048 ld $48 979b 00bd ld $bd 979c 00d3 ld $d3 979d 002a ld $2a 979e 0021 ld $21 979f 0032 ld $32 97a0 00b1 ld $b1 97a1 0049 ld $49 97a2 002b ld $2b 97a3 0034 ld $34 97a4 0063 ld $63 97a5 00ff ld $ff 97a6 0085 ld $85 97a7 00d4 ld $d4 97a8 002b ld $2b 97a9 00a7 ld $a7 97aa 0002 ld $02 97ab 0048 ld $48 97ac 00bd ld $bd 97ad 00e3 ld $e3 97ae 002a ld $2a 97af 0021 ld $21 97b0 0032 ld $32 97b1 00e9 ld $e9 97b2 002b ld $2b 97b3 0034 ld $34 97b4 0063 ld $63 97b5 00ff ld $ff 97b6 0085 ld $85 97b7 00f5 ld $f5 97b8 002a ld $2a 97b9 00a7 ld $a7 97ba 0001 ld $01 97bb 0048 ld $48 97bc 00bd ld $bd 97bd 00f1 ld $f1 97be 002a ld $2a 97bf 0032 ld $32 97c0 0034 ld $34 97c1 0032 ld $32 97c2 0063 ld $63 97c3 00ff ld $ff 97c4 0063 ld $63 97c5 00ff ld $ff 97c6 0075 ld $75 97c7 004d ld $4d 97c8 0000 ld $00 97c9 0050 ld $50 97ca 0053 ld $53 97cb 0050 ld $50 97cc 00c5 ld $c5 97cd 0071 ld $71 97ce 0085 ld $85 97cf 00a0 ld $a0 97d0 002b ld $2b 97d1 002b ld $2b 97d2 00a0 ld $a0 97d3 0060 ld $60 97d4 002b ld $2b 97d5 003e ld $3e 97d6 0042 ld $42 97d7 0001 ld $01 97d8 0096 ld $96 97d9 0050 ld $50 97da 0053 ld $53 97db 0096 ld $96 97dc 00c5 ld $c5 97dd 0071 ld $71 97de 002b ld $2b 97df 0040 ld $40 97e0 0053 ld $53 97e1 003e ld $3e 97e2 00cb ld $cb 97e3 0071 ld $71 97e4 002b ld $2b 97e5 00e8 ld $e8 97e6 0053 ld $53 97e7 0040 ld $40 97e8 00cb ld $cb 97e9 0071 ld $71 97ea 00fc ld $fc 97eb 00e8 ld $e8 97ec 006b ld $6b 97ed 00ea ld $ea 97ee 0053 ld $53 97ef 0040 ld $40 97f0 00cb ld $cb 97f1 0071 ld $71 97f2 00e6 ld $e6 97f3 000a ld $0a 97f4 00d9 ld $d9 97f5 0018 ld $18 97f6 00f8 ld $f8 97f7 00ea ld $ea 97f8 00bb ld $bb 97f9 00c8 ld $c8 97fa 002b ld $2b 97fb fe00 bra ac ;+-----------------------------------+ 97fc fcfd bra $97fd ;| | 97fd 1418 ld $18,y ;| Trampoline for page $9700 lookups | 97fe e006 jmp y,$06 ;| | 97ff c218 st [$18] ;+-----------------------------------+ 9800 004d ld $4d 9801 0001 ld $01 9802 0048 ld $48 9803 00a7 ld $a7 9804 0004 ld $04 9805 0050 ld $50 9806 0093 ld $93 9807 0050 ld $50 9808 00bd ld $bd 9809 00f7 ld $f7 980a 002a ld $2a 980b 0063 ld $63 980c 00ff ld $ff 980d 0075 ld $75 980e 0021 ld $21 980f 0054 ld $54 9810 00fc ld $fc 9811 0056 ld $56 9812 006b ld $6b 9813 00e8 ld $e8 9814 0021 ld $21 9815 0058 ld $58 9816 00fc ld $fc 9817 005a ld $5a 9818 006b ld $6b 9819 0018 ld $18 981a 00f8 ld $f8 981b 00e8 ld $e8 981c 00bb ld $bb 981d 00ea ld $ea 981e 002b ld $2b 981f 004d ld $4d 9820 0002 ld $02 9821 0048 ld $48 9822 0085 ld $85 9823 00ba ld $ba 9824 002c ld $2c 9825 0021 ld $21 9826 0056 ld $56 9827 00fc ld $fc 9828 0058 ld $58 9829 006b ld $6b 982a 00e8 ld $e8 982b 0021 ld $21 982c 005a ld $5a 982d 00fc ld $fc 982e 005c ld $5c 982f 006b ld $6b 9830 0018 ld $18 9831 00f8 ld $f8 9832 00e8 ld $e8 9833 00bb ld $bb 9834 00a4 ld $a4 9835 002c ld $2c 9836 0085 ld $85 9837 00a0 ld $a0 9838 002c ld $2c 9839 002c ld $2c 983a 00a0 ld $a0 983b 005e ld $5e 983c 004d ld $4d 983d 0002 ld $02 983e 0048 ld $48 983f 0085 ld $85 9840 00ba ld $ba 9841 002c ld $2c 9842 0021 ld $21 9843 0054 ld $54 9844 00fc ld $fc 9845 0056 ld $56 9846 006b ld $6b 9847 00e8 ld $e8 9848 0021 ld $21 9849 005a ld $5a 984a 00fc ld $fc 984b 005c ld $5c 984c 006b ld $6b 984d 0018 ld $18 984e 00f8 ld $f8 984f 00e8 ld $e8 9850 00bb ld $bb 9851 00b8 ld $b8 9852 002c ld $2c 9853 004d ld $4d 9854 0002 ld $02 9855 0048 ld $48 9856 0063 ld $63 9857 00ff ld $ff 9858 0075 ld $75 9859 004d ld $4d 985a 0000 ld $00 985b 0050 ld $50 985c 0053 ld $53 985d 0050 ld $50 985e 00c5 ld $c5 985f 0071 ld $71 9860 002b ld $2b 9861 003e ld $3e 9862 0042 ld $42 9863 0001 ld $01 9864 0096 ld $96 9865 0050 ld $50 9866 0053 ld $53 9867 0096 ld $96 9868 00c5 ld $c5 9869 0071 ld $71 986a 002b ld $2b 986b 0040 ld $40 986c 0042 ld $42 986d 0002 ld $02 986e 0096 ld $96 986f 0050 ld $50 9870 0053 ld $53 9871 0096 ld $96 9872 00c5 ld $c5 9873 0071 ld $71 9874 002b ld $2b 9875 0042 ld $42 9876 0053 ld $53 9877 003e ld $3e 9878 00cb ld $cb 9879 0071 ld $71 987a 002b ld $2b 987b 00e8 ld $e8 987c 0053 ld $53 987d 0040 ld $40 987e 00cb ld $cb 987f 0071 ld $71 9880 00fc ld $fc 9881 00e8 ld $e8 9882 006b ld $6b 9883 00ea ld $ea 9884 0053 ld $53 9885 0040 ld $40 9886 00cb ld $cb 9887 0071 ld $71 9888 002b ld $2b 9889 00ec ld $ec 988a 0053 ld $53 988b 0042 ld $42 988c 00cb ld $cb 988d 0071 ld $71 988e 00fc ld $fc 988f 00ec ld $ec 9890 006b ld $6b 9891 0018 ld $18 9892 00f8 ld $f8 9893 00ea ld $ea 9894 00bb ld $bb 9895 00a1 ld $a1 9896 002d ld $2d 9897 0085 ld $85 9898 00a0 ld $a0 9899 002d ld $2d 989a 002d ld $2d 989b 00a0 ld $a0 989c 005e ld $5e 989d 004d ld $4d 989e 0003 ld $03 989f 0048 ld $48 98a0 00a7 ld $a7 98a1 0002 ld $02 98a2 0050 ld $50 98a3 0093 ld $93 98a4 0050 ld $50 98a5 00bd ld $bd 98a6 00be ld $be 98a7 002c ld $2c 98a8 0063 ld $63 98a9 00ff ld $ff 98aa 0075 ld $75 98ab 0021 ld $21 98ac 005a ld $5a 98ad 00e3 ld $e3 98ae 0001 ld $01 98af 00fc ld $fc 98b0 005c ld $5c 98b1 006b ld $6b 98b2 00ea ld $ea 98b3 0042 ld $42 98b4 0001 ld $01 98b5 00ec ld $ec 98b6 005a ld $5a 98b7 0021 ld $21 98b8 0058 ld $58 98b9 00e3 ld $e3 98ba 0002 ld $02 98bb 00fc ld $fc 98bc 00ec ld $ec 98bd 006b ld $6b 98be 0018 ld $18 98bf 00f8 ld $f8 98c0 00ea ld $ea 98c1 002b ld $2b 98c2 00ee ld $ee 98c3 0042 ld $42 98c4 0002 ld $02 98c5 00e8 ld $e8 98c6 0058 ld $58 98c7 0021 ld $21 98c8 0056 ld $56 98c9 00e3 ld $e3 98ca 0003 ld $03 98cb 00fc ld $fc 98cc 00e8 ld $e8 98cd 006b ld $6b 98ce 0018 ld $18 98cf 00f8 ld $f8 98d0 00ee ld $ee 98d1 002b ld $2b 98d2 00ea ld $ea 98d3 0042 ld $42 98d4 0003 ld $03 98d5 00ec ld $ec 98d6 0056 ld $56 98d7 0021 ld $21 98d8 0054 ld $54 98d9 00e3 ld $e3 98da 0004 ld $04 98db 00fc ld $fc 98dc 00ec ld $ec 98dd 006b ld $6b 98de 0018 ld $18 98df 00f8 ld $f8 98e0 00ea ld $ea 98e1 00bb ld $bb 98e2 00eb ld $eb 98e3 002d ld $2d 98e4 004d ld $4d 98e5 0001 ld $01 98e6 0044 ld $44 98e7 0085 ld $85 98e8 00bf ld $bf 98e9 002e ld $2e 98ea 00a7 ld $a7 98eb 000e ld $0e 98ec 005c ld $5c 98ed 006b ld $6b 98ee 00e8 ld $e8 98ef 00a7 ld $a7 98f0 0002 ld $02 98f1 0054 ld $54 98f2 006b ld $6b 98f3 0018 ld $18 98f4 00f8 ld $f8 98f5 00e8 ld $e8 98f6 002b ld $2b 98f7 00ea ld $ea 98f8 0085 ld $85 98f9 00a0 ld $a0 98fa 002e ld $2e 98fb fe00 bra ac ;+-----------------------------------+ 98fc fcfd bra $98fd ;| | 98fd 1418 ld $18,y ;| Trampoline for page $9800 lookups | 98fe e006 jmp y,$06 ;| | 98ff c218 st [$18] ;+-----------------------------------+ 9900 002e ld $2e 9901 00a0 ld $a0 9902 0060 ld $60 9903 00a7 ld $a7 9904 0003 ld $03 9905 0056 ld $56 9906 006b ld $6b 9907 0018 ld $18 9908 00f8 ld $f8 9909 00ea ld $ea 990a 002b ld $2b 990b 00ec ld $ec 990c 00a7 ld $a7 990d 0004 ld $04 990e 0058 ld $58 990f 006b ld $6b 9910 0018 ld $18 9911 00f8 ld $f8 9912 00ec ld $ec 9913 002b ld $2b 9914 00ee ld $ee 9915 00a7 ld $a7 9916 0005 ld $05 9917 005a ld $5a 9918 006b ld $6b 9919 0018 ld $18 991a 00f8 ld $f8 991b 00ee ld $ee 991c 00bb ld $bb 991d 00bd ld $bd 991e 002e ld $2e 991f 004d ld $4d 9920 0001 ld $01 9921 0044 ld $44 9922 0063 ld $63 9923 00ff ld $ff 9924 0075 ld $75 9925 0011 ld $11 9926 00c5 ld $c5 9927 0071 ld $71 9928 00ad ld $ad 9929 002b ld $2b 992a 0096 ld $96 992b 0053 ld $53 992c 0096 ld $96 992d 00cb ld $cb 992e 0070 ld $70 992f 002b ld $2b 9930 00ea ld $ea 9931 0011 ld $11 9932 00c6 ld $c6 9933 0071 ld $71 9934 00ad ld $ad 9935 002b ld $2b 9936 0096 ld $96 9937 0053 ld $53 9938 0096 ld $96 9939 00cb ld $cb 993a 0070 ld $70 993b 00fc ld $fc 993c 00ea ld $ea 993d 006b ld $6b 993e 00ee ld $ee 993f 0011 ld $11 9940 00c6 ld $c6 9941 0071 ld $71 9942 00ad ld $ad 9943 002b ld $2b 9944 0096 ld $96 9945 0053 ld $53 9946 0096 ld $96 9947 00cb ld $cb 9948 0070 ld $70 9949 002b ld $2b 994a 00ea ld $ea 994b 0011 ld $11 994c 00c7 ld $c7 994d 0071 ld $71 994e 00ad ld $ad 994f 002b ld $2b 9950 0096 ld $96 9951 0053 ld $53 9952 0096 ld $96 9953 00cb ld $cb 9954 0070 ld $70 9955 00fc ld $fc 9956 00ea ld $ea 9957 006b ld $6b 9958 0018 ld $18 9959 00f8 ld $f8 995a 00ee ld $ee 995b 002b ld $2b 995c 00ee ld $ee 995d 0011 ld $11 995e 00c7 ld $c7 995f 0071 ld $71 9960 0085 ld $85 9961 00a0 ld $a0 9962 002f ld $2f 9963 002f ld $2f 9964 00a0 ld $a0 9965 005e ld $5e 9966 00ad ld $ad 9967 002b ld $2b 9968 0096 ld $96 9969 0053 ld $53 996a 0096 ld $96 996b 00cb ld $cb 996c 0070 ld $70 996d 002b ld $2b 996e 00ea ld $ea 996f 0011 ld $11 9970 00c8 ld $c8 9971 0071 ld $71 9972 00ad ld $ad 9973 002b ld $2b 9974 0096 ld $96 9975 0053 ld $53 9976 0096 ld $96 9977 00cb ld $cb 9978 0070 ld $70 9979 00fc ld $fc 997a 00ea ld $ea 997b 006b ld $6b 997c 0018 ld $18 997d 00f8 ld $f8 997e 00ee ld $ee 997f 002b ld $2b 9980 00ee ld $ee 9981 0011 ld $11 9982 00c8 ld $c8 9983 0071 ld $71 9984 00ad ld $ad 9985 002b ld $2b 9986 0096 ld $96 9987 0053 ld $53 9988 0096 ld $96 9989 00cb ld $cb 998a 0070 ld $70 998b 002b ld $2b 998c 00ea ld $ea 998d 0011 ld $11 998e 00c9 ld $c9 998f 0071 ld $71 9990 00ad ld $ad 9991 002b ld $2b 9992 0096 ld $96 9993 0053 ld $53 9994 0096 ld $96 9995 00cb ld $cb 9996 0070 ld $70 9997 00fc ld $fc 9998 00ea ld $ea 9999 006b ld $6b 999a 0018 ld $18 999b 00f8 ld $f8 999c 00ee ld $ee 999d 00bb ld $bb 999e 00db ld $db 999f 002f ld $2f 99a0 004d ld $4d 99a1 0001 ld $01 99a2 0046 ld $46 99a3 0063 ld $63 99a4 00ff ld $ff 99a5 0075 ld $75 99a6 0021 ld $21 99a7 0054 ld $54 99a8 00fc ld $fc 99a9 0056 ld $56 99aa 006b ld $6b 99ab 00e8 ld $e8 99ac 0021 ld $21 99ad 0056 ld $56 99ae 00fc ld $fc 99af 0058 ld $58 99b0 006b ld $6b 99b1 0018 ld $18 99b2 00f8 ld $f8 99b3 00e8 ld $e8 99b4 002b ld $2b 99b5 00ea ld $ea 99b6 0021 ld $21 99b7 005a ld $5a 99b8 00fc ld $fc 99b9 005c ld $5c 99ba 006b ld $6b 99bb 0018 ld $18 99bc 00f8 ld $f8 99bd 00ea ld $ea 99be 00bb ld $bb 99bf 00a4 ld $a4 99c0 0030 ld $30 99c1 0085 ld $85 99c2 00a0 ld $a0 99c3 0030 ld $30 99c4 0030 ld $30 99c5 00a0 ld $a0 99c6 005f ld $5f 99c7 004d ld $4d 99c8 0006 ld $06 99c9 0048 ld $48 99ca 0085 ld $85 99cb 00c4 ld $c4 99cc 0030 ld $30 99cd 0021 ld $21 99ce 0054 ld $54 99cf 00fc ld $fc 99d0 0056 ld $56 99d1 006b ld $6b 99d2 00e8 ld $e8 99d3 0021 ld $21 99d4 0058 ld $58 99d5 00fc ld $fc 99d6 005a ld $5a 99d7 006b ld $6b 99d8 0018 ld $18 99d9 00f8 ld $f8 99da 00e8 ld $e8 99db 002b ld $2b 99dc 00ea ld $ea 99dd 0021 ld $21 99de 005a ld $5a 99df 00fc ld $fc 99e0 005c ld $5c 99e1 006b ld $6b 99e2 0018 ld $18 99e3 00f8 ld $f8 99e4 00ea ld $ea 99e5 00bb ld $bb 99e6 00c2 ld $c2 99e7 0030 ld $30 99e8 004d ld $4d 99e9 0006 ld $06 99ea 0048 ld $48 99eb 0063 ld $63 99ec 00ff ld $ff 99ed 0075 ld $75 99ee 0021 ld $21 99ef 0054 ld $54 99f0 00fc ld $fc 99f1 0056 ld $56 99f2 006b ld $6b 99f3 00e8 ld $e8 99f4 0021 ld $21 99f5 0056 ld $56 99f6 00fc ld $fc 99f7 0058 ld $58 99f8 006b ld $6b 99f9 0018 ld $18 99fa 00f8 ld $f8 99fb fe00 bra ac ;+-----------------------------------+ 99fc fcfd bra $99fd ;| | 99fd 1418 ld $18,y ;| Trampoline for page $9900 lookups | 99fe e006 jmp y,$06 ;| | 99ff c218 st [$18] ;+-----------------------------------+ 9a00 00e8 ld $e8 9a01 002b ld $2b 9a02 00ea ld $ea 9a03 0021 ld $21 9a04 0058 ld $58 9a05 00fc ld $fc 9a06 005a ld $5a 9a07 006b ld $6b 9a08 0018 ld $18 9a09 00f8 ld $f8 9a0a 00ea ld $ea 9a0b 00bb ld $bb 9a0c 00e6 ld $e6 9a0d 0030 ld $30 9a0e 004d ld $4d 9a0f 0007 ld $07 9a10 0048 ld $48 9a11 0085 ld $85 9a12 00aa ld $aa 9a13 0031 ld $31 9a14 0021 ld $21 9a15 0056 ld $56 9a16 00fc ld $fc 9a17 0058 ld $58 9a18 006b ld $6b 9a19 00e8 ld $e8 9a1a 0021 ld $21 9a1b 0058 ld $58 9a1c 00fc ld $fc 9a1d 005a ld $5a 9a1e 006b ld $6b 9a1f 0018 ld $18 9a20 00f8 ld $f8 9a21 00e8 ld $e8 9a22 002b ld $2b 9a23 00ea ld $ea 9a24 0021 ld $21 9a25 005a ld $5a 9a26 00fc ld $fc 9a27 005c ld $5c 9a28 0085 ld $85 9a29 00a0 ld $a0 9a2a 0031 ld $31 9a2b 0031 ld $31 9a2c 00a0 ld $a0 9a2d 005c ld $5c 9a2e 006b ld $6b 9a2f 0018 ld $18 9a30 00f8 ld $f8 9a31 00ea ld $ea 9a32 00bb ld $bb 9a33 00a8 ld $a8 9a34 0031 ld $31 9a35 004d ld $4d 9a36 0007 ld $07 9a37 0048 ld $48 9a38 0063 ld $63 9a39 00ff ld $ff 9a3a 0075 ld $75 9a3b 00a7 ld $a7 9a3c 0001 ld $01 9a3d 0044 ld $44 9a3e 006b ld $6b 9a3f 00e8 ld $e8 9a40 00a7 ld $a7 9a41 0001 ld $01 9a42 0046 ld $46 9a43 006b ld $6b 9a44 0018 ld $18 9a45 00f8 ld $f8 9a46 00e8 ld $e8 9a47 00bb ld $bb 9a48 00bd ld $bd 9a49 0031 ld $31 9a4a 004d ld $4d 9a4b 0009 ld $09 9a4c 0048 ld $48 9a4d 0063 ld $63 9a4e 00ff ld $ff 9a4f 0075 ld $75 9a50 00a7 ld $a7 9a51 0001 ld $01 9a52 0046 ld $46 9a53 006b ld $6b 9a54 00e8 ld $e8 9a55 00a7 ld $a7 9a56 000a ld $0a 9a57 0054 ld $54 9a58 006b ld $6b 9a59 0018 ld $18 9a5a 00f8 ld $f8 9a5b 00e8 ld $e8 9a5c 002b ld $2b 9a5d 00ea ld $ea 9a5e 00a7 ld $a7 9a5f 000b ld $0b 9a60 0056 ld $56 9a61 006b ld $6b 9a62 0018 ld $18 9a63 00f8 ld $f8 9a64 00ea ld $ea 9a65 002b ld $2b 9a66 00ec ld $ec 9a67 00a7 ld $a7 9a68 000c ld $0c 9a69 0058 ld $58 9a6a 006b ld $6b 9a6b 0018 ld $18 9a6c 00f8 ld $f8 9a6d 00ec ld $ec 9a6e 002b ld $2b 9a6f 00ee ld $ee 9a70 00a7 ld $a7 9a71 000d ld $0d 9a72 005a ld $5a 9a73 006b ld $6b 9a74 0018 ld $18 9a75 00f8 ld $f8 9a76 00ee ld $ee 9a77 002b ld $2b 9a78 00e8 ld $e8 9a79 00a7 ld $a7 9a7a 000e ld $0e 9a7b 005c ld $5c 9a7c 006b ld $6b 9a7d 0018 ld $18 9a7e 00f8 ld $f8 9a7f 00e8 ld $e8 9a80 00bb ld $bb 9a81 00f6 ld $f6 9a82 0031 ld $31 9a83 004d ld $4d 9a84 000a ld $0a 9a85 0048 ld $48 9a86 0063 ld $63 9a87 00ff ld $ff 9a88 00b4 ld $b4 9a89 0080 ld $80 9a8a 0060 ld $60 9a8b 00bf ld $bf 9a8c 0040 ld $40 9a8d 0018 ld $18 9a8e 0094 ld $94 9a8f 0021 ld $21 9a90 0094 ld $94 9a91 002f ld $2f 9a92 0093 ld $93 9a93 0024 ld $24 9a94 00ff ld $ff 9a95 004d ld $4d 9a96 0002 ld $02 9a97 00a4 ld $a4 9a98 00c7 ld $c7 9a99 00fb ld $fb 9a9a 0066 ld $66 9a9b 00aa ld $aa 9a9c 00ff ld $ff 9a9d 0075 ld $75 9a9e 0011 ld $11 9a9f 0000 ld $00 9aa0 000c ld $0c 9aa1 002b ld $2b 9aa2 0022 ld $22 9aa3 0085 ld $85 9aa4 00e9 ld $e9 9aa5 0061 ld $61 9aa6 0063 ld $63 9aa7 00ff ld $ff 9aa8 0016 ld $16 9aa9 0008 ld $08 9aaa 0028 ld $28 9aab 004d ld $4d 9aac 00d7 ld $d7 9aad 0022 ld $22 9aae 00b4 ld $b4 9aaf 00f2 ld $f2 9ab0 001a ld $1a 9ab1 0025 ld $25 9ab2 00ff ld $ff 9ab3 004d ld $4d 9ab4 009e ld $9e 9ab5 0022 ld $22 9ab6 004d ld $4d 9ab7 0000 ld $00 9ab8 0028 ld $28 9ab9 004d ld $4d 9aba 0001 ld $01 9abb 002a ld $2a 9abc 00b4 ld $b4 9abd 00ed ld $ed 9abe 00ff ld $ff 9abf 0075 ld $75 9ac0 0085 ld $85 9ac1 00c7 ld $c7 9ac2 0060 ld $60 9ac3 0011 ld $11 9ac4 0003 ld $03 9ac5 000b ld $0b 9ac6 002b ld $2b 9ac7 0022 ld $22 9ac8 0065 ld $65 9ac9 0025 ld $25 9aca 00a2 ld $a2 9acb 0063 ld $63 9acc 00ff ld $ff 9acd 0061 ld $61 9ace 00a2 ld $a2 9acf 005d ld $5d 9ad0 002f ld $2f 9ad1 00d6 ld $d6 9ad2 006e ld $6e 9ad3 00a4 ld $a4 9ad4 0082 ld $82 9ad5 00a0 ld $a0 9ad6 0061 ld $61 9ad7 00ff ld $ff 9ad8 0075 ld $75 9ad9 002b ld $2b 9ada 0082 ld $82 9adb 0085 ld $85 9adc 00be ld $be 9add 0061 ld $61 9ade 0093 ld $93 9adf 0082 ld $82 9ae0 0023 ld $23 9ae1 0082 ld $82 9ae2 0035 ld $35 9ae3 003f ld $3f 9ae4 00ba ld $ba 9ae5 0085 ld $85 9ae6 00cc ld $cc 9ae7 0066 ld $66 9ae8 0090 ld $90 9ae9 00b0 ld $b0 9aea 0063 ld $63 9aeb 00ff ld $ff 9aec 00c7 ld $c7 9aed 0010 ld $10 9aee 006f ld $6f 9aef 00aa ld $aa 9af0 00bd ld $bd 9af1 009e ld $9e 9af2 0065 ld $65 9af3 0011 ld $11 9af4 00e1 ld $e1 9af5 0004 ld $04 9af6 002b ld $2b 9af7 0022 ld $22 9af8 0032 ld $32 9af9 0024 ld $24 9afa 00a2 ld $a2 9afb fe00 bra ac ;+-----------------------------------+ 9afc fcfd bra $9afd ;| | 9afd 1418 ld $18,y ;| Trampoline for page $9a00 lookups | 9afe e006 jmp y,$06 ;| | 9aff c218 st [$18] ;+-----------------------------------+ 9b00 0021 ld $21 9b01 00a4 ld $a4 9b02 002f ld $2f 9b03 0028 ld $28 9b04 0059 ld $59 9b05 00ff ld $ff 9b06 00c7 ld $c7 9b07 0094 ld $94 9b08 0028 ld $28 9b09 0092 ld $92 9b0a 0016 ld $16 9b0b 0003 ld $03 9b0c 0026 ld $26 9b0d 0021 ld $21 9b0e 0028 ld $28 9b0f 002f ld $2f 9b10 0094 ld $94 9b11 0057 ld $57 9b12 001c ld $1c 9b13 0028 ld $28 9b14 0028 ld $28 9b15 0004 ld $04 9b16 0075 ld $75 9b17 0085 ld $85 9b18 00aa ld $aa 9b19 0062 ld $62 9b1a 0063 ld $63 9b1b 00ff ld $ff 9b1c 003d ld $3d 9b1d 0082 ld $82 9b1e 00dc ld $dc 9b1f 006a ld $6a 9b20 006f ld $6f 9b21 0086 ld $86 9b22 0090 ld $90 9b23 00f7 ld $f7 9b24 002b ld $2b 9b25 0024 ld $24 9b26 0046 ld $46 9b27 0086 ld $86 9b28 0099 ld $99 9b29 0084 ld $84 9b2a 00b4 ld $b4 9b2b 00ee ld $ee 9b2c 0046 ld $46 9b2d 0086 ld $86 9b2e 0035 ld $35 9b2f 0072 ld $72 9b30 00ef ld $ef 9b31 00ff ld $ff 9b32 0062 ld $62 9b33 00a0 ld $a0 9b34 005f ld $5f 9b35 0011 ld $11 9b36 0000 ld $00 9b37 000b ld $0b 9b38 002b ld $2b 9b39 0022 ld $22 9b3a 0021 ld $21 9b3b 0082 ld $82 9b3c 00b4 ld $b4 9b3d 00e6 ld $e6 9b3e 00ff ld $ff 9b3f 001c ld $1c 9b40 00a4 ld $a4 9b41 00a4 ld $a4 9b42 0004 ld $04 9b43 00a7 ld $a7 9b44 009c ld $9c 9b45 00a4 ld $a4 9b46 0035 ld $35 9b47 0056 ld $56 9b48 00be ld $be 9b49 00c7 ld $c7 9b4a 0008 ld $08 9b4b 006f ld $6f 9b4c 00aa ld $aa 9b4d 0035 ld $35 9b4e 0072 ld $72 9b4f 00be ld $be 9b50 0075 ld $75 9b51 0085 ld $85 9b52 00be ld $be 9b53 0068 ld $68 9b54 0063 ld $63 9b55 00ff ld $ff 9b56 0075 ld $75 9b57 002b ld $2b 9b58 009a ld $9a 9b59 0021 ld $21 9b5a 0082 ld $82 9b5b 00b8 ld $b8 9b5c 009a ld $9a 9b5d 0035 ld $35 9b5e 0050 ld $50 9b5f 00cf ld $cf 9b60 002b ld $2b 9b61 0082 ld $82 9b62 0093 ld $93 9b63 009c ld $9c 9b64 0090 ld $90 9b65 00c4 ld $c4 9b66 001a ld $1a 9b67 009c ld $9c 9b68 0035 ld $35 9b69 003f ld $3f 9b6a 00dc ld $dc 9b6b 0088 ld $88 9b6c 0030 ld $30 9b6d 0085 ld $85 9b6e 00cc ld $cc 9b6f 0066 ld $66 9b70 0016 ld $16 9b71 0030 ld $30 9b72 009c ld $9c 9b73 0063 ld $63 9b74 00ff ld $ff 9b75 002d ld $2d 9b76 0026 ld $26 9b77 0084 ld $84 9b78 0082 ld $82 9b79 001a ld $1a 9b7a 0086 ld $86 9b7b 00b8 ld $b8 9b7c 0084 ld $84 9b7d 0035 ld $35 9b7e 0053 ld $53 9b7f 00f1 ld $f1 9b80 002d ld $2d 9b81 0026 ld $26 9b82 0086 ld $86 9b83 0082 ld $82 9b84 001a ld $1a 9b85 0084 ld $84 9b86 00b8 ld $b8 9b87 0086 ld $86 9b88 00e3 ld $e3 9b89 0001 ld $01 9b8a 00e1 ld $e1 9b8b 0024 ld $24 9b8c 00a3 ld $a3 9b8d 0018 ld $18 9b8e 004d ld $4d 9b8f 00cb ld $cb 9b90 0022 ld $22 9b91 00b4 ld $b4 9b92 00ed ld $ed 9b93 00ff ld $ff 9b94 0063 ld $63 9b95 00a0 ld $a0 9b96 005f ld $5f 9b97 0059 ld $59 9b98 0000 ld $00 9b99 002f ld $2f 9b9a 0000 ld $00 9b9b 0027 ld $27 9b9c 002f ld $2f 9b9d 0001 ld $01 9b9e 0027 ld $27 9b9f 002f ld $2f 9ba0 0002 ld $02 9ba1 0027 ld $27 9ba2 002f ld $2f 9ba3 0003 ld $03 9ba4 0027 ld $27 9ba5 002f ld $2f 9ba6 0000 ld $00 9ba7 005c ld $5c 9ba8 002f ld $2f 9ba9 0001 ld $01 9baa 005c ld $5c 9bab 002f ld $2f 9bac 0002 ld $02 9bad 005c ld $5c 9bae 002f ld $2f 9baf 0003 ld $03 9bb0 005c ld $5c 9bb1 00ff ld $ff 9bb2 002d ld $2d 9bb3 0026 ld $26 9bb4 0084 ld $84 9bb5 0082 ld $82 9bb6 001a ld $1a 9bb7 0086 ld $86 9bb8 00b8 ld $b8 9bb9 0082 ld $82 9bba 0035 ld $35 9bbb 0053 ld $53 9bbc 00cc ld $cc 9bbd 002d ld $2d 9bbe 0026 ld $26 9bbf 0084 ld $84 9bc0 0086 ld $86 9bc1 001a ld $1a 9bc2 0082 ld $82 9bc3 00b8 ld $b8 9bc4 0086 ld $86 9bc5 00e3 ld $e3 9bc6 0001 ld $01 9bc7 00e1 ld $e1 9bc8 0024 ld $24 9bc9 00a3 ld $a3 9bca 0018 ld $18 9bcb 0011 ld $11 9bcc 0003 ld $03 9bcd 000b ld $0b 9bce 002b ld $2b 9bcf 0022 ld $22 9bd0 00b4 ld $b4 9bd1 00f3 ld $f3 9bd2 00ff ld $ff 9bd3 00c7 ld $c7 9bd4 0010 ld $10 9bd5 006f ld $6f 9bd6 00aa ld $aa 9bd7 00bd ld $bd 9bd8 00a0 ld $a0 9bd9 0068 ld $68 9bda 00a7 ld $a7 9bdb 009a ld $9a 9bdc 00a4 ld $a4 9bdd 0035 ld $35 9bde 0056 ld $56 9bdf 00ea ld $ea 9be0 0016 ld $16 9be1 0000 ld $00 9be2 00a4 ld $a4 9be3 00a7 ld $a7 9be4 0070 ld $70 9be5 00a5 ld $a5 9be6 0035 ld $35 9be7 0050 ld $50 9be8 00f8 ld $f8 9be9 0016 ld $16 9bea 0070 ld $70 9beb 00a5 ld $a5 9bec 00c7 ld $c7 9bed 0004 ld $04 9bee 0069 ld $69 9bef 00aa ld $aa 9bf0 00ff ld $ff 9bf1 00c7 ld $c7 9bf2 00fb ld $fb 9bf3 0066 ld $66 9bf4 00aa ld $aa 9bf5 00ff ld $ff 9bf6 0064 ld $64 9bf7 00a0 ld $a0 9bf8 005f ld $5f 9bf9 0075 ld $75 9bfa 0011 ld $11 9bfb fe00 bra ac ;+-----------------------------------+ 9bfc fcfd bra $9bfd ;| | 9bfd 1418 ld $18,y ;| Trampoline for page $9b00 lookups | 9bfe e006 jmp y,$06 ;| | 9bff c218 st [$18] ;+-----------------------------------+ 9c00 00a7 ld $a7 9c01 0004 ld $04 9c02 002b ld $2b 9c03 0022 ld $22 9c04 00b4 ld $b4 9c05 00fd ld $fd 9c06 002b ld $2b 9c07 0024 ld $24 9c08 001a ld $1a 9c09 0025 ld $25 9c0a 00b8 ld $b8 9c0b 0026 ld $26 9c0c 0035 ld $35 9c0d 0050 ld $50 9c0e 00b2 ld $b2 9c0f 0065 ld $65 9c10 0025 ld $25 9c11 0027 ld $27 9c12 0085 ld $85 9c13 00da ld $da 9c14 0060 ld $60 9c15 0063 ld $63 9c16 00ff ld $ff 9c17 0075 ld $75 9c18 0011 ld $11 9c19 0003 ld $03 9c1a 000b ld $0b 9c1b 002b ld $2b 9c1c 0022 ld $22 9c1d 0065 ld $65 9c1e 0025 ld $25 9c1f 00a2 ld $a2 9c20 0011 ld $11 9c21 0000 ld $00 9c22 0001 ld $01 9c23 0067 ld $67 9c24 0027 ld $27 9c25 004d ld $4d 9c26 0006 ld $06 9c27 009e ld $9e 9c28 0016 ld $16 9c29 00a0 ld $a0 9c2a 0024 ld $24 9c2b 0016 ld $16 9c2c 0000 ld $00 9c2d 0026 ld $26 9c2e 00b4 ld $b4 9c2f 00f3 ld $f3 9c30 0093 ld $93 9c31 0027 ld $27 9c32 009e ld $9e 9c33 00c8 ld $c8 9c34 009e ld $9e 9c35 0085 ld $85 9c36 00be ld $be 9c37 0061 ld $61 9c38 0063 ld $63 9c39 00ff ld $ff 9c3a 0075 ld $75 9c3b 0011 ld $11 9c3c 0003 ld $03 9c3d 000b ld $0b 9c3e 002b ld $2b 9c3f 0022 ld $22 9c40 0065 ld $65 9c41 0025 ld $25 9c42 00a2 ld $a2 9c43 0011 ld $11 9c44 0000 ld $00 9c45 0001 ld $01 9c46 0067 ld $67 9c47 0027 ld $27 9c48 004d ld $4d 9c49 0008 ld $08 9c4a 009e ld $9e 9c4b 0016 ld $16 9c4c 00a0 ld $a0 9c4d 0024 ld $24 9c4e 0016 ld $16 9c4f 0000 ld $00 9c50 0026 ld $26 9c51 00b4 ld $b4 9c52 00f3 ld $f3 9c53 0093 ld $93 9c54 0027 ld $27 9c55 009e ld $9e 9c56 00eb ld $eb 9c57 009e ld $9e 9c58 0085 ld $85 9c59 00be ld $be 9c5a 0061 ld $61 9c5b 0063 ld $63 9c5c 00ff ld $ff 9c5d 0065 ld $65 9c5e 00a0 ld $a0 9c5f 005f ld $5f 9c60 0032 ld $32 9c61 0024 ld $24 9c62 00a2 ld $a2 9c63 0021 ld $21 9c64 00a4 ld $a4 9c65 002f ld $2f 9c66 0028 ld $28 9c67 0059 ld $59 9c68 00ff ld $ff 9c69 001a ld $1a 9c6a 0021 ld $21 9c6b 0082 ld $82 9c6c 00fc ld $fc 9c6d 002b ld $2b 9c6e 0084 ld $84 9c6f 00b8 ld $b8 9c70 0082 ld $82 9c71 0035 ld $35 9c72 003f ld $3f 9c73 00cf ld $cf 9c74 0021 ld $21 9c75 0082 ld $82 9c76 00e6 ld $e6 9c77 0080 ld $80 9c78 0035 ld $35 9c79 0072 ld $72 9c7a 00c2 ld $c2 9c7b 0021 ld $21 9c7c 0084 ld $84 9c7d 00b8 ld $b8 9c7e 0082 ld $82 9c7f 0035 ld $35 9c80 003f ld $3f 9c81 00cf ld $cf 9c82 0090 ld $90 9c83 00c9 ld $c9 9c84 0021 ld $21 9c85 0084 ld $84 9c86 00b8 ld $b8 9c87 0082 ld $82 9c88 0035 ld $35 9c89 004d ld $4d 9c8a 00cf ld $cf 9c8b 001a ld $1a 9c8c 0006 ld $06 9c8d 00f0 ld $f0 9c8e 007e ld $7e 9c8f 0090 ld $90 9c90 00c9 ld $c9 9c91 00ff ld $ff 9c92 0075 ld $75 9c93 0032 ld $32 9c94 0082 ld $82 9c95 0090 ld $90 9c96 0032 ld $32 9c97 0084 ld $84 9c98 0096 ld $96 9c99 0032 ld $32 9c9a 0086 ld $86 9c9b 0098 ld $98 9c9c 0085 ld $85 9c9d 00bb ld $bb 9c9e 0063 ld $63 9c9f 0032 ld $32 9ca0 0084 ld $84 9ca1 00ac ld $ac 9ca2 0085 ld $85 9ca3 00bb ld $bb 9ca4 0063 ld $63 9ca5 0032 ld $32 9ca6 0082 ld $82 9ca7 0090 ld $90 9ca8 0032 ld $32 9ca9 0084 ld $84 9caa 0096 ld $96 9cab 0032 ld $32 9cac 0086 ld $86 9cad 00ac ld $ac 9cae 0085 ld $85 9caf 00e0 ld $e0 9cb0 0062 ld $62 9cb1 0032 ld $32 9cb2 0082 ld $82 9cb3 0098 ld $98 9cb4 0032 ld $32 9cb5 0084 ld $84 9cb6 0096 ld $96 9cb7 0032 ld $32 9cb8 0086 ld $86 9cb9 00ac ld $ac 9cba 0085 ld $85 9cbb 00e0 ld $e0 9cbc 0062 ld $62 9cbd 0063 ld $63 9cbe 00ff ld $ff 9cbf 0066 ld $66 9cc0 00a2 ld $a2 9cc1 005d ld $5d 9cc2 0075 ld $75 9cc3 0085 ld $85 9cc4 00f1 ld $f1 9cc5 0060 ld $60 9cc6 004d ld $4d 9cc7 0008 ld $08 9cc8 0094 ld $94 9cc9 0016 ld $16 9cca 003c ld $3c 9ccb 009e ld $9e 9ccc 0016 ld $16 9ccd 00a0 ld $a0 9cce 0024 ld $24 9ccf 0016 ld $16 9cd0 0000 ld $00 9cd1 0026 ld $26 9cd2 0065 ld $65 9cd3 0027 ld $27 9cd4 0094 ld $94 9cd5 00b4 ld $b4 9cd6 00f3 ld $f3 9cd7 0016 ld $16 9cd8 00a0 ld $a0 9cd9 0024 ld $24 9cda 0016 ld $16 9cdb 0000 ld $00 9cdc 0026 ld $26 9cdd 0059 ld $59 9cde 0087 ld $87 9cdf 00b8 ld $b8 9ce0 0094 ld $94 9ce1 005e ld $5e 9ce2 0027 ld $27 9ce3 00b4 ld $b4 9ce4 00f3 ld $f3 9ce5 0093 ld $93 9ce6 0094 ld $94 9ce7 009e ld $9e 9ce8 00aa ld $aa 9ce9 009e ld $9e 9cea 0063 ld $63 9ceb 00ff ld $ff 9cec 002b ld $2b 9ced 0092 ld $92 9cee 00c7 ld $c7 9cef 0084 ld $84 9cf0 0089 ld $89 9cf1 0020 ld $20 9cf2 0035 ld $35 9cf3 0072 ld $72 9cf4 00fc ld $fc 9cf5 00c7 ld $c7 9cf6 0010 ld $10 9cf7 006f ld $6f 9cf8 00aa ld $aa 9cf9 00bd ld $bd 9cfa 00d1 ld $d1 9cfb fe00 bra ac ;+-----------------------------------+ 9cfc fcfd bra $9cfd ;| | 9cfd 1418 ld $18,y ;| Trampoline for page $9c00 lookups | 9cfe e006 jmp y,$06 ;| | 9cff c218 st [$18] ;+-----------------------------------+ 9d00 0061 ld $61 9d01 00c7 ld $c7 9d02 0094 ld $94 9d03 0025 ld $25 9d04 0092 ld $92 9d05 0016 ld $16 9d06 0005 ld $05 9d07 0096 ld $96 9d08 0021 ld $21 9d09 0094 ld $94 9d0a 007f ld $7f 9d0b 0000 ld $00 9d0c 005e ld $5e 9d0d 0026 ld $26 9d0e 00b4 ld $b4 9d0f 00cb ld $cb 9d10 0093 ld $93 9d11 0094 ld $94 9d12 0093 ld $93 9d13 0028 ld $28 9d14 009e ld $9e 9d15 00e1 ld $e1 9d16 0096 ld $96 9d17 0016 ld $16 9d18 0000 ld $00 9d19 0026 ld $26 9d1a 00b4 ld $b4 9d1b 00cb ld $cb 9d1c 0093 ld $93 9d1d 0028 ld $28 9d1e 0075 ld $75 9d1f 0085 ld $85 9d20 00a0 ld $a0 9d21 0069 ld $69 9d22 0063 ld $63 9d23 00ff ld $ff 9d24 0067 ld $67 9d25 00a0 ld $a0 9d26 005f ld $5f 9d27 0021 ld $21 9d28 0024 ld $24 9d29 00fc ld $fc 9d2a 0026 ld $26 9d2b 002b ld $2b 9d2c 009e ld $9e 9d2d 002f ld $2f 9d2e 0024 ld $24 9d2f 0067 ld $67 9d30 002f ld $2f 9d31 0026 ld $26 9d32 0067 ld $67 9d33 004d ld $4d 9d34 00a1 ld $a1 9d35 0022 ld $22 9d36 004d ld $4d 9d37 0000 ld $00 9d38 0028 ld $28 9d39 004d ld $4d 9d3a 0001 ld $01 9d3b 002a ld $2a 9d3c 00b4 ld $b4 9d3d 00e6 ld $e6 9d3e 0021 ld $21 9d3f 009e ld $9e 9d40 0035 ld $35 9d41 0053 ld $53 9d42 00bd ld $bd 9d43 002f ld $2f 9d44 0024 ld $24 9d45 0017 ld $17 9d46 0021 ld $21 9d47 0024 ld $24 9d48 00ff ld $ff 9d49 0011 ld $11 9d4a 0003 ld $03 9d4b 000b ld $0b 9d4c 002b ld $2b 9d4d 0022 ld $22 9d4e 00ab ld $ab 9d4f 0094 ld $94 9d50 0084 ld $84 9d51 0088 ld $88 9d52 0035 ld $35 9d53 0053 ld $53 9d54 00d2 ld $d2 9d55 0065 ld $65 9d56 0084 ld $84 9d57 0088 ld $88 9d58 002f ld $2f 9d59 0094 ld $94 9d5a 0017 ld $17 9d5b 001c ld $1c 9d5c 0084 ld $84 9d5d 0084 ld $84 9d5e 0008 ld $08 9d5f 0093 ld $93 9d60 0094 ld $94 9d61 001a ld $1a 9d62 0086 ld $86 9d63 00b8 ld $b8 9d64 0082 ld $82 9d65 0035 ld $35 9d66 0053 ld $53 9d67 00e5 ld $e5 9d68 0065 ld $65 9d69 0082 ld $82 9d6a 0086 ld $86 9d6b 002f ld $2f 9d6c 0018 ld $18 9d6d 0017 ld $17 9d6e 00e3 ld $e3 9d6f 0001 ld $01 9d70 005e ld $5e 9d71 0092 ld $92 9d72 0065 ld $65 9d73 0025 ld $25 9d74 00a3 ld $a3 9d75 0065 ld $65 9d76 0027 ld $27 9d77 0084 ld $84 9d78 0065 ld $65 9d79 0024 ld $24 9d7a 0092 ld $92 9d7b 0065 ld $65 9d7c 0026 ld $26 9d7d 0082 ld $82 9d7e 00b4 ld $b4 9d7f 00f3 ld $f3 9d80 0093 ld $93 9d81 0027 ld $27 9d82 009e ld $9e 9d83 00ef ld $ef 9d84 0094 ld $94 9d85 00ff ld $ff 9d86 0068 ld $68 9d87 00a2 ld $a2 9d88 005d ld $5d 9d89 00a7 ld $a7 9d8a 009c ld $9c 9d8b 00a4 ld $a4 9d8c 0035 ld $35 9d8d 0056 ld $56 9d8e 00a9 ld $a9 9d8f 0016 ld $16 9d90 0000 ld $00 9d91 00a4 ld $a4 9d92 00a7 ld $a7 9d93 0072 ld $72 9d94 00a5 ld $a5 9d95 0035 ld $35 9d96 0050 ld $50 9d97 00b7 ld $b7 9d98 0016 ld $16 9d99 0072 ld $72 9d9a 00a5 ld $a5 9d9b 00c7 ld $c7 9d9c 0004 ld $04 9d9d 0069 ld $69 9d9e 00aa ld $aa 9d9f 00ff ld $ff 9da0 00c7 ld $c7 9da1 00fb ld $fb 9da2 0066 ld $66 9da3 00aa ld $aa 9da4 00ff ld $ff 9da5 0059 ld $59 9da6 0000 ld $00 9da7 005e ld $5e 9da8 00a4 ld $a4 9da9 005e ld $5e 9daa 0028 ld $28 9dab 00c7 ld $c7 9dac 0002 ld $02 9dad 006f ld $6f 9dae 00aa ld $aa 9daf 0035 ld $35 9db0 0072 ld $72 9db1 00ca ld $ca 9db2 00ff ld $ff 9db3 0075 ld $75 9db4 00c7 ld $c7 9db5 0004 ld $04 9db6 006f ld $6f 9db7 00aa ld $aa 9db8 0035 ld $35 9db9 0072 ld $72 9dba 00df ld $df 9dbb 001c ld $1c 9dbc 00a5 ld $a5 9dbd 00a5 ld $a5 9dbe 0006 ld $06 9dbf 00a7 ld $a7 9dc0 0078 ld $78 9dc1 00a5 ld $a5 9dc2 0035 ld $35 9dc3 0050 ld $50 9dc4 00f8 ld $f8 9dc5 0016 ld $16 9dc6 0072 ld $72 9dc7 00a5 ld $a5 9dc8 0085 ld $85 9dc9 00b9 ld $b9 9dca 0064 ld $64 9dcb 0011 ld $11 9dcc 0000 ld $00 9dcd 0001 ld $01 9dce 002b ld $2b 9dcf 0026 ld $26 9dd0 0016 ld $16 9dd1 0006 ld $06 9dd2 0024 ld $24 9dd3 0016 ld $16 9dd4 0078 ld $78 9dd5 0025 ld $25 9dd6 0011 ld $11 9dd7 00c0 ld $c0 9dd8 0020 ld $20 9dd9 002b ld $2b 9dda 0022 ld $22 9ddb 00b4 ld $b4 9ddc 00fb ld $fb 9ddd 00c7 ld $c7 9dde 0004 ld $04 9ddf 0069 ld $69 9de0 00aa ld $aa 9de1 0085 ld $85 9de2 00a0 ld $a0 9de3 0065 ld $65 9de4 0063 ld $63 9de5 00ff ld $ff 9de6 0069 ld $69 9de7 00a0 ld $a0 9de8 005f ld $5f 9de9 001c ld $1c 9dea 00a4 ld $a4 9deb 00a4 ld $a4 9dec 0006 ld $06 9ded 00a7 ld $a7 9dee 009a ld $9a 9def 00a4 ld $a4 9df0 0035 ld $35 9df1 0056 ld $56 9df2 00b4 ld $b4 9df3 00c7 ld $c7 9df4 0008 ld $08 9df5 006f ld $6f 9df6 00aa ld $aa 9df7 0035 ld $35 9df8 0072 ld $72 9df9 00b4 ld $b4 9dfa 0075 ld $75 9dfb fe00 bra ac ;+-----------------------------------+ 9dfc fcfd bra $9dfd ;| | 9dfd 1418 ld $18,y ;| Trampoline for page $9d00 lookups | 9dfe e006 jmp y,$06 ;| | 9dff c218 st [$18] ;+-----------------------------------+ 9e00 0085 ld $85 9e01 00b7 ld $b7 9e02 0069 ld $69 9e03 0063 ld $63 9e04 00ff ld $ff 9e05 00c7 ld $c7 9e06 0010 ld $10 9e07 006f ld $6f 9e08 00aa ld $aa 9e09 00bd ld $bd 9e0a 00bc ld $bc 9e0b 0068 ld $68 9e0c 0059 ld $59 9e0d 0002 ld $02 9e0e 005e ld $5e 9e0f 00a4 ld $a4 9e10 005e ld $5e 9e11 0028 ld $28 9e12 00c7 ld $c7 9e13 0002 ld $02 9e14 006f ld $6f 9e15 00aa ld $aa 9e16 0035 ld $35 9e17 0072 ld $72 9e18 00ca ld $ca 9e19 00ff ld $ff 9e1a 0075 ld $75 9e1b 00c7 ld $c7 9e1c 0004 ld $04 9e1d 006f ld $6f 9e1e 00aa ld $aa 9e1f 0035 ld $35 9e20 0072 ld $72 9e21 00df ld $df 9e22 001c ld $1c 9e23 00a5 ld $a5 9e24 00a5 ld $a5 9e25 0008 ld $08 9e26 00a7 ld $a7 9e27 0078 ld $78 9e28 00a5 ld $a5 9e29 0035 ld $35 9e2a 0050 ld $50 9e2b 00f8 ld $f8 9e2c 0016 ld $16 9e2d 0070 ld $70 9e2e 00a5 ld $a5 9e2f 0085 ld $85 9e30 00dc ld $dc 9e31 0064 ld $64 9e32 0011 ld $11 9e33 0000 ld $00 9e34 0001 ld $01 9e35 002b ld $2b 9e36 0026 ld $26 9e37 0016 ld $16 9e38 0008 ld $08 9e39 0024 ld $24 9e3a 0016 ld $16 9e3b 0078 ld $78 9e3c 0025 ld $25 9e3d 0011 ld $11 9e3e 00c0 ld $c0 9e3f 0020 ld $20 9e40 002b ld $2b 9e41 0022 ld $22 9e42 00b4 ld $b4 9e43 00fb ld $fb 9e44 00c7 ld $c7 9e45 0004 ld $04 9e46 0069 ld $69 9e47 00aa ld $aa 9e48 0085 ld $85 9e49 00be ld $be 9e4a 0061 ld $61 9e4b 0063 ld $63 9e4c 00ff ld $ff 9e4d 006a ld $6a 9e4e 00a7 ld $a7 9e4f 0059 ld $59 9e50 0075 ld $75 9e51 002b ld $2b 9e52 0082 ld $82 9e53 0085 ld $85 9e54 00be ld $be 9e55 0061 ld $61 9e56 0016 ld $16 9e57 0000 ld $00 9e58 009c ld $9c 9e59 0021 ld $21 9e5a 0082 ld $82 9e5b 0035 ld $35 9e5c 0053 ld $53 9e5d 00bb ld $bb 9e5e 0059 ld $59 9e5f 002d ld $2d 9e60 0085 ld $85 9e61 00cc ld $cc 9e62 0066 ld $66 9e63 002f ld $2f 9e64 0082 ld $82 9e65 0017 ld $17 9e66 0011 ld $11 9e67 0010 ld $10 9e68 0027 ld $27 9e69 0085 ld $85 9e6a 00c1 ld $c1 9e6b 0062 ld $62 9e6c 0011 ld $11 9e6d 00e8 ld $e8 9e6e 0003 ld $03 9e6f 0085 ld $85 9e70 00c1 ld $c1 9e71 0062 ld $62 9e72 0059 ld $59 9e73 0064 ld $64 9e74 0085 ld $85 9e75 00c1 ld $c1 9e76 0062 ld $62 9e77 0059 ld $59 9e78 000a ld $0a 9e79 0085 ld $85 9e7a 00c1 ld $c1 9e7b 0062 ld $62 9e7c 00c7 ld $c7 9e7d 0030 ld $30 9e7e 0072 ld $72 9e7f 0082 ld $82 9e80 0085 ld $85 9e81 00cc ld $cc 9e82 0066 ld $66 9e83 0063 ld $63 9e84 00ff ld $ff 9e85 00ae ld $ae 9e86 006b ld $6b 9e87 00a0 ld $a0 9e88 006b ld $6b 9e89 00f2 ld $f2 9e8a 006a ld $6a 9e8b 00e4 ld $e4 9e8c 006a ld $6a 9e8d 00a5 ld $a5 9e8e 0074 ld $74 9e8f 0000 ld $00 9e90 0000 ld $00 9e91 00a5 ld $a5 9e92 0073 ld $73 9e93 0006 ld $06 9e94 0000 ld $00 9e95 00a5 ld $a5 9e96 0072 ld $72 9e97 000c ld $0c 9e98 0000 ld $00 9e99 0000 ld $00 9e9a 0000 ld $00 9e9b 00a5 ld $a5 9e9c 0077 ld $77 9e9d 0000 ld $00 9e9e 0000 ld $00 9e9f 00a5 ld $a5 9ea0 0076 ld $76 9ea1 0006 ld $06 9ea2 0000 ld $00 9ea3 00a5 ld $a5 9ea4 0075 ld $75 9ea5 000c ld $0c 9ea6 0000 ld $00 9ea7 0000 ld $00 9ea8 0000 ld $00 9ea9 006b ld $6b 9eaa 00a0 ld $a0 9eab 0060 ld $60 9eac 00a5 ld $a5 9ead 007a ld $7a 9eae 0000 ld $00 9eaf 0000 ld $00 9eb0 00a5 ld $a5 9eb1 0079 ld $79 9eb2 0006 ld $06 9eb3 0000 ld $00 9eb4 00a5 ld $a5 9eb5 0078 ld $78 9eb6 000c ld $0c 9eb7 0000 ld $00 9eb8 0000 ld $00 9eb9 0000 ld $00 9eba 00a5 ld $a5 9ebb 007d ld $7d 9ebc 0000 ld $00 9ebd 0000 ld $00 9ebe 00a5 ld $a5 9ebf 007c ld $7c 9ec0 0006 ld $06 9ec1 0000 ld $00 9ec2 00a5 ld $a5 9ec3 007b ld $7b 9ec4 000c ld $0c 9ec5 0000 ld $00 9ec6 0000 ld $00 9ec7 0000 ld $00 9ec8 0004 ld $04 9ec9 0042 ld $42 9eca 0065 ld $65 9ecb 0074 ld $74 9ecc 003a ld $3a 9ecd 0000 ld $00 9ece 0004 ld $04 9ecf 0057 ld $57 9ed0 0069 ld $69 9ed1 006e ld $6e 9ed2 003a ld $3a 9ed3 0000 ld $00 9ed4 0004 ld $04 9ed5 0042 ld $42 9ed6 0061 ld $61 9ed7 006c ld $6c 9ed8 003a ld $3a 9ed9 0000 ld $00 9eda 0005 ld $05 9edb 0042 ld $42 9edc 0061 ld $61 9edd 006c ld $6c 9ede 003a ld $3a 9edf 0030 ld $30 9ee0 0000 ld $00 9ee1 0006 ld $06 9ee2 0042 ld $42 9ee3 0061 ld $61 9ee4 006c ld $6c 9ee5 003a ld $3a 9ee6 0030 ld $30 9ee7 0030 ld $30 9ee8 0000 ld $00 9ee9 0007 ld $07 9eea 0042 ld $42 9eeb 0061 ld $61 9eec 006c ld $6c 9eed 003a ld $3a 9eee 0030 ld $30 9eef 0030 ld $30 9ef0 0030 ld $30 9ef1 0000 ld $00 9ef2 000b ld $0b 9ef3 004a ld $4a 9ef4 0061 ld $61 9ef5 0063 ld $63 9ef6 006b ld $6b 9ef7 0073 ld $73 9ef8 002b ld $2b 9ef9 0020 ld $20 9efa 0020 ld $20 9efb fe00 bra ac ;+-----------------------------------+ 9efc fcfd bra $9efd ;| | 9efd 1418 ld $18,y ;| Trampoline for page $9e00 lookups | 9efe e006 jmp y,$06 ;| | 9eff c218 st [$18] ;+-----------------------------------+ 9f00 0020 ld $20 9f01 0078 ld $78 9f02 0031 ld $31 9f03 0000 ld $00 9f04 000b ld $0b 9f05 0054 ld $54 9f06 0077 ld $77 9f07 006f ld $6f 9f08 0020 ld $20 9f09 0050 ld $50 9f0a 0061 ld $61 9f0b 0069 ld $69 9f0c 0072 ld $72 9f0d 0020 ld $20 9f0e 0078 ld $78 9f0f 0032 ld $32 9f10 0000 ld $00 9f11 006c ld $6c 9f12 00a3 ld $a3 9f13 005d ld $5d 9f14 000b ld $0b 9f15 0033 ld $33 9f16 002d ld $2d 9f17 004b ld $4b 9f18 0069 ld $69 9f19 006e ld $6e 9f1a 0064 ld $64 9f1b 0020 ld $20 9f1c 0020 ld $20 9f1d 0020 ld $20 9f1e 0078 ld $78 9f1f 0033 ld $33 9f20 0000 ld $00 9f21 000b ld $0b 9f22 0053 ld $53 9f23 0074 ld $74 9f24 0072 ld $72 9f25 0061 ld $61 9f26 0069 ld $69 9f27 0067 ld $67 9f28 0068 ld $68 9f29 0074 ld $74 9f2a 0020 ld $20 9f2b 0078 ld $78 9f2c 0034 ld $34 9f2d 0000 ld $00 9f2e 000b ld $0b 9f2f 0046 ld $46 9f30 006c ld $6c 9f31 0075 ld $75 9f32 0073 ld $73 9f33 0068 ld $68 9f34 0020 ld $20 9f35 0020 ld $20 9f36 0020 ld $20 9f37 0020 ld $20 9f38 0078 ld $78 9f39 0036 ld $36 9f3a 0000 ld $00 9f3b 000b ld $0b 9f3c 0046 ld $46 9f3d 002e ld $2e 9f3e 0048 ld $48 9f3f 006f ld $6f 9f40 0075 ld $75 9f41 0073 ld $73 9f42 0065 ld $65 9f43 0020 ld $20 9f44 0020 ld $20 9f45 0078 ld $78 9f46 0039 ld $39 9f47 0000 ld $00 9f48 000c ld $0c 9f49 0034 ld $34 9f4a 002d ld $2d 9f4b 004b ld $4b 9f4c 0069 ld $69 9f4d 006e ld $6e 9f4e 0064 ld $64 9f4f 0020 ld $20 9f50 0020 ld $20 9f51 0020 ld $20 9f52 0078 ld $78 9f53 0032 ld $32 9f54 0035 ld $35 9f55 0000 ld $00 9f56 0019 ld $19 9f57 0020 ld $20 9f58 0020 ld $20 9f59 0020 ld $20 * 25 times 9f70 0000 ld $00 9f71 006d ld $6d 9f72 00a3 ld $a3 9f73 005d ld $5d 9f74 0014 ld $14 9f75 0047 ld $47 9f76 0061 ld $61 9f77 006d ld $6d 9f78 0065 ld $65 9f79 0020 ld $20 9f7a 004f ld $4f 9f7b 0076 ld $76 9f7c 0065 ld $65 9f7d 0072 ld $72 9f7e 002e ld $2e 9f7f 0020 ld $20 9f80 0050 ld $50 9f81 0072 ld $72 9f82 0065 ld $65 9f83 0073 ld $73 9f84 0073 ld $73 9f85 0020 ld $20 9f86 0028 ld $28 9f87 0041 ld $41 9f88 0029 ld $29 9f89 0000 ld $00 9f8a 0011 ld $11 9f8b 0050 ld $50 9f8c 0072 ld $72 9f8d 0065 ld $65 9f8e 0073 ld $73 9f8f 0073 ld $73 9f90 0020 ld $20 9f91 0028 ld $28 9f92 0041 ld $41 9f93 0029 ld $29 9f94 0020 ld $20 9f95 0074 ld $74 9f96 006f ld $6f 9f97 0020 ld $20 9f98 0050 ld $50 9f99 006c ld $6c 9f9a 0061 ld $61 9f9b 0079 ld $79 9f9c 0000 ld $00 9f9d 0018 ld $18 9f9e 0020 ld $20 9f9f 0044 ld $44 9fa0 0065 ld $65 9fa1 0061 ld $61 9fa2 006c ld $6c 9fa3 0020 ld $20 9fa4 0020 ld $20 9fa5 0020 ld $20 9fa6 0020 ld $20 9fa7 0028 ld $28 9fa8 0042 ld $42 9fa9 0029 ld $29 9faa 0020 ld $20 9fab 0020 ld $20 9fac 0020 ld $20 * 5 times 9faf 0049 ld $49 9fb0 006e ld $6e 9fb1 0073 ld $73 9fb2 0065 ld $65 9fb3 0072 ld $72 9fb4 0074 ld $74 9fb5 0020 ld $20 9fb6 0000 ld $00 9fb7 0018 ld $18 9fb8 0020 ld $20 9fb9 0048 ld $48 9fba 006f ld $6f 9fbb 006c ld $6c 9fbc 0064 ld $64 9fbd 0020 ld $20 9fbe 0020 ld $20 9fbf 0020 ld $20 9fc0 0020 ld $20 9fc1 0028 ld $28 9fc2 0041 ld $41 9fc3 0029 ld $29 9fc4 0020 ld $20 9fc5 0020 ld $20 9fc6 0020 ld $20 * 5 times 9fc9 0044 ld $44 9fca 0065 ld $65 9fcb 006c ld $6c 9fcc 0065 ld $65 9fcd 0074 ld $74 9fce 0065 ld $65 9fcf 0020 ld $20 9fd0 0000 ld $00 9fd1 006e ld $6e 9fd2 00a0 ld $a0 9fd3 0060 ld $60 9fd4 0010 ld $10 9fd5 0052 ld $52 9fd6 006f ld $6f 9fd7 0079 ld $79 9fd8 0061 ld $61 9fd9 006c ld $6c 9fda 0020 ld $20 9fdb 0046 ld $46 9fdc 006c ld $6c 9fdd 0075 ld $75 9fde 0073 ld $73 9fdf 0068 ld $68 9fe0 0020 ld $20 9fe1 0078 ld $78 9fe2 0032 ld $32 9fe3 0035 ld $35 9fe4 0030 ld $30 9fe5 0000 ld $00 9fe6 0018 ld $18 9fe7 0020 ld $20 9fe8 0042 ld $42 9fe9 0065 ld $65 9fea 0074 ld $74 9feb 002d ld $2d 9fec 0020 ld $20 9fed 0020 ld $20 9fee 0020 ld $20 9fef 0020 ld $20 9ff0 0044 ld $44 9ff1 006f ld $6f 9ff2 0077 ld $77 9ff3 006e ld $6e 9ff4 0020 ld $20 9ff5 0020 ld $20 9ff6 0020 ld $20 9ff7 0020 ld $20 9ff8 0044 ld $44 9ff9 006f ld $6f 9ffa 0077 ld $77 9ffb fe00 bra ac ;+-----------------------------------+ 9ffc fcfd bra $9ffd ;| | 9ffd 1418 ld $18,y ;| Trampoline for page $9f00 lookups | 9ffe e006 jmp y,$06 ;| | 9fff c218 st [$18] ;+-----------------------------------+ a000 006e ld $6e a001 0020 ld $20 a002 0020 ld $20 a003 0020 ld $20 a004 0000 ld $00 a005 0018 ld $18 a006 0020 ld $20 a007 0042 ld $42 a008 0065 ld $65 a009 0074 ld $74 a00a 002b ld $2b a00b 0020 ld $20 a00c 0020 ld $20 a00d 0020 ld $20 a00e 0020 ld $20 a00f 0055 ld $55 a010 0070 ld $70 a011 0020 ld $20 a012 0020 ld $20 a013 0020 ld $20 * 6 times a017 0055 ld $55 a018 0070 ld $70 a019 0020 ld $20 a01a 0020 ld $20 a01b 0020 ld $20 * 5 times a01e 0000 ld $00 a01f 0018 ld $18 a020 0020 ld $20 a021 0043 ld $43 a022 0061 ld $61 a023 0072 ld $72 a024 0064 ld $64 a025 002d ld $2d a026 0020 ld $20 a027 0020 ld $20 a028 0020 ld $20 a029 004c ld $4c a02a 0065 ld $65 a02b 0066 ld $66 a02c 0074 ld $74 a02d 0020 ld $20 a02e 0020 ld $20 a02f 0020 ld $20 a030 0020 ld $20 a031 004c ld $4c a032 0065 ld $65 a033 0066 ld $66 a034 0074 ld $74 a035 0020 ld $20 a036 0020 ld $20 a037 0020 ld $20 a038 0000 ld $00 a039 006f ld $6f a03a 00a3 ld $a3 a03b 0028 ld $28 a03c 000c ld $0c a03d 0053 ld $53 a03e 002e ld $2e a03f 0046 ld $46 a040 006c ld $6c a041 0075 ld $75 a042 0073 ld $73 a043 0068 ld $68 a044 0020 ld $20 a045 0020 ld $20 a046 0078 ld $78 a047 0035 ld $35 a048 0030 ld $30 a049 0000 ld $00 a04a 0018 ld $18 a04b 0020 ld $20 a04c 0043 ld $43 a04d 0061 ld $61 a04e 0072 ld $72 a04f 0064 ld $64 a050 002b ld $2b a051 0020 ld $20 a052 0020 ld $20 a053 0020 ld $20 a054 0052 ld $52 a055 0069 ld $69 a056 0067 ld $67 a057 0068 ld $68 a058 0074 ld $74 a059 0020 ld $20 a05a 0020 ld $20 a05b 0020 ld $20 a05c 0052 ld $52 a05d 0069 ld $69 a05e 0067 ld $67 a05f 0068 ld $68 a060 0074 ld $74 a061 0020 ld $20 a062 0020 ld $20 a063 0000 ld $00 a064 0070 ld $70 a065 00a5 ld $a5 a066 0026 ld $26 a067 0004 ld $04 a068 0020 ld $20 a069 0020 ld $20 a06a 0020 ld $20 a06b 0020 ld $20 a06c 0000 ld $00 a06d 0004 ld $04 a06e 0048 ld $48 a06f 0045 ld $45 a070 004c ld $4c a071 0044 ld $44 a072 0000 ld $00 a073 0018 ld $18 a074 0043 ld $43 a075 006f ld $6f a076 006e ld $6e a077 0074 ld $74 a078 0072 ld $72 a079 006f ld $6f a07a 006c ld $6c a07b 0020 ld $20 a07c 0047 ld $47 a07d 0061 ld $61 a07e 006d ld $6d a07f 0065 ld $65 a080 0070 ld $70 a081 0061 ld $61 a082 0064 ld $64 a083 0020 ld $20 a084 004b ld $4b a085 0065 ld $65 a086 0079 ld $79 a087 0062 ld $62 a088 006f ld $6f a089 0061 ld $61 a08a 0072 ld $72 a08b 0064 ld $64 a08c 0000 ld $00 a08d 0071 ld $71 a08e 00a1 ld $a1 a08f 0024 ld $24 a090 0009 ld $09 a091 0020 ld $20 a092 0020 ld $20 a093 0020 ld $20 * 9 times a09a 0000 ld $00 a09b 000b ld $0b a09c 0056 ld $56 a09d 0069 ld $69 a09e 0064 ld $64 a09f 0065 ld $65 a0a0 006f ld $6f a0a1 0050 ld $50 a0a2 006f ld $6f a0a3 006b ld $6b a0a4 0065 ld $65 a0a5 0072 ld $72 a0a6 0021 ld $21 a0a7 0000 ld $00 a0a8 000a ld $0a a0a9 0057 ld $57 a0aa 0065 ld $65 a0ab 006c ld $6c a0ac 0063 ld $63 a0ad 006f ld $6f a0ae 006d ld $6d a0af 0065 ld $65 a0b0 0020 ld $20 a0b1 0074 ld $74 a0b2 006f ld $6f a0b3 0000 ld $00 a0b4 0072 ld $72 a0b5 00a5 ld $a5 a0b6 005b ld $5b a0b7 003f ld $3f a0b8 003f ld $3f a0b9 003f ld $3f * 36 times a0db 0000 ld $00 a0dc 003f ld $3f a0dd 003f ld $3f a0de 003f ld $3f * 5 times a0e1 0000 ld $00 a0e2 003f ld $3f a0e3 003f ld $3f a0e4 003f ld $3f * 5 times a0e7 0000 ld $00 a0e8 003f ld $3f a0e9 003f ld $3f a0ea 003f ld $3f * 19 times a0fb fe00 bra ac ;+-----------------------------------+ a0fc fcfd bra $a0fd ;| | a0fd 1418 ld $18,y ;| Trampoline for page $a000 lookups | a0fe e006 jmp y,$06 ;| | a0ff c218 st [$18] ;+-----------------------------------+ a100 003f ld $3f a101 003f ld $3f a102 003f ld $3f * 22 times a116 00f1 ld $f1 a117 0073 ld $73 a118 00a5 ld $a5 a119 005b ld $5b a11a 0000 ld $00 a11b 003f ld $3f a11c 003f ld $3f a11d 003f ld $3f * 5 times a120 0000 ld $00 a121 0000 ld $00 a122 003f ld $3f a123 003f ld $3f a124 003f ld $3f a125 003f ld $3f a126 0000 ld $00 a127 0000 ld $00 a128 0000 ld $00 a129 003f ld $3f a12a 003f ld $3f a12b 003f ld $3f a12c 0000 ld $00 a12d 0000 ld $00 a12e 0000 ld $00 a12f 0000 ld $00 a130 003f ld $3f a131 003f ld $3f a132 0000 ld $00 a133 0000 ld $00 a134 0000 ld $00 * 5 times a137 003f ld $3f a138 0000 ld $00 a139 0000 ld $00 a13a 0000 ld $00 * 13 times a145 003f ld $3f a146 003f ld $3f a147 0000 ld $00 a148 0000 ld $00 a149 0000 ld $00 a14a 0000 ld $00 a14b 003f ld $3f a14c 003f ld $3f a14d 003f ld $3f a14e 0000 ld $00 a14f 0000 ld $00 a150 0000 ld $00 a151 003f ld $3f a152 003f ld $3f a153 003f ld $3f * 5 times a156 0000 ld $00 a157 0000 ld $00 a158 003f ld $3f a159 003f ld $3f a15a 003f ld $3f a15b 003f ld $3f a15c 0000 ld $00 a15d 0000 ld $00 a15e 0000 ld $00 a15f 003f ld $3f a160 003f ld $3f a161 003f ld $3f * 21 times a174 00f1 ld $f1 a175 0074 ld $74 a176 00a5 ld $a5 a177 005b ld $5b a178 003f ld $3f a179 003f ld $3f a17a 003f ld $3f * 11 times a183 0000 ld $00 a184 003f ld $3f a185 003f ld $3f a186 003f ld $3f a187 003f ld $3f a188 0000 ld $00 a189 0000 ld $00 a18a 003f ld $3f a18b 003f ld $3f a18c 003f ld $3f a18d 0000 ld $00 a18e 0000 ld $00 a18f 0000 ld $00 a190 003f ld $3f a191 003f ld $3f a192 0000 ld $00 a193 0000 ld $00 a194 0000 ld $00 a195 0000 ld $00 a196 003f ld $3f a197 0000 ld $00 a198 0000 ld $00 a199 0000 ld $00 * 15 times a1a6 003f ld $3f a1a7 003f ld $3f a1a8 0000 ld $00 a1a9 0000 ld $00 a1aa 0000 ld $00 a1ab 003f ld $3f a1ac 003f ld $3f a1ad 003f ld $3f * 14 times a1b9 0000 ld $00 a1ba 003f ld $3f a1bb 003f ld $3f a1bc 003f ld $3f a1bd 003f ld $3f a1be 0000 ld $00 a1bf 0000 ld $00 a1c0 003f ld $3f a1c1 003f ld $3f a1c2 003f ld $3f * 18 times a1d2 00f1 ld $f1 a1d3 0075 ld $75 a1d4 00a5 ld $a5 a1d5 005b ld $5b a1d6 003f ld $3f a1d7 003f ld $3f a1d8 003f ld $3f * 12 times a1e2 0000 ld $00 a1e3 003f ld $3f a1e4 003f ld $3f a1e5 003f ld $3f * 5 times a1e8 0000 ld $00 a1e9 003f ld $3f a1ea 003f ld $3f a1eb 003f ld $3f * 5 times a1ee 0000 ld $00 a1ef 003f ld $3f a1f0 003f ld $3f a1f1 003f ld $3f * 5 times a1f4 0000 ld $00 a1f5 003f ld $3f a1f6 003f ld $3f a1f7 003f ld $3f * 6 times a1fb fe00 bra ac ;+-----------------------------------+ a1fc fcfd bra $a1fd ;| | a1fd 1418 ld $18,y ;| Trampoline for page $a100 lookups | a1fe e006 jmp y,$06 ;| | a1ff c218 st [$18] ;+-----------------------------------+ a200 003f ld $3f a201 003f ld $3f a202 003f ld $3f * 53 times a235 00f1 ld $f1 a236 0076 ld $76 a237 00a5 ld $a5 a238 005b ld $5b a239 003f ld $3f a23a 003f ld $3f a23b 0000 ld $00 a23c 0000 ld $00 a23d 0000 ld $00 a23e 003f ld $3f a23f 003f ld $3f a240 0000 ld $00 a241 0003 ld $03 a242 0003 ld $03 a243 0003 ld $03 a244 0000 ld $00 a245 0000 ld $00 a246 0003 ld $03 a247 0003 ld $03 a248 0003 ld $03 * 28 times a262 0000 ld $00 a263 0003 ld $03 a264 0003 ld $03 a265 0003 ld $03 a266 0003 ld $03 a267 0000 ld $00 a268 003f ld $3f a269 0003 ld $03 a26a 0003 ld $03 a26b 0003 ld $03 a26c 0000 ld $00 a26d 003f ld $3f a26e 003f ld $3f a26f 0003 ld $03 a270 0003 ld $03 a271 0000 ld $00 a272 003f ld $3f a273 003f ld $3f a274 003f ld $3f a275 0003 ld $03 a276 0000 ld $00 a277 003f ld $3f a278 003f ld $3f a279 003f ld $3f a27a 003f ld $3f a27b 0000 ld $00 a27c 003f ld $3f a27d 003f ld $3f a27e 003f ld $3f * 23 times a293 00f1 ld $f1 a294 0077 ld $77 a295 00a5 ld $a5 a296 005b ld $5b a297 003f ld $3f a298 003f ld $3f a299 0000 ld $00 a29a 0000 ld $00 a29b 0000 ld $00 a29c 003f ld $3f a29d 003f ld $3f a29e 0000 ld $00 a29f 0003 ld $03 a2a0 0003 ld $03 a2a1 0003 ld $03 a2a2 0000 ld $00 a2a3 0000 ld $00 a2a4 0003 ld $03 a2a5 003f ld $3f a2a6 003f ld $3f a2a7 0003 ld $03 a2a8 0003 ld $03 a2a9 0000 ld $00 a2aa 0003 ld $03 a2ab 003f ld $3f a2ac 0003 ld $03 a2ad 0003 ld $03 a2ae 0003 ld $03 a2af 0000 ld $00 a2b0 0003 ld $03 a2b1 0003 ld $03 a2b2 0003 ld $03 * 5 times a2b5 0000 ld $00 a2b6 0003 ld $03 a2b7 0003 ld $03 a2b8 0003 ld $03 * 5 times a2bb 003f ld $3f a2bc 0000 ld $00 a2bd 0003 ld $03 a2be 0003 ld $03 a2bf 0003 ld $03 a2c0 0003 ld $03 a2c1 003f ld $3f a2c2 003f ld $3f a2c3 0000 ld $00 a2c4 0003 ld $03 a2c5 0003 ld $03 a2c6 0003 ld $03 a2c7 003f ld $3f a2c8 003f ld $3f a2c9 003f ld $3f a2ca 0000 ld $00 a2cb 0003 ld $03 a2cc 0003 ld $03 a2cd 003f ld $3f a2ce 003f ld $3f a2cf 003f ld $3f a2d0 003f ld $3f a2d1 0000 ld $00 a2d2 0003 ld $03 a2d3 003f ld $3f a2d4 003f ld $3f a2d5 003f ld $3f * 5 times a2d8 0000 ld $00 a2d9 003f ld $3f a2da 003f ld $3f a2db 003f ld $3f * 24 times a2f1 00f1 ld $f1 a2f2 0078 ld $78 a2f3 00a5 ld $a5 a2f4 005b ld $5b a2f5 003f ld $3f a2f6 003f ld $3f a2f7 003f ld $3f * 6 times a2fb fe00 bra ac ;+-----------------------------------+ a2fc fcfd bra $a2fd ;| | a2fd 1418 ld $18,y ;| Trampoline for page $a200 lookups | a2fe e006 jmp y,$06 ;| | a2ff c218 st [$18] ;+-----------------------------------+ a300 003f ld $3f a301 003f ld $3f a302 003f ld $3f * 30 times a31e 0000 ld $00 a31f 003f ld $3f a320 003f ld $3f a321 003f ld $3f * 53 times a354 00f1 ld $f1 a355 0079 ld $79 a356 00a5 ld $a5 a357 005b ld $5b a358 0000 ld $00 a359 003f ld $3f a35a 003f ld $3f a35b 003f ld $3f * 5 times a35e 0003 ld $03 a35f 0000 ld $00 a360 003f ld $3f a361 003f ld $3f a362 003f ld $3f a363 003f ld $3f a364 0003 ld $03 a365 0003 ld $03 a366 0000 ld $00 a367 003f ld $3f a368 003f ld $3f a369 003f ld $3f a36a 0003 ld $03 a36b 0003 ld $03 a36c 0003 ld $03 a36d 0000 ld $00 a36e 003f ld $3f a36f 003f ld $3f a370 0003 ld $03 a371 0003 ld $03 a372 0003 ld $03 a373 0003 ld $03 a374 0000 ld $00 a375 003f ld $3f a376 0003 ld $03 a377 0003 ld $03 a378 0003 ld $03 * 5 times a37b 0000 ld $00 a37c 0003 ld $03 a37d 0003 ld $03 a37e 0003 ld $03 * 11 times a387 0000 ld $00 a388 0003 ld $03 a389 0003 ld $03 a38a 0003 ld $03 a38b 0003 ld $03 a38c 0000 ld $00 a38d 003f ld $3f a38e 0003 ld $03 a38f 0003 ld $03 a390 0003 ld $03 a391 0000 ld $00 a392 003f ld $3f a393 003f ld $3f a394 0003 ld $03 a395 0003 ld $03 a396 0000 ld $00 a397 003f ld $3f a398 003f ld $3f a399 003f ld $3f a39a 0003 ld $03 a39b 0000 ld $00 a39c 003f ld $3f a39d 003f ld $3f a39e 003f ld $3f a39f 003f ld $3f a3a0 0000 ld $00 a3a1 003f ld $3f a3a2 003f ld $3f a3a3 003f ld $3f * 17 times a3b2 00f1 ld $f1 a3b3 007a ld $7a a3b4 00a2 ld $a2 a3b5 005e ld $5e a3b6 0001 ld $01 a3b7 004a ld $4a a3b8 0000 ld $00 a3b9 003f ld $3f a3ba 003f ld $3f a3bb 003f ld $3f * 11 times a3c4 0000 ld $00 a3c5 003f ld $3f a3c6 003f ld $3f a3c7 003f ld $3f a3c8 003f ld $3f a3c9 0000 ld $00 a3ca 0003 ld $03 a3cb 003f ld $3f a3cc 003f ld $3f a3cd 003f ld $3f a3ce 0000 ld $00 a3cf 0003 ld $03 a3d0 003f ld $3f a3d1 003f ld $3f a3d2 003f ld $3f a3d3 0000 ld $00 a3d4 0003 ld $03 a3d5 003f ld $3f a3d6 0003 ld $03 a3d7 003f ld $3f a3d8 0000 ld $00 a3d9 0003 ld $03 a3da 0003 ld $03 a3db 0003 ld $03 a3dc 0003 ld $03 a3dd 0000 ld $00 a3de 0003 ld $03 a3df 0003 ld $03 a3e0 0003 ld $03 * 5 times a3e3 003f ld $3f a3e4 0000 ld $00 a3e5 0003 ld $03 a3e6 0003 ld $03 a3e7 0003 ld $03 a3e8 0003 ld $03 a3e9 003f ld $3f a3ea 003f ld $3f a3eb 0000 ld $00 a3ec 0003 ld $03 a3ed 0003 ld $03 a3ee 0003 ld $03 a3ef 003f ld $3f a3f0 003f ld $3f a3f1 003f ld $3f a3f2 0000 ld $00 a3f3 0003 ld $03 a3f4 0003 ld $03 a3f5 003f ld $3f a3f6 003f ld $3f a3f7 003f ld $3f a3f8 003f ld $3f a3f9 0000 ld $00 a3fa 0003 ld $03 a3fb fe00 bra ac ;+-----------------------------------+ a3fc fcfd bra $a3fd ;| | a3fd 1418 ld $18,y ;| Trampoline for page $a300 lookups | a3fe e006 jmp y,$06 ;| | a3ff c218 st [$18] ;+-----------------------------------+ a400 003f ld $3f a401 003f ld $3f a402 003f ld $3f * 5 times a405 0000 ld $00 a406 003f ld $3f a407 003f ld $3f a408 003f ld $3f * 18 times a418 00f1 ld $f1 a419 007b ld $7b a41a 00a2 ld $a2 a41b 005e ld $5e a41c 0001 ld $01 a41d 0051 ld $51 a41e 0000 ld $00 a41f 003f ld $3f a420 003f ld $3f a421 003f ld $3f * 90 times a479 00f1 ld $f1 a47a 007c ld $7c a47b 00a2 ld $a2 a47c 005e ld $5e a47d 0001 ld $01 a47e 004b ld $4b a47f 0000 ld $00 a480 0000 ld $00 a481 003f ld $3f a482 003f ld $3f a483 003f ld $3f * 5 times a486 0000 ld $00 a487 0000 ld $00 a488 003f ld $3f a489 003f ld $3f a48a 003f ld $3f a48b 003f ld $3f a48c 0000 ld $00 a48d 0000 ld $00 a48e 003f ld $3f a48f 003f ld $3f a490 003f ld $3f a491 003f ld $3f a492 0000 ld $00 a493 0000 ld $00 a494 003f ld $3f a495 003f ld $3f a496 003f ld $3f a497 003f ld $3f a498 0000 ld $00 a499 003f ld $3f a49a 0000 ld $00 a49b 0000 ld $00 a49c 0000 ld $00 a49d 003f ld $3f a49e 0000 ld $00 a49f 0000 ld $00 a4a0 0000 ld $00 * 13 times a4ab 003f ld $3f a4ac 0000 ld $00 a4ad 0000 ld $00 a4ae 0000 ld $00 * 5 times a4b1 003f ld $3f a4b2 0000 ld $00 a4b3 0000 ld $00 a4b4 0000 ld $00 a4b5 003f ld $3f a4b6 0000 ld $00 a4b7 003f ld $3f a4b8 003f ld $3f a4b9 003f ld $3f * 5 times a4bc 0000 ld $00 a4bd 0000 ld $00 a4be 003f ld $3f a4bf 003f ld $3f a4c0 003f ld $3f a4c1 003f ld $3f a4c2 0000 ld $00 a4c3 0000 ld $00 a4c4 0000 ld $00 a4c5 0000 ld $00 a4c6 003f ld $3f a4c7 003f ld $3f a4c8 003f ld $3f * 20 times a4da 00f1 ld $f1 a4db 007d ld $7d a4dc 00a2 ld $a2 a4dd 005e ld $5e a4de 0001 ld $01 a4df 0041 ld $41 a4e0 0000 ld $00 a4e1 003f ld $3f a4e2 003f ld $3f a4e3 003f ld $3f * 5 times a4e6 0000 ld $00 a4e7 003f ld $3f a4e8 003f ld $3f a4e9 003f ld $3f a4ea 003f ld $3f a4eb 0000 ld $00 a4ec 0000 ld $00 a4ed 003f ld $3f a4ee 003f ld $3f a4ef 003f ld $3f a4f0 003f ld $3f a4f1 0000 ld $00 a4f2 0000 ld $00 a4f3 003f ld $3f a4f4 003f ld $3f a4f5 003f ld $3f a4f6 003f ld $3f a4f7 0000 ld $00 a4f8 0000 ld $00 a4f9 003f ld $3f a4fa 0000 ld $00 a4fb fe00 bra ac ;+-----------------------------------+ a4fc fcfd bra $a4fd ;| | a4fd 1418 ld $18,y ;| Trampoline for page $a400 lookups | a4fe e006 jmp y,$06 ;| | a4ff c218 st [$18] ;+-----------------------------------+ a500 0000 ld $00 a501 0000 ld $00 a502 003f ld $3f a503 0000 ld $00 a504 0000 ld $00 a505 0000 ld $00 * 17 times a514 003f ld $3f a515 0000 ld $00 a516 003f ld $3f a517 0000 ld $00 a518 0000 ld $00 a519 0000 ld $00 a51a 003f ld $3f a51b 0000 ld $00 a51c 003f ld $3f a51d 003f ld $3f a51e 003f ld $3f * 5 times a521 0000 ld $00 a522 003f ld $3f a523 003f ld $3f a524 003f ld $3f a525 003f ld $3f a526 0000 ld $00 a527 0000 ld $00 a528 003f ld $3f a529 003f ld $3f a52a 0000 ld $00 a52b 0000 ld $00 a52c 0000 ld $00 a52d 0000 ld $00 a52e 003f ld $3f a52f 003f ld $3f a530 003f ld $3f * 18 times a540 00f1 ld $f1 a541 0000 ld $00 a542 0000 ld $00 ;End of gbas/menu/VideoPoker_vX0.gt1, size 8245 ;+-----------------------------------+ ;| Apps/TinyBASIC/TinyBASIC_v4.gcl | ;+-----------------------------------+ a543 dc56 st $56,[y,x++] ;'V' a544 dc69 st $69,[y,x++] ;'i' a545 dc64 st $64,[y,x++] ;'d' a546 dc65 st $65,[y,x++] ;'e' a547 dc6f st $6f,[y,x++] ;'o' a548 dc50 st $50,[y,x++] ;'P' a549 dc6f st $6f,[y,x++] ;'o' a54a dc6b st $6b,[y,x++] ;'k' a54b 000e ld $0e a54c c218 st [$18] a54d 0085 ld $85 a54e 14e0 ld $e0,y a54f e036 jmp y,$36 a550 c219 st [$19] TinyBASIC: a551 0002 ld $02 ;| RAM segment address (high byte first) a552 0000 ld $00 ;| a553 00f8 ld $f8 ;| Length (1..256) a554 0011 ld $11 ;0200 LDWI a555 00df ld $df a556 0001 ld $01 a557 00f6 ld $f6 ;0203 DEEK a558 002b ld $2b ;0204 STW a559 0030 ld $30 ;0204 'Pos' a55a 00cd ld $cd ;0206 DEF a55b 00c3 ld $c3 a55c 0075 ld $75 ;0208 PUSH a55d 00cf ld $cf ;0209 CALL a55e 0032 ld $32 ;0209 'Number' a55f 0035 ld $35 ;020b BCC a560 0050 ld $50 ;020c LT a561 0010 ld $10 a562 00cf ld $cf ;020e CALL a563 0034 ld $34 ;020e 'Spaces' a564 0063 ld $63 ;0210 POP a565 00ff ld $ff ;0211 RET a566 0021 ld $21 ;0212 LDW a567 0036 ld $36 ;0212 'Active' a568 00ad ld $ad ;0214 PEEK a569 008c ld $8c ;0215 XORI a56a 0024 ld $24 a56b 0035 ld $35 ;0217 BCC a56c 0072 ld $72 ;0218 NE a56d 0021 ld $21 a56e 0011 ld $11 ;021a LDWI a56f 00ce ld $ce a570 0005 ld $05 a571 00cf ld $cf ;021d CALL a572 0018 ld $18 ;021d vAC a573 00cf ld $cf ;021f CALL a574 0034 ld $34 ;021f 'Spaces' a575 0063 ld $63 ;0221 POP a576 00ff ld $ff ;0222 RET a577 00cf ld $cf ;0223 CALL a578 0038 ld $38 ;0223 'Keyword' a579 0028 ld $28 ;0225 '(' a57a 0000 ld $00 ;0226 0 a57b 0035 ld $35 ;0227 BCC a57c 003f ld $3f ;0228 EQ a57d 002c ld $2c a57e 00cf ld $cf ;022a CALL a57f 003a ld $3a ;022a 'Expression' a580 0090 ld $90 ;022c BRA a581 00b8 ld $b8 a582 00cf ld $cf ;022e CALL a583 0038 ld $38 ;022e 'Keyword' a584 0070 ld $70 ;0230 'p' a585 0065 ld $65 ;0231 'e' a586 0065 ld $65 ;0232 'e' a587 006b ld $6b ;0233 'k' a588 0028 ld $28 ;0234 '(' a589 0000 ld $00 ;0235 0 a58a 0035 ld $35 ;0236 BCC a58b 003f ld $3f ;0237 EQ a58c 003e ld $3e a58d 00cf ld $cf ;0239 CALL a58e 003a ld $3a ;0239 'Expression' a58f 00ad ld $ad ;023b PEEK a590 002b ld $2b ;023c STW a591 003c ld $3c ;023c 'Value' a592 0090 ld $90 ;023e BRA a593 00b8 ld $b8 a594 00cf ld $cf ;0240 CALL a595 0038 ld $38 ;0240 'Keyword' a596 0072 ld $72 ;0242 'r' a597 006e ld $6e ;0243 'n' a598 0064 ld $64 ;0244 'd' a599 0028 ld $28 ;0245 '(' a59a 0000 ld $00 ;0246 0 a59b 0035 ld $35 ;0247 BCC a59c 003f ld $3f ;0248 EQ a59d 005c ld $5c a59e 00cf ld $cf ;024a CALL a59f 003a ld $3a ;024a 'Expression' a5a0 0011 ld $11 ;024c LDWI a5a1 00a7 ld $a7 a5a2 0004 ld $04 a5a3 002b ld $2b ;024f STW a5a4 0022 ld $22 ;024f '_sysFn' a5a5 00b4 ld $b4 ;0251 SYS a5a6 00fe ld $fe a5a7 0035 ld $35 ;0253 BCC a5a8 0050 ld $50 ;0254 LT a5a9 004f ld $4f a5aa 00cf ld $cf ;0256 CALL a5ab 003e ld $3e ;0256 'Divide' a5ac 0021 ld $21 ;0258 LDW a5ad 0040 ld $40 ;0258 'i' a5ae 002b ld $2b ;025a STW a5af 003c ld $3c ;025a 'Value' a5b0 0090 ld $90 ;025c BRA a5b1 00b8 ld $b8 a5b2 00cf ld $cf ;025e CALL a5b3 0038 ld $38 ;025e 'Keyword' a5b4 0075 ld $75 ;0260 'u' a5b5 0073 ld $73 ;0261 's' a5b6 0072 ld $72 ;0262 'r' a5b7 0028 ld $28 ;0263 '(' a5b8 0000 ld $00 ;0264 0 a5b9 0035 ld $35 ;0265 BCC a5ba 003f ld $3f ;0266 EQ a5bb 006e ld $6e a5bc 00cf ld $cf ;0268 CALL a5bd 003a ld $3a ;0268 'Expression' a5be 00cf ld $cf ;026a CALL a5bf 003c ld $3c ;026a 'Value' a5c0 002b ld $2b ;026c STW a5c1 003c ld $3c ;026c 'Value' a5c2 0090 ld $90 ;026e BRA a5c3 00b8 ld $b8 a5c4 00cf ld $cf ;0270 CALL a5c5 0042 ld $42 ;0270 'Variable' a5c6 002b ld $2b ;0272 STW a5c7 0044 ld $44 ;0272 'k' a5c8 00cf ld $cf ;0274 CALL a5c9 0034 ld $34 ;0274 'Spaces' a5ca 00cf ld $cf ;0276 CALL a5cb 0038 ld $38 ;0276 'Keyword' a5cc 0028 ld $28 ;0278 '(' a5cd 0000 ld $00 ;0279 0 a5ce 0035 ld $35 ;027a BCC a5cf 003f ld $3f ;027b EQ a5d0 00b1 ld $b1 a5d1 0075 ld $75 ;027d PUSH a5d2 0021 ld $21 ;027e LDW a5d3 0044 ld $44 ;027e 'k' a5d4 00ec ld $ec ;0280 STLW a5d5 0000 ld $00 a5d6 00cf ld $cf ;0282 CALL a5d7 003a ld $3a ;0282 'Expression' a5d8 0035 ld $35 ;0284 BCC a5d9 0053 ld $53 ;0285 GE a5da 0087 ld $87 a5db 00cf ld $cf ;0287 CALL a5dc 0046 ld $46 ;0287 'ValueError' a5dd 00ee ld $ee ;0289 LDLW a5de 0000 ld $00 a5df 002b ld $2b ;028b STW a5e0 0044 ld $44 ;028b 'k' a5e1 0063 ld $63 ;028d POP a5e2 001a ld $1a ;028e LD a5e3 0045 ld $45 ;028e 'k'+1 a5e4 00b8 ld $b8 ;0290 SUBW a5e5 003c ld $3c ;0290 'Value' a5e6 00e6 ld $e6 ;0292 SUBI a5e7 0002 ld $02 a5e8 005e ld $5e ;0294 ST a5e9 0045 ld $45 ;0294 'k'+1 a5ea 0021 ld $21 ;0296 LDW a5eb 0048 ld $48 ;0296 'End' a5ec 00fc ld $fc ;0298 XORW a5ed 0044 ld $44 ;0298 'k' a5ee 0035 ld $35 ;029a BCC a5ef 0053 ld $53 ;029b GE a5f0 009f ld $9f a5f1 0021 ld $21 ;029d LDW a5f2 0048 ld $48 ;029d 'End' a5f3 0090 ld $90 ;029f BRA a5f4 00a3 ld $a3 a5f5 0021 ld $21 ;02a1 LDW a5f6 0044 ld $44 ;02a1 'k' a5f7 00b8 ld $b8 ;02a3 SUBW a5f8 0048 ld $48 ;02a3 'End' a5f9 0035 ld $35 ;02a5 BCC a5fa 0053 ld $53 ;02a6 GE a5fb fe00 bra ac ;+-----------------------------------+ a5fc fcfd bra $a5fd ;| | a5fd 1418 ld $18,y ;| Trampoline for page $a500 lookups | a5fe e006 jmp y,$06 ;| | a5ff c218 st [$18] ;+-----------------------------------+ a600 00a8 ld $a8 a601 00cf ld $cf ;02a8 CALL a602 0046 ld $46 ;02a8 'ValueError' a603 00cf ld $cf ;02aa CALL a604 0038 ld $38 ;02aa 'Keyword' a605 0029 ld $29 ;02ac ')' a606 0000 ld $00 ;02ad 0 a607 0035 ld $35 ;02ae BCC a608 0072 ld $72 ;02af NE a609 00b1 ld $b1 a60a 00cf ld $cf ;02b1 CALL a60b 004a ld $4a ;02b1 'SyntaxError' a60c 0021 ld $21 ;02b3 LDW a60d 0044 ld $44 ;02b3 'k' a60e 00f6 ld $f6 ;02b5 DEEK a60f 002b ld $2b ;02b6 STW a610 003c ld $3c ;02b6 'Value' a611 0063 ld $63 ;02b8 POP a612 00ff ld $ff ;02b9 RET a613 00cf ld $cf ;02ba CALL a614 0038 ld $38 ;02ba 'Keyword' a615 0029 ld $29 ;02bc ')' a616 0000 ld $00 ;02bd 0 a617 0035 ld $35 ;02be BCC a618 0072 ld $72 ;02bf NE a619 00c1 ld $c1 a61a 00cf ld $cf ;02c1 CALL a61b 004a ld $4a ;02c1 'SyntaxError' a61c 0063 ld $63 ;02c3 POP a61d 00ff ld $ff ;02c4 RET a61e 002b ld $2b ;02c5 STW a61f 004c ld $4c ;02c5 'Factor' a620 00cd ld $cd ;02c7 DEF a621 00d9 ld $d9 a622 0021 ld $21 ;02c9 LDW a623 001a ld $1a a624 002b ld $2b ;02cb STW a625 004e ld $4e ;02cb 'tmp' a626 0021 ld $21 ;02cd LDW a627 004e ld $4e ;02cd 'tmp' a628 00ad ld $ad ;02cf PEEK a629 0093 ld $93 ;02d0 INC a62a 004e ld $4e ;02d0 'tmp' a62b 0035 ld $35 ;02d2 BCC a62c 003f ld $3f ;02d3 EQ a62d 00d7 ld $d7 a62e 00cf ld $cf ;02d5 CALL a62f 0050 ld $50 ;02d5 'PrintChar' a630 0090 ld $90 ;02d7 BRA a631 00cb ld $cb a632 00cf ld $cf ;02d9 CALL a633 004e ld $4e ;02d9 'tmp' a634 002b ld $2b ;02db STW a635 0052 ld $52 ;02db 'PrintS' a636 00cd ld $cd ;02dd DEF a637 00f1 ld $f1 a638 001a ld $1a ;02df LD a639 000f ld $0f a63a 008c ld $8c ;02e1 XORI a63b 0003 ld $03 a63c 0035 ld $35 ;02e3 BCC a63d 0072 ld $72 ;02e4 NE a63e 00f0 ld $f0 a63f 0021 ld $21 ;02e6 LDW a640 0054 ld $54 ;02e6 'PrintCharScreen' a641 002b ld $2b ;02e8 STW a642 0050 ld $50 ;02e8 'PrintChar' a643 00cf ld $cf ;02ea CALL a644 0056 ld $56 ;02ea 'Prompt' a645 0042 ld $42 ;02ec 'B' a646 0072 ld $72 ;02ed 'r' a647 0065 ld $65 ;02ee 'e' a648 0061 ld $61 ;02ef 'a' a649 006b ld $6b ;02f0 'k' a64a 0000 ld $00 ;02f1 0 a64b 00ff ld $ff ;02f2 RET a64c 002b ld $2b ;02f3 STW a64d 0058 ld $58 ;02f3 'TestBreak' a64e 0093 ld $93 ;02f5 INC a64f 001b ld $1b a650 00ff ld $ff ;02f7 RET a651 0003 ld $03 ;| RAM segment address (high byte first) a652 0000 ld $00 ;| a653 00f9 ld $f9 ;| Length (1..256) a654 00cd ld $cd ;0300 DEF a655 006e ld $6e a656 002b ld $2b ;0302 STW a657 0044 ld $44 ;0302 'k' a658 00e6 ld $e6 ;0304 SUBI a659 0083 ld $83 a65a 0035 ld $35 ;0306 BCC a65b 004d ld $4d ;0307 GT a65c 006d ld $6d a65d 001a ld $1a ;0309 LD a65e 0031 ld $31 ;0309 'Pos'+1 a65f 00e6 ld $e6 ;030b SUBI a660 0078 ld $78 a661 0035 ld $35 ;030d BCC a662 004d ld $4d ;030e GT a663 006d ld $6d a664 001a ld $1a ;0310 LD a665 0030 ld $30 ;0310 'Pos' a666 00e6 ld $e6 ;0312 SUBI a667 009a ld $9a a668 0035 ld $35 ;0314 BCC a669 0056 ld $56 ;0315 LE a66a 0019 ld $19 a66b 0075 ld $75 ;0317 PUSH a66c 00cf ld $cf ;0318 CALL a66d 005a ld $5a ;0318 'Newline' a66e 0063 ld $63 ;031a POP a66f 0021 ld $21 ;031b LDW a670 0044 ld $44 ;031b 'k' a671 00e6 ld $e6 ;031d SUBI a672 0052 ld $52 a673 0035 ld $35 ;031f BCC a674 0053 ld $53 ;0320 GE a675 0029 ld $29 a676 00e3 ld $e3 ;0322 ADDI a677 0032 ld $32 a678 002b ld $2b ;0324 STW a679 0040 ld $40 ;0324 'i' a67a 0011 ld $11 ;0326 LDWI a67b 0000 ld $00 a67c 0007 ld $07 a67d 0090 ld $90 ;0329 BRA a67e 002e ld $2e a67f 002b ld $2b ;032b STW a680 0040 ld $40 ;032b 'i' a681 0011 ld $11 ;032d LDWI a682 0000 ld $00 a683 0008 ld $08 a684 002b ld $2b ;0330 STW a685 0044 ld $44 ;0330 'k' a686 0021 ld $21 ;0332 LDW a687 0040 ld $40 ;0332 'i' a688 0035 ld $35 ;0334 BCC a689 0050 ld $50 ;0335 LT a68a 006d ld $6d a68b 00e9 ld $e9 ;0337 LSLW a68c 00e9 ld $e9 ;0338 LSLW a68d 0099 ld $99 ;0339 ADDW a68e 0040 ld $40 ;0339 'i' a68f 0099 ld $99 ;033b ADDW a690 0044 ld $44 ;033b 'k' a691 002b ld $2b ;033d STW a692 0044 ld $44 ;033d 'k' a693 0011 ld $11 ;033f LDWI a694 00e1 ld $e1 a695 0004 ld $04 a696 002b ld $2b ;0342 STW a697 0022 ld $22 ;0342 '_sysFn' a698 0021 ld $21 ;0344 LDW a699 002a ld $2a ;0344 '_sysArgs6' a69a 002b ld $2b ;0346 STW a69b 0024 ld $24 ;0346 '_sysArgs0' a69c 0021 ld $21 ;0348 LDW a69d 0030 ld $30 ;0348 'Pos' a69e 002b ld $2b ;034a STW a69f 0028 ld $28 a6a0 00ec ld $ec ;034c STLW a6a1 00fe ld $fe a6a2 00e3 ld $e3 ;034e ADDI a6a3 0006 ld $06 a6a4 002b ld $2b ;0350 STW a6a5 0030 ld $30 ;0350 'Pos' a6a6 0059 ld $59 ;0352 LDI a6a7 0005 ld $05 a6a8 002b ld $2b ;0354 STW a6a9 0040 ld $40 ;0354 'i' a6aa 0021 ld $21 ;0356 LDW a6ab 0044 ld $44 ;0356 'k' a6ac 007f ld $7f ;0358 LUP a6ad 0000 ld $00 a6ae 005e ld $5e ;035a ST a6af 0026 ld $26 a6b0 00b4 ld $b4 ;035c SYS a6b1 00cc ld $cc a6b2 0093 ld $93 ;035e INC a6b3 0044 ld $44 ;035e 'k' a6b4 0093 ld $93 ;0360 INC a6b5 0028 ld $28 a6b6 0021 ld $21 ;0362 LDW a6b7 0040 ld $40 ;0362 'i' a6b8 00e6 ld $e6 ;0364 SUBI a6b9 0001 ld $01 a6ba 0035 ld $35 ;0366 BCC a6bb 004d ld $4d ;0367 GT a6bc 0052 ld $52 a6bd 005e ld $5e ;0369 ST a6be 0026 ld $26 a6bf 00b4 ld $b4 ;036b SYS a6c0 00cc ld $cc a6c1 00ee ld $ee ;036d LDLW a6c2 00fe ld $fe a6c3 00ff ld $ff ;036f RET a6c4 002b ld $2b ;0370 STW a6c5 0050 ld $50 ;0370 'PrintChar' a6c6 002b ld $2b ;0372 STW a6c7 0054 ld $54 ;0372 'PrintCharScreen' a6c8 00cd ld $cd ;0374 DEF a6c9 00f4 ld $f4 a6ca 0075 ld $75 ;0376 PUSH a6cb 002b ld $2b ;0377 STW a6cc 004e ld $4e ;0377 'tmp' a6cd 0011 ld $11 ;0379 LDWI a6ce 0000 ld $00 a6cf 000b ld $0b a6d0 002b ld $2b ;037c STW a6d1 0022 ld $22 ;037c '_sysFn' a6d2 001a ld $1a ;037e LD a6d3 0021 ld $21 a6d4 00e6 ld $e6 ;0380 SUBI a6d5 0038 ld $38 a6d6 0035 ld $35 ;0382 BCC a6d7 0050 ld $50 ;0383 LT a6d8 0087 ld $87 a6d9 00e6 ld $e6 ;0385 SUBI a6da 00ff ld $ff a6db 00b4 ld $b4 ;0387 SYS a6dc 00e7 ld $e7 a6dd 0011 ld $11 ;0389 LDWI a6de 00a0 ld $a0 a6df 001b ld $1b a6e0 002b ld $2b ;038c STW a6e1 0036 ld $36 ;038c 'Active' a6e2 0021 ld $21 ;038e LDW a6e3 004e ld $4e ;038e 'tmp' a6e4 00f3 ld $f3 ;0390 DOKE a6e5 0036 ld $36 ;0390 'Active' a6e6 0059 ld $59 ;0392 LDI a6e7 00a2 ld $a2 a6e8 005e ld $5e ;0394 ST a6e9 0036 ld $36 ;0394 'Active' a6ea 0059 ld $59 ;0396 LDI a6eb 007f ld $7f a6ec 00cf ld $cf ;0398 CALL a6ed 0050 ld $50 ;0398 'PrintChar' a6ee 002b ld $2b ;039a STW a6ef 0030 ld $30 ;039a 'Pos' a6f0 001a ld $1a ;039c LD a6f1 000f ld $0f a6f2 002b ld $2b ;039e STW a6f3 004e ld $4e ;039e 'tmp' a6f4 001a ld $1a ;03a0 LD a6f5 000f ld $0f a6f6 00f0 ld $f0 ;03a2 POKE a6f7 0036 ld $36 ;03a2 'Active' a6f8 00fc ld $fc ;03a4 XORW a6f9 004e ld $4e ;03a4 'tmp' a6fa 0035 ld $35 ;03a6 BCC a6fb fe00 bra ac ;+-----------------------------------+ a6fc fcfd bra $a6fd ;| | a6fd 1418 ld $18,y ;| Trampoline for page $a600 lookups | a6fe e006 jmp y,$06 ;| | a6ff c218 st [$18] ;+-----------------------------------+ a700 0072 ld $72 ;03a7 NE a701 00ac ld $ac a702 0021 ld $21 ;03a9 LDW a703 0036 ld $36 ;03a9 'Active' a704 00ad ld $ad ;03ab PEEK a705 0090 ld $90 ;03ac BRA a706 009c ld $9c a707 0021 ld $21 ;03ae LDW a708 0036 ld $36 ;03ae 'Active' a709 00ad ld $ad ;03b0 PEEK a70a 008c ld $8c ;03b1 XORI a70b 000a ld $0a a70c 0035 ld $35 ;03b3 BCC a70d 003f ld $3f ;03b4 EQ a70e 00ef ld $ef a70f 008c ld $8c ;03b6 XORI a710 0075 ld $75 a711 0035 ld $35 ;03b8 BCC a712 0072 ld $72 ;03b9 NE a713 00d0 ld $d0 a714 0059 ld $59 ;03bb LDI a715 0020 ld $20 a716 00cf ld $cf ;03bd CALL a717 0050 ld $50 ;03bd 'PrintChar' a718 002b ld $2b ;03bf STW a719 0030 ld $30 ;03bf 'Pos' a71a 001a ld $1a ;03c1 LD a71b 0030 ld $30 ;03c1 'Pos' a71c 00e6 ld $e6 ;03c3 SUBI a71d 0006 ld $06 a71e 0035 ld $35 ;03c5 BCC a71f 0050 ld $50 ;03c6 LT a720 00ce ld $ce a721 005e ld $5e ;03c8 ST a722 0030 ld $30 ;03c8 'Pos' a723 0021 ld $21 ;03ca LDW a724 0036 ld $36 ;03ca 'Active' a725 00e6 ld $e6 ;03cc SUBI a726 0001 ld $01 a727 002b ld $2b ;03ce STW a728 0036 ld $36 ;03ce 'Active' a729 0090 ld $90 ;03d0 BRA a72a 0094 ld $94 a72b 00e6 ld $e6 ;03d2 SUBI a72c 0060 ld $60 a72d 0035 ld $35 ;03d4 BCC a72e 0053 ld $53 ;03d5 GE a72f 0094 ld $94 a730 001a ld $1a ;03d7 LD a731 0030 ld $30 ;03d7 'Pos' a732 00e6 ld $e6 ;03d9 SUBI a733 0096 ld $96 a734 0035 ld $35 ;03db BCC a735 0050 ld $50 ;03dc LT a736 00e6 ld $e6 a737 0059 ld $59 ;03de LDI a738 00a2 ld $a2 a739 005e ld $5e ;03e0 ST a73a 0036 ld $36 ;03e0 'Active' a73b 0059 ld $59 ;03e2 LDI a73c 005c ld $5c a73d 00cf ld $cf ;03e4 CALL a73e 0050 ld $50 ;03e4 'PrintChar' a73f 0090 ld $90 ;03e6 BRA a740 0094 ld $94 a741 0021 ld $21 ;03e8 LDW a742 0036 ld $36 ;03e8 'Active' a743 00ad ld $ad ;03ea PEEK a744 00cf ld $cf ;03eb CALL a745 0050 ld $50 ;03eb 'PrintChar' a746 0093 ld $93 ;03ed INC a747 0036 ld $36 ;03ed 'Active' a748 0090 ld $90 ;03ef BRA a749 0094 ld $94 a74a 0011 ld $11 ;03f1 LDWI a74b 00e8 ld $e8 a74c 0006 ld $06 a74d 00cf ld $cf ;03f4 CALL a74e 0018 ld $18 ;03f4 vAC a74f 0093 ld $93 ;03f6 INC a750 001b ld $1b a751 00ff ld $ff ;03f8 RET a752 0004 ld $04 ;| RAM segment address (high byte first) a753 0000 ld $00 ;| a754 00f8 ld $f8 ;| Length (1..256) a755 002b ld $2b ;0400 STW a756 005c ld $5c ;0400 'GetLine' a757 00cd ld $cd ;0402 DEF a758 00ef ld $ef a759 00cf ld $cf ;0404 CALL a75a 0034 ld $34 ;0404 'Spaces' a75b 00cf ld $cf ;0406 CALL a75c 0038 ld $38 ;0406 'Keyword' a75d 0067 ld $67 ;0408 'g' a75e 006f ld $6f ;0409 'o' a75f 0074 ld $74 ;040a 't' a760 006f ld $6f ;040b 'o' a761 0000 ld $00 ;040c 0 a762 0035 ld $35 ;040d BCC a763 003f ld $3f ;040e EQ a764 0012 ld $12 a765 00cf ld $cf ;0410 CALL a766 003a ld $3a ;0410 'Expression' a767 00cf ld $cf ;0412 CALL a768 005e ld $5e ;0412 'GotoValue' a769 00cf ld $cf ;0414 CALL a76a 0038 ld $38 ;0414 'Keyword' a76b 0067 ld $67 ;0416 'g' a76c 006f ld $6f ;0417 'o' a76d 0073 ld $73 ;0418 's' a76e 0075 ld $75 ;0419 'u' a76f 0062 ld $62 ;041a 'b' a770 0000 ld $00 ;041b 0 a771 0035 ld $35 ;041c BCC a772 003f ld $3f ;041d EQ a773 0026 ld $26 a774 00cf ld $cf ;041f CALL a775 003a ld $3a ;041f 'Expression' a776 0075 ld $75 ;0421 PUSH a777 0021 ld $21 ;0422 LDW a778 0036 ld $36 ;0422 'Active' a779 00ec ld $ec ;0424 STLW a77a 0000 ld $00 a77b 00cf ld $cf ;0426 CALL a77c 005e ld $5e ;0426 'GotoValue' a77d 00cf ld $cf ;0428 CALL a77e 0038 ld $38 ;0428 'Keyword' a77f 0072 ld $72 ;042a 'r' a780 0065 ld $65 ;042b 'e' a781 0074 ld $74 ;042c 't' a782 0075 ld $75 ;042d 'u' a783 0072 ld $72 ;042e 'r' a784 006e ld $6e ;042f 'n' a785 0000 ld $00 ;0430 0 a786 0035 ld $35 ;0431 BCC a787 003f ld $3f ;0432 EQ a788 003f ld $3f a789 001a ld $1a ;0434 LD a78a 001c ld $1c a78b 0035 ld $35 ;0436 BCC a78c 0072 ld $72 ;0437 NE a78d 0039 ld $39 a78e 00cf ld $cf ;0439 CALL a78f 0060 ld $60 ;0439 'StackError' a790 00f6 ld $f6 ;043b DEEK a791 002b ld $2b ;043c STW a792 0036 ld $36 ;043c 'Active' a793 0063 ld $63 ;043e POP a794 00cf ld $cf ;043f CALL a795 0062 ld $62 ;043f 'EndOfLine' a796 00cf ld $cf ;0441 CALL a797 0038 ld $38 ;0441 'Keyword' a798 0069 ld $69 ;0443 'i' a799 0066 ld $66 ;0444 'f' a79a 0000 ld $00 ;0445 0 a79b 0035 ld $35 ;0446 BCC a79c 003f ld $3f ;0447 EQ a79d 0096 ld $96 a79e 00cf ld $cf ;0449 CALL a79f 003a ld $3a ;0449 'Expression' a7a0 00df ld $df ;044b ALLOC a7a1 00fc ld $fc a7a2 00ec ld $ec ;044d STLW a7a3 0002 ld $02 a7a4 00cf ld $cf ;044f CALL a7a5 0064 ld $64 ;044f 'RelOp' a7a6 0035 ld $35 ;0451 BCC a7a7 0072 ld $72 ;0452 NE a7a8 0054 ld $54 a7a9 00cf ld $cf ;0454 CALL a7aa 004a ld $4a ;0454 'SyntaxError' a7ab 00ec ld $ec ;0456 STLW a7ac 0000 ld $00 a7ad 00cf ld $cf ;0458 CALL a7ae 003a ld $3a ;0458 'Expression' a7af 00cf ld $cf ;045a CALL a7b0 0038 ld $38 ;045a 'Keyword' a7b1 0074 ld $74 ;045c 't' a7b2 0068 ld $68 ;045d 'h' a7b3 0065 ld $65 ;045e 'e' a7b4 006e ld $6e ;045f 'n' a7b5 0000 ld $00 ;0460 0 a7b6 00ee ld $ee ;0461 LDLW a7b7 0002 ld $02 a7b8 00fc ld $fc ;0463 XORW a7b9 003c ld $3c ;0463 'Value' a7ba 0035 ld $35 ;0465 BCC a7bb 0053 ld $53 ;0466 GE a7bc 006a ld $6a a7bd 00ee ld $ee ;0468 LDLW a7be 0002 ld $02 a7bf 0090 ld $90 ;046a BRA a7c0 006e ld $6e a7c1 00ee ld $ee ;046c LDLW a7c2 0002 ld $02 a7c3 00b8 ld $b8 ;046e SUBW a7c4 003c ld $3c ;046e 'Value' a7c5 0035 ld $35 ;0470 BCC a7c6 0056 ld $56 ;0471 LE a7c7 0073 ld $73 a7c8 0059 ld $59 ;0473 LDI a7c9 0004 ld $04 a7ca 0035 ld $35 ;0475 BCC a7cb 0053 ld $53 ;0476 GE a7cc 0078 ld $78 a7cd 0059 ld $59 ;0478 LDI a7ce 0001 ld $01 a7cf 0035 ld $35 ;047a BCC a7d0 0072 ld $72 ;047b NE a7d1 007d ld $7d a7d2 0059 ld $59 ;047d LDI a7d3 0002 ld $02 a7d4 002b ld $2b ;047f STW a7d5 0040 ld $40 ;047f 'i' a7d6 00ee ld $ee ;0481 LDLW a7d7 0000 ld $00 a7d8 00f8 ld $f8 ;0483 ANDW a7d9 0040 ld $40 ;0483 'i' a7da 00df ld $df ;0485 ALLOC a7db 0004 ld $04 a7dc 0035 ld $35 ;0487 BCC a7dd 003f ld $3f ;0488 EQ a7de 008a ld $8a a7df 00cf ld $cf ;048a CALL a7e0 0066 ld $66 ;048a 'Statements' a7e1 0021 ld $21 ;048c LDW a7e2 0036 ld $36 ;048c 'Active' a7e3 00ad ld $ad ;048e PEEK a7e4 0035 ld $35 ;048f BCC a7e5 003f ld $3f ;0490 EQ a7e6 0094 ld $94 a7e7 0093 ld $93 ;0492 INC a7e8 0036 ld $36 ;0492 'Active' a7e9 0090 ld $90 ;0494 BRA a7ea 008a ld $8a a7eb 00cf ld $cf ;0496 CALL a7ec 0062 ld $62 ;0496 'EndOfLine' a7ed 00cf ld $cf ;0498 CALL a7ee 0038 ld $38 ;0498 'Keyword' a7ef 0070 ld $70 ;049a 'p' a7f0 006f ld $6f ;049b 'o' a7f1 006b ld $6b ;049c 'k' a7f2 0065 ld $65 ;049d 'e' a7f3 0000 ld $00 ;049e 0 a7f4 0035 ld $35 ;049f BCC a7f5 003f ld $3f ;04a0 EQ a7f6 00b3 ld $b3 a7f7 00cf ld $cf ;04a2 CALL a7f8 003a ld $3a ;04a2 'Expression' a7f9 002b ld $2b ;04a4 STW a7fa 0068 ld $68 ;04a4 'Address' a7fb fe00 bra ac ;+-----------------------------------+ a7fc fcfd bra $a7fd ;| | a7fd 1418 ld $18,y ;| Trampoline for page $a700 lookups | a7fe e006 jmp y,$06 ;| | a7ff c218 st [$18] ;+-----------------------------------+ a800 00cf ld $cf ;04a6 CALL a801 0038 ld $38 ;04a6 'Keyword' a802 002c ld $2c ;04a8 ',' a803 0000 ld $00 ;04a9 0 a804 0035 ld $35 ;04aa BCC a805 0072 ld $72 ;04ab NE a806 00ad ld $ad a807 00cf ld $cf ;04ad CALL a808 004a ld $4a ;04ad 'SyntaxError' a809 00cf ld $cf ;04af CALL a80a 003a ld $3a ;04af 'Expression' a80b 00f0 ld $f0 ;04b1 POKE a80c 0068 ld $68 ;04b1 'Address' a80d 00cf ld $cf ;04b3 CALL a80e 0062 ld $62 ;04b3 'EndOfLine' a80f 00cf ld $cf ;04b5 CALL a810 0038 ld $38 ;04b5 'Keyword' a811 0027 ld $27 ;04b7 "'" a812 0000 ld $00 ;04b8 0 a813 0035 ld $35 ;04b9 BCC a814 0072 ld $72 ;04ba NE a815 00c0 ld $c0 a816 00cf ld $cf ;04bc CALL a817 0038 ld $38 ;04bc 'Keyword' a818 0072 ld $72 ;04be 'r' a819 0065 ld $65 ;04bf 'e' a81a 006d ld $6d ;04c0 'm' a81b 0000 ld $00 ;04c1 0 a81c 0035 ld $35 ;04c2 BCC a81d 003f ld $3f ;04c3 EQ a81e 00cf ld $cf a81f 0021 ld $21 ;04c5 LDW a820 0036 ld $36 ;04c5 'Active' a821 00ad ld $ad ;04c7 PEEK a822 0035 ld $35 ;04c8 BCC a823 003f ld $3f ;04c9 EQ a824 00cd ld $cd a825 0093 ld $93 ;04cb INC a826 0036 ld $36 ;04cb 'Active' a827 0090 ld $90 ;04cd BRA a828 00c3 ld $c3 a829 00cf ld $cf ;04cf CALL a82a 0062 ld $62 ;04cf 'EndOfLine' a82b 00cf ld $cf ;04d1 CALL a82c 0038 ld $38 ;04d1 'Keyword' a82d 006c ld $6c ;04d3 'l' a82e 0069 ld $69 ;04d4 'i' a82f 006e ld $6e ;04d5 'n' a830 0065 ld $65 ;04d6 'e' a831 0000 ld $00 ;04d7 0 a832 0035 ld $35 ;04d8 BCC a833 003f ld $3f ;04d9 EQ a834 00de ld $de a835 0011 ld $11 ;04db LDWI a836 00a0 ld $a0 a837 0019 ld $19 a838 00cf ld $cf ;04de CALL a839 0018 ld $18 ;04de vAC a83a 00cf ld $cf ;04e0 CALL a83b 0038 ld $38 ;04e0 'Keyword' a83c 0065 ld $65 ;04e2 'e' a83d 006e ld $6e ;04e3 'n' a83e 0064 ld $64 ;04e4 'd' a83f 0000 ld $00 ;04e5 0 a840 0035 ld $35 ;04e6 BCC a841 003f ld $3f ;04e7 EQ a842 00ea ld $ea a843 00cf ld $cf ;04e9 CALL a844 0056 ld $56 ;04e9 'Prompt' a845 0000 ld $00 ;04eb 0 a846 0011 ld $11 ;04ec LDWI a847 0000 ld $00 a848 0005 ld $05 a849 00cf ld $cf ;04ef CALL a84a 0018 ld $18 ;04ef vAC a84b 002b ld $2b ;04f1 STW a84c 0066 ld $66 ;04f1 'Statements' a84d 0093 ld $93 ;04f3 INC a84e 001b ld $1b a84f 0093 ld $93 ;04f5 INC a850 001b ld $1b a851 00ff ld $ff ;04f7 RET a852 0005 ld $05 ;| RAM segment address (high byte first) a853 0000 ld $00 ;| a854 0000 ld $00 ;| Length (1..256) a855 00cf ld $cf ;0500 CALL a856 0038 ld $38 ;0500 'Keyword' a857 006e ld $6e ;0502 'n' a858 0065 ld $65 ;0503 'e' a859 0078 ld $78 ;0504 'x' a85a 0074 ld $74 ;0505 't' a85b 0000 ld $00 ;0506 0 a85c 0035 ld $35 ;0507 BCC a85d 003f ld $3f ;0508 EQ a85e 0037 ld $37 a85f 00cf ld $cf ;050a CALL a860 0042 ld $42 ;050a 'Variable' a861 002b ld $2b ;050c STW a862 0068 ld $68 ;050c 'Address' a863 0075 ld $75 ;050e PUSH a864 0021 ld $21 ;050f LDW a865 0036 ld $36 ;050f 'Active' a866 00ec ld $ec ;0511 STLW a867 0000 ld $00 a868 0011 ld $11 ;0513 LDWI a869 0000 ld $00 a86a 00ff ld $ff a86b 0099 ld $99 ;0516 ADDW a86c 0068 ld $68 ;0516 'Address' a86d 00f6 ld $f6 ;0518 DEEK a86e 0035 ld $35 ;0519 BCC a86f 0072 ld $72 ;051a NE a870 001c ld $1c a871 00cf ld $cf ;051c CALL a872 0046 ld $46 ;051c 'ValueError' a873 002b ld $2b ;051e STW a874 0036 ld $36 ;051e 'Active' a875 00cf ld $cf ;0520 CALL a876 003a ld $3a ;0520 'Expression' a877 0021 ld $21 ;0522 LDW a878 0068 ld $68 ;0522 'Address' a879 00f6 ld $f6 ;0524 DEEK a87a 00e3 ld $e3 ;0525 ADDI a87b 0001 ld $01 a87c 00f3 ld $f3 ;0527 DOKE a87d 0068 ld $68 ;0527 'Address' a87e 00b8 ld $b8 ;0529 SUBW a87f 003c ld $3c ;0529 'Value' a880 0035 ld $35 ;052b BCC a881 0056 ld $56 ;052c LE a882 0032 ld $32 a883 00ee ld $ee ;052e LDLW a884 0000 ld $00 a885 002b ld $2b ;0530 STW a886 0036 ld $36 ;0530 'Active' a887 00cf ld $cf ;0532 CALL a888 0034 ld $34 ;0532 'Spaces' a889 0063 ld $63 ;0534 POP a88a 00cf ld $cf ;0535 CALL a88b 0058 ld $58 ;0535 'TestBreak' a88c 00cf ld $cf ;0537 CALL a88d 0062 ld $62 ;0537 'EndOfLine' a88e 00cf ld $cf ;0539 CALL a88f 0038 ld $38 ;0539 'Keyword' a890 0066 ld $66 ;053b 'f' a891 006f ld $6f ;053c 'o' a892 0072 ld $72 ;053d 'r' a893 0000 ld $00 ;053e 0 a894 0035 ld $35 ;053f BCC a895 003f ld $3f ;0540 EQ a896 006c ld $6c a897 00cf ld $cf ;0542 CALL a898 0042 ld $42 ;0542 'Variable' a899 002b ld $2b ;0544 STW a89a 0068 ld $68 ;0544 'Address' a89b 00cf ld $cf ;0546 CALL a89c 0034 ld $34 ;0546 'Spaces' a89d 00cf ld $cf ;0548 CALL a89e 0038 ld $38 ;0548 'Keyword' a89f 003d ld $3d ;054a '=' a8a0 0000 ld $00 ;054b 0 a8a1 0035 ld $35 ;054c BCC a8a2 0072 ld $72 ;054d NE a8a3 004f ld $4f a8a4 00cf ld $cf ;054f CALL a8a5 004a ld $4a ;054f 'SyntaxError' a8a6 00cf ld $cf ;0551 CALL a8a7 003a ld $3a ;0551 'Expression' a8a8 00f3 ld $f3 ;0553 DOKE a8a9 0068 ld $68 ;0553 'Address' a8aa 00cf ld $cf ;0555 CALL a8ab 0038 ld $38 ;0555 'Keyword' a8ac 0074 ld $74 ;0557 't' a8ad 006f ld $6f ;0558 'o' a8ae 0000 ld $00 ;0559 0 a8af 0035 ld $35 ;055a BCC a8b0 0072 ld $72 ;055b NE a8b1 005d ld $5d a8b2 00cf ld $cf ;055d CALL a8b3 004a ld $4a ;055d 'SyntaxError' a8b4 0011 ld $11 ;055f LDWI a8b5 0000 ld $00 a8b6 00ff ld $ff a8b7 0099 ld $99 ;0562 ADDW a8b8 0068 ld $68 ;0562 'Address' a8b9 002b ld $2b ;0564 STW a8ba 006a ld $6a ;0564 'j' a8bb 0021 ld $21 ;0566 LDW a8bc 0036 ld $36 ;0566 'Active' a8bd 00f3 ld $f3 ;0568 DOKE a8be 006a ld $6a ;0568 'j' a8bf 00cf ld $cf ;056a CALL a8c0 003a ld $3a ;056a 'Expression' a8c1 00cf ld $cf ;056c CALL a8c2 0062 ld $62 ;056c 'EndOfLine' a8c3 00cf ld $cf ;056e CALL a8c4 0038 ld $38 ;056e 'Keyword' a8c5 0061 ld $61 ;0570 'a' a8c6 0074 ld $74 ;0571 't' a8c7 0000 ld $00 ;0572 0 a8c8 0035 ld $35 ;0573 BCC a8c9 003f ld $3f ;0574 EQ a8ca 009a ld $9a a8cb 00cf ld $cf ;0576 CALL a8cc 003a ld $3a ;0576 'Expression' a8cd 0035 ld $35 ;0578 BCC a8ce 0053 ld $53 ;0579 GE a8cf 007b ld $7b a8d0 00cf ld $cf ;057b CALL a8d1 0046 ld $46 ;057b 'ValueError' a8d2 005e ld $5e ;057d ST a8d3 0030 ld $30 ;057d 'Pos' a8d4 00cf ld $cf ;057f CALL a8d5 0038 ld $38 ;057f 'Keyword' a8d6 002c ld $2c ;0581 ',' a8d7 0000 ld $00 ;0582 0 a8d8 0035 ld $35 ;0583 BCC a8d9 003f ld $3f ;0584 EQ a8da 0098 ld $98 a8db 00cf ld $cf ;0586 CALL a8dc 003a ld $3a ;0586 'Expression' a8dd 0035 ld $35 ;0588 BCC a8de 0053 ld $53 ;0589 GE a8df 008b ld $8b a8e0 00cf ld $cf ;058b CALL a8e1 0046 ld $46 ;058b 'ValueError' a8e2 00e6 ld $e6 ;058d SUBI a8e3 0078 ld $78 a8e4 0035 ld $35 ;058f BCC a8e5 0050 ld $50 ;0590 LT a8e6 0092 ld $92 a8e7 00cf ld $cf ;0592 CALL a8e8 0046 ld $46 ;0592 'ValueError' a8e9 00e3 ld $e3 ;0594 ADDI a8ea 00f8 ld $f8 a8eb 00e9 ld $e9 ;0596 LSLW a8ec 00ad ld $ad ;0597 PEEK a8ed 005e ld $5e ;0598 ST a8ee 0031 ld $31 ;0598 'Pos'+1 a8ef 00cf ld $cf ;059a CALL a8f0 0062 ld $62 ;059a 'EndOfLine' a8f1 00cf ld $cf ;059c CALL a8f2 0038 ld $38 ;059c 'Keyword' a8f3 0070 ld $70 ;059e 'p' a8f4 0075 ld $75 ;059f 'u' a8f5 0074 ld $74 ;05a0 't' a8f6 0000 ld $00 ;05a1 0 a8f7 0035 ld $35 ;05a2 BCC a8f8 003f ld $3f ;05a3 EQ a8f9 00a9 ld $a9 a8fa 00cf ld $cf ;05a5 CALL a8fb fe00 bra ac ;+-----------------------------------+ a8fc fcfd bra $a8fd ;| | a8fd 1418 ld $18,y ;| Trampoline for page $a800 lookups | a8fe e006 jmp y,$06 ;| | a8ff c218 st [$18] ;+-----------------------------------+ a900 003a ld $3a ;05a5 'Expression' a901 00cf ld $cf ;05a7 CALL a902 0050 ld $50 ;05a7 'PrintChar' a903 00cf ld $cf ;05a9 CALL a904 0062 ld $62 ;05a9 'EndOfLine' a905 00cf ld $cf ;05ab CALL a906 0038 ld $38 ;05ab 'Keyword' a907 006d ld $6d ;05ad 'm' a908 006f ld $6f ;05ae 'o' a909 0064 ld $64 ;05af 'd' a90a 0065 ld $65 ;05b0 'e' a90b 0000 ld $00 ;05b1 0 a90c 0035 ld $35 ;05b2 BCC a90d 003f ld $3f ;05b3 EQ a90e 00c7 ld $c7 a90f 00cf ld $cf ;05b5 CALL a910 003a ld $3a ;05b5 'Expression' a911 001a ld $1a ;05b7 LD a912 0021 ld $21 a913 00e6 ld $e6 ;05b9 SUBI a914 0020 ld $20 a915 0035 ld $35 ;05bb BCC a916 0050 ld $50 ;05bc LT a917 00c5 ld $c5 a918 0011 ld $11 ;05be LDWI a919 0000 ld $00 a91a 000b ld $0b a91b 002b ld $2b ;05c1 STW a91c 0022 ld $22 ;05c1 '_sysFn' a91d 0021 ld $21 ;05c3 LDW a91e 003c ld $3c ;05c3 'Value' a91f 00b4 ld $b4 ;05c5 SYS a920 00e7 ld $e7 a921 00cf ld $cf ;05c7 CALL a922 0062 ld $62 ;05c7 'EndOfLine' a923 0011 ld $11 ;05c9 LDWI a924 00a0 ld $a0 a925 0014 ld $14 a926 00cf ld $cf ;05cc CALL a927 0018 ld $18 ;05cc vAC a928 0059 ld $59 ;05ce LDI a929 0000 ld $00 a92a 002b ld $2b ;05d0 STW a92b 003c ld $3c ;05d0 'Value' a92c 00e9 ld $e9 ;05d2 LSLW a92d 00e9 ld $e9 ;05d3 LSLW a92e 00e9 ld $e9 ;05d4 LSLW a92f 00e9 ld $e9 ;05d5 LSLW a930 002b ld $2b ;05d6 STW a931 0040 ld $40 ;05d6 'i' a932 0093 ld $93 ;05d8 INC a933 0036 ld $36 ;05d8 'Active' a934 0021 ld $21 ;05da LDW a935 0036 ld $36 ;05da 'Active' a936 00ad ld $ad ;05dc PEEK a937 00e6 ld $e6 ;05dd SUBI a938 0030 ld $30 a939 0035 ld $35 ;05df BCC a93a 0050 ld $50 ;05e0 LT a93b 00fd ld $fd a93c 00e6 ld $e6 ;05e2 SUBI a93d 000a ld $0a a93e 0035 ld $35 ;05e4 BCC a93f 0053 ld $53 ;05e5 GE a940 00eb ld $eb a941 00e3 ld $e3 ;05e7 ADDI a942 000a ld $0a a943 0099 ld $99 ;05e9 ADDW a944 0040 ld $40 ;05e9 'i' a945 0090 ld $90 ;05eb BRA a946 00ce ld $ce a947 0082 ld $82 ;05ed ANDI a948 00df ld $df a949 00e6 ld $e6 ;05ef SUBI a94a 0007 ld $07 a94b 0035 ld $35 ;05f1 BCC a94c 0050 ld $50 ;05f2 LT a94d 00fd ld $fd a94e 00e6 ld $e6 ;05f4 SUBI a94f 0006 ld $06 a950 0035 ld $35 ;05f6 BCC a951 0053 ld $53 ;05f7 GE a952 00fd ld $fd a953 00e3 ld $e3 ;05f9 ADDI a954 0010 ld $10 a955 0099 ld $99 ;05fb ADDW a956 0040 ld $40 ;05fb 'i' a957 0090 ld $90 ;05fd BRA a958 00ce ld $ce a959 00ff ld $ff ;05ff RET a95a 0006 ld $06 ;| RAM segment address (high byte first) a95b 0000 ld $00 ;| a95c 00fd ld $fd ;| Length (1..256) a95d 00cd ld $cd ;0600 DEF a95e 00bb ld $bb a95f 0075 ld $75 ;0602 PUSH a960 00cf ld $cf ;0603 CALL a961 0032 ld $32 ;0603 'Number' a962 0035 ld $35 ;0605 BCC a963 0056 ld $56 ;0606 LE a964 00b9 ld $b9 a965 0021 ld $21 ;0608 LDW a966 0048 ld $48 ;0608 'End' a967 002b ld $2b ;060a STW a968 0040 ld $40 ;060a 'i' a969 002b ld $2b ;060c STW a96a 006a ld $6a ;060c 'j' a96b 00fc ld $fc ;060e XORW a96c 006c ld $6c ;060e 'Begin' a96d 0035 ld $35 ;0610 BCC a96e 003f ld $3f ;0611 EQ a96f 0016 ld $16 a970 0021 ld $21 ;0613 LDW a971 0048 ld $48 ;0613 'End' a972 00cf ld $cf ;0615 CALL a973 006e ld $6e ;0615 'PrevBlock' a974 00f6 ld $f6 ;0617 DEEK a975 00b8 ld $b8 ;0618 SUBW a976 003c ld $3c ;0618 'Value' a977 0035 ld $35 ;061a BCC a978 0050 ld $50 ;061b LT a979 005a ld $5a a97a 0021 ld $21 ;061d LDW a97b 006c ld $6c ;061d 'Begin' a97c 002b ld $2b ;061f STW a97d 0040 ld $40 ;061f 'i' a97e 0021 ld $21 ;0621 LDW a97f 0040 ld $40 ;0621 'i' a980 00f6 ld $f6 ;0623 DEEK a981 00b8 ld $b8 ;0624 SUBW a982 003c ld $3c ;0624 'Value' a983 0035 ld $35 ;0626 BCC a984 0053 ld $53 ;0627 GE a985 002d ld $2d a986 0021 ld $21 ;0629 LDW a987 0040 ld $40 ;0629 'i' a988 00cf ld $cf ;062b CALL a989 0070 ld $70 ;062b 'NextBlock' a98a 0090 ld $90 ;062d BRA a98b 001d ld $1d a98c 0035 ld $35 ;062f BCC a98d 0056 ld $56 ;0630 LE a98e 005a ld $5a a98f 0021 ld $21 ;0632 LDW a990 0000 ld $00 a991 00fc ld $fc ;0634 XORW a992 0048 ld $48 ;0634 'End' a993 0035 ld $35 ;0636 BCC a994 003f ld $3f ;0637 EQ a995 0058 ld $58 a996 0021 ld $21 ;0639 LDW a997 006a ld $6a ;0639 'j' a998 002b ld $2b ;063b STW a999 0044 ld $44 ;063b 'k' a99a 00cf ld $cf ;063d CALL a99b 006e ld $6e ;063d 'PrevBlock' a99c 002b ld $2b ;063f STW a99d 006a ld $6a ;063f 'j' a99e 002b ld $2b ;0641 STW a99f 004e ld $4e ;0641 'tmp' a9a0 0021 ld $21 ;0643 LDW a9a1 004e ld $4e ;0643 'tmp' a9a2 00ad ld $ad ;0645 PEEK a9a3 00f0 ld $f0 ;0646 POKE a9a4 0044 ld $44 ;0646 'k' a9a5 0093 ld $93 ;0648 INC a9a6 004e ld $4e ;0648 'tmp' a9a7 0093 ld $93 ;064a INC a9a8 0044 ld $44 ;064a 'k' a9a9 0021 ld $21 ;064c LDW a9aa 004e ld $4e ;064c 'tmp' a9ab 0082 ld $82 ;064e ANDI a9ac 001f ld $1f a9ad 0035 ld $35 ;0650 BCC a9ae 0072 ld $72 ;0651 NE a9af 0041 ld $41 a9b0 0021 ld $21 ;0653 LDW a9b1 006a ld $6a ;0653 'j' a9b2 00fc ld $fc ;0655 XORW a9b3 0040 ld $40 ;0655 'i' a9b4 0035 ld $35 ;0657 BCC a9b5 0072 ld $72 ;0658 NE a9b6 0037 ld $37 a9b7 0059 ld $59 ;065a LDI a9b8 0001 ld $01 a9b9 0035 ld $35 ;065c BCC a9ba 003f ld $3f ;065d EQ a9bb 0070 ld $70 a9bc 0021 ld $21 ;065f LDW a9bd 0000 ld $00 a9be 00e6 ld $e6 ;0661 SUBI a9bf 0080 ld $80 a9c0 00e6 ld $e6 ;0663 SUBI a9c1 00c0 ld $c0 a9c2 00fc ld $fc ;0665 XORW a9c3 0048 ld $48 ;0665 'End' a9c4 0035 ld $35 ;0667 BCC a9c5 0072 ld $72 ;0668 NE a9c6 006a ld $6a a9c7 00cf ld $cf ;066a CALL a9c8 004a ld $4a ;066a 'SyntaxError' a9c9 0021 ld $21 ;066c LDW a9ca 0048 ld $48 ;066c 'End' a9cb 00cf ld $cf ;066e CALL a9cc 0070 ld $70 ;066e 'NextBlock' a9cd 002b ld $2b ;0670 STW a9ce 0048 ld $48 ;0670 'End' a9cf 0021 ld $21 ;0672 LDW a9d0 0036 ld $36 ;0672 'Active' a9d1 00ad ld $ad ;0674 PEEK a9d2 0035 ld $35 ;0675 BCC a9d3 003f ld $3f ;0676 EQ a9d4 008a ld $8a a9d5 0021 ld $21 ;0678 LDW a9d6 003c ld $3c ;0678 'Value' a9d7 00f3 ld $f3 ;067a DOKE a9d8 0040 ld $40 ;067a 'i' a9d9 0093 ld $93 ;067c INC a9da 0040 ld $40 ;067c 'i' a9db 0093 ld $93 ;067e INC a9dc 0040 ld $40 ;067e 'i' a9dd 0021 ld $21 ;0680 LDW a9de 0036 ld $36 ;0680 'Active' a9df 00ad ld $ad ;0682 PEEK a9e0 0093 ld $93 ;0683 INC a9e1 0036 ld $36 ;0683 'Active' a9e2 00f0 ld $f0 ;0685 POKE a9e3 0040 ld $40 ;0685 'i' a9e4 0035 ld $35 ;0687 BCC a9e5 0072 ld $72 ;0688 NE a9e6 007c ld $7c a9e7 0090 ld $90 ;068a BRA a9e8 00b7 ld $b7 a9e9 0021 ld $21 ;068c LDW a9ea 0040 ld $40 ;068c 'i' a9eb 002b ld $2b ;068e STW a9ec 006a ld $6a ;068e 'j' a9ed 00fc ld $fc ;0690 XORW a9ee 0048 ld $48 ;0690 'End' a9ef 0035 ld $35 ;0692 BCC a9f0 003f ld $3f ;0693 EQ a9f1 00b1 ld $b1 a9f2 0021 ld $21 ;0695 LDW a9f3 006a ld $6a ;0695 'j' a9f4 00cf ld $cf ;0697 CALL a9f5 0070 ld $70 ;0697 'NextBlock' a9f6 002b ld $2b ;0699 STW a9f7 006a ld $6a ;0699 'j' a9f8 002b ld $2b ;069b STW a9f9 004e ld $4e ;069b 'tmp' a9fa 0021 ld $21 ;069d LDW a9fb fe00 bra ac ;+-----------------------------------+ a9fc fcfd bra $a9fd ;| | a9fd 1418 ld $18,y ;| Trampoline for page $a900 lookups | a9fe e006 jmp y,$06 ;| | a9ff c218 st [$18] ;+-----------------------------------+ aa00 004e ld $4e ;069d 'tmp' aa01 00ad ld $ad ;069f PEEK aa02 00f0 ld $f0 ;06a0 POKE aa03 0040 ld $40 ;06a0 'i' aa04 0093 ld $93 ;06a2 INC aa05 004e ld $4e ;06a2 'tmp' aa06 0093 ld $93 ;06a4 INC aa07 0040 ld $40 ;06a4 'i' aa08 0021 ld $21 ;06a6 LDW aa09 004e ld $4e ;06a6 'tmp' aa0a 0082 ld $82 ;06a8 ANDI aa0b 001f ld $1f aa0c 0035 ld $35 ;06aa BCC aa0d 0072 ld $72 ;06ab NE aa0e 009b ld $9b aa0f 0021 ld $21 ;06ad LDW aa10 006a ld $6a ;06ad 'j' aa11 002b ld $2b ;06af STW aa12 0040 ld $40 ;06af 'i' aa13 0090 ld $90 ;06b1 BRA aa14 008e ld $8e aa15 0021 ld $21 ;06b3 LDW aa16 0048 ld $48 ;06b3 'End' aa17 00cf ld $cf ;06b5 CALL aa18 006e ld $6e ;06b5 'PrevBlock' aa19 002b ld $2b ;06b7 STW aa1a 0048 ld $48 ;06b7 'End' aa1b 0021 ld $21 ;06b9 LDW aa1c 003c ld $3c ;06b9 'Value' aa1d 0063 ld $63 ;06bb POP aa1e 00ff ld $ff ;06bc RET aa1f 002b ld $2b ;06bd STW aa20 0072 ld $72 ;06bd 'Insert' aa21 0011 ld $11 ;06bf LDWI aa22 003f ld $3f aa23 0035 ld $35 aa24 002b ld $2b ;06c2 STW aa25 002a ld $2a aa26 0011 ld $11 ;06c4 LDWI aa27 00a0 ld $a0 aa28 0018 ld $18 aa29 002b ld $2b ;06c7 STW aa2a 005a ld $5a ;06c7 'Newline' aa2b 00cf ld $cf ;06c9 CALL aa2c 0018 ld $18 ;06c9 vAC aa2d 00cf ld $cf ;06cb CALL aa2e 0052 ld $52 ;06cb 'PrintS' aa2f 002a ld $2a ;06cd '*' aa30 002a ld $2a ;06ce '*' aa31 002a ld $2a ;06cf '*' aa32 0020 ld $20 ;06d0 ' ' aa33 0054 ld $54 ;06d1 'T' aa34 0069 ld $69 ;06d2 'i' aa35 006e ld $6e ;06d3 'n' aa36 0079 ld $79 ;06d4 'y' aa37 0020 ld $20 ;06d5 ' ' aa38 0042 ld $42 ;06d6 'B' aa39 0041 ld $41 ;06d7 'A' aa3a 0053 ld $53 ;06d8 'S' aa3b 0049 ld $49 ;06d9 'I' aa3c 0043 ld $43 ;06da 'C' aa3d 0020 ld $20 ;06db ' ' aa3e 0044 ld $44 ;06dc 'D' aa3f 0045 ld $45 ;06dd 'E' aa40 0056 ld $56 ;06de 'V' aa41 0000 ld $00 ;06df 0 aa42 00cf ld $cf ;06e0 CALL aa43 005a ld $5a ;06e0 'Newline' aa44 0011 ld $11 ;06e2 LDWI aa45 00a0 ld $a0 aa46 0008 ld $08 aa47 002b ld $2b ;06e5 STW aa48 001a ld $1a ;06e5 '_vLR' aa49 00ff ld $ff ;06e7 RET aa4a 0059 ld $59 ;06e8 LDI aa4b 0000 ld $00 aa4c 00f0 ld $f0 ;06ea POKE aa4d 0036 ld $36 ;06ea 'Active' aa4e 0059 ld $59 ;06ec LDI aa4f 0020 ld $20 aa50 00cf ld $cf ;06ee CALL aa51 0050 ld $50 ;06ee 'PrintChar' aa52 00cf ld $cf ;06f0 CALL aa53 005a ld $5a ;06f0 'Newline' aa54 0059 ld $59 ;06f2 LDI aa55 00a2 ld $a2 aa56 005e ld $5e ;06f4 ST aa57 0036 ld $36 ;06f4 'Active' aa58 00cf ld $cf ;06f6 CALL aa59 0034 ld $34 ;06f6 'Spaces' aa5a 0021 ld $21 ;06f8 LDW aa5b 0036 ld $36 ;06f8 'Active' aa5c 00ad ld $ad ;06fa PEEK aa5d 0063 ld $63 ;06fb POP aa5e 00ff ld $ff ;06fc RET aa5f 0008 ld $08 ;| RAM segment address (high byte first) aa60 00a0 ld $a0 ;| aa61 005f ld $5f ;| Length (1..256) aa62 00cd ld $cd ;08a0 DEF aa63 00b6 ld $b6 aa64 0088 ld $88 ;08a2 ORI aa65 001f ld $1f aa66 00e3 ld $e3 ;08a4 ADDI aa67 0001 ld $01 aa68 002b ld $2b ;08a6 STW aa69 004e ld $4e ;08a6 'tmp' aa6a 0035 ld $35 ;08a8 BCC aa6b 0056 ld $56 ;08a9 LE aa6c 00b3 ld $b3 aa6d 0082 ld $82 ;08ab ANDI aa6e 00e0 ld $e0 aa6f 0035 ld $35 ;08ad BCC aa70 0072 ld $72 ;08ae NE aa71 00b3 ld $b3 aa72 0021 ld $21 ;08b0 LDW aa73 004e ld $4e ;08b0 'tmp' aa74 00e3 ld $e3 ;08b2 ADDI aa75 00a0 ld $a0 aa76 00ff ld $ff ;08b4 RET aa77 0021 ld $21 ;08b5 LDW aa78 004e ld $4e ;08b5 'tmp' aa79 00ff ld $ff ;08b7 RET aa7a 002b ld $2b ;08b8 STW aa7b 0070 ld $70 ;08b8 'NextBlock' aa7c 00cd ld $cd ;08ba DEF aa7d 00ce ld $ce aa7e 00e6 ld $e6 ;08bc SUBI aa7f 0020 ld $20 aa80 002b ld $2b ;08be STW aa81 004e ld $4e ;08be 'tmp' aa82 0035 ld $35 ;08c0 BCC aa83 0050 ld $50 ;08c1 LT aa84 00cb ld $cb aa85 0082 ld $82 ;08c3 ANDI aa86 0060 ld $60 aa87 0035 ld $35 ;08c5 BCC aa88 0072 ld $72 ;08c6 NE aa89 00cb ld $cb aa8a 0021 ld $21 ;08c8 LDW aa8b 004e ld $4e ;08c8 'tmp' aa8c 00e6 ld $e6 ;08ca SUBI aa8d 00a0 ld $a0 aa8e 00ff ld $ff ;08cc RET aa8f 0021 ld $21 ;08cd LDW aa90 004e ld $4e ;08cd 'tmp' aa91 00ff ld $ff ;08cf RET aa92 002b ld $2b ;08d0 STW aa93 006e ld $6e ;08d0 'PrevBlock' aa94 00cd ld $cd ;08d2 DEF aa95 00fa ld $fa aa96 0021 ld $21 ;08d4 LDW aa97 006c ld $6c ;08d4 'Begin' aa98 002b ld $2b ;08d6 STW aa99 0040 ld $40 ;08d6 'i' aa9a 00fc ld $fc ;08d8 XORW aa9b 0048 ld $48 ;08d8 'End' aa9c 0035 ld $35 ;08da BCC aa9d 003f ld $3f ;08db EQ aa9e 00f3 ld $f3 aa9f 0021 ld $21 ;08dd LDW aaa0 0040 ld $40 ;08dd 'i' aaa1 00f6 ld $f6 ;08df DEEK aaa2 00fc ld $fc ;08e0 XORW aaa3 003c ld $3c ;08e0 'Value' aaa4 0035 ld $35 ;08e2 BCC aaa5 0072 ld $72 ;08e3 NE aaa6 00ed ld $ed aaa7 0021 ld $21 ;08e5 LDW aaa8 0040 ld $40 ;08e5 'i' aaa9 00e3 ld $e3 ;08e7 ADDI aaaa 0002 ld $02 aaab 002b ld $2b ;08e9 STW aaac 0036 ld $36 ;08e9 'Active' aaad 00cf ld $cf ;08eb CALL aaae 0058 ld $58 ;08eb 'TestBreak' aaaf 00cf ld $cf ;08ed CALL aab0 0066 ld $66 ;08ed 'Statements' aab1 0021 ld $21 ;08ef LDW aab2 0040 ld $40 ;08ef 'i' aab3 00cf ld $cf ;08f1 CALL aab4 0070 ld $70 ;08f1 'NextBlock' aab5 0090 ld $90 ;08f3 BRA aab6 00d4 ld $d4 aab7 00cf ld $cf ;08f5 CALL aab8 0056 ld $56 ;08f5 'Prompt' aab9 004c ld $4c ;08f7 'L' aaba 0069 ld $69 ;08f8 'i' aabb 006e ld $6e ;08f9 'n' aabc 0065 ld $65 ;08fa 'e' aabd 0000 ld $00 ;08fb 0 aabe 0093 ld $93 ;08fc INC aabf 001b ld $1b aac0 00ff ld $ff ;08fe RET aac1 0009 ld $09 ;| RAM segment address (high byte first) aac2 00a0 ld $a0 ;| aac3 005e ld $5e ;| Length (1..256) aac4 002b ld $2b ;09a0 STW aac5 005e ld $5e ;09a0 'GotoValue' aac6 00cd ld $cd ;09a2 DEF aac7 00de ld $de aac8 0075 ld $75 ;09a4 PUSH aac9 0035 ld $35 ;09a5 BCC aaca 0053 ld $53 ;09a6 GE aacb 00b0 ld $b0 aacc 0059 ld $59 ;09a8 LDI aacd 0000 ld $00 aace 00b8 ld $b8 ;09aa SUBW aacf 003c ld $3c ;09aa 'Value' aad0 002b ld $2b ;09ac STW aad1 003c ld $3c ;09ac 'Value' aad2 0059 ld $59 ;09ae LDI aad3 002d ld $2d aad4 00cf ld $cf ;09b0 CALL aad5 0050 ld $50 ;09b0 'PrintChar' aad6 0059 ld $59 ;09b2 LDI aad7 0000 ld $00 aad8 002b ld $2b ;09b4 STW aad9 0044 ld $44 ;09b4 'k' aada 0021 ld $21 ;09b6 LDW aadb 003c ld $3c ;09b6 'Value' aadc 0035 ld $35 ;09b8 BCC aadd 0053 ld $53 ;09b9 GE aade 00c4 ld $c4 aadf 0011 ld $11 ;09bb LDWI aae0 00d0 ld $d0 aae1 008a ld $8a aae2 0099 ld $99 ;09be ADDW aae3 003c ld $3c ;09be 'Value' aae4 002b ld $2b ;09c0 STW aae5 003c ld $3c ;09c0 'Value' aae6 0059 ld $59 ;09c2 LDI aae7 0003 ld $03 aae8 002b ld $2b ;09c4 STW aae9 0044 ld $44 ;09c4 'k' aaea 0011 ld $11 ;09c6 LDWI aaeb 0010 ld $10 aaec 0027 ld $27 aaed 00cf ld $cf ;09c9 CALL aaee 0074 ld $74 ;09c9 'PrintDigit' aaef 0011 ld $11 ;09cb LDWI aaf0 00e8 ld $e8 aaf1 0003 ld $03 aaf2 00cf ld $cf ;09ce CALL aaf3 0074 ld $74 ;09ce 'PrintDigit' aaf4 0059 ld $59 ;09d0 LDI aaf5 0064 ld $64 aaf6 00cf ld $cf ;09d2 CALL aaf7 0074 ld $74 ;09d2 'PrintDigit' aaf8 0059 ld $59 ;09d4 LDI aaf9 000a ld $0a aafa 00cf ld $cf ;09d6 CALL aafb fe00 bra ac ;+-----------------------------------+ aafc fcfd bra $aafd ;| | aafd 1418 ld $18,y ;| Trampoline for page $aa00 lookups | aafe e006 jmp y,$06 ;| | aaff c218 st [$18] ;+-----------------------------------+ ab00 0074 ld $74 ;09d6 'PrintDigit' ab01 0059 ld $59 ;09d8 LDI ab02 0030 ld $30 ab03 0099 ld $99 ;09da ADDW ab04 003c ld $3c ;09da 'Value' ab05 00cf ld $cf ;09dc CALL ab06 0050 ld $50 ;09dc 'PrintChar' ab07 0063 ld $63 ;09de POP ab08 00ff ld $ff ;09df RET ab09 002b ld $2b ;09e0 STW ab0a 0076 ld $76 ;09e0 'PrintValue' ab0b 00cd ld $cd ;09e2 DEF ab0c 00ea ld $ea ab0d 00cf ld $cf ;09e4 CALL ab0e 0056 ld $56 ;09e4 'Prompt' ab0f 0053 ld $53 ;09e6 'S' ab10 0074 ld $74 ;09e7 't' ab11 0061 ld $61 ;09e8 'a' ab12 0063 ld $63 ;09e9 'c' ab13 006b ld $6b ;09ea 'k' ab14 0000 ld $00 ;09eb 0 ab15 002b ld $2b ;09ec STW ab16 0060 ld $60 ;09ec 'StackError' ab17 00cd ld $cd ;09ee DEF ab18 00f7 ld $f7 ab19 00cf ld $cf ;09f0 CALL ab1a 0056 ld $56 ;09f0 'Prompt' ab1b 0053 ld $53 ;09f2 'S' ab1c 0079 ld $79 ;09f3 'y' ab1d 006e ld $6e ;09f4 'n' ab1e 0074 ld $74 ;09f5 't' ab1f 0061 ld $61 ;09f6 'a' ab20 0078 ld $78 ;09f7 'x' ab21 0000 ld $00 ;09f8 0 ab22 002b ld $2b ;09f9 STW ab23 004a ld $4a ;09f9 'SyntaxError' ab24 0093 ld $93 ;09fb INC ab25 001b ld $1b ab26 00ff ld $ff ;09fd RET ab27 000a ld $0a ;| RAM segment address (high byte first) ab28 00a0 ld $a0 ;| ab29 005f ld $5f ;| Length (1..256) ab2a 00cd ld $cd ;0aa0 DEF ab2b 00d2 ld $d2 ab2c 0021 ld $21 ;0aa2 LDW ab2d 001a ld $1a ab2e 002b ld $2b ;0aa4 STW ab2f 004e ld $4e ;0aa4 'tmp' ab30 0021 ld $21 ;0aa6 LDW ab31 0036 ld $36 ;0aa6 'Active' ab32 002b ld $2b ;0aa8 STW ab33 006a ld $6a ;0aa8 'j' ab34 0021 ld $21 ;0aaa LDW ab35 004e ld $4e ;0aaa 'tmp' ab36 00ad ld $ad ;0aac PEEK ab37 0093 ld $93 ;0aad INC ab38 004e ld $4e ;0aad 'tmp' ab39 0035 ld $35 ;0aaf BCC ab3a 003f ld $3f ;0ab0 EQ ab3b 00ce ld $ce ab3c 002b ld $2b ;0ab2 STW ab3d 0040 ld $40 ;0ab2 'i' ab3e 0021 ld $21 ;0ab4 LDW ab3f 0036 ld $36 ;0ab4 'Active' ab40 00ad ld $ad ;0ab6 PEEK ab41 0088 ld $88 ;0ab7 ORI ab42 0020 ld $20 ab43 00fc ld $fc ;0ab9 XORW ab44 0040 ld $40 ;0ab9 'i' ab45 0035 ld $35 ;0abb BCC ab46 0072 ld $72 ;0abc NE ab47 00c0 ld $c0 ab48 0093 ld $93 ;0abe INC ab49 0036 ld $36 ;0abe 'Active' ab4a 0090 ld $90 ;0ac0 BRA ab4b 00a8 ld $a8 ab4c 0021 ld $21 ;0ac2 LDW ab4d 006a ld $6a ;0ac2 'j' ab4e 002b ld $2b ;0ac4 STW ab4f 0036 ld $36 ;0ac4 'Active' ab50 0021 ld $21 ;0ac6 LDW ab51 004e ld $4e ;0ac6 'tmp' ab52 00ad ld $ad ;0ac8 PEEK ab53 0093 ld $93 ;0ac9 INC ab54 004e ld $4e ;0ac9 'tmp' ab55 0035 ld $35 ;0acb BCC ab56 0072 ld $72 ;0acc NE ab57 00c4 ld $c4 ab58 00cf ld $cf ;0ace CALL ab59 004e ld $4e ;0ace 'tmp' ab5a 00cf ld $cf ;0ad0 CALL ab5b 0034 ld $34 ;0ad0 'Spaces' ab5c 00cf ld $cf ;0ad2 CALL ab5d 004e ld $4e ;0ad2 'tmp' ab5e 002b ld $2b ;0ad4 STW ab5f 0038 ld $38 ;0ad4 'Keyword' ab60 00cd ld $cd ;0ad6 DEF ab61 00fa ld $fa ab62 0011 ld $11 ;0ad8 LDWI ab63 0000 ld $00 ab64 0080 ld $80 ab65 002b ld $2b ;0adb STW ab66 003c ld $3c ;0adb 'Value' ab67 00e9 ld $e9 ;0add LSLW ab68 00e9 ld $e9 ;0ade LSLW ab69 0099 ld $99 ;0adf ADDW ab6a 003c ld $3c ;0adf 'Value' ab6b 00e9 ld $e9 ;0ae1 LSLW ab6c 002b ld $2b ;0ae2 STW ab6d 0040 ld $40 ;0ae2 'i' ab6e 0021 ld $21 ;0ae4 LDW ab6f 0036 ld $36 ;0ae4 'Active' ab70 00ad ld $ad ;0ae6 PEEK ab71 00e6 ld $e6 ;0ae7 SUBI ab72 0030 ld $30 ab73 0035 ld $35 ;0ae9 BCC ab74 0050 ld $50 ;0aea LT ab75 00f7 ld $f7 ab76 00e6 ld $e6 ;0aec SUBI ab77 000a ld $0a ab78 0035 ld $35 ;0aee BCC ab79 0053 ld $53 ;0aef GE ab7a 00f7 ld $f7 ab7b 00e3 ld $e3 ;0af1 ADDI ab7c 000a ld $0a ab7d 0099 ld $99 ;0af3 ADDW ab7e 0040 ld $40 ;0af3 'i' ab7f 0093 ld $93 ;0af5 INC ab80 0036 ld $36 ;0af5 'Active' ab81 0090 ld $90 ;0af7 BRA ab82 00d9 ld $d9 ab83 0021 ld $21 ;0af9 LDW ab84 003c ld $3c ;0af9 'Value' ab85 00ff ld $ff ;0afb RET ab86 0093 ld $93 ;0afc INC ab87 001b ld $1b ab88 00ff ld $ff ;0afe RET ab89 000b ld $0b ;| RAM segment address (high byte first) ab8a 00a0 ld $a0 ;| ab8b 0060 ld $60 ;| Length (1..256) ab8c 002b ld $2b ;0ba0 STW ab8d 0032 ld $32 ;0ba0 'Number' ab8e 00cd ld $cd ;0ba2 DEF ab8f 00d1 ld $d1 ab90 0021 ld $21 ;0ba4 LDW ab91 0036 ld $36 ;0ba4 'Active' ab92 00ad ld $ad ;0ba6 PEEK ab93 0035 ld $35 ;0ba7 BCC ab94 003f ld $3f ;0ba8 EQ ab95 00b3 ld $b3 ab96 008c ld $8c ;0baa XORI ab97 003a ld $3a ab98 0035 ld $35 ;0bac BCC ab99 0072 ld $72 ;0bad NE ab9a 00b1 ld $b1 ab9b 0093 ld $93 ;0baf INC ab9c 0036 ld $36 ;0baf 'Active' ab9d 00cf ld $cf ;0bb1 CALL ab9e 0066 ld $66 ;0bb1 'Statements' ab9f 00cf ld $cf ;0bb3 CALL aba0 004a ld $4a ;0bb3 'SyntaxError' aba1 0021 ld $21 ;0bb5 LDW aba2 0036 ld $36 ;0bb5 'Active' aba3 00cf ld $cf ;0bb7 CALL aba4 0070 ld $70 ;0bb7 'NextBlock' aba5 002b ld $2b ;0bb9 STW aba6 0036 ld $36 ;0bb9 'Active' aba7 00fc ld $fc ;0bbb XORW aba8 0048 ld $48 ;0bbb 'End' aba9 0035 ld $35 ;0bbd BCC abaa 003f ld $3f ;0bbe EQ abab 00ce ld $ce abac 0011 ld $11 ;0bc0 LDWI abad 00c0 ld $c0 abae 001b ld $1b abaf 00fc ld $fc ;0bc3 XORW abb0 0036 ld $36 ;0bc3 'Active' abb1 0035 ld $35 ;0bc5 BCC abb2 003f ld $3f ;0bc6 EQ abb3 00ce ld $ce abb4 0021 ld $21 ;0bc8 LDW abb5 0036 ld $36 ;0bc8 'Active' abb6 00e3 ld $e3 ;0bca ADDI abb7 0002 ld $02 abb8 002b ld $2b ;0bcc STW abb9 0036 ld $36 ;0bcc 'Active' abba 00cf ld $cf ;0bce CALL abbb 0066 ld $66 ;0bce 'Statements' abbc 00cf ld $cf ;0bd0 CALL abbd 0056 ld $56 ;0bd0 'Prompt' abbe 0000 ld $00 ;0bd2 0 abbf 002b ld $2b ;0bd3 STW abc0 0062 ld $62 ;0bd3 'EndOfLine' abc1 00cd ld $cd ;0bd5 DEF abc2 00fb ld $fb abc3 0021 ld $21 ;0bd7 LDW abc4 0000 ld $00 abc5 002b ld $2b ;0bd9 STW abc6 0040 ld $40 ;0bd9 'i' abc7 0059 ld $59 ;0bdb LDI abc8 0002 ld $02 abc9 002b ld $2b ;0bdd STW abca 006a ld $6a ;0bdd 'j' abcb 0021 ld $21 ;0bdf LDW abcc 0040 ld $40 ;0bdf 'i' abcd 00e6 ld $e6 ;0be1 SUBI abce 0036 ld $36 abcf 002b ld $2b ;0be3 STW abd0 0040 ld $40 ;0be3 'i' abd1 0059 ld $59 ;0be5 LDI abd2 0000 ld $00 abd3 00f0 ld $f0 ;0be7 POKE abd4 0040 ld $40 ;0be7 'i' abd5 0093 ld $93 ;0be9 INC abd6 0040 ld $40 ;0be9 'i' abd7 001a ld $1a ;0beb LD abd8 0040 ld $40 ;0beb 'i' abd9 0035 ld $35 ;0bed BCC abda 0072 ld $72 ;0bee NE abdb 00e3 ld $e3 abdc 0021 ld $21 ;0bf0 LDW abdd 006a ld $6a ;0bf0 'j' abde 00e6 ld $e6 ;0bf2 SUBI abdf 0001 ld $01 abe0 0035 ld $35 ;0bf4 BCC abe1 0072 ld $72 ;0bf5 NE abe2 00db ld $db abe3 0011 ld $11 ;0bf7 LDWI abe4 00c0 ld $c0 abe5 001b ld $1b abe6 002b ld $2b ;0bfa STW abe7 006c ld $6c ;0bfa 'Begin' abe8 00ff ld $ff ;0bfc RET abe9 0093 ld $93 ;0bfd INC abea 001b ld $1b abeb 00ff ld $ff ;0bff RET abec 000c ld $0c ;| RAM segment address (high byte first) abed 00a0 ld $a0 ;| abee 0060 ld $60 ;| Length (1..256) abef 002b ld $2b ;0ca0 STW abf0 0078 ld $78 ;0ca0 'Clear' abf1 00cd ld $cd ;0ca2 DEF abf2 00ed ld $ed abf3 0075 ld $75 ;0ca4 PUSH abf4 001a ld $1a ;0ca5 LD abf5 001c ld $1c abf6 00e6 ld $e6 ;0ca7 SUBI abf7 008d ld $8d abf8 0035 ld $35 ;0ca9 BCC abf9 0053 ld $53 ;0caa GE abfa 00ac ld $ac abfb fe00 bra ac ;+-----------------------------------+ abfc fcfd bra $abfd ;| | abfd 1418 ld $18,y ;| Trampoline for page $ab00 lookups | abfe e006 jmp y,$06 ;| | abff c218 st [$18] ;+-----------------------------------+ ac00 00cf ld $cf ;0cac CALL ac01 0060 ld $60 ;0cac 'StackError' ac02 00cf ld $cf ;0cae CALL ac03 0038 ld $38 ;0cae 'Keyword' ac04 002d ld $2d ;0cb0 '-' ac05 0000 ld $00 ;0cb1 0 ac06 0035 ld $35 ;0cb2 BCC ac07 003f ld $3f ;0cb3 EQ ac08 00bb ld $bb ac09 00cf ld $cf ;0cb5 CALL ac0a 007a ld $7a ;0cb5 'Term' ac0b 0059 ld $59 ;0cb7 LDI ac0c 0000 ld $00 ac0d 00b8 ld $b8 ;0cb9 SUBW ac0e 003c ld $3c ;0cb9 'Value' ac0f 0090 ld $90 ;0cbb BRA ac10 00c1 ld $c1 ac11 00cf ld $cf ;0cbd CALL ac12 0038 ld $38 ;0cbd 'Keyword' ac13 002b ld $2b ;0cbf '+' ac14 0000 ld $00 ;0cc0 0 ac15 00cf ld $cf ;0cc1 CALL ac16 007a ld $7a ;0cc1 'Term' ac17 0075 ld $75 ;0cc3 PUSH ac18 00ec ld $ec ;0cc4 STLW ac19 0000 ld $00 ac1a 00cf ld $cf ;0cc6 CALL ac1b 0038 ld $38 ;0cc6 'Keyword' ac1c 002b ld $2b ;0cc8 '+' ac1d 0000 ld $00 ;0cc9 0 ac1e 0035 ld $35 ;0cca BCC ac1f 003f ld $3f ;0ccb EQ ac20 00d5 ld $d5 ac21 00cf ld $cf ;0ccd CALL ac22 007a ld $7a ;0ccd 'Term' ac23 00ee ld $ee ;0ccf LDLW ac24 0000 ld $00 ac25 0099 ld $99 ;0cd1 ADDW ac26 003c ld $3c ;0cd1 'Value' ac27 00ec ld $ec ;0cd3 STLW ac28 0000 ld $00 ac29 0090 ld $90 ;0cd5 BRA ac2a 00c4 ld $c4 ac2b 00cf ld $cf ;0cd7 CALL ac2c 0038 ld $38 ;0cd7 'Keyword' ac2d 002d ld $2d ;0cd9 '-' ac2e 0000 ld $00 ;0cda 0 ac2f 0035 ld $35 ;0cdb BCC ac30 003f ld $3f ;0cdc EQ ac31 00e6 ld $e6 ac32 00cf ld $cf ;0cde CALL ac33 007a ld $7a ;0cde 'Term' ac34 00ee ld $ee ;0ce0 LDLW ac35 0000 ld $00 ac36 00b8 ld $b8 ;0ce2 SUBW ac37 003c ld $3c ;0ce2 'Value' ac38 00ec ld $ec ;0ce4 STLW ac39 0000 ld $00 ac3a 0090 ld $90 ;0ce6 BRA ac3b 00c4 ld $c4 ac3c 00ee ld $ee ;0ce8 LDLW ac3d 0000 ld $00 ac3e 002b ld $2b ;0cea STW ac3f 003c ld $3c ;0cea 'Value' ac40 0063 ld $63 ;0cec POP ac41 0063 ld $63 ;0ced POP ac42 00ff ld $ff ;0cee RET ac43 002b ld $2b ;0cef STW ac44 003a ld $3a ;0cef 'Expression' ac45 00cd ld $cd ;0cf1 DEF ac46 00f9 ld $f9 ac47 00cf ld $cf ;0cf3 CALL ac48 0056 ld $56 ;0cf3 'Prompt' ac49 0056 ld $56 ;0cf5 'V' ac4a 0061 ld $61 ;0cf6 'a' ac4b 006c ld $6c ;0cf7 'l' ac4c 0075 ld $75 ;0cf8 'u' ac4d 0065 ld $65 ;0cf9 'e' ac4e 0000 ld $00 ;0cfa 0 ac4f 002b ld $2b ;0cfb STW ac50 0046 ld $46 ;0cfb 'ValueError' ac51 0093 ld $93 ;0cfd INC ac52 001b ld $1b ac53 00ff ld $ff ;0cff RET ac54 000d ld $0d ;| RAM segment address (high byte first) ac55 00a0 ld $a0 ;| ac56 0060 ld $60 ;| Length (1..256) ac57 00cd ld $cd ;0da0 DEF ac58 00e4 ld $e4 ac59 0075 ld $75 ;0da2 PUSH ac5a 00cf ld $cf ;0da3 CALL ac5b 004c ld $4c ;0da3 'Factor' ac5c 0075 ld $75 ;0da5 PUSH ac5d 0021 ld $21 ;0da6 LDW ac5e 003c ld $3c ;0da6 'Value' ac5f 00ec ld $ec ;0da8 STLW ac60 0000 ld $00 ac61 00cf ld $cf ;0daa CALL ac62 0038 ld $38 ;0daa 'Keyword' ac63 002a ld $2a ;0dac '*' ac64 0000 ld $00 ;0dad 0 ac65 0035 ld $35 ;0dae BCC ac66 003f ld $3f ;0daf EQ ac67 00b9 ld $b9 ac68 00cf ld $cf ;0db1 CALL ac69 004c ld $4c ;0db1 'Factor' ac6a 00ee ld $ee ;0db3 LDLW ac6b 0000 ld $00 ac6c 00cf ld $cf ;0db5 CALL ac6d 007c ld $7c ;0db5 'Multiply' ac6e 00ec ld $ec ;0db7 STLW ac6f 0000 ld $00 ac70 0090 ld $90 ;0db9 BRA ac71 00a8 ld $a8 ac72 00cf ld $cf ;0dbb CALL ac73 0038 ld $38 ;0dbb 'Keyword' ac74 002f ld $2f ;0dbd '/' ac75 0000 ld $00 ;0dbe 0 ac76 0035 ld $35 ;0dbf BCC ac77 003f ld $3f ;0dc0 EQ ac78 00ca ld $ca ac79 00cf ld $cf ;0dc2 CALL ac7a 004c ld $4c ;0dc2 'Factor' ac7b 00ee ld $ee ;0dc4 LDLW ac7c 0000 ld $00 ac7d 00cf ld $cf ;0dc6 CALL ac7e 003e ld $3e ;0dc6 'Divide' ac7f 00ec ld $ec ;0dc8 STLW ac80 0000 ld $00 ac81 0090 ld $90 ;0dca BRA ac82 00a8 ld $a8 ac83 00cf ld $cf ;0dcc CALL ac84 0038 ld $38 ;0dcc 'Keyword' ac85 0025 ld $25 ;0dce '%' ac86 0000 ld $00 ;0dcf 0 ac87 0035 ld $35 ;0dd0 BCC ac88 003f ld $3f ;0dd1 EQ ac89 00dd ld $dd ac8a 00cf ld $cf ;0dd3 CALL ac8b 004c ld $4c ;0dd3 'Factor' ac8c 00ee ld $ee ;0dd5 LDLW ac8d 0000 ld $00 ac8e 00cf ld $cf ;0dd7 CALL ac8f 003e ld $3e ;0dd7 'Divide' ac90 0021 ld $21 ;0dd9 LDW ac91 0040 ld $40 ;0dd9 'i' ac92 00ec ld $ec ;0ddb STLW ac93 0000 ld $00 ac94 0090 ld $90 ;0ddd BRA ac95 00a8 ld $a8 ac96 00ee ld $ee ;0ddf LDLW ac97 0000 ld $00 ac98 002b ld $2b ;0de1 STW ac99 003c ld $3c ;0de1 'Value' ac9a 0063 ld $63 ;0de3 POP ac9b 0063 ld $63 ;0de4 POP ac9c 00ff ld $ff ;0de5 RET ac9d 002b ld $2b ;0de6 STW ac9e 007a ld $7a ;0de6 'Term' ac9f 0093 ld $93 ;0de8 INC aca0 001b ld $1b aca1 00ff ld $ff ;0dea RET aca2 00cf ld $cf ;0deb CALL aca3 0038 ld $38 ;0deb 'Keyword' aca4 0072 ld $72 ;0ded 'r' aca5 0075 ld $75 ;0dee 'u' aca6 006e ld $6e ;0def 'n' aca7 0000 ld $00 ;0df0 0 aca8 0035 ld $35 ;0df1 BCC aca9 003f ld $3f ;0df2 EQ acaa 00f9 ld $f9 acab 00cf ld $cf ;0df4 CALL acac 0078 ld $78 ;0df4 'Clear' acad 00f6 ld $f6 ;0df6 DEEK acae 002b ld $2b ;0df7 STW acaf 003c ld $3c ;0df7 'Value' acb0 00cf ld $cf ;0df9 CALL acb1 005e ld $5e ;0df9 'GotoValue' acb2 0011 ld $11 ;0dfb LDWI acb3 00a0 ld $a0 acb4 0016 ld $16 acb5 00cf ld $cf ;0dfe CALL acb6 0018 ld $18 ;0dfe vAC acb7 000e ld $0e ;| RAM segment address (high byte first) acb8 00a0 ld $a0 ;| acb9 0060 ld $60 ;| Length (1..256) acba 00cd ld $cd ;0ea0 DEF acbb 00fb ld $fb acbc 002b ld $2b ;0ea2 STW acbd 006a ld $6a ;0ea2 'j' acbe 00fc ld $fc ;0ea4 XORW acbf 003c ld $3c ;0ea4 'Value' acc0 002b ld $2b ;0ea6 STW acc1 0044 ld $44 ;0ea6 'k' acc2 0021 ld $21 ;0ea8 LDW acc3 006a ld $6a ;0ea8 'j' acc4 0035 ld $35 ;0eaa BCC acc5 0053 ld $53 ;0eab GE acc6 00b1 ld $b1 acc7 0059 ld $59 ;0ead LDI acc8 0000 ld $00 acc9 00b8 ld $b8 ;0eaf SUBW acca 006a ld $6a ;0eaf 'j' accb 002b ld $2b ;0eb1 STW accc 006a ld $6a ;0eb1 'j' accd 0021 ld $21 ;0eb3 LDW acce 003c ld $3c ;0eb3 'Value' accf 0035 ld $35 ;0eb5 BCC acd0 0053 ld $53 ;0eb6 GE acd1 00bc ld $bc acd2 0059 ld $59 ;0eb8 LDI acd3 0000 ld $00 acd4 00b8 ld $b8 ;0eba SUBW acd5 003c ld $3c ;0eba 'Value' acd6 002b ld $2b ;0ebc STW acd7 003c ld $3c ;0ebc 'Value' acd8 0035 ld $35 ;0ebe BCC acd9 0072 ld $72 ;0ebf NE acda 00c1 ld $c1 acdb 00cf ld $cf ;0ec1 CALL acdc 0046 ld $46 ;0ec1 'ValueError' acdd 0059 ld $59 ;0ec3 LDI acde 0000 ld $00 acdf 002b ld $2b ;0ec5 STW ace0 0040 ld $40 ;0ec5 'i' ace1 002b ld $2b ;0ec7 STW ace2 004e ld $4e ;0ec7 'tmp' ace3 0021 ld $21 ;0ec9 LDW ace4 0040 ld $40 ;0ec9 'i' ace5 0099 ld $99 ;0ecb ADDW ace6 0040 ld $40 ;0ecb 'i' ace7 002b ld $2b ;0ecd STW ace8 0040 ld $40 ;0ecd 'i' ace9 0021 ld $21 ;0ecf LDW acea 006a ld $6a ;0ecf 'j' aceb 0035 ld $35 ;0ed1 BCC acec 0053 ld $53 ;0ed2 GE aced 00d4 ld $d4 acee 0093 ld $93 ;0ed4 INC acef 0040 ld $40 ;0ed4 'i' acf0 0021 ld $21 ;0ed6 LDW acf1 006a ld $6a ;0ed6 'j' acf2 0099 ld $99 ;0ed8 ADDW acf3 006a ld $6a ;0ed8 'j' acf4 002b ld $2b ;0eda STW acf5 006a ld $6a ;0eda 'j' acf6 0021 ld $21 ;0edc LDW acf7 0040 ld $40 ;0edc 'i' acf8 00b8 ld $b8 ;0ede SUBW acf9 003c ld $3c ;0ede 'Value' acfa 0035 ld $35 ;0ee0 BCC acfb fe00 bra ac ;+-----------------------------------+ acfc fcfd bra $acfd ;| | acfd 1418 ld $18,y ;| Trampoline for page $ac00 lookups | acfe e006 jmp y,$06 ;| | acff c218 st [$18] ;+-----------------------------------+ ad00 0050 ld $50 ;0ee1 LT ad01 00e5 ld $e5 ad02 002b ld $2b ;0ee3 STW ad03 0040 ld $40 ;0ee3 'i' ad04 0093 ld $93 ;0ee5 INC ad05 006a ld $6a ;0ee5 'j' ad06 0021 ld $21 ;0ee7 LDW ad07 004e ld $4e ;0ee7 'tmp' ad08 00e3 ld $e3 ;0ee9 ADDI ad09 0001 ld $01 ad0a 0082 ld $82 ;0eeb ANDI ad0b 000f ld $0f ad0c 0035 ld $35 ;0eed BCC ad0d 0072 ld $72 ;0eee NE ad0e 00c5 ld $c5 ad0f 0021 ld $21 ;0ef0 LDW ad10 0044 ld $44 ;0ef0 'k' ad11 0035 ld $35 ;0ef2 BCC ad12 0053 ld $53 ;0ef3 GE ad13 00f8 ld $f8 ad14 0059 ld $59 ;0ef5 LDI ad15 0000 ld $00 ad16 00b8 ld $b8 ;0ef7 SUBW ad17 006a ld $6a ;0ef7 'j' ad18 00ff ld $ff ;0ef9 RET ad19 0021 ld $21 ;0efa LDW ad1a 006a ld $6a ;0efa 'j' ad1b 00ff ld $ff ;0efc RET ad1c 0093 ld $93 ;0efd INC ad1d 001b ld $1b ad1e 00ff ld $ff ;0eff RET ad1f 000f ld $0f ;| RAM segment address (high byte first) ad20 00a0 ld $a0 ;| ad21 005e ld $5e ;| Length (1..256) ad22 002b ld $2b ;0fa0 STW ad23 003e ld $3e ;0fa0 'Divide' ad24 00cd ld $cd ;0fa2 DEF ad25 00c7 ld $c7 ad26 002b ld $2b ;0fa4 STW ad27 004e ld $4e ;0fa4 'tmp' ad28 0059 ld $59 ;0fa6 LDI ad29 0000 ld $00 ad2a 002b ld $2b ;0fa8 STW ad2b 006a ld $6a ;0fa8 'j' ad2c 0059 ld $59 ;0faa LDI ad2d 0001 ld $01 ad2e 002b ld $2b ;0fac STW ad2f 0040 ld $40 ;0fac 'i' ad30 00f8 ld $f8 ;0fae ANDW ad31 004e ld $4e ;0fae 'tmp' ad32 0035 ld $35 ;0fb0 BCC ad33 003f ld $3f ;0fb1 EQ ad34 00b7 ld $b7 ad35 0021 ld $21 ;0fb3 LDW ad36 006a ld $6a ;0fb3 'j' ad37 0099 ld $99 ;0fb5 ADDW ad38 003c ld $3c ;0fb5 'Value' ad39 002b ld $2b ;0fb7 STW ad3a 006a ld $6a ;0fb7 'j' ad3b 0021 ld $21 ;0fb9 LDW ad3c 003c ld $3c ;0fb9 'Value' ad3d 0099 ld $99 ;0fbb ADDW ad3e 003c ld $3c ;0fbb 'Value' ad3f 002b ld $2b ;0fbd STW ad40 003c ld $3c ;0fbd 'Value' ad41 0021 ld $21 ;0fbf LDW ad42 0040 ld $40 ;0fbf 'i' ad43 0099 ld $99 ;0fc1 ADDW ad44 0040 ld $40 ;0fc1 'i' ad45 0035 ld $35 ;0fc3 BCC ad46 0072 ld $72 ;0fc4 NE ad47 00aa ld $aa ad48 0021 ld $21 ;0fc6 LDW ad49 006a ld $6a ;0fc6 'j' ad4a 00ff ld $ff ;0fc8 RET ad4b 002b ld $2b ;0fc9 STW ad4c 007c ld $7c ;0fc9 'Multiply' ad4d 00cd ld $cd ;0fcb DEF ad4e 00e6 ld $e6 ad4f 0021 ld $21 ;0fcd LDW ad50 0000 ld $00 ad51 002b ld $2b ;0fcf STW ad52 0040 ld $40 ;0fcf 'i' ad53 0021 ld $21 ;0fd1 LDW ad54 0036 ld $36 ;0fd1 'Active' ad55 00ad ld $ad ;0fd3 PEEK ad56 0082 ld $82 ;0fd4 ANDI ad57 005f ld $5f ad58 00e6 ld $e6 ;0fd6 SUBI ad59 0040 ld $40 ad5a 0035 ld $35 ;0fd8 BCC ad5b 0050 ld $50 ;0fd9 LT ad5c 00e4 ld $e4 ad5d 00e6 ld $e6 ;0fdb SUBI ad5e 001b ld $1b ad5f 0035 ld $35 ;0fdd BCC ad60 0053 ld $53 ;0fde GE ad61 00e4 ld $e4 ad62 0093 ld $93 ;0fe0 INC ad63 0036 ld $36 ;0fe0 'Active' ad64 00e9 ld $e9 ;0fe2 LSLW ad65 0099 ld $99 ;0fe3 ADDW ad66 0040 ld $40 ;0fe3 'i' ad67 00ff ld $ff ;0fe5 RET ad68 00cf ld $cf ;0fe6 CALL ad69 004a ld $4a ;0fe6 'SyntaxError' ad6a 002b ld $2b ;0fe8 STW ad6b 0042 ld $42 ;0fe8 'Variable' ad6c 00cd ld $cd ;0fea DEF ad6d 00f7 ld $f7 ad6e 0021 ld $21 ;0fec LDW ad6f 0036 ld $36 ;0fec 'Active' ad70 00ad ld $ad ;0fee PEEK ad71 008c ld $8c ;0fef XORI ad72 0020 ld $20 ad73 0035 ld $35 ;0ff1 BCC ad74 0072 ld $72 ;0ff2 NE ad75 00f6 ld $f6 ad76 0093 ld $93 ;0ff4 INC ad77 0036 ld $36 ;0ff4 'Active' ad78 0090 ld $90 ;0ff6 BRA ad79 00ea ld $ea ad7a 00ff ld $ff ;0ff8 RET ad7b 002b ld $2b ;0ff9 STW ad7c 0034 ld $34 ;0ff9 'Spaces' ad7d 0093 ld $93 ;0ffb INC ad7e 001b ld $1b ad7f 00ff ld $ff ;0ffd RET ad80 0010 ld $10 ;| RAM segment address (high byte first) ad81 00a0 ld $a0 ;| ad82 0060 ld $60 ;| Length (1..256) ad83 00cd ld $cd ;10a0 DEF ad84 00fb ld $fb ad85 0075 ld $75 ;10a2 PUSH ad86 0021 ld $21 ;10a3 LDW ad87 006c ld $6c ;10a3 'Begin' ad88 002b ld $2b ;10a5 STW ad89 006a ld $6a ;10a5 'j' ad8a 00fc ld $fc ;10a7 XORW ad8b 0048 ld $48 ;10a7 'End' ad8c 0035 ld $35 ;10a9 BCC ad8d 003f ld $3f ;10aa EQ ad8e 00c9 ld $c9 ad8f 00cf ld $cf ;10ac CALL ad90 0058 ld $58 ;10ac 'TestBreak' ad91 0021 ld $21 ;10ae LDW ad92 006a ld $6a ;10ae 'j' ad93 00f6 ld $f6 ;10b0 DEEK ad94 002b ld $2b ;10b1 STW ad95 003c ld $3c ;10b1 'Value' ad96 00cf ld $cf ;10b3 CALL ad97 0076 ld $76 ;10b3 'PrintValue' ad98 0093 ld $93 ;10b5 INC ad99 006a ld $6a ;10b5 'j' ad9a 0093 ld $93 ;10b7 INC ad9b 006a ld $6a ;10b7 'j' ad9c 0021 ld $21 ;10b9 LDW ad9d 006a ld $6a ;10b9 'j' ad9e 00ad ld $ad ;10bb PEEK ad9f 0035 ld $35 ;10bc BCC ada0 003f ld $3f ;10bd EQ ada1 00c1 ld $c1 ada2 00cf ld $cf ;10bf CALL ada3 0050 ld $50 ;10bf 'PrintChar' ada4 0090 ld $90 ;10c1 BRA ada5 00b5 ld $b5 ada6 00cf ld $cf ;10c3 CALL ada7 005a ld $5a ;10c3 'Newline' ada8 0021 ld $21 ;10c5 LDW ada9 006a ld $6a ;10c5 'j' adaa 00cf ld $cf ;10c7 CALL adab 0070 ld $70 ;10c7 'NextBlock' adac 0090 ld $90 ;10c9 BRA adad 00a3 ld $a3 adae 002b ld $2b ;10cb STW adaf 003c ld $3c ;10cb 'Value' adb0 0021 ld $21 ;10cd LDW adb1 0000 ld $00 adb2 00e6 ld $e6 ;10cf SUBI adb3 0080 ld $80 adb4 00e6 ld $e6 ;10d1 SUBI adb5 00c0 ld $c0 adb6 00fc ld $fc ;10d3 XORW adb7 006a ld $6a ;10d3 'j' adb8 0035 ld $35 ;10d5 BCC adb9 003f ld $3f ;10d6 EQ adba 00e2 ld $e2 adbb 0021 ld $21 ;10d8 LDW adbc 006a ld $6a ;10d8 'j' adbd 00cf ld $cf ;10da CALL adbe 0070 ld $70 ;10da 'NextBlock' adbf 002b ld $2b ;10dc STW adc0 006a ld $6a ;10dc 'j' adc1 0021 ld $21 ;10de LDW adc2 003c ld $3c ;10de 'Value' adc3 00e3 ld $e3 ;10e0 ADDI adc4 0020 ld $20 adc5 0090 ld $90 ;10e2 BRA adc6 00c9 ld $c9 adc7 0021 ld $21 ;10e4 LDW adc8 0050 ld $50 ;10e4 'PrintChar' adc9 00fc ld $fc ;10e6 XORW adca 0054 ld $54 ;10e6 'PrintCharScreen' adcb 0035 ld $35 ;10e8 BCC adcc 0072 ld $72 ;10e9 NE adcd 00f9 ld $f9 adce 00cf ld $cf ;10eb CALL adcf 0076 ld $76 ;10eb 'PrintValue' add0 00cf ld $cf ;10ed CALL add1 0052 ld $52 ;10ed 'PrintS' add2 0020 ld $20 ;10ef ' ' add3 0062 ld $62 ;10f0 'b' add4 0079 ld $79 ;10f1 'y' add5 0074 ld $74 ;10f2 't' add6 0065 ld $65 ;10f3 'e' add7 0073 ld $73 ;10f4 's' add8 0020 ld $20 ;10f5 ' ' add9 0066 ld $66 ;10f6 'f' adda 0072 ld $72 ;10f7 'r' addb 0065 ld $65 ;10f8 'e' addc 0065 ld $65 ;10f9 'e' addd 0000 ld $00 ;10fa 0 adde 0063 ld $63 ;10fb POP addf 00ff ld $ff ;10fc RET ade0 0093 ld $93 ;10fd INC ade1 001b ld $1b ade2 00ff ld $ff ;10ff RET ade3 0011 ld $11 ;| RAM segment address (high byte first) ade4 00a0 ld $a0 ;| ade5 0060 ld $60 ;| Length (1..256) ade6 002b ld $2b ;11a0 STW ade7 007e ld $7e ;11a0 'List' ade8 00cd ld $cd ;11a2 DEF ade9 00c1 ld $c1 adea 0075 ld $75 ;11a4 PUSH adeb 002b ld $2b ;11a5 STW adec 0040 ld $40 ;11a5 'i' aded 0021 ld $21 ;11a7 LDW adee 003c ld $3c ;11a7 'Value' adef 00b8 ld $b8 ;11a9 SUBW adf0 0040 ld $40 ;11a9 'i' adf1 0035 ld $35 ;11ab BCC adf2 0050 ld $50 ;11ac LT adf3 00b2 ld $b2 adf4 002b ld $2b ;11ae STW adf5 003c ld $3c ;11ae 'Value' adf6 0093 ld $93 ;11b0 INC adf7 0044 ld $44 ;11b0 'k' adf8 0090 ld $90 ;11b2 BRA adf9 00a7 ld $a7 adfa 0021 ld $21 ;11b4 LDW adfb fe00 bra ac ;+-----------------------------------+ adfc fcfd bra $adfd ;| | adfd 1418 ld $18,y ;| Trampoline for page $ad00 lookups | adfe e006 jmp y,$06 ;| | adff c218 st [$18] ;+-----------------------------------+ ae00 0044 ld $44 ;11b4 'k' ae01 0035 ld $35 ;11b6 BCC ae02 003f ld $3f ;11b7 EQ ae03 00bf ld $bf ae04 0088 ld $88 ;11b9 ORI ae05 0030 ld $30 ae06 00cf ld $cf ;11bb CALL ae07 0050 ld $50 ;11bb 'PrintChar' ae08 0059 ld $59 ;11bd LDI ae09 0030 ld $30 ae0a 002b ld $2b ;11bf STW ae0b 0044 ld $44 ;11bf 'k' ae0c 0063 ld $63 ;11c1 POP ae0d 00ff ld $ff ;11c2 RET ae0e 002b ld $2b ;11c3 STW ae0f 0074 ld $74 ;11c3 'PrintDigit' ae10 00cd ld $cd ;11c5 DEF ae11 00f1 ld $f1 ae12 0075 ld $75 ;11c7 PUSH ae13 0059 ld $59 ;11c8 LDI ae14 0000 ld $00 ae15 002b ld $2b ;11ca STW ae16 0044 ld $44 ;11ca 'k' ae17 00cf ld $cf ;11cc CALL ae18 0038 ld $38 ;11cc 'Keyword' ae19 003c ld $3c ;11ce '<' ae1a 0000 ld $00 ;11cf 0 ae1b 0035 ld $35 ;11d0 BCC ae1c 003f ld $3f ;11d1 EQ ae1d 00d3 ld $d3 ae1e 0093 ld $93 ;11d3 INC ae1f 0044 ld $44 ;11d3 'k' ae20 00cf ld $cf ;11d5 CALL ae21 0038 ld $38 ;11d5 'Keyword' ae22 003e ld $3e ;11d7 '>' ae23 0000 ld $00 ;11d8 0 ae24 0035 ld $35 ;11d9 BCC ae25 003f ld $3f ;11da EQ ae26 00e0 ld $e0 ae27 0021 ld $21 ;11dc LDW ae28 0044 ld $44 ;11dc 'k' ae29 00e3 ld $e3 ;11de ADDI ae2a 0004 ld $04 ae2b 002b ld $2b ;11e0 STW ae2c 0044 ld $44 ;11e0 'k' ae2d 00cf ld $cf ;11e2 CALL ae2e 0038 ld $38 ;11e2 'Keyword' ae2f 003d ld $3d ;11e4 '=' ae30 0000 ld $00 ;11e5 0 ae31 0035 ld $35 ;11e6 BCC ae32 003f ld $3f ;11e7 EQ ae33 00ed ld $ed ae34 0021 ld $21 ;11e9 LDW ae35 0044 ld $44 ;11e9 'k' ae36 00e3 ld $e3 ;11eb ADDI ae37 0002 ld $02 ae38 002b ld $2b ;11ed STW ae39 0044 ld $44 ;11ed 'k' ae3a 0021 ld $21 ;11ef LDW ae3b 0044 ld $44 ;11ef 'k' ae3c 0063 ld $63 ;11f1 POP ae3d 00ff ld $ff ;11f2 RET ae3e 002b ld $2b ;11f3 STW ae3f 0064 ld $64 ;11f3 'RelOp' ae40 0011 ld $11 ;11f5 LDWI ae41 00a0 ld $a0 ae42 001b ld $1b ae43 00f6 ld $f6 ;11f8 DEEK ae44 002b ld $2b ;11f9 STW ae45 0048 ld $48 ;11f9 'End' ae46 00e3 ld $e3 ;11fb ADDI ae47 0002 ld $02 ae48 0093 ld $93 ;11fd INC ae49 001b ld $1b ae4a 00ff ld $ff ;11ff RET ae4b 0012 ld $12 ;| RAM segment address (high byte first) ae4c 00a0 ld $a0 ;| ae4d 005d ld $5d ;| Length (1..256) ae4e 002b ld $2b ;12a0 STW ae4f 0036 ld $36 ;12a0 'Active' ae50 00cd ld $cd ;12a2 DEF ae51 00f7 ld $f7 ae52 0021 ld $21 ;12a4 LDW ae53 001a ld $1a ae54 002b ld $2b ;12a6 STW ae55 004e ld $4e ;12a6 'tmp' ae56 001a ld $1a ;12a8 LD ae57 0030 ld $30 ;12a8 'Pos' ae58 00e6 ld $e6 ;12aa SUBI ae59 0002 ld $02 ae5a 0035 ld $35 ;12ac BCC ae5b 0056 ld $56 ;12ad LE ae5c 00af ld $af ae5d 00cf ld $cf ;12af CALL ae5e 005a ld $5a ;12af 'Newline' ae5f 0059 ld $59 ;12b1 LDI ae60 0000 ld $00 ae61 005e ld $5e ;12b3 ST ae62 001c ld $1c ae63 0021 ld $21 ;12b5 LDW ae64 004e ld $4e ;12b5 'tmp' ae65 00ad ld $ad ;12b7 PEEK ae66 0035 ld $35 ;12b8 BCC ae67 003f ld $3f ;12b9 EQ ae68 00e3 ld $e3 ae69 0059 ld $59 ;12bb LDI ae6a 003f ld $3f ae6b 00cf ld $cf ;12bd CALL ae6c 0050 ld $50 ;12bd 'PrintChar' ae6d 0021 ld $21 ;12bf LDW ae6e 004e ld $4e ;12bf 'tmp' ae6f 00ad ld $ad ;12c1 PEEK ae70 0093 ld $93 ;12c2 INC ae71 004e ld $4e ;12c2 'tmp' ae72 0035 ld $35 ;12c4 BCC ae73 0072 ld $72 ;12c5 NE ae74 00bb ld $bb ae75 00cf ld $cf ;12c7 CALL ae76 0052 ld $52 ;12c7 'PrintS' ae77 0020 ld $20 ;12c9 ' ' ae78 0065 ld $65 ;12ca 'e' ae79 0072 ld $72 ;12cb 'r' ae7a 0072 ld $72 ;12cc 'r' ae7b 006f ld $6f ;12cd 'o' ae7c 0072 ld $72 ;12ce 'r' ae7d 0000 ld $00 ;12cf 0 ae7e 00e6 ld $e6 ;12d0 SUBI ae7f 0020 ld $20 ae80 00f8 ld $f8 ;12d2 ANDW ae81 0036 ld $36 ;12d2 'Active' ae82 00f6 ld $f6 ;12d4 DEEK ae83 0035 ld $35 ;12d5 BCC ae84 003f ld $3f ;12d6 EQ ae85 00e1 ld $e1 ae86 002b ld $2b ;12d8 STW ae87 003c ld $3c ;12d8 'Value' ae88 00cf ld $cf ;12da CALL ae89 0052 ld $52 ;12da 'PrintS' ae8a 0020 ld $20 ;12dc ' ' ae8b 0069 ld $69 ;12dd 'i' ae8c 006e ld $6e ;12de 'n' ae8d 0020 ld $20 ;12df ' ' ae8e 0000 ld $00 ;12e0 0 ae8f 00cf ld $cf ;12e1 CALL ae90 0076 ld $76 ;12e1 'PrintValue' ae91 00cf ld $cf ;12e3 CALL ae92 005a ld $5a ;12e3 'Newline' ae93 00cf ld $cf ;12e5 CALL ae94 0052 ld $52 ;12e5 'PrintS' ae95 004f ld $4f ;12e7 'O' ae96 006b ld $6b ;12e8 'k' ae97 0000 ld $00 ;12e9 0 ae98 00cf ld $cf ;12ea CALL ae99 005a ld $5a ;12ea 'Newline' ae9a 0059 ld $59 ;12ec LDI ae9b 0000 ld $00 ae9c 00cf ld $cf ;12ee CALL ae9d 005c ld $5c ;12ee 'GetLine' ae9e 0035 ld $35 ;12f0 BCC ae9f 003f ld $3f ;12f1 EQ aea0 00ea ld $ea aea1 00cf ld $cf ;12f3 CALL aea2 0072 ld $72 ;12f3 'Insert' aea3 0035 ld $35 ;12f5 BCC aea4 004d ld $4d ;12f6 GT aea5 00ea ld $ea aea6 0011 ld $11 ;12f8 785 aea7 002b ld $2b ;12f9 STW aea8 0056 ld $56 ;12f9 'Prompt' aea9 00cf ld $cf ;12fb CALL aeaa 0066 ld $66 ;12fb 'Statements' aeab 0013 ld $13 ;| RAM segment address (high byte first) aeac 00a0 ld $a0 ;| aead 0059 ld $59 ;| Length (1..256) aeae 0021 ld $21 ;13a0 LDW aeaf 0036 ld $36 ;13a0 'Active' aeb0 00ad ld $ad ;13a2 PEEK aeb1 0035 ld $35 ;13a3 BCC aeb2 003f ld $3f ;13a4 EQ aeb3 00f3 ld $f3 aeb4 008c ld $8c ;13a6 XORI aeb5 003a ld $3a aeb6 0035 ld $35 ;13a8 BCC aeb7 003f ld $3f ;13a9 EQ aeb8 00f3 ld $f3 aeb9 0021 ld $21 ;13ab LDW aeba 0036 ld $36 ;13ab 'Active' aebb 00ad ld $ad ;13ad PEEK aebc 0035 ld $35 ;13ae BCC aebd 003f ld $3f ;13af EQ aebe 00f1 ld $f1 aebf 008c ld $8c ;13b1 XORI aec0 003a ld $3a aec1 0035 ld $35 ;13b3 BCC aec2 003f ld $3f ;13b4 EQ aec3 00f1 ld $f1 aec4 008c ld $8c ;13b6 XORI aec5 0018 ld $18 aec6 0035 ld $35 ;13b8 BCC aec7 0072 ld $72 ;13b9 NE aec8 00ce ld $ce aec9 0093 ld $93 ;13bb INC aeca 0036 ld $36 ;13bb 'Active' aecb 00cf ld $cf ;13bd CALL aecc 0038 ld $38 ;13bd 'Keyword' aecd 0022 ld $22 ;13bf 34 aece 0000 ld $00 ;13c0 0 aecf 0035 ld $35 ;13c1 BCC aed0 0072 ld $72 ;13c2 NE aed1 00cc ld $cc aed2 0021 ld $21 ;13c4 LDW aed3 0036 ld $36 ;13c4 'Active' aed4 00ad ld $ad ;13c6 PEEK aed5 0035 ld $35 ;13c7 BCC aed6 003f ld $3f ;13c8 EQ aed7 00cc ld $cc aed8 00cf ld $cf ;13ca CALL aed9 0050 ld $50 ;13ca 'PrintChar' aeda 0090 ld $90 ;13cc BRA aedb 00b9 ld $b9 aedc 0090 ld $90 ;13ce BRA aedd 00d2 ld $d2 aede 00cf ld $cf ;13d0 CALL aedf 003a ld $3a ;13d0 'Expression' aee0 00cf ld $cf ;13d2 CALL aee1 0076 ld $76 ;13d2 'PrintValue' aee2 00cf ld $cf ;13d4 CALL aee3 0038 ld $38 ;13d4 'Keyword' aee4 002c ld $2c ;13d6 44 aee5 0000 ld $00 ;13d7 0 aee6 0035 ld $35 ;13d8 BCC aee7 003f ld $3f ;13d9 EQ aee8 00e8 ld $e8 aee9 0059 ld $59 ;13db LDI aeea 0020 ld $20 aeeb 00cf ld $cf ;13dd CALL aeec 0050 ld $50 ;13dd 'PrintChar' aeed 001a ld $1a ;13df LD aeee 0030 ld $30 ;13df 'Pos' aeef 00e6 ld $e6 ;13e1 SUBI aef0 0002 ld $02 aef1 0082 ld $82 ;13e3 ANDI aef2 0007 ld $07 aef3 0035 ld $35 ;13e5 BCC aef4 0072 ld $72 ;13e6 NE aef5 00d9 ld $d9 aef6 0090 ld $90 ;13e8 BRA aef7 00a9 ld $a9 aef8 00cf ld $cf ;13ea CALL aef9 0038 ld $38 ;13ea 'Keyword' aefa 003b ld $3b ;13ec 59 aefb fe00 bra ac ;+-----------------------------------+ aefc fcfd bra $aefd ;| | aefd 1418 ld $18,y ;| Trampoline for page $ae00 lookups | aefe e006 jmp y,$06 ;| | aeff c218 st [$18] ;+-----------------------------------+ af00 0000 ld $00 ;13ed 0 af01 0035 ld $35 ;13ee BCC af02 0072 ld $72 ;13ef NE af03 00a9 ld $a9 af04 00cf ld $cf ;13f1 CALL af05 005a ld $5a ;13f1 'Newline' af06 0090 ld $90 ;13f3 BRA af07 00f5 ld $f5 af08 00cf ld $cf ;13f5 CALL af09 005a ld $5a ;13f5 'Newline' af0a 00cf ld $cf ;13f7 CALL af0b 0062 ld $62 ;13f7 'EndOfLine' af0c 0014 ld $14 ;| RAM segment address (high byte first) af0d 00a0 ld $a0 ;| af0e 005f ld $5f ;| Length (1..256) af0f 00cf ld $cf ;14a0 CALL af10 0038 ld $38 ;14a0 'Keyword' af11 003f ld $3f ;14a2 '?' af12 0000 ld $00 ;14a3 0 af13 0035 ld $35 ;14a4 BCC af14 0072 ld $72 ;14a5 NE af15 00ad ld $ad af16 00cf ld $cf ;14a7 CALL af17 0038 ld $38 ;14a7 'Keyword' af18 0070 ld $70 ;14a9 'p' af19 0072 ld $72 ;14aa 'r' af1a 0069 ld $69 ;14ab 'i' af1b 006e ld $6e ;14ac 'n' af1c 0074 ld $74 ;14ad 't' af1d 0000 ld $00 ;14ae 0 af1e 0035 ld $35 ;14af BCC af1f 003f ld $3f ;14b0 EQ af20 00b5 ld $b5 af21 0011 ld $11 ;14b2 LDWI af22 00a0 ld $a0 af23 0013 ld $13 af24 00cf ld $cf ;14b5 CALL af25 0018 ld $18 ;14b5 vAC af26 00cf ld $cf ;14b7 CALL af27 0038 ld $38 ;14b7 'Keyword' af28 0069 ld $69 ;14b9 'i' af29 006e ld $6e ;14ba 'n' af2a 0070 ld $70 ;14bb 'p' af2b 0075 ld $75 ;14bc 'u' af2c 0074 ld $74 ;14bd 't' af2d 0000 ld $00 ;14be 0 af2e 0035 ld $35 ;14bf BCC af2f 003f ld $3f ;14c0 EQ af30 00f8 ld $f8 af31 0021 ld $21 ;14c2 LDW af32 0036 ld $36 ;14c2 'Active' af33 00ad ld $ad ;14c4 PEEK af34 00cf ld $cf ;14c5 CALL af35 0050 ld $50 ;14c5 'PrintChar' af36 00cf ld $cf ;14c7 CALL af37 0042 ld $42 ;14c7 'Variable' af38 002b ld $2b ;14c9 STW af39 0068 ld $68 ;14c9 'Address' af3a 00cf ld $cf ;14cb CALL af3b 0034 ld $34 ;14cb 'Spaces' af3c 00df ld $df ;14cd ALLOC af3d 00fc ld $fc af3e 0021 ld $21 ;14cf LDW af3f 0036 ld $36 ;14cf 'Active' af40 00ec ld $ec ;14d1 STLW af41 0002 ld $02 af42 0088 ld $88 ;14d3 ORI af43 001f ld $1f af44 00e6 ld $e6 ;14d5 SUBI af45 001f ld $1f af46 00f6 ld $f6 ;14d7 DEEK af47 00ec ld $ec ;14d8 STLW af48 0000 ld $00 af49 0059 ld $59 ;14da LDI af4a 003f ld $3f af4b 00cf ld $cf ;14dc CALL af4c 0050 ld $50 ;14dc 'PrintChar' af4d 00cf ld $cf ;14de CALL af4e 005a ld $5a ;14de 'Newline' af4f 00ee ld $ee ;14e0 LDLW af50 0000 ld $00 af51 00cf ld $cf ;14e2 CALL af52 005c ld $5c ;14e2 'GetLine' af53 0035 ld $35 ;14e4 BCC af54 003f ld $3f ;14e5 EQ af55 00d8 ld $d8 af56 00cf ld $cf ;14e7 CALL af57 003a ld $3a ;14e7 'Expression' af58 00f3 ld $f3 ;14e9 DOKE af59 0068 ld $68 ;14e9 'Address' af5a 00ee ld $ee ;14eb LDLW af5b 0002 ld $02 af5c 002b ld $2b ;14ed STW af5d 0036 ld $36 ;14ed 'Active' af5e 00df ld $df ;14ef ALLOC af5f 0004 ld $04 af60 00cf ld $cf ;14f1 CALL af61 0038 ld $38 ;14f1 'Keyword' af62 002c ld $2c ;14f3 ',' af63 0000 ld $00 ;14f4 0 af64 0035 ld $35 ;14f5 BCC af65 0072 ld $72 ;14f6 NE af66 00c0 ld $c0 af67 00cf ld $cf ;14f8 CALL af68 0062 ld $62 ;14f8 'EndOfLine' af69 0011 ld $11 ;14fa LDWI af6a 00a0 ld $a0 af6b 0015 ld $15 af6c 00cf ld $cf ;14fd CALL af6d 0018 ld $18 ;14fd vAC af6e 0015 ld $15 ;| RAM segment address (high byte first) af6f 00a0 ld $a0 ;| af70 0058 ld $58 ;| Length (1..256) af71 00cf ld $cf ;15a0 CALL af72 0038 ld $38 ;15a0 'Keyword' af73 0063 ld $63 ;15a2 'c' af74 006c ld $6c ;15a3 'l' af75 0073 ld $73 ;15a4 's' af76 0000 ld $00 ;15a5 0 af77 0035 ld $35 ;15a6 BCC af78 003f ld $3f ;15a7 EQ af79 00cb ld $cb af7a 0011 ld $11 ;15a9 LDWI af7b 0000 ld $00 af7c 0001 ld $01 af7d 00ad ld $ad ;15ac PEEK af7e 005e ld $5e ;15ad ST af7f 0031 ld $31 ;15ad 'Pos'+1 af80 0059 ld $59 ;15af LDI af81 000e ld $0e af82 002b ld $2b ;15b1 STW af83 006a ld $6a ;15b1 'j' af84 00cf ld $cf ;15b3 CALL af85 005a ld $5a ;15b3 'Newline' af86 0021 ld $21 ;15b5 LDW af87 006a ld $6a ;15b5 'j' af88 00e6 ld $e6 ;15b7 SUBI af89 0001 ld $01 af8a 0035 ld $35 ;15b9 BCC af8b 004d ld $4d ;15ba GT af8c 00af ld $af af8d 00cf ld $cf ;15bc CALL af8e 005a ld $5a ;15bc 'Newline' af8f 0011 ld $11 ;15be LDWI af90 0000 ld $00 af91 0001 ld $01 af92 00ad ld $ad ;15c1 PEEK af93 008c ld $8c ;15c2 XORI af94 0008 ld $08 af95 0035 ld $35 ;15c4 BCC af96 0072 ld $72 ;15c5 NE af97 00ba ld $ba af98 0059 ld $59 ;15c7 LDI af99 0008 ld $08 af9a 005e ld $5e ;15c9 ST af9b 0031 ld $31 ;15c9 'Pos'+1 af9c 00cf ld $cf ;15cb CALL af9d 0062 ld $62 ;15cb 'EndOfLine' af9e 00cf ld $cf ;15cd CALL af9f 0038 ld $38 ;15cd 'Keyword' afa0 006c ld $6c ;15cf 'l' afa1 0069 ld $69 ;15d0 'i' afa2 0073 ld $73 ;15d1 's' afa3 0074 ld $74 ;15d2 't' afa4 0000 ld $00 ;15d3 0 afa5 0035 ld $35 ;15d4 BCC afa6 003f ld $3f ;15d5 EQ afa7 00d9 ld $d9 afa8 00cf ld $cf ;15d7 CALL afa9 007e ld $7e ;15d7 'List' afaa 00cf ld $cf ;15d9 CALL afab 0062 ld $62 ;15d9 'EndOfLine' afac 00cf ld $cf ;15db CALL afad 0038 ld $38 ;15db 'Keyword' afae 0073 ld $73 ;15dd 's' afaf 0061 ld $61 ;15de 'a' afb0 0076 ld $76 ;15df 'v' afb1 0065 ld $65 ;15e0 'e' afb2 0000 ld $00 ;15e1 0 afb3 0035 ld $35 ;15e2 BCC afb4 003f ld $3f ;15e3 EQ afb5 00f1 ld $f1 afb6 001a ld $1a ;15e5 LD afb7 0021 ld $21 afb8 00e6 ld $e6 ;15e7 SUBI afb9 0028 ld $28 afba 0035 ld $35 ;15e9 BCC afbb 0053 ld $53 ;15ea GE afbc 00ec ld $ec afbd 00cf ld $cf ;15ec CALL afbe 0046 ld $46 ;15ec 'ValueError' afbf 0011 ld $11 ;15ee LDWI afc0 00a0 ld $a0 afc1 0017 ld $17 afc2 00cf ld $cf ;15f1 CALL afc3 0018 ld $18 ;15f1 vAC afc4 0011 ld $11 ;15f3 LDWI afc5 00eb ld $eb afc6 000d ld $0d afc7 00cf ld $cf ;15f6 CALL afc8 0018 ld $18 ;15f6 vAC afc9 0016 ld $16 ;| RAM segment address (high byte first) afca 00a0 ld $a0 ;| afcb 0060 ld $60 ;| Length (1..256) afcc 00cf ld $cf ;16a0 CALL afcd 0038 ld $38 ;16a0 'Keyword' afce 006e ld $6e ;16a2 'n' afcf 0065 ld $65 ;16a3 'e' afd0 0077 ld $77 ;16a4 'w' afd1 0000 ld $00 ;16a5 0 afd2 0035 ld $35 ;16a6 BCC afd3 003f ld $3f ;16a7 EQ afd4 00b0 ld $b0 afd5 00cf ld $cf ;16a9 CALL afd6 0078 ld $78 ;16a9 'Clear' afd7 002b ld $2b ;16ab STW afd8 0048 ld $48 ;16ab 'End' afd9 00cf ld $cf ;16ad CALL afda 007e ld $7e ;16ad 'List' afdb 00cf ld $cf ;16af CALL afdc 0056 ld $56 ;16af 'Prompt' afdd 0000 ld $00 ;16b1 0 afde 00cf ld $cf ;16b2 CALL afdf 0038 ld $38 ;16b2 'Keyword' afe0 006c ld $6c ;16b4 'l' afe1 0065 ld $65 ;16b5 'e' afe2 0074 ld $74 ;16b6 't' afe3 0000 ld $00 ;16b7 0 afe4 00cf ld $cf ;16b8 CALL afe5 0042 ld $42 ;16b8 'Variable' afe6 002b ld $2b ;16ba STW afe7 0068 ld $68 ;16ba 'Address' afe8 00cf ld $cf ;16bc CALL afe9 0034 ld $34 ;16bc 'Spaces' afea 00cf ld $cf ;16be CALL afeb 0038 ld $38 ;16be 'Keyword' afec 0028 ld $28 ;16c0 40 afed 0000 ld $00 ;16c1 0 afee 0035 ld $35 ;16c2 BCC afef 003f ld $3f ;16c3 EQ aff0 00ef ld $ef aff1 00cf ld $cf ;16c5 CALL aff2 003a ld $3a ;16c5 'Expression' aff3 0035 ld $35 ;16c7 BCC aff4 0053 ld $53 ;16c8 GE aff5 00ca ld $ca aff6 00cf ld $cf ;16ca CALL aff7 0046 ld $46 ;16ca 'ValueError' aff8 001a ld $1a ;16cc LD aff9 0069 ld $69 ;16cc 'Address'+1 affa 00b8 ld $b8 ;16ce SUBW affb fe00 bra ac ;+-----------------------------------+ affc fcfd bra $affd ;| | affd 1418 ld $18,y ;| Trampoline for page $af00 lookups | affe e006 jmp y,$06 ;| | afff c218 st [$18] ;+-----------------------------------+ b000 003c ld $3c ;16ce 'Value' b001 00e6 ld $e6 ;16d0 SUBI b002 0002 ld $02 b003 005e ld $5e ;16d2 ST b004 0069 ld $69 ;16d2 'Address'+1 b005 0021 ld $21 ;16d4 LDW b006 0048 ld $48 ;16d4 'End' b007 00fc ld $fc ;16d6 XORW b008 0068 ld $68 ;16d6 'Address' b009 0035 ld $35 ;16d8 BCC b00a 0053 ld $53 ;16d9 GE b00b 00dd ld $dd b00c 0021 ld $21 ;16db LDW b00d 0048 ld $48 ;16db 'End' b00e 0090 ld $90 ;16dd BRA b00f 00e1 ld $e1 b010 0021 ld $21 ;16df LDW b011 0068 ld $68 ;16df 'Address' b012 00b8 ld $b8 ;16e1 SUBW b013 0048 ld $48 ;16e1 'End' b014 0035 ld $35 ;16e3 BCC b015 0053 ld $53 ;16e4 GE b016 00e6 ld $e6 b017 00cf ld $cf ;16e6 CALL b018 0046 ld $46 ;16e6 'ValueError' b019 00cf ld $cf ;16e8 CALL b01a 0038 ld $38 ;16e8 'Keyword' b01b 0029 ld $29 ;16ea 41 b01c 0000 ld $00 ;16eb 0 b01d 0035 ld $35 ;16ec BCC b01e 0072 ld $72 ;16ed NE b01f 00ef ld $ef b020 00cf ld $cf ;16ef CALL b021 004a ld $4a ;16ef 'SyntaxError' b022 00cf ld $cf ;16f1 CALL b023 0038 ld $38 ;16f1 'Keyword' b024 003d ld $3d ;16f3 '=' b025 0000 ld $00 ;16f4 0 b026 0035 ld $35 ;16f5 BCC b027 0072 ld $72 ;16f6 NE b028 00f8 ld $f8 b029 00cf ld $cf ;16f8 CALL b02a 004a ld $4a ;16f8 'SyntaxError' b02b 00cf ld $cf ;16fa CALL b02c 003a ld $3a ;16fa 'Expression' b02d 00f3 ld $f3 ;16fc DOKE b02e 0068 ld $68 ;16fc 'Address' b02f 00cf ld $cf ;16fe CALL b030 0062 ld $62 ;16fe 'EndOfLine' b031 0017 ld $17 ;| RAM segment address (high byte first) b032 00a0 ld $a0 ;| b033 005f ld $5f ;| Length (1..256) b034 0021 ld $21 ;17a0 LDW b035 0000 ld $00 b036 005e ld $5e ;17a2 ST b037 0027 ld $27 b038 00e6 ld $e6 ;17a4 SUBI b039 0060 ld $60 b03a 002b ld $2b ;17a6 STW b03b 0068 ld $68 ;17a6 'Address' b03c 00cd ld $cd ;17a8 DEF b03d 00e8 ld $e8 b03e 0075 ld $75 ;17aa PUSH b03f 002b ld $2b ;17ab STW b040 0044 ld $44 ;17ab 'k' b041 001a ld $1a ;17ad LD b042 0027 ld $27 b043 00e3 ld $e3 ;17af ADDI b044 0008 ld $08 b045 005e ld $5e ;17b1 ST b046 0027 ld $27 b047 001a ld $1a ;17b3 LD b048 0030 ld $30 ;17b3 'Pos' b049 00e6 ld $e6 ;17b5 SUBI b04a 0006 ld $06 b04b 0035 ld $35 ;17b7 BCC b04c 0053 ld $53 ;17b8 GE b04d 00de ld $de b04e 0059 ld $59 ;17ba LDI b04f 000a ld $0a b050 00f0 ld $f0 ;17bc POKE b051 0068 ld $68 ;17bc 'Address' b052 0021 ld $21 ;17be LDW b053 0068 ld $68 ;17be 'Address' b054 0088 ld $88 ;17c0 ORI b055 001f ld $1f b056 008c ld $8c ;17c2 XORI b057 001f ld $1f b058 002b ld $2b ;17c4 STW b059 0068 ld $68 ;17c4 'Address' b05a 002b ld $2b ;17c6 STW b05b 0024 ld $24 b05c 0059 ld $59 ;17c8 LDI b05d 0001 ld $01 b05e 005e ld $5e ;17ca ST b05f 0026 ld $26 b060 0011 ld $11 ;17cc LDWI b061 0006 ld $06 b062 000b ld $0b b063 002b ld $2b ;17cf STW b064 0022 ld $22 ;17cf '_sysFn' b065 00b4 ld $b4 ;17d1 SYS b066 00e7 ld $e7 b067 0035 ld $35 ;17d3 BCC b068 003f ld $3f ;17d4 EQ b069 00da ld $da b06a 0059 ld $59 ;17d6 LDI b06b 0003 ld $03 b06c 005e ld $5e ;17d8 ST b06d 000f ld $0f b06e 00cf ld $cf ;17da CALL b06f 0058 ld $58 ;17da 'TestBreak' b070 0059 ld $59 ;17dc LDI b071 0008 ld $08 b072 005e ld $5e ;17de ST b073 0027 ld $27 b074 0021 ld $21 ;17e0 LDW b075 0044 ld $44 ;17e0 'k' b076 00f0 ld $f0 ;17e2 POKE b077 0068 ld $68 ;17e2 'Address' b078 0093 ld $93 ;17e4 INC b079 0068 ld $68 ;17e4 'Address' b07a 00cf ld $cf ;17e6 CALL b07b 0054 ld $54 ;17e6 'PrintCharScreen' b07c 0063 ld $63 ;17e8 POP b07d 00ff ld $ff ;17e9 RET b07e 002b ld $2b ;17ea STW b07f 0050 ld $50 ;17ea 'PrintChar' b080 001a ld $1a ;17ec LD b081 000f ld $0f b082 008c ld $8c ;17ee XORI b083 00ff ld $ff b084 0035 ld $35 ;17f0 BCC b085 0072 ld $72 ;17f1 NE b086 00ea ld $ea b087 00cf ld $cf ;17f3 CALL b088 007e ld $7e ;17f3 'List' b089 0059 ld $59 ;17f5 LDI b08a 0020 ld $20 b08b 00cf ld $cf ;17f7 CALL b08c 0050 ld $50 ;17f7 'PrintChar' b08d 0021 ld $21 ;17f9 LDW b08e 0054 ld $54 ;17f9 'PrintCharScreen' b08f 002b ld $2b ;17fb STW b090 0050 ld $50 ;17fb 'PrintChar' b091 00cf ld $cf ;17fd CALL b092 0062 ld $62 ;17fd 'EndOfLine' b093 0018 ld $18 ;| RAM segment address (high byte first) b094 00a0 ld $a0 ;| b095 0060 ld $60 ;| Length (1..256) b096 0011 ld $11 ;18a0 LDWI b097 00e1 ld $e1 b098 0004 ld $04 b099 002b ld $2b ;18a3 STW b09a 0022 ld $22 ;18a3 '_sysFn' b09b 0059 ld $59 ;18a5 LDI b09c 0000 ld $00 b09d 005e ld $5e ;18a7 ST b09e 0030 ld $30 ;18a7 'Pos' b09f 005e ld $5e ;18a9 ST b0a0 0026 ld $26 b0a1 001a ld $1a ;18ab LD b0a2 0031 ld $31 ;18ab 'Pos'+1 b0a3 00e3 ld $e3 ;18ad ADDI b0a4 000f ld $0f b0a5 0082 ld $82 ;18af ANDI b0a6 0078 ld $78 b0a7 0035 ld $35 ;18b1 BCC b0a8 0072 ld $72 ;18b2 NE b0a9 00b4 ld $b4 b0aa 0059 ld $59 ;18b4 LDI b0ab 0008 ld $08 b0ac 005e ld $5e ;18b6 ST b0ad 0031 ld $31 ;18b6 'Pos'+1 b0ae 0021 ld $21 ;18b8 LDW b0af 002a ld $2a b0b0 002b ld $2b ;18ba STW b0b1 0024 ld $24 b0b2 0021 ld $21 ;18bc LDW b0b3 0030 ld $30 ;18bc 'Pos' b0b4 002b ld $2b ;18be STW b0b5 0028 ld $28 b0b6 00b4 ld $b4 ;18c0 SYS b0b7 00cc ld $cc b0b8 0093 ld $93 ;18c2 INC b0b9 0028 ld $28 b0ba 00b4 ld $b4 ;18c4 SYS b0bb 00cc ld $cc b0bc 0093 ld $93 ;18c6 INC b0bd 0028 ld $28 b0be 001a ld $1a ;18c8 LD b0bf 0028 ld $28 b0c0 008c ld $8c ;18ca XORI b0c1 00a0 ld $a0 b0c2 0035 ld $35 ;18cc BCC b0c3 0072 ld $72 ;18cd NE b0c4 00be ld $be b0c5 0011 ld $11 ;18cf LDWI b0c6 0000 ld $00 b0c7 0001 ld $01 b0c8 002b ld $2b ;18d2 STW b0c9 0040 ld $40 ;18d2 'i' b0ca 0088 ld $88 ;18d4 ORI b0cb 00ff ld $ff b0cc 00f6 ld $f6 ;18d6 DEEK b0cd 00b8 ld $b8 ;18d7 SUBW b0ce 0030 ld $30 ;18d7 'Pos' b0cf 001a ld $1a ;18d9 LD b0d0 0019 ld $19 b0d1 0035 ld $35 ;18db BCC b0d2 0072 ld $72 ;18dc NE b0d3 00f9 ld $f9 b0d4 0021 ld $21 ;18de LDW b0d5 0040 ld $40 ;18de 'i' b0d6 00e3 ld $e3 ;18e0 ADDI b0d7 0010 ld $10 b0d8 002b ld $2b ;18e2 STW b0d9 0024 ld $24 ;18e2 '_sysArgs0' b0da 00ad ld $ad ;18e4 PEEK b0db 005e ld $5e ;18e5 ST b0dc 0026 ld $26 b0dd 0021 ld $21 ;18e7 LDW b0de 0040 ld $40 ;18e7 'i' b0df 00ad ld $ad ;18e9 PEEK b0e0 00f0 ld $f0 ;18ea POKE b0e1 0024 ld $24 ;18ea '_sysArgs0' b0e2 001a ld $1a ;18ec LD b0e3 0026 ld $26 b0e4 00f0 ld $f0 ;18ee POKE b0e5 0040 ld $40 ;18ee 'i' b0e6 0093 ld $93 ;18f0 INC b0e7 0040 ld $40 ;18f0 'i' b0e8 0093 ld $93 ;18f2 INC b0e9 0040 ld $40 ;18f2 'i' b0ea 001a ld $1a ;18f4 LD b0eb 0040 ld $40 ;18f4 'i' b0ec 008c ld $8c ;18f6 XORI b0ed 00e0 ld $e0 b0ee 0035 ld $35 ;18f8 BCC b0ef 0072 ld $72 ;18f9 NE b0f0 00dc ld $dc b0f1 0093 ld $93 ;18fb INC b0f2 0030 ld $30 ;18fb 'Pos' b0f3 0093 ld $93 ;18fd INC b0f4 0030 ld $30 ;18fd 'Pos' b0f5 00ff ld $ff ;18ff RET b0f6 0019 ld $19 ;| RAM segment address (high byte first) b0f7 00a0 ld $a0 ;| b0f8 0060 ld $60 ;| Length (1..256) b0f9 0059 ld $59 ;19a0 LDI b0fa 0001 ld $01 b0fb fe00 bra ac ;+-----------------------------------+ b0fc fcfd bra $b0fd ;| | b0fd 1418 ld $18,y ;| Trampoline for page $b000 lookups | b0fe e006 jmp y,$06 ;| | b0ff c218 st [$18] ;+-----------------------------------+ b100 002b ld $2b ;19a2 STW b101 0024 ld $24 b102 0011 ld $11 ;19a4 LDWI b103 0000 ld $00 b104 0001 ld $01 b105 002b ld $2b ;19a7 STW b106 0026 ld $26 b107 00cf ld $cf ;19a9 CALL b108 003a ld $3a ;19a9 'Expression' b109 0075 ld $75 ;19ab PUSH b10a 00ec ld $ec ;19ac STLW b10b 0000 ld $00 b10c 00cf ld $cf ;19ae CALL b10d 0038 ld $38 ;19ae 'Keyword' b10e 002c ld $2c ;19b0 ',' b10f 0000 ld $00 ;19b1 0 b110 0035 ld $35 ;19b2 BCC b111 0072 ld $72 ;19b3 NE b112 00b5 ld $b5 b113 00cf ld $cf ;19b5 CALL b114 004a ld $4a ;19b5 'SyntaxError' b115 00cf ld $cf ;19b7 CALL b116 003a ld $3a ;19b7 'Expression' b117 002b ld $2b ;19b9 STW b118 006a ld $6a ;19b9 'j' b119 0035 ld $35 ;19bb BCC b11a 0053 ld $53 ;19bc GE b11b 00c8 ld $c8 b11c 0059 ld $59 ;19be LDI b11d 0000 ld $00 b11e 00b8 ld $b8 ;19c0 952 b11f 0026 ld $26 ;19c1 38 b120 002b ld $2b ;19c2 STW b121 0026 ld $26 b122 0059 ld $59 ;19c4 LDI b123 0000 ld $00 b124 00b8 ld $b8 ;19c6 SUBW b125 006a ld $6a ;19c6 'j' b126 002b ld $2b ;19c8 STW b127 006a ld $6a ;19c8 'j' b128 00ee ld $ee ;19ca LDLW b129 0000 ld $00 b12a 002b ld $2b ;19cc STW b12b 0040 ld $40 ;19cc 'i' b12c 0035 ld $35 ;19ce BCC b12d 0053 ld $53 ;19cf GE b12e 00db ld $db b12f 0059 ld $59 ;19d1 LDI b130 0000 ld $00 b131 00b8 ld $b8 ;19d3 952 b132 0024 ld $24 ;19d4 36 b133 002b ld $2b ;19d5 STW b134 0024 ld $24 b135 0059 ld $59 ;19d7 LDI b136 0000 ld $00 b137 00b8 ld $b8 ;19d9 SUBW b138 0040 ld $40 ;19d9 'i' b139 002b ld $2b ;19db STW b13a 0040 ld $40 ;19db 'i' b13b 00b8 ld $b8 ;19dd SUBW b13c 006a ld $6a ;19dd 'j' b13d 0035 ld $35 ;19df BCC b13e 0053 ld $53 ;19e0 GE b13f 00f8 ld $f8 b140 0021 ld $21 ;19e2 LDW b141 0040 ld $40 ;19e2 'i' b142 002b ld $2b ;19e4 STW b143 004e ld $4e ;19e4 'tmp' b144 0021 ld $21 ;19e6 LDW b145 006a ld $6a ;19e6 'j' b146 002b ld $2b ;19e8 STW b147 0040 ld $40 ;19e8 'i' b148 0021 ld $21 ;19ea LDW b149 004e ld $4e ;19ea 'tmp' b14a 002b ld $2b ;19ec STW b14b 006a ld $6a ;19ec 'j' b14c 0021 ld $21 ;19ee LDW b14d 0024 ld $24 b14e 002b ld $2b ;19f0 STW b14f 004e ld $4e ;19f0 'tmp' b150 0021 ld $21 ;19f2 LDW b151 0026 ld $26 b152 002b ld $2b ;19f4 STW b153 0024 ld $24 b154 0021 ld $21 ;19f6 LDW b155 004e ld $4e ;19f6 'tmp' b156 002b ld $2b ;19f8 STW b157 0026 ld $26 b158 0063 ld $63 ;19fa POP b159 0011 ld $11 ;19fb LDWI b15a 00a0 ld $a0 b15b 001a ld $1a b15c 00cf ld $cf ;19fe CALL b15d 0018 ld $18 ;19fe vAC b15e 001a ld $1a ;| RAM segment address (high byte first) b15f 00a0 ld $a0 ;| b160 0060 ld $60 ;| Length (1..256) b161 0021 ld $21 ;1aa0 LDW b162 003c ld $3c ;1aa0 'Value' b163 0035 ld $35 ;1aa2 BCC b164 0053 ld $53 ;1aa3 GE b165 00a8 ld $a8 b166 0011 ld $11 ;1aa5 LDWI b167 0000 ld $00 b168 0078 ld $78 b169 0090 ld $90 ;1aa8 BRA b16a 00ab ld $ab b16b 0011 ld $11 ;1aaa LDWI b16c 0000 ld $00 b16d 0088 ld $88 b16e 002b ld $2b ;1aad STW b16f 0028 ld $28 b170 0021 ld $21 ;1aaf LDW b171 0040 ld $40 ;1aaf 'i' b172 002b ld $2b ;1ab1 STW b173 004e ld $4e ;1ab1 'tmp' b174 002b ld $2b ;1ab3 STW b175 0044 ld $44 ;1ab3 'k' b176 001a ld $1a ;1ab5 LD b177 002b ld $2b b178 00f0 ld $f0 ;1ab7 POKE b179 0030 ld $30 ;1ab7 'Pos' b17a 0021 ld $21 ;1ab9 LDW b17b 004e ld $4e ;1ab9 'tmp' b17c 00e6 ld $e6 ;1abb SUBI b17d 0001 ld $01 b17e 002b ld $2b ;1abd STW b17f 004e ld $4e ;1abd 'tmp' b180 0035 ld $35 ;1abf BCC b181 0050 ld $50 ;1ac0 LT b182 00fc ld $fc b183 0021 ld $21 ;1ac2 LDW b184 0044 ld $44 ;1ac2 'k' b185 00b8 ld $b8 ;1ac4 SUBW b186 006a ld $6a ;1ac4 'j' b187 00b8 ld $b8 ;1ac6 SUBW b188 006a ld $6a ;1ac6 'j' b189 002b ld $2b ;1ac8 STW b18a 0044 ld $44 ;1ac8 'k' b18b 0035 ld $35 ;1aca BCC b18c 0053 ld $53 ;1acb GE b18d 00d7 ld $d7 b18e 0099 ld $99 ;1acd ADDW b18f 0040 ld $40 ;1acd 'i' b190 0099 ld $99 ;1acf ADDW b191 0040 ld $40 ;1acf 'i' b192 002b ld $2b ;1ad1 STW b193 0044 ld $44 ;1ad1 'k' b194 0021 ld $21 ;1ad3 LDW b195 0026 ld $26 b196 0099 ld $99 ;1ad5 ADDW b197 0030 ld $30 ;1ad5 'Pos' b198 002b ld $2b ;1ad7 STW b199 0030 ld $30 ;1ad7 'Pos' b19a 0021 ld $21 ;1ad9 LDW b19b 0024 ld $24 b19c 0099 ld $99 ;1adb ADDW b19d 0030 ld $30 ;1adb 'Pos' b19e 002b ld $2b ;1add STW b19f 0030 ld $30 ;1add 'Pos' b1a0 001a ld $1a ;1adf LD b1a1 0030 ld $30 ;1adf 'Pos' b1a2 00e6 ld $e6 ;1ae1 SUBI b1a3 00a0 ld $a0 b1a4 0035 ld $35 ;1ae3 BCC b1a5 0050 ld $50 ;1ae4 LT b1a6 00ed ld $ed b1a7 0035 ld $35 ;1ae6 BCC b1a8 0056 ld $56 ;1ae7 LE b1a9 00eb ld $eb b1aa 0093 ld $93 ;1ae9 INC b1ab 0031 ld $31 ;1ae9 'Pos'+1 b1ac 00e3 ld $e3 ;1aeb ADDI b1ad 0040 ld $40 b1ae 005e ld $5e ;1aed ST b1af 0030 ld $30 ;1aed 'Pos' b1b0 001a ld $1a ;1aef LD b1b1 0031 ld $31 ;1aef 'Pos'+1 b1b2 0082 ld $82 ;1af1 ANDI b1b3 0078 ld $78 b1b4 0035 ld $35 ;1af3 BCC b1b5 0072 ld $72 ;1af4 NE b1b6 00fa ld $fa b1b7 0021 ld $21 ;1af6 LDW b1b8 0028 ld $28 b1b9 0099 ld $99 ;1af8 ADDW b1ba 0030 ld $30 ;1af8 'Pos' b1bb 002b ld $2b ;1afa STW b1bc 0030 ld $30 ;1afa 'Pos' b1bd 0090 ld $90 ;1afc BRA b1be 00b3 ld $b3 b1bf 00cf ld $cf ;1afe CALL b1c0 0062 ld $62 ;1afe 'EndOfLine' b1c1 001b ld $1b ;| RAM segment address (high byte first) b1c2 00a0 ld $a0 ;| b1c3 0006 ld $06 ;| Length (1..256) b1c4 00a0 ld $a0 ;1ba0 _Buffer b1c5 001b ld $1b b1c6 004e ld $4e ;1ba2 'N' b1c7 0045 ld $45 ;1ba3 'E' b1c8 0057 ld $57 ;1ba4 'W' b1c9 0000 ld $00 ;1ba5 0 b1ca 0000 ld $00 ;End of Apps/TinyBASIC/TinyBASIC_v4.gcl, size 3194 ;+-----------------------------------+ ;| Apps/Horizon/Horizon_at67_v1.gt1 | ;+-----------------------------------+ b1cb dc54 st $54,[y,x++] ;'T' b1cc dc69 st $69,[y,x++] ;'i' b1cd dc6e st $6e,[y,x++] ;'n' b1ce dc79 st $79,[y,x++] ;'y' b1cf dc42 st $42,[y,x++] ;'B' b1d0 dc41 st $41,[y,x++] ;'A' b1d1 dc53 st $53,[y,x++] ;'S' b1d2 dc49 st $49,[y,x++] ;'I' b1d3 0051 ld $51 b1d4 c218 st [$18] b1d5 00a5 ld $a5 b1d6 14e0 ld $e0,y b1d7 e036 jmp y,$36 b1d8 c219 st [$19] Egg: b1d9 0002 ld $02 b1da 0000 ld $00 b1db 00c0 ld $c0 b1dc 0011 ld $11 b1dd 00b4 ld $b4 b1de 0026 ld $26 b1df 002b ld $2b b1e0 00dc ld $dc b1e1 0011 ld $11 b1e2 00bd ld $bd b1e3 0026 ld $26 b1e4 002b ld $2b b1e5 00d0 ld $d0 b1e6 0011 ld $11 b1e7 00c6 ld $c6 b1e8 0026 ld $26 b1e9 002b ld $2b b1ea 00d2 ld $d2 b1eb 0011 ld $11 b1ec 00cf ld $cf b1ed 0026 ld $26 b1ee 002b ld $2b b1ef 00d4 ld $d4 b1f0 0011 ld $11 b1f1 00d8 ld $d8 b1f2 0026 ld $26 b1f3 002b ld $2b b1f4 00d6 ld $d6 b1f5 0011 ld $11 b1f6 00e1 ld $e1 b1f7 0026 ld $26 b1f8 002b ld $2b b1f9 00d8 ld $d8 b1fa 0011 ld $11 b1fb fe00 bra ac ;+-----------------------------------+ b1fc fcfd bra $b1fd ;| | b1fd 1418 ld $18,y ;| Trampoline for page $b100 lookups | b1fe e006 jmp y,$06 ;| | b1ff c218 st [$18] ;+-----------------------------------+ b200 00ea ld $ea b201 0026 ld $26 b202 002b ld $2b b203 00da ld $da b204 0011 ld $11 b205 0020 ld $20 b206 000f ld $0f b207 002b ld $2b b208 00a2 ld $a2 b209 0011 ld $11 b20a 0001 ld $01 b20b 0000 ld $00 b20c 002b ld $2b b20d 00ac ld $ac b20e 0011 ld $11 b20f 0000 ld $00 b210 00ff ld $ff b211 002b ld $2b b212 00ae ld $ae b213 0011 ld $11 b214 0000 ld $00 b215 0000 ld $00 b216 002b ld $2b b217 00a6 ld $a6 b218 0059 ld $59 b219 0000 ld $00 b21a 005e ld $5e b21b 002c ld $2c b21c 0011 ld $11 b21d 00a0 ld $a0 b21e 0025 ld $25 b21f 00cf ld $cf b220 0018 ld $18 b221 0011 ld $11 b222 00c3 ld $c3 b223 0025 ld $25 b224 00cf ld $cf b225 0018 ld $18 b226 0059 ld $59 b227 0000 ld $00 b228 002b ld $2b b229 0030 ld $30 b22a 002b ld $2b b22b 0032 ld $32 b22c 002b ld $2b b22d 0034 ld $34 b22e 002b ld $2b b22f 0036 ld $36 b230 002b ld $2b b231 0038 ld $38 b232 002b ld $2b b233 003a ld $3a b234 002b ld $2b b235 003c ld $3c b236 0059 ld $59 b237 003f ld $3f b238 002b ld $2b b239 003e ld $3e b23a 0059 ld $59 b23b 0003 ld $03 b23c 002b ld $2b b23d 0040 ld $40 b23e 0059 ld $59 b23f 0020 ld $20 b240 002b ld $2b b241 0042 ld $42 b242 0011 ld $11 b243 00a0 ld $a0 b244 0026 ld $26 b245 002b ld $2b b246 0084 ld $84 b247 0059 ld $59 b248 003f ld $3f b249 00f3 ld $f3 b24a 0084 ld $84 b24b 0011 ld $11 b24c 00a2 ld $a2 b24d 0026 ld $26 b24e 002b ld $2b b24f 0084 ld $84 b250 0059 ld $59 b251 002a ld $2a b252 00f3 ld $f3 b253 0084 ld $84 b254 0011 ld $11 b255 00a4 ld $a4 b256 0026 ld $26 b257 002b ld $2b b258 0084 ld $84 b259 0059 ld $59 b25a 0015 ld $15 b25b 00f3 ld $f3 b25c 0084 ld $84 b25d 0011 ld $11 b25e 00a6 ld $a6 b25f 0026 ld $26 b260 002b ld $2b b261 0084 ld $84 b262 0059 ld $59 b263 0000 ld $00 b264 00f3 ld $f3 b265 0084 ld $84 b266 0011 ld $11 b267 00aa ld $aa b268 0026 ld $26 b269 002b ld $2b b26a 0084 ld $84 b26b 0059 ld $59 b26c 0003 ld $03 b26d 00f3 ld $f3 b26e 0084 ld $84 b26f 0011 ld $11 b270 00ac ld $ac b271 0026 ld $26 b272 002b ld $2b b273 0084 ld $84 b274 0059 ld $59 b275 0002 ld $02 b276 00f3 ld $f3 b277 0084 ld $84 b278 0011 ld $11 b279 00ae ld $ae b27a 0026 ld $26 b27b 002b ld $2b b27c 0084 ld $84 b27d 0059 ld $59 b27e 0001 ld $01 b27f 00f3 ld $f3 b280 0084 ld $84 b281 0011 ld $11 b282 00b0 ld $b0 b283 0026 ld $26 b284 002b ld $2b b285 0084 ld $84 b286 0059 ld $59 b287 0000 ld $00 b288 00f3 ld $f3 b289 0084 ld $84 b28a 0059 ld $59 b28b 0000 ld $00 b28c 002b ld $2b b28d 0044 ld $44 b28e 002b ld $2b b28f 0046 ld $46 b290 0059 ld $59 b291 0036 ld $36 b292 002b ld $2b b293 0048 ld $48 b294 0059 ld $59 b295 0077 ld $77 b296 002b ld $2b b297 0030 ld $30 b298 0021 ld $21 b299 0042 ld $42 b29a 002b ld $2b b29b 00b0 ld $b0 b29c 0011 ld $11 b29d 00ff ld $ff b29e 00ff ld $ff b29f 002b ld $2b b2a0 00b2 ld $b2 b2a1 0002 ld $02 b2a2 00c0 ld $c0 b2a3 0037 ld $37 b2a4 0011 ld $11 b2a5 00a0 ld $a0 b2a6 0026 ld $26 b2a7 0099 ld $99 b2a8 0046 ld $46 b2a9 0099 ld $99 b2aa 0046 ld $46 b2ab 00f6 ld $f6 b2ac 002b ld $2b b2ad 003e ld $3e b2ae 0011 ld $11 b2af 00aa ld $aa b2b0 0026 ld $26 b2b1 0099 ld $99 b2b2 0046 ld $46 b2b3 0099 ld $99 b2b4 0046 ld $46 b2b5 00f6 ld $f6 b2b6 002b ld $2b b2b7 0040 ld $40 b2b8 0021 ld $21 b2b9 0044 ld $44 b2ba 00e3 ld $e3 b2bb 0001 ld $01 b2bc 002b ld $2b b2bd 0044 ld $44 b2be 0021 ld $21 b2bf 0044 ld $44 b2c0 00b8 ld $b8 b2c1 0048 ld $48 b2c2 0035 ld $35 b2c3 003f ld $3f b2c4 00e4 ld $e4 b2c5 0011 ld $11 b2c6 000d ld $0d b2c7 0003 ld $03 b2c8 00cf ld $cf b2c9 0018 ld $18 b2ca 0021 ld $21 b2cb 0046 ld $46 b2cc 00e3 ld $e3 b2cd 0001 ld $01 b2ce 002b ld $2b b2cf 0046 ld $46 b2d0 0059 ld $59 b2d1 0000 ld $00 b2d2 002b ld $2b b2d3 0044 ld $44 b2d4 002b ld $2b b2d5 00de ld $de b2d6 0011 ld $11 b2d7 0000 ld $00 b2d8 0003 ld $03 b2d9 00cf ld $cf b2da 0018 ld $18 b2db 0003 ld $03 b2dc 0000 ld $00 b2dd 000d ld $0d b2de 0021 ld $21 b2df 00de ld $de b2e0 0021 ld $21 b2e1 0048 ld $48 b2e2 002b ld $2b b2e3 0098 ld $98 b2e4 0011 ld $11 b2e5 00f3 ld $f3 b2e6 0026 ld $26 b2e7 00cf ld $cf b2e8 0018 ld $18 b2e9 002b ld $2b b2ea 0048 ld $48 b2eb 0003 ld $03 b2ec 000d ld $0d b2ed 002c ld $2c b2ee 0021 ld $21 b2ef 0030 ld $30 b2f0 002b ld $2b b2f1 003c ld $3c b2f2 0011 ld $11 b2f3 00a7 ld $a7 b2f4 0004 ld $04 b2f5 00cf ld $cf b2f6 0018 ld $18 b2f7 0021 ld $21 b2f8 0030 ld $30 b2f9 00b8 ld $b8 b2fa 0042 ld $42 b2fb fe00 bra ac ;+-----------------------------------+ b2fc fcfd bra $b2fd ;| | b2fd 1418 ld $18,y ;| Trampoline for page $b200 lookups | b2fe e006 jmp y,$06 ;| | b2ff c218 st [$18] ;+-----------------------------------+ b300 00e3 ld $e3 b301 0028 ld $28 b302 002b ld $2b b303 00c0 ld $c0 b304 0011 ld $11 b305 0090 ld $90 b306 0001 ld $01 b307 002b ld $2b b308 0082 ld $82 b309 0021 ld $21 b30a 00c0 ld $c0 b30b 002b ld $2b b30c 0084 ld $84 b30d 0011 ld $11 b30e 00a0 ld $a0 b30f 0024 ld $24 b310 00cf ld $cf b311 0018 ld $18 b312 0082 ld $82 b313 0001 ld $01 b314 0035 ld $35 b315 0072 ld $72 b316 0037 ld $37 b317 0021 ld $21 b318 003e ld $3e b319 00fc ld $fc b31a 0040 ld $40 b31b 002b ld $2b b31c 0036 ld $36 b31d 0090 ld $90 b31e 003b ld $3b b31f 0003 ld $03 b320 0039 ld $39 b321 0004 ld $04 b322 0059 ld $59 b323 0000 ld $00 b324 002b ld $2b b325 0036 ld $36 b326 0003 ld $03 b327 003d ld $3d b328 0029 ld $29 b329 0059 ld $59 b32a 0050 ld $50 b32b 002b ld $2b b32c 0082 ld $82 b32d 0021 ld $21 b32e 003a ld $3a b32f 002b ld $2b b330 0084 ld $84 b331 0011 ld $11 b332 00a0 ld $a0 b333 0024 ld $24 b334 00cf ld $cf b335 0018 ld $18 b336 0021 ld $21 b337 0092 ld $92 b338 002b ld $2b b339 0034 ld $34 b33a 0021 ld $21 b33b 0030 ld $30 b33c 00e3 ld $e3 b33d 0008 ld $08 b33e 002b ld $2b b33f 00c0 ld $c0 b340 001a ld $1a b341 00c0 ld $c0 b342 005e ld $5e b343 0039 ld $39 b344 0059 ld $59 b345 0000 ld $00 b346 002b ld $2b b347 0032 ld $32 b348 0021 ld $21 b349 003a ld $3a b34a 00e3 ld $e3 b34b 009f ld $9f b34c 002b ld $2b b34d 00b4 ld $b4 b34e 0059 ld $59 b34f 0001 ld $01 b350 002b ld $2b b351 00b6 ld $b6 b352 0003 ld $03 b353 0066 ld $66 b354 000d ld $0d b355 0021 ld $21 b356 0034 ld $34 b357 0035 ld $35 b358 0072 ld $72 b359 0071 ld $71 b35a 0021 ld $21 b35b 003a ld $3a b35c 00e6 ld $e6 b35d 0001 ld $01 b35e 002b ld $2b b35f 0034 ld $34 b360 0090 ld $90 b361 0077 ld $77 b362 0003 ld $03 b363 0073 ld $73 b364 0006 ld $06 b365 0021 ld $21 b366 0034 ld $34 b367 00e6 ld $e6 b368 0001 ld $01 b369 002b ld $2b b36a 0034 ld $34 b36b 0003 ld $03 b36c 0079 ld $79 b36d 0011 ld $11 b36e 0021 ld $21 b36f 0034 ld $34 b370 0099 ld $99 b371 0034 ld $34 b372 00b8 ld $b8 b373 003a ld $3a b374 0035 ld $35 b375 0050 ld $50 b376 0088 ld $88 b377 0021 ld $21 b378 003e ld $3e b379 00fc ld $fc b37a 0036 ld $36 b37b 002b ld $2b b37c 004a ld $4a b37d 0090 ld $90 b37e 008e ld $8e b37f 0003 ld $03 b380 008a ld $8a b381 0006 ld $06 b382 0021 ld $21 b383 0040 ld $40 b384 00fc ld $fc b385 0036 ld $36 b386 002b ld $2b b387 004a ld $4a b388 0003 ld $03 b389 0090 ld $90 b38a 004a ld $4a b38b 0021 ld $21 b38c 0038 ld $38 b38d 0099 ld $99 b38e 0032 ld $32 b38f 002b ld $2b b390 00c0 ld $c0 b391 0021 ld $21 b392 004a ld $4a b393 00f0 ld $f0 b394 00c0 ld $c0 b395 0021 ld $21 b396 0032 ld $32 b397 0099 ld $99 b398 00b6 ld $b6 b399 002b ld $2b b39a 0032 ld $32 b39b 00b8 ld $b8 b39c 00b4 ld $b4 b39d 0035 ld $35 b39e 004d ld $4d b39f 00a8 ld $a8 b3a0 0011 ld $11 b3a1 0066 ld $66 b3a2 0003 ld $03 b3a3 00cf ld $cf b3a4 0018 ld $18 b3a5 0021 ld $21 b3a6 0030 ld $30 b3a7 0099 ld $99 b3a8 0030 ld $30 b3a9 002b ld $2b b3aa 00c0 ld $c0 b3ab 0011 ld $11 b3ac 00f9 ld $f9 b3ad 0001 ld $01 b3ae 002b ld $2b b3af 0082 ld $82 b3b0 0021 ld $21 b3b1 00c0 ld $c0 b3b2 00f0 ld $f0 b3b3 0082 ld $82 b3b4 0021 ld $21 b3b5 0030 ld $30 b3b6 0099 ld $99 b3b7 00b2 ld $b2 b3b8 002b ld $2b b3b9 0030 ld $30 b3ba 00b8 ld $b8 b3bb 00b0 ld $b0 b3bc 0035 ld $35 b3bd 0050 ld $50 b3be 00c7 ld $c7 b3bf 0011 ld $11 b3c0 00c0 ld $c0 b3c1 0002 ld $02 b3c2 00cf ld $cf b3c3 0018 ld $18 b3c4 0011 ld $11 b3c5 00f9 ld $f9 b3c6 0001 ld $01 b3c7 002b ld $2b b3c8 0082 ld $82 b3c9 0059 ld $59 b3ca 0000 ld $00 b3cb 00f0 ld $f0 b3cc 0082 ld $82 b3cd 0059 ld $59 b3ce 0000 ld $00 b3cf 002b ld $2b b3d0 0032 ld $32 b3d1 0059 ld $59 b3d2 0008 ld $08 b3d3 002b ld $2b b3d4 004c ld $4c b3d5 0003 ld $03 b3d6 00da ld $da b3d7 001f ld $1f b3d8 0021 ld $21 b3d9 0032 ld $32 b3da 0082 ld $82 b3db 00ff ld $ff b3dc 002b ld $2b b3dd 0034 ld $34 b3de 0059 ld $59 b3df 0000 ld $00 b3e0 002b ld $2b b3e1 0036 ld $36 b3e2 0011 ld $11 b3e3 00f0 ld $f0 b3e4 0001 ld $01 b3e5 002b ld $2b b3e6 004e ld $4e b3e7 0021 ld $21 b3e8 0042 ld $42 b3e9 002b ld $2b b3ea 003c ld $3c b3eb 0011 ld $11 b3ec 00a7 ld $a7 b3ed 0004 ld $04 b3ee 00cf ld $cf b3ef 0018 ld $18 b3f0 002b ld $2b b3f1 00de ld $de b3f2 0011 ld $11 b3f3 0000 ld $00 b3f4 0004 ld $04 b3f5 00cf ld $cf b3f6 0018 ld $18 b3f7 0004 ld $04 b3f8 0000 ld $00 b3f9 000e ld $0e b3fa 0021 ld $21 b3fb fe00 bra ac ;+-----------------------------------+ b3fc fcfd bra $b3fd ;| | b3fd 1418 ld $18,y ;| Trampoline for page $b300 lookups | b3fe e006 jmp y,$06 ;| | b3ff c218 st [$18] ;+-----------------------------------+ b400 00de ld $de b401 0059 ld $59 b402 0000 ld $00 b403 002b ld $2b b404 0030 ld $30 b405 0021 ld $21 b406 003a ld $3a b407 002b ld $2b b408 00b0 ld $b0 b409 0059 ld $59 b40a 0001 ld $01 b40b 002b ld $2b b40c 00b2 ld $b2 b40d 0004 ld $04 b40e 000e ld $0e b40f 002e ld $2e b410 0021 ld $21 b411 0036 ld $36 b412 0099 ld $99 b413 0034 ld $34 b414 002b ld $2b b415 0036 ld $36 b416 0021 ld $21 b417 0030 ld $30 b418 0099 ld $99 b419 00b2 ld $b2 b41a 002b ld $2b b41b 0030 ld $30 b41c 00b8 ld $b8 b41d 00b0 ld $b0 b41e 0035 ld $35 b41f 004d ld $4d b420 0022 ld $22 b421 0011 ld $11 b422 000e ld $0e b423 0004 ld $04 b424 00cf ld $cf b425 0018 ld $18 b426 0021 ld $21 b427 0034 ld $34 b428 0099 ld $99 b429 0034 ld $34 b42a 002b ld $2b b42b 0034 ld $34 b42c 0011 ld $11 b42d 0001 ld $01 b42e 0001 ld $01 b42f 0099 ld $99 b430 0042 ld $42 b431 0099 ld $99 b432 0042 ld $42 b433 002b ld $2b b434 004a ld $4a b435 0059 ld $59 b436 0001 ld $01 b437 002b ld $2b b438 0082 ld $82 b439 0011 ld $11 b43a 00a0 ld $a0 b43b 0023 ld $23 b43c 00cf ld $cf b43d 0018 ld $18 b43e 0004 ld $04 b43f 003c ld $3c b440 0035 ld $35 b441 001a ld $1a b442 0037 ld $37 b443 00f0 ld $f0 b444 004a ld $4a b445 0021 ld $21 b446 0036 ld $36 b447 0082 ld $82 b448 00ff ld $ff b449 0099 ld $99 b44a 0034 ld $34 b44b 002b ld $2b b44c 0036 ld $36 b44d 0021 ld $21 b44e 004a ld $4a b44f 00e3 ld $e3 b450 0004 ld $04 b451 002b ld $2b b452 004a ld $4a b453 00b8 ld $b8 b454 004e ld $4e b455 0035 ld $35 b456 0053 ld $53 b457 0056 ld $56 b458 0011 ld $11 b459 003c ld $3c b45a 0004 ld $04 b45b 00cf ld $cf b45c 0018 ld $18 b45d 0059 ld $59 b45e 0011 ld $11 b45f 00ad ld $ad b460 002b ld $2b b461 0082 ld $82 b462 0059 ld $59 b463 0000 ld $00 b464 002b ld $2b b465 0084 ld $84 b466 0011 ld $11 b467 00bb ld $bb b468 0023 ld $23 b469 00cf ld $cf b46a 0018 ld $18 b46b 0021 ld $21 b46c 0032 ld $32 b46d 0099 ld $99 b46e 004c ld $4c b46f 002b ld $2b b470 0032 ld $32 b471 0011 ld $11 b472 00da ld $da b473 0003 ld $03 b474 00cf ld $cf b475 0018 ld $18 b476 0004 ld $04 b477 0071 ld $71 b478 0010 ld $10 b479 0075 ld $75 b47a 0021 ld $21 b47b 004c ld $4c b47c 00e3 ld $e3 b47d 0001 ld $01 b47e 002b ld $2b b47f 004c ld $4c b480 00e6 ld $e6 b481 0020 ld $20 b482 0035 ld $35 b483 0056 ld $56 b484 007f ld $7f b485 0059 ld $59 b486 0020 ld $20 b487 002b ld $2b b488 004c ld $4c b489 0004 ld $04 b48a 0081 ld $81 b48b 0002 ld $02 b48c 0063 ld $63 b48d 00ff ld $ff b48e 0004 ld $04 b48f 0083 ld $83 b490 0014 ld $14 b491 0075 ld $75 b492 0021 ld $21 b493 004c ld $4c b494 00e6 ld $e6 b495 0001 ld $01 b496 002b ld $2b b497 004c ld $4c b498 0011 ld $11 b499 00e0 ld $e0 b49a 00ff ld $ff b49b 00b8 ld $b8 b49c 004c ld $4c b49d 0035 ld $35 b49e 0050 ld $50 b49f 0095 ld $95 b4a0 0011 ld $11 b4a1 00e0 ld $e0 b4a2 00ff ld $ff b4a3 002b ld $2b b4a4 004c ld $4c b4a5 0004 ld $04 b4a6 0097 ld $97 b4a7 0002 ld $02 b4a8 0063 ld $63 b4a9 00ff ld $ff b4aa 0004 ld $04 b4ab 0099 ld $99 b4ac 0007 ld $07 b4ad 0075 ld $75 b4ae 0059 ld $59 b4af 0000 ld $00 b4b0 002b ld $2b b4b1 004c ld $4c b4b2 0063 ld $63 b4b3 00ff ld $ff b4b4 0004 ld $04 b4b5 00a0 ld $a0 b4b6 0007 ld $07 b4b7 0075 ld $75 b4b8 0059 ld $59 b4b9 0000 ld $00 b4ba 002b ld $2b b4bb 004c ld $4c b4bc 0063 ld $63 b4bd 00ff ld $ff b4be 0004 ld $04 b4bf 00a7 ld $a7 b4c0 0017 ld $17 b4c1 0075 ld $75 b4c2 0011 ld $11 b4c3 00e9 ld $e9 b4c4 00ff ld $ff b4c5 0099 ld $99 b4c6 003c ld $3c b4c7 002b ld $2b b4c8 003a ld $3a b4c9 0021 ld $21 b4ca 003a ld $3a b4cb 00e3 ld $e3 b4cc 0001 ld $01 b4cd 002b ld $2b b4ce 00c0 ld $c0 b4cf 0011 ld $11 b4d0 00fe ld $fe b4d1 00ff ld $ff b4d2 00f8 ld $f8 b4d3 00c0 ld $c0 b4d4 002b ld $2b b4d5 003a ld $3a b4d6 0063 ld $63 b4d7 00ff ld $ff b4d8 0004 ld $04 b4d9 00be ld $be b4da 0002 ld $02 b4db 0090 ld $90 b4dc 00bc ld $bc b4dd 0022 ld $22 b4de 00a0 ld $a0 b4df 0008 ld $08 b4e0 0071 ld $71 b4e1 0004 ld $04 b4e2 0083 ld $83 b4e3 0004 ld $04 b4e4 0099 ld $99 b4e5 0004 ld $04 b4e6 00a0 ld $a0 b4e7 0004 ld $04 b4e8 0022 ld $22 b4e9 00a8 ld $a8 b4ea 001f ld $1f b4eb 0075 ld $75 b4ec 0059 ld $59 b4ed 0008 ld $08 b4ee 002b ld $2b b4ef 0098 ld $98 b4f0 0011 ld $11 b4f1 0000 ld $00 b4f2 0001 ld $01 b4f3 002b ld $2b b4f4 009a ld $9a b4f5 00cf ld $cf b4f6 00dc ld $dc b4f7 0021 ld $21 b4f8 0098 ld $98 b4f9 00f3 ld $f3 b4fa 009a ld $9a b4fb fe00 bra ac ;+-----------------------------------+ b4fc fcfd bra $b4fd ;| | b4fd 1418 ld $18,y ;| Trampoline for page $b400 lookups | b4fe e006 jmp y,$06 ;| | b4ff c218 st [$18] ;+-----------------------------------+ b500 0093 ld $93 b501 009a ld $9a b502 0093 ld $93 b503 009a ld $9a b504 0093 ld $93 b505 0098 ld $98 b506 001a ld $1a b507 0098 ld $98 b508 00e6 ld $e6 b509 0080 ld $80 b50a 0035 ld $35 b50b 0050 ld $50 b50c 00b0 ld $b0 b50d 0063 ld $63 b50e 00ff ld $ff b50f 0023 ld $23 b510 00a0 ld $a0 b511 001b ld $1b b512 0021 ld $21 b513 0082 ld $82 b514 00e6 ld $e6 b515 0001 ld $01 b516 002b ld $2b b517 0082 ld $82 b518 0035 ld $35 b519 0053 ld $53 b51a 00a8 ld $a8 b51b 00ff ld $ff b51c 001a ld $1a b51d 000e ld $0e b51e 00b8 ld $b8 b51f 00aa ld $aa b520 0035 ld $35 b521 003f ld $3f b522 00a8 ld $a8 b523 001a ld $1a b524 000e ld $0e b525 002b ld $2b b526 00aa ld $aa b527 0075 ld $75 b528 00cf ld $cf b529 00dc ld $dc b52a 0063 ld $63 b52b 0090 ld $90 b52c 009e ld $9e b52d 0023 ld $23 b52e 00bb ld $bb b52f 003a ld $3a b530 0075 ld $75 b531 0011 ld $11 b532 00f5 ld $f5 b533 0023 ld $23 b534 002b ld $2b b535 0086 ld $86 b536 002b ld $2b b537 0092 ld $92 b538 0011 ld $11 b539 00a0 ld $a0 b53a 0022 ld $22 b53b 002b ld $2b b53c 0088 ld $88 b53d 0021 ld $21 b53e 0092 ld $92 b53f 00f6 ld $f6 b540 002b ld $2b b541 0094 ld $94 b542 001a ld $1a b543 0095 ld $95 b544 0082 ld $82 b545 0080 ld $80 b546 0035 ld $35 b547 003f ld $3f b548 00db ld $db b549 0021 ld $21 b54a 0084 ld $84 b54b 0035 ld $35 b54c 003f ld $3f b54d 00d9 ld $d9 b54e 00cf ld $cf b54f 0084 ld $84 b550 0063 ld $63 b551 00ff ld $ff b552 0021 ld $21 b553 0094 ld $94 b554 00b8 ld $b8 b555 0082 ld $82 b556 0035 ld $35 b557 003f ld $3f b558 00e8 ld $e8 b559 0093 ld $93 b55a 0092 ld $92 b55b 0093 ld $93 b55c 0092 ld $92 b55d 0090 ld $90 b55e 00c6 ld $c6 b55f 0021 ld $21 b560 0092 ld $92 b561 00b8 ld $b8 b562 0086 ld $86 b563 0099 ld $99 b564 0088 ld $88 b565 00f6 ld $f6 b566 00cf ld $cf b567 0018 ld $18 b568 0063 ld $63 b569 00ff ld $ff b56a 0023 ld $23 b56b 00f5 ld $f5 b56c 000a ld $0a b56d 00fe ld $fe b56e 0000 ld $00 b56f 00fd ld $fd b570 0000 ld $00 b571 00bf ld $bf b572 0000 ld $00 b573 007f ld $7f b574 0000 ld $00 b575 00ff ld $ff b576 00ff ld $ff b577 0024 ld $24 b578 00a0 ld $a0 b579 005a ld $5a b57a 0021 ld $21 b57b 0082 ld $82 b57c 00fc ld $fc b57d 0084 ld $84 b57e 002b ld $2b b57f 0094 ld $94 b580 0021 ld $21 b581 0082 ld $82 b582 0035 ld $35 b583 0053 ld $53 b584 00af ld $af b585 0059 ld $59 b586 0000 ld $00 b587 00b8 ld $b8 b588 0082 ld $82 b589 002b ld $2b b58a 0082 ld $82 b58b 0021 ld $21 b58c 0084 ld $84 b58d 0035 ld $35 b58e 0053 ld $53 b58f 00ba ld $ba b590 0059 ld $59 b591 0000 ld $00 b592 00b8 ld $b8 b593 0084 ld $84 b594 002b ld $2b b595 0084 ld $84 b596 0059 ld $59 b597 0000 ld $00 b598 002b ld $2b b599 0092 ld $92 b59a 002b ld $2b b59b 0096 ld $96 b59c 0021 ld $21 b59d 0092 ld $92 b59e 0099 ld $99 b59f 0092 ld $92 b5a0 002b ld $2b b5a1 0092 ld $92 b5a2 0021 ld $21 b5a3 0082 ld $82 b5a4 0035 ld $35 b5a5 0053 ld $53 b5a6 00cd ld $cd b5a7 0093 ld $93 b5a8 0092 ld $92 b5a9 0021 ld $21 b5aa 0082 ld $82 b5ab 0099 ld $99 b5ac 0082 ld $82 b5ad 002b ld $2b b5ae 0082 ld $82 b5af 0021 ld $21 b5b0 0092 ld $92 b5b1 00b8 ld $b8 b5b2 0084 ld $84 b5b3 0035 ld $35 b5b4 0050 ld $50 b5b5 00de ld $de b5b6 002b ld $2b b5b7 0092 ld $92 b5b8 0093 ld $93 b5b9 0082 ld $82 b5ba 0075 ld $75 b5bb 00cf ld $cf b5bc 00dc ld $dc b5bd 0063 ld $63 b5be 0021 ld $21 b5bf 0096 ld $96 b5c0 00e3 ld $e3 b5c1 0001 ld $01 b5c2 0082 ld $82 b5c3 000f ld $0f b5c4 0035 ld $35 b5c5 0072 ld $72 b5c6 00be ld $be b5c7 0021 ld $21 b5c8 0094 ld $94 b5c9 0035 ld $35 b5ca 0053 ld $53 b5cb 00f5 ld $f5 b5cc 0059 ld $59 b5cd 0000 ld $00 b5ce 00b8 ld $b8 b5cf 0082 ld $82 b5d0 00ff ld $ff b5d1 0021 ld $21 b5d2 0082 ld $82 b5d3 00ff ld $ff b5d4 0025 ld $25 b5d5 00a0 ld $a0 b5d6 0023 ld $23 b5d7 0075 ld $75 b5d8 0011 ld $11 b5d9 00a8 ld $a8 b5da 0022 ld $22 b5db 00cf ld $cf b5dc 0018 ld $18 b5dd 0011 ld $11 b5de 0002 ld $02 b5df 0000 ld $00 b5e0 002b ld $2b b5e1 00a4 ld $a4 b5e2 0011 ld $11 b5e3 00ff ld $ff b5e4 007f ld $7f b5e5 00f8 ld $f8 b5e6 00ac ld $ac b5e7 002b ld $2b b5e8 00ac ld $ac b5e9 001a ld $1a b5ea 00a2 ld $a2 b5eb 005e ld $5e b5ec 0024 ld $24 b5ed 005e ld $5e b5ee 0025 ld $25 b5ef 005e ld $5e b5f0 0026 ld $26 b5f1 005e ld $5e b5f2 0027 ld $27 b5f3 0011 ld $11 b5f4 00d4 ld $d4 b5f5 0004 ld $04 b5f6 002b ld $2b b5f7 0022 ld $22 b5f8 0063 ld $63 b5f9 00ff ld $ff b5fa 0025 ld $25 b5fb fe00 bra ac ;+-----------------------------------+ b5fc fcfd bra $b5fd ;| | b5fd 1418 ld $18,y ;| Trampoline for page $b500 lookups | b5fe e006 jmp y,$06 ;| | b5ff c218 st [$18] ;+-----------------------------------+ b600 00c3 ld $c3 b601 003a ld $3a b602 0075 ld $75 b603 0011 ld $11 b604 00a0 ld $a0 b605 0025 ld $25 b606 00cf ld $cf b607 0018 ld $18 b608 0011 ld $11 b609 0000 ld $00 b60a 0008 ld $08 b60b 002b ld $2b b60c 0028 ld $28 b60d 001a ld $1a b60e 0029 ld $29 b60f 005e ld $5e b610 0094 ld $94 b611 00cf ld $cf b612 00dc ld $dc b613 001a ld $1a b614 0094 ld $94 b615 005e ld $5e b616 0029 ld $29 b617 00b4 ld $b4 b618 00ff ld $ff b619 0011 ld $11 b61a 0087 ld $87 b61b 0000 ld $00 b61c 00b8 ld $b8 b61d 0094 ld $94 b61e 005e ld $5e b61f 0029 ld $29 b620 00b4 ld $b4 b621 00ff ld $ff b622 001a ld $1a b623 0028 ld $28 b624 00e3 ld $e3 b625 0004 ld $04 b626 005e ld $5e b627 0028 ld $28 b628 00e6 ld $e6 b629 00a0 ld $a0 b62a 0035 ld $35 b62b 0050 ld $50 b62c 00d0 ld $d0 b62d 0059 ld $59 b62e 0000 ld $00 b62f 005e ld $5e b630 0028 ld $28 b631 0093 ld $93 b632 0094 ld $94 b633 001a ld $1a b634 0094 ld $94 b635 00e6 ld $e6 b636 0044 ld $44 b637 0035 ld $35 b638 0050 ld $50 b639 00d0 ld $d0 b63a 0063 ld $63 b63b 00ff ld $ff b63c 0026 ld $26 b63d 00a0 ld $a0 b63e 000a ld $0a b63f 0000 ld $00 b640 0000 ld $00 b641 0000 ld $00 * 10 times b649 0026 ld $26 b64a 00aa ld $aa b64b 000a ld $0a b64c 0000 ld $00 b64d 0000 ld $00 b64e 0000 ld $00 * 10 times b656 0026 ld $26 b657 00b4 ld $b4 b658 0009 ld $09 b659 0075 ld $75 b65a 0011 ld $11 b65b 00bc ld $bc b65c 0026 ld $26 b65d 00cf ld $cf b65e 0018 ld $18 b65f 0063 ld $63 b660 00ff ld $ff b661 00ff ld $ff b662 0026 ld $26 b663 00bd ld $bd b664 0009 ld $09 b665 0035 ld $35 b666 003f ld $3f b667 00c1 ld $c1 b668 0059 ld $59 b669 0000 ld $00 b66a 00ff ld $ff b66b 0059 ld $59 b66c 0001 ld $01 b66d 00ff ld $ff b66e 0026 ld $26 b66f 00c6 ld $c6 b670 0009 ld $09 b671 0035 ld $35 b672 0072 ld $72 b673 00ca ld $ca b674 0059 ld $59 b675 0000 ld $00 b676 00ff ld $ff b677 0059 ld $59 b678 0001 ld $01 b679 00ff ld $ff b67a 0026 ld $26 b67b 00cf ld $cf b67c 0009 ld $09 b67d 0035 ld $35 b67e 0056 ld $56 b67f 00d3 ld $d3 b680 0059 ld $59 b681 0000 ld $00 b682 00ff ld $ff b683 0059 ld $59 b684 0001 ld $01 b685 00ff ld $ff b686 0026 ld $26 b687 00d8 ld $d8 b688 0009 ld $09 b689 0035 ld $35 b68a 0053 ld $53 b68b 00dc ld $dc b68c 0059 ld $59 b68d 0000 ld $00 b68e 00ff ld $ff b68f 0059 ld $59 b690 0001 ld $01 b691 00ff ld $ff b692 0026 ld $26 b693 00e1 ld $e1 b694 0009 ld $09 b695 0035 ld $35 b696 0050 ld $50 b697 00e5 ld $e5 b698 0059 ld $59 b699 0000 ld $00 b69a 00ff ld $ff b69b 0059 ld $59 b69c 0001 ld $01 b69d 00ff ld $ff b69e 0026 ld $26 b69f 00ea ld $ea b6a0 0009 ld $09 b6a1 0035 ld $35 b6a2 004d ld $4d b6a3 00ee ld $ee b6a4 0059 ld $59 b6a5 0000 ld $00 b6a6 00ff ld $ff b6a7 0059 ld $59 b6a8 0001 ld $01 b6a9 00ff ld $ff b6aa 0026 ld $26 b6ab 00f3 ld $f3 b6ac 000a ld $0a b6ad 0011 ld $11 b6ae 0000 ld $00 b6af 0006 ld $06 b6b0 002b ld $2b b6b1 0022 ld $22 b6b2 0021 ld $21 b6b3 0098 ld $98 b6b4 00b4 ld $b4 b6b5 00f6 ld $f6 b6b6 00ff ld $ff b6b7 0000 ld $00 b6b8 0000 ld $00 ;End of Apps/Horizon/Horizon_at67_v1.gt1, size 1248 ;+-----------------------------------+ ;| gbas/browser/Browser_SDCard_ROMvX0.gt1 | ;+-----------------------------------+ b6b9 dc45 st $45,[y,x++] ;'E' b6ba dc67 st $67,[y,x++] ;'g' b6bb dc67 st $67,[y,x++] ;'g' b6bc dc00 st $00,[y,x++] ;'\x00' b6bd dc00 st $00,[y,x++] ;'\x00' b6be dc00 st $00,[y,x++] ;'\x00' b6bf dc00 st $00,[y,x++] ;'\x00' b6c0 dc00 st $00,[y,x++] ;'\x00' b6c1 00d9 ld $d9 b6c2 c218 st [$18] b6c3 00b1 ld $b1 b6c4 14e0 ld $e0,y b6c5 e036 jmp y,$36 b6c6 c219 st [$19] SDCard: b6c7 0000 ld $00 b6c8 007e ld $7e b6c9 0002 ld $02 b6ca 0001 ld $01 b6cb 0001 ld $01 b6cc 0002 ld $02 b6cd 0000 ld $00 b6ce 00f8 ld $f8 b6cf 0059 ld $59 b6d0 0080 ld $80 b6d1 002b ld $2b b6d2 0082 ld $82 b6d3 0011 ld $11 b6d4 00a5 ld $a5 b6d5 0043 ld $43 b6d6 00cf ld $cf b6d7 0018 ld $18 b6d8 0011 ld $11 b6d9 0020 ld $20 b6da 000f ld $0f b6db 002b ld $2b b6dc 00a2 ld $a2 b6dd 00c7 ld $c7 b6de 0003 ld $03 b6df 0069 ld $69 b6e0 0021 ld $21 b6e1 004d ld $4d b6e2 0002 ld $02 b6e3 00aa ld $aa b6e4 004d ld $4d b6e5 0000 ld $00 b6e6 00d6 ld $d6 b6e7 004d ld $4d b6e8 0000 ld $00 b6e9 00a6 ld $a6 b6ea 0016 ld $16 b6eb 0000 ld $00 b6ec 002d ld $2d b6ed 004d ld $4d b6ee 0000 ld $00 b6ef 002e ld $2e b6f0 0085 ld $85 b6f1 00a6 ld $a6 b6f2 0072 ld $72 b6f3 0011 ld $11 b6f4 00fe ld $fe b6f5 007c ld $7c b6f6 002b ld $2b b6f7 0084 ld $84 b6f8 0011 ld $11 b6f9 00a0 ld $a0 b6fa 007d ld $7d b6fb fe00 bra ac ;+-----------------------------------+ b6fc fcfd bra $b6fd ;| | b6fd 1418 ld $18,y ;| Trampoline for page $b600 lookups | b6fe e006 jmp y,$06 ;| | b6ff c218 st [$18] ;+-----------------------------------+ b700 0085 ld $85 b701 00a4 ld $a4 b702 0075 ld $75 b703 0011 ld $11 b704 00fe ld $fe b705 007c ld $7c b706 002b ld $2b b707 0084 ld $84 b708 0011 ld $11 b709 00a0 ld $a0 b70a 007b ld $7b b70b 0085 ld $85 b70c 00a4 ld $a4 b70d 0075 ld $75 b70e 004d ld $4d b70f 0002 ld $02 b710 0082 ld $82 b711 0085 ld $85 b712 00a4 ld $a4 b713 0076 ld $76 b714 0016 ld $16 b715 0030 ld $30 b716 00a2 ld $a2 b717 0085 ld $85 b718 00c2 ld $c2 b719 0041 ld $41 b71a 0085 ld $85 b71b 00a2 ld $a2 b71c 0044 ld $44 b71d 004d ld $4d b71e 0000 ld $00 b71f 00a4 ld $a4 b720 00c7 ld $c7 b721 0010 ld $10 b722 0069 ld $69 b723 00aa ld $aa b724 0016 ld $16 b725 0020 ld $20 b726 00a3 ld $a3 b727 004d ld $4d b728 0002 ld $02 b729 0082 ld $82 b72a 004d ld $4d b72b 0002 ld $02 b72c 0084 ld $84 b72d 004d ld $4d b72e 009d ld $9d b72f 0086 ld $86 b730 004d ld $4d b731 0064 ld $64 b732 0088 ld $88 b733 0085 ld $85 b734 00c2 ld $c2 b735 0045 ld $45 b736 0016 ld $16 b737 0010 ld $10 b738 00a3 ld $a3 b739 004d ld $4d b73a 0002 ld $02 b73b 0082 ld $82 b73c 004d ld $4d b73d 0065 ld $65 b73e 0084 ld $84 b73f 004d ld $4d b740 009d ld $9d b741 0086 ld $86 b742 004d ld $4d b743 0075 ld $75 b744 0088 ld $88 b745 0085 ld $85 b746 00c2 ld $c2 b747 0045 ld $45 b748 0085 ld $85 b749 00f9 ld $f9 b74a 0009 ld $09 b74b 0085 ld $85 b74c 00bb ld $bb b74d 0009 ld $09 b74e 0085 ld $85 b74f 00e8 ld $e8 b750 0009 ld $09 b751 0085 ld $85 b752 00e6 ld $e6 b753 0004 ld $04 b754 0085 ld $85 b755 00cc ld $cc b756 0009 ld $09 b757 0085 ld $85 b758 00cb ld $cb b759 0002 ld $02 b75a 0085 ld $85 b75b 0021 ld $21 b75c 0003 ld $03 b75d 0021 ld $21 b75e 003e ld $3e b75f 00bb ld $bb b760 007e ld $7e b761 0002 ld $02 b762 0085 ld $85 b763 00da ld $da b764 0009 ld $09 b765 0085 ld $85 b766 0069 ld $69 b767 0003 ld $03 b768 004d ld $4d b769 0000 ld $00 b76a 0048 ld $48 b76b 004d ld $4d b76c 00ff ld $ff b76d 004a ld $4a b76e 002f ld $2f b76f 00d6 ld $d6 b770 006e ld $6e b771 0085 ld $85 b772 00a5 ld $a5 b773 0005 ld $05 b774 0021 ld $21 b775 0044 ld $44 b776 00bb ld $bb b777 00a5 ld $a5 b778 0002 ld $02 b779 0090 ld $90 b77a 0072 ld $72 b77b 0093 ld $93 b77c 0048 ld $48 b77d 0090 ld $90 b77e 0098 ld $98 b77f 00b4 ld $b4 b780 0080 ld $80 b781 0075 ld $75 b782 0011 ld $11 b783 0006 ld $06 b784 000b ld $0b b785 002b ld $2b b786 0022 ld $22 b787 0032 ld $32 b788 0024 ld $24 b789 0030 ld $30 b78a 004d ld $4d b78b 0001 ld $01 b78c 0026 ld $26 b78d 001a ld $1a b78e 0032 ld $32 b78f 00e9 ld $e9 b790 00e9 ld $e9 b791 00e9 ld $e9 b792 002b ld $2b b793 0027 ld $27 b794 00b4 ld $b4 b795 00e6 ld $e6 b796 002b ld $2b b797 0034 ld $34 b798 0021 ld $21 b799 0034 ld $34 b79a 00bd ld $bd b79b 00ac ld $ac b79c 0002 ld $02 b79d 0063 ld $63 b79e 00ff ld $ff b79f 0075 ld $75 b7a0 0032 ld $32 b7a1 0022 ld $22 b7a2 006e ld $6e b7a3 0011 ld $11 b7a4 00bf ld $bf b7a5 007a ld $7a b7a6 002b ld $2b b7a7 0028 ld $28 b7a8 0032 ld $32 b7a9 0024 ld $24 b7aa 0028 ld $28 b7ab 0016 ld $16 b7ac 00cf ld $cf b7ad 0027 ld $27 b7ae 00b4 ld $b4 b7af 00fe ld $fe b7b0 005b ld $5b b7b1 0028 ld $28 b7b2 008c ld $8c b7b3 00ff ld $ff b7b4 00bb ld $bb b7b5 00d2 ld $d2 b7b6 0002 ld $02 b7b7 0016 ld $16 b7b8 00db ld $db b7b9 0027 ld $27 b7ba 00b4 ld $b4 b7bb 00fe ld $fe b7bc 0016 ld $16 b7bd 00eb ld $eb b7be 0027 ld $27 b7bf 00b4 ld $b4 b7c0 00fe ld $fe b7c1 0016 ld $16 b7c2 00fb ld $fb b7c3 0027 ld $27 b7c4 00b4 ld $b4 b7c5 00fe ld $fe b7c6 0016 ld $16 b7c7 003c ld $3c b7c8 0028 ld $28 b7c9 0085 ld $85 b7ca 0000 ld $00 b7cb 0003 ld $03 b7cc 0003 ld $03 b7cd 0000 ld $00 b7ce 00f9 ld $f9 b7cf 0016 ld $16 b7d0 0002 ld $02 b7d1 0027 ld $27 b7d2 00b4 ld $b4 b7d3 00fe ld $fe b7d4 001c ld $1c b7d5 0027 ld $27 b7d6 0027 ld $27 b7d7 0004 ld $04 b7d8 009e ld $9e b7d9 0001 ld $01 b7da 0028 ld $28 b7db 0016 ld $16 b7dc 00b9 ld $b9 b7dd 0027 ld $27 b7de 00b4 ld $b4 b7df 00fe ld $fe b7e0 0011 ld $11 b7e1 00bf ld $bf b7e2 007a ld $7a b7e3 00ad ld $ad b7e4 002b ld $2b b7e5 003e ld $3e b7e6 0011 ld $11 b7e7 00c0 ld $c0 b7e8 007a ld $7a b7e9 00ad ld $ad b7ea 0082 ld $82 b7eb 003f ld $3f b7ec 002b ld $2b b7ed 0040 ld $40 b7ee 0063 ld $63 b7ef 00ff ld $ff b7f0 0075 ld $75 b7f1 004d ld $4d b7f2 0002 ld $02 b7f3 004c ld $4c b7f4 0021 ld $21 b7f5 0040 ld $40 b7f6 00bd ld $bd b7f7 002a ld $2a b7f8 0003 ld $03 b7f9 0063 ld $63 b7fa 00ff ld $ff b7fb fe00 bra ac ;+-----------------------------------+ b7fc fcfd bra $b7fd ;| | b7fd 1418 ld $18,y ;| Trampoline for page $b700 lookups | b7fe e006 jmp y,$06 ;| | b7ff c218 st [$18] ;+-----------------------------------+ b800 00a7 ld $a7 b801 0064 ld $64 b802 0036 ld $36 b803 00bd ld $bd b804 0032 ld $32 b805 0003 ld $03 b806 0063 ld $63 b807 00ff ld $ff b808 004d ld $4d b809 0000 ld $00 b80a 004e ld $4e b80b 0053 ld $53 b80c 004c ld $4c b80d 00bf ld $bf b80e 007a ld $7a b80f 002b ld $2b b810 0050 ld $50 b811 0032 ld $32 b812 0096 ld $96 b813 0036 ld $36 b814 0032 ld $32 b815 0098 ld $98 b816 004e ld $4e b817 0011 ld $11 b818 0038 ld $38 b819 0006 ld $06 b81a 0085 ld $85 b81b 00a0 ld $a0 b81c 0074 ld $74 b81d 0069 ld $69 b81e 0050 ld $50 b81f 0093 ld $93 b820 004c ld $4c b821 0093 ld $93 b822 004e ld $4e b823 0021 ld $21 b824 0050 ld $50 b825 00bd ld $bd b826 0035 ld $35 b827 0003 ld $03 b828 0093 ld $93 b829 0036 ld $36 b82a 00a7 ld $a7 b82b 0064 ld $64 b82c 0036 ld $36 b82d 00bd ld $bd b82e 005c ld $5c b82f 0003 ld $03 b830 0063 ld $63 b831 00ff ld $ff b832 0021 ld $21 b833 004c ld $4c b834 00e6 ld $e6 b835 0002 ld $02 b836 00fc ld $fc b837 0040 ld $40 b838 00bd ld $bd b839 0032 ld $32 b83a 0003 ld $03 b83b 0063 ld $63 b83c 00ff ld $ff b83d 0075 ld $75 b83e 0044 ld $44 b83f 0010 ld $10 b840 00e8 ld $e8 b841 0036 ld $36 b842 0032 ld $32 b843 0082 ld $82 b844 0038 ld $38 b845 0021 ld $21 b846 00e8 ld $e8 b847 0085 ld $85 b848 00a4 ld $a4 b849 0040 ld $40 b84a 002b ld $2b b84b 0082 ld $82 b84c 0059 ld $59 b84d 0000 ld $00 b84e 0085 ld $85 b84f 00f0 ld $f0 b850 003f ld $3f b851 002b ld $2b b852 0052 ld $52 b853 0042 ld $42 b854 000f ld $0f b855 00e8 ld $e8 b856 0038 ld $38 b857 0044 ld $44 b858 0001 ld $01 b859 00ea ld $ea b85a 0036 ld $36 b85b 0032 ld $32 b85c 0082 ld $82 b85d 00e8 ld $e8 b85e 0021 ld $21 b85f 00ea ld $ea b860 0085 ld $85 b861 00a4 ld $a4 b862 0040 ld $40 b863 002b ld $2b b864 0054 ld $54 b865 0032 ld $32 b866 0056 ld $56 b867 0052 ld $52 b868 0032 ld $32 b869 00d8 ld $d8 b86a 0054 ld $54 b86b 0032 ld $32 b86c 0096 ld $96 b86d 0056 ld $56 b86e 004d ld $4d b86f 0000 ld $00 b870 0098 ld $98 b871 0011 ld $11 b872 0038 ld $38 b873 0006 ld $06 b874 0085 ld $85 b875 00a0 ld $a0 b876 0074 ld $74 b877 00e3 ld $e3 b878 0001 ld $01 b879 002b ld $2b b87a 0058 ld $58 b87b 005b ld $5b b87c 0058 ld $58 b87d 002b ld $2b b87e 005a ld $5a b87f 0021 ld $21 b880 0058 ld $58 b881 00e6 ld $e6 b882 0001 ld $01 b883 00ad ld $ad b884 002b ld $2b b885 005c ld $5c b886 0021 ld $21 b887 0056 ld $56 b888 00b8 ld $b8 b889 0038 ld $38 b88a 00fc ld $fc b88b 003a ld $3a b88c 00bd ld $bd b88d 00d2 ld $d2 b88e 0003 ld $03 b88f 00a7 ld $a7 b890 0001 ld $01 b891 005c ld $5c b892 00bd ld $bd b893 00c7 ld $c7 b894 0003 ld $03 b895 0011 ld $11 b896 003f ld $3f b897 0020 ld $20 b898 002b ld $2b b899 00a2 ld $a2 b89a 0085 ld $85 b89b 00ce ld $ce b89c 0003 ld $03 b89d 0011 ld $11 b89e 002a ld $2a b89f 0020 ld $20 b8a0 002b ld $2b b8a1 00a2 ld $a2 b8a2 0032 ld $32 b8a3 0042 ld $42 b8a4 0058 ld $58 b8a5 0085 ld $85 b8a6 00e7 ld $e7 b8a7 0003 ld $03 b8a8 00a7 ld $a7 b8a9 0001 ld $01 b8aa 005c ld $5c b8ab 00bd ld $bd b8ac 00e0 ld $e0 b8ad 0003 ld $03 b8ae 0011 ld $11 b8af 0020 ld $20 b8b0 003f ld $3f b8b1 002b ld $2b b8b2 00a2 ld $a2 b8b3 0085 ld $85 b8b4 00e7 ld $e7 b8b5 0003 ld $03 b8b6 0011 ld $11 b8b7 0020 ld $20 b8b8 002a ld $2a b8b9 002b ld $2b b8ba 00a2 ld $a2 b8bb 00ab ld $ab b8bc 005e ld $5e b8bd 0038 ld $38 b8be 0056 ld $56 b8bf 0021 ld $21 b8c0 005e ld $5e b8c1 00bf ld $bf b8c2 0012 ld $12 b8c3 0004 ld $04 b8c4 001a ld $1a b8c5 005e ld $5e b8c6 00b1 ld $b1 b8c7 003d ld $3d b8c8 00e3 ld $e3 b8c9 0004 ld $04 b8ca 0085 ld $85 b8cb 0000 ld $00 b8cc 0004 ld $04 b8cd 0004 ld $04 b8ce 0000 ld $00 b8cf 00f9 ld $f9 b8d0 005e ld $5e b8d1 00a5 ld $a5 b8d2 0016 ld $16 b8d3 0004 ld $04 b8d4 00a4 ld $a4 b8d5 0085 ld $85 b8d6 00dc ld $dc b8d7 0041 ld $41 b8d8 0021 ld $21 b8d9 0058 ld $58 b8da 0085 ld $85 b8db 00d6 ld $d6 b8dc 0040 ld $40 b8dd 0059 ld $59 b8de 0026 ld $26 b8df 00b8 ld $b8 b8e0 005a ld $5a b8e1 0085 ld $85 b8e2 00c3 ld $c3 b8e3 0040 ld $40 b8e4 0095 ld $95 b8e5 0056 ld $56 b8e6 00b8 ld $b8 b8e7 00d8 ld $d8 b8e8 00c3 ld $c3 b8e9 0095 ld $95 b8ea 0003 ld $03 b8eb 0063 ld $63 b8ec 00ff ld $ff b8ed 0075 ld $75 b8ee 0044 ld $44 b8ef 0010 ld $10 b8f0 00e8 ld $e8 b8f1 0036 ld $36 b8f2 0032 ld $32 b8f3 0082 ld $82 b8f4 0038 ld $38 b8f5 0021 ld $21 b8f6 00e8 ld $e8 b8f7 0085 ld $85 b8f8 00a4 ld $a4 b8f9 0040 ld $40 b8fa 002b ld $2b b8fb fe00 bra ac ;+-----------------------------------+ b8fc fcfd bra $b8fd ;| | b8fd 1418 ld $18,y ;| Trampoline for page $b800 lookups | b8fe e006 jmp y,$06 ;| | b8ff c218 st [$18] ;+-----------------------------------+ b900 0082 ld $82 b901 0059 ld $59 b902 0000 ld $00 b903 0085 ld $85 b904 00f0 ld $f0 b905 003f ld $3f b906 002b ld $2b b907 0052 ld $52 b908 00a9 ld $a9 b909 0060 ld $60 b90a 003c ld $3c b90b 0052 ld $52 b90c 0032 ld $32 b90d 0096 ld $96 b90e 0060 ld $60 b90f 004d ld $4d b910 0000 ld $00 b911 0098 ld $98 b912 0011 ld $11 b913 0038 ld $38 b914 0006 ld $06 b915 0085 ld $85 b916 00a0 ld $a0 b917 0074 ld $74 b918 00e3 ld $e3 b919 0001 ld $01 b91a 002b ld $2b b91b 0062 ld $62 b91c 005b ld $5b b91d 0062 ld $62 b91e 002b ld $2b b91f 0064 ld $64 b920 0021 ld $21 b921 0062 ld $62 b922 00e6 ld $e6 b923 0001 ld $01 b924 00ad ld $ad b925 002b ld $2b b926 005c ld $5c b927 00a7 ld $a7 b928 0001 ld $01 b929 005c ld $5c b92a 00bd ld $bd b92b 005e ld $5e b92c 0004 ld $04 b92d 0011 ld $11 b92e 0020 ld $20 b92f 003f ld $3f b930 002b ld $2b b931 00a2 ld $a2 b932 0085 ld $85 b933 0065 ld $65 b934 0004 ld $04 b935 0011 ld $11 b936 0020 ld $20 b937 002a ld $2a b938 002b ld $2b b939 00a2 ld $a2 b93a 00ab ld $ab b93b 0066 ld $66 b93c 0052 ld $52 b93d 0060 ld $60 b93e 001a ld $1a b93f 0066 ld $66 b940 00b1 ld $b1 b941 003d ld $3d b942 00e3 ld $e3 b943 0004 ld $04 b944 005e ld $5e b945 00a5 ld $a5 b946 0016 ld $16 b947 0004 ld $04 b948 00a4 ld $a4 b949 0085 ld $85 b94a 00dc ld $dc b94b 0041 ld $41 b94c 0021 ld $21 b94d 0062 ld $62 b94e 0085 ld $85 b94f 00d6 ld $d6 b950 0040 ld $40 b951 0059 ld $59 b952 0026 ld $26 b953 00b8 ld $b8 b954 0064 ld $64 b955 0085 ld $85 b956 00c3 ld $c3 b957 0040 ld $40 b958 0032 ld $32 b959 003c ld $3c b95a 003a ld $3a b95b 00a9 ld $a9 b95c 0068 ld $68 b95d 003a ld $3a b95e 0052 ld $52 b95f 0032 ld $32 b960 0096 ld $96 b961 0068 ld $68 b962 004d ld $4d b963 0000 ld $00 b964 0098 ld $98 b965 0011 ld $11 b966 0038 ld $38 b967 0006 ld $06 b968 0085 ld $85 b969 00a0 ld $a0 b96a 0074 ld $74 b96b 00e3 ld $e3 b96c 0001 ld $01 b96d 002b ld $2b b96e 006a ld $6a b96f 005b ld $5b b970 006a ld $6a b971 002b ld $2b b972 006c ld $6c b973 0021 ld $21 b974 006a ld $6a b975 00e6 ld $e6 b976 0001 ld $01 b977 00ad ld $ad b978 002b ld $2b b979 005c ld $5c b97a 00a7 ld $a7 b97b 0001 ld $01 b97c 005c ld $5c b97d 00bd ld $bd b97e 00b1 ld $b1 b97f 0004 ld $04 b980 0011 ld $11 b981 003f ld $3f b982 0020 ld $20 b983 002b ld $2b b984 00a2 ld $a2 b985 0085 ld $85 b986 00b8 ld $b8 b987 0004 ld $04 b988 0011 ld $11 b989 002a ld $2a b98a 0020 ld $20 b98b 002b ld $2b b98c 00a2 ld $a2 b98d 00ab ld $ab b98e 0066 ld $66 b98f 0052 ld $52 b990 0068 ld $68 b991 001a ld $1a b992 0066 ld $66 b993 00b1 ld $b1 b994 003d ld $3d b995 00e3 ld $e3 b996 0004 ld $04 b997 005e ld $5e b998 00a5 ld $a5 b999 0016 ld $16 b99a 0004 ld $04 b99b 00a4 ld $a4 b99c 0085 ld $85 b99d 00dc ld $dc b99e 0041 ld $41 b99f 0021 ld $21 b9a0 006a ld $6a b9a1 0085 ld $85 b9a2 00d6 ld $d6 b9a3 0040 ld $40 b9a4 0059 ld $59 b9a5 0026 ld $26 b9a6 00b8 ld $b8 b9a7 006c ld $6c b9a8 0085 ld $85 b9a9 00c3 ld $c3 b9aa 0040 ld $40 b9ab 0032 ld $32 b9ac 0042 ld $42 b9ad 006a ld $6a b9ae 0063 ld $63 b9af 00ff ld $ff b9b0 0075 ld $75 b9b1 004d ld $4d b9b2 0000 ld $00 b9b3 006e ld $6e b9b4 0011 ld $11 b9b5 0000 ld $00 b9b6 001a ld $1a b9b7 002b ld $2b b9b8 006e ld $6e b9b9 0063 ld $63 b9ba 00ff ld $ff b9bb 0075 ld $75 b9bc 0011 ld $11 b9bd 00d5 ld $d5 b9be 007c ld $7c b9bf 0025 ld $25 b9c0 0003 ld $03 b9c1 0011 ld $11 b9c2 00a0 ld $a0 b9c3 007b ld $7b b9c4 00ad ld $ad b9c5 002b ld $2b b9c6 0070 ld $70 b9c7 0059 ld $59 b9c8 0002 ld $02 b9c9 0099 ld $99 b9ca 0070 ld $70 b9cb 0085 ld $85 b9cc 0000 ld $00 b9cd 0005 ld $05 b9ce 0005 ld $05 b9cf 0000 ld $00 b9d0 00ff ld $ff b9d1 002b ld $2b b9d2 0032 ld $32 b9d3 0021 ld $21 b9d4 0070 ld $70 b9d5 00c3 ld $c3 b9d6 0027 ld $27 b9d7 0005 ld $05 b9d8 0042 ld $42 b9d9 0001 ld $01 b9da 00e8 ld $e8 b9db 0070 ld $70 b9dc 004d ld $4d b9dd 0001 ld $01 b9de 0056 ld $56 b9df 0042 ld $42 b9e0 0001 ld $01 b9e1 00d8 ld $d8 b9e2 0070 ld $70 b9e3 0011 ld $11 b9e4 00d5 ld $d5 b9e5 007c ld $7c b9e6 0099 ld $99 b9e7 0056 ld $56 b9e8 002b ld $2b b9e9 00e8 ld $e8 b9ea 0053 ld $53 b9eb 0056 ld $56 b9ec 00a0 ld $a0 b9ed 007b ld $7b b9ee 00f0 ld $f0 b9ef 00e8 ld $e8 b9f0 0095 ld $95 b9f1 0056 ld $56 b9f2 00b8 ld $b8 b9f3 00d8 ld $d8 b9f4 00c3 ld $c3 b9f5 0010 ld $10 b9f6 0005 ld $05 b9f7 0085 ld $85 b9f8 002e ld $2e b9f9 0005 ld $05 b9fa 0011 ld $11 b9fb fe00 bra ac ;+-----------------------------------+ b9fc fcfd bra $b9fd ;| | b9fd 1418 ld $18,y ;| Trampoline for page $b900 lookups | b9fe e006 jmp y,$06 ;| | b9ff c218 st [$18] ;+-----------------------------------+ ba00 00d6 ld $d6 ba01 007c ld $7c ba02 0025 ld $25 ba03 0000 ld $00 ba04 0085 ld $85 ba05 00ad ld $ad ba06 0002 ld $02 ba07 0085 ld $85 ba08 00a2 ld $a2 ba09 0009 ld $09 ba0a 0011 ld $11 ba0b 00fe ld $fe ba0c 007c ld $7c ba0d 002b ld $2b ba0e 0084 ld $84 ba0f 0011 ld $11 ba10 00a0 ld $a0 ba11 007b ld $7b ba12 0085 ld $85 ba13 00a4 ld $a4 ba14 0075 ld $75 ba15 0063 ld $63 ba16 00ff ld $ff ba17 0075 ld $75 ba18 0085 ld $85 ba19 00bb ld $bb ba1a 0009 ld $09 ba1b 0011 ld $11 ba1c 00d5 ld $d5 ba1d 007c ld $7c ba1e 0025 ld $25 ba1f 0002 ld $02 ba20 0032 ld $32 ba21 0084 ld $84 ba22 0042 ld $42 ba23 0011 ld $11 ba24 00a0 ld $a0 ba25 007d ld $7d ba26 0085 ld $85 ba27 00a4 ld $a4 ba28 0075 ld $75 ba29 0011 ld $11 ba2a 00a0 ld $a0 ba2b 007d ld $7d ba2c 00ad ld $ad ba2d 002b ld $2b ba2e 0070 ld $70 ba2f 0042 ld $42 ba30 0001 ld $01 ba31 00e8 ld $e8 ba32 0070 ld $70 ba33 004d ld $4d ba34 0001 ld $01 ba35 0056 ld $56 ba36 0042 ld $42 ba37 0001 ld $01 ba38 00d8 ld $d8 ba39 0070 ld $70 ba3a 0011 ld $11 ba3b 00d5 ld $d5 ba3c 007c ld $7c ba3d 0099 ld $99 ba3e 0056 ld $56 ba3f 002b ld $2b ba40 00e8 ld $e8 ba41 0053 ld $53 ba42 0056 ld $56 ba43 00a0 ld $a0 ba44 007d ld $7d ba45 00f0 ld $f0 ba46 00e8 ld $e8 ba47 0095 ld $95 ba48 0056 ld $56 ba49 00b8 ld $b8 ba4a 00d8 ld $d8 ba4b 00c3 ld $c3 ba4c 0062 ld $62 ba4d 0005 ld $05 ba4e 0011 ld $11 ba4f 0000 ld $00 ba50 00ff ld $ff ba51 002b ld $2b ba52 00a2 ld $a2 ba53 0085 ld $85 ba54 00c2 ld $c2 ba55 0041 ld $41 ba56 0085 ld $85 ba57 00a2 ld $a2 ba58 0044 ld $44 ba59 00c7 ld $c7 ba5a 00ef ld $ef ba5b 0066 ld $66 ba5c 00aa ld $aa ba5d 0085 ld $85 ba5e 00a7 ld $a7 ba5f 0045 ld $45 ba60 0059 ld $59 ba61 0002 ld $02 ba62 0099 ld $99 ba63 0070 ld $70 ba64 002b ld $2b ba65 0032 ld $32 ba66 0085 ld $85 ba67 00ad ld $ad ba68 0002 ld $02 ba69 0016 ld $16 ba6a 0000 ld $00 ba6b 0004 ld $04 ba6c 0016 ld $16 ba6d 0000 ld $00 ba6e 001c ld $1c ba6f 0011 ld $11 ba70 00ae ld $ae ba71 00c1 ld $c1 ba72 002b ld $2b ba73 0024 ld $24 ba74 0059 ld $59 ba75 00a8 ld $a8 ba76 0085 ld $85 ba77 00a7 ld $a7 ba78 0071 ld $71 ba79 0063 ld $63 ba7a 00ff ld $ff ba7b 0075 ld $75 ba7c 001a ld $1a ba7d 000f ld $0f ba7e 002b ld $2b ba7f 0072 ld $72 ba80 0021 ld $21 ba81 0072 ld $72 ba82 00fc ld $fc ba83 004a ld $4a ba84 00bb ld $bb ba85 00be ld $be ba86 0005 ld $05 ba87 004d ld $4d ba88 0000 ld $00 ba89 0048 ld $48 ba8a 0032 ld $32 ba8b 004a ld $4a ba8c 0072 ld $72 ba8d 0032 ld $32 ba8e 0082 ld $82 ba8f 0072 ld $72 ba90 004d ld $4d ba91 0000 ld $00 ba92 0084 ld $84 ba93 0085 ld $85 ba94 00ce ld $ce ba95 0043 ld $43 ba96 0021 ld $21 ba97 0048 ld $48 ba98 00e6 ld $e6 ba99 0019 ld $19 ba9a 00c3 ld $c3 ba9b 00db ld $db ba9c 0005 ld $05 ba9d 0021 ld $21 ba9e 0048 ld $48 ba9f 002f ld $2f baa0 0018 ld $18 baa1 0073 ld $73 baa2 002f ld $2f baa3 0018 ld $18 baa4 0073 ld $73 baa5 0082 ld $82 baa6 0001 ld $01 baa7 00bb ld $bb baa8 00db ld $db baa9 0005 ld $05 baaa 0032 ld $32 baab 0082 ld $82 baac 0072 ld $72 baad 004d ld $4d baae 0000 ld $00 baaf 0084 ld $84 bab0 0085 ld $85 bab1 00ce ld $ce bab2 0043 ld $43 bab3 0063 ld $63 bab4 00ff ld $ff bab5 0075 ld $75 bab6 0085 ld $85 bab7 00c3 ld $c3 bab8 0008 ld $08 bab9 0063 ld $63 baba 00ff ld $ff babb 0075 ld $75 babc 0085 ld $85 babd 00c3 ld $c3 babe 0008 ld $08 babf 0063 ld $63 bac0 00ff ld $ff bac1 0075 ld $75 bac2 0042 ld $42 bac3 0010 ld $10 bac4 0038 ld $38 bac5 0038 ld $38 bac6 0044 ld $44 bac7 0010 ld $10 bac8 00e8 ld $e8 bac9 0036 ld $36 baca 0032 ld $32 bacb 0082 ld $82 bacc 0038 ld $38 bacd 0021 ld $21 bace 00e8 ld $e8 bacf 0085 ld $85 bad0 00a4 ld $a4 bad1 0040 ld $40 bad2 0085 ld $85 bad3 0000 ld $00 bad4 0006 ld $06 bad5 0006 ld $06 bad6 0000 ld $00 bad7 0037 ld $37 bad8 002b ld $2b bad9 0082 ld $82 bada 0059 ld $59 badb 0000 ld $00 badc 0085 ld $85 badd 00f0 ld $f0 bade 003f ld $3f badf 002b ld $2b bae0 0038 ld $38 bae1 0085 ld $85 bae2 0069 ld $69 bae3 0003 ld $03 bae4 0063 ld $63 bae5 00ff ld $ff bae6 0075 ld $75 bae7 0044 ld $44 bae8 0010 ld $10 bae9 0038 ld $38 baea 0038 ld $38 baeb 0032 ld $32 baec 0082 ld $82 baed 0038 ld $38 baee 0059 ld $59 baef 0000 ld $00 baf0 0085 ld $85 baf1 00f0 ld $f0 baf2 003f ld $3f baf3 002b ld $2b baf4 0038 ld $38 baf5 0085 ld $85 baf6 0069 ld $69 baf7 0003 ld $03 baf8 0063 ld $63 baf9 00ff ld $ff bafa 0075 ld $75 bafb fe00 bra ac ;+-----------------------------------+ bafc fcfd bra $bafd ;| | bafd 1418 ld $18,y ;| Trampoline for page $ba00 lookups | bafe e006 jmp y,$06 ;| | baff c218 st [$18] ;+-----------------------------------+ bb00 0093 ld $93 bb01 003a ld $3a bb02 0044 ld $44 bb03 0001 ld $01 bb04 0082 ld $82 bb05 0036 ld $36 bb06 0059 ld $59 bb07 000f ld $0f bb08 0085 ld $85 bb09 00a4 ld $a4 bb0a 0040 ld $40 bb0b 002b ld $2b bb0c 00ea ld $ea bb0d 0021 ld $21 bb0e 003a ld $3a bb0f 00b8 ld $b8 bb10 00ea ld $ea bb11 0085 ld $85 bb12 00a0 ld $a0 bb13 0008 ld $08 bb14 0006 ld $06 bb15 0038 ld $38 bb16 00c8 ld $c8 bb17 00ac ld $ac bb18 007c ld $7c bb19 00d7 ld $d7 bb1a 0079 ld $79 bb1b 00ae ld $ae bb1c 0079 ld $79 bb1d 00d7 ld $d7 bb1e 0078 ld $78 bb1f 00ae ld $ae bb20 0078 ld $78 bb21 00d7 ld $d7 bb22 0077 ld $77 bb23 00ae ld $ae bb24 0077 ld $77 bb25 00d7 ld $d7 bb26 0076 ld $76 bb27 00ae ld $ae bb28 0076 ld $76 bb29 00d7 ld $d7 bb2a 0075 ld $75 bb2b 00ae ld $ae bb2c 0075 ld $75 bb2d 00d7 ld $d7 bb2e 0074 ld $74 bb2f 00ae ld $ae bb30 0074 ld $74 bb31 00d7 ld $d7 bb32 0073 ld $73 bb33 00ae ld $ae bb34 0073 ld $73 bb35 00d7 ld $d7 bb36 0072 ld $72 bb37 00ae ld $ae bb38 0072 ld $72 bb39 00d7 ld $d7 bb3a 0071 ld $71 bb3b 00ae ld $ae bb3c 0071 ld $71 bb3d 00d7 ld $d7 bb3e 0070 ld $70 bb3f 00ae ld $ae bb40 0070 ld $70 bb41 00d7 ld $d7 bb42 006f ld $6f bb43 00ae ld $ae bb44 006f ld $6f bb45 00d7 ld $d7 bb46 006e ld $6e bb47 00ae ld $ae bb48 006e ld $6e bb49 00d7 ld $d7 bb4a 006d ld $6d bb4b 00ae ld $ae bb4c 006d ld $6d bb4d 00d7 ld $d7 bb4e 006c ld $6c bb4f 00ae ld $ae bb50 006c ld $6c bb51 00d7 ld $d7 bb52 006b ld $6b bb53 00ae ld $ae bb54 006b ld $6b bb55 00d7 ld $d7 bb56 006a ld $6a bb57 00ae ld $ae bb58 006a ld $6a bb59 00d7 ld $d7 bb5a 0069 ld $69 bb5b 00ae ld $ae bb5c 0069 ld $69 bb5d 00d7 ld $d7 bb5e 0068 ld $68 bb5f 00ae ld $ae bb60 0068 ld $68 bb61 00d7 ld $d7 bb62 0067 ld $67 bb63 00ae ld $ae bb64 0067 ld $67 bb65 00d7 ld $d7 bb66 0066 ld $66 bb67 00ae ld $ae bb68 0066 ld $66 bb69 00d7 ld $d7 bb6a 0065 ld $65 bb6b 00ae ld $ae bb6c 0065 ld $65 bb6d 00d7 ld $d7 bb6e 0064 ld $64 bb6f 00ae ld $ae bb70 0064 ld $64 bb71 00d7 ld $d7 bb72 0063 ld $63 bb73 00ae ld $ae bb74 0063 ld $63 bb75 00d7 ld $d7 bb76 0062 ld $62 bb77 00ae ld $ae bb78 0062 ld $62 bb79 00d7 ld $d7 bb7a 0061 ld $61 bb7b 00ae ld $ae bb7c 0061 ld $61 bb7d 00d7 ld $d7 bb7e 0060 ld $60 bb7f 00ae ld $ae bb80 0060 ld $60 bb81 00d7 ld $d7 bb82 005f ld $5f bb83 00ae ld $ae bb84 005f ld $5f bb85 00d7 ld $d7 bb86 005e ld $5e bb87 00ae ld $ae bb88 005e ld $5e bb89 00d7 ld $d7 bb8a 005d ld $5d bb8b 00ae ld $ae bb8c 005d ld $5d bb8d 00d7 ld $d7 bb8e 005c ld $5c bb8f 00ae ld $ae bb90 005c ld $5c bb91 00d7 ld $d7 bb92 005b ld $5b bb93 00ae ld $ae bb94 005b ld $5b bb95 00d7 ld $d7 bb96 005a ld $5a bb97 00ae ld $ae bb98 005a ld $5a bb99 00d7 ld $d7 bb9a 0059 ld $59 bb9b 00ae ld $ae bb9c 0059 ld $59 bb9d 00d7 ld $d7 bb9e 0058 ld $58 bb9f 00ae ld $ae bba0 0058 ld $58 bba1 00d7 ld $d7 bba2 0057 ld $57 bba3 00ae ld $ae bba4 0057 ld $57 bba5 00d7 ld $d7 bba6 0056 ld $56 bba7 00ae ld $ae bba8 0056 ld $56 bba9 00d7 ld $d7 bbaa 0055 ld $55 bbab 00ae ld $ae bbac 0055 ld $55 bbad 00d7 ld $d7 bbae 0054 ld $54 bbaf 00ae ld $ae bbb0 0054 ld $54 bbb1 00d7 ld $d7 bbb2 0053 ld $53 bbb3 00ae ld $ae bbb4 0053 ld $53 bbb5 00d7 ld $d7 bbb6 0052 ld $52 bbb7 00ae ld $ae bbb8 0052 ld $52 bbb9 00d7 ld $d7 bbba 0051 ld $51 bbbb 00ae ld $ae bbbc 0051 ld $51 bbbd 00d7 ld $d7 bbbe 0050 ld $50 bbbf 00ae ld $ae bbc0 0050 ld $50 bbc1 00d7 ld $d7 bbc2 004f ld $4f bbc3 00ae ld $ae bbc4 004f ld $4f bbc5 00d7 ld $d7 bbc6 004e ld $4e bbc7 00ae ld $ae bbc8 004e ld $4e bbc9 00d7 ld $d7 bbca 004d ld $4d bbcb 00ae ld $ae bbcc 004d ld $4d bbcd 00d7 ld $d7 bbce 004c ld $4c bbcf 00ae ld $ae bbd0 004c ld $4c bbd1 00d7 ld $d7 bbd2 004b ld $4b bbd3 00ae ld $ae bbd4 004b ld $4b bbd5 00d7 ld $d7 bbd6 004a ld $4a bbd7 00ae ld $ae bbd8 004a ld $4a bbd9 00d7 ld $d7 bbda 0049 ld $49 bbdb 00ae ld $ae bbdc 0049 ld $49 bbdd 00d7 ld $d7 bbde 0048 ld $48 bbdf 0008 ld $08 bbe0 00a0 ld $a0 bbe1 0060 ld $60 bbe2 00c3 ld $c3 bbe3 00a4 ld $a4 bbe4 0008 ld $08 bbe5 004d ld $4d bbe6 0000 ld $00 bbe7 003a ld $3a bbe8 0085 ld $85 bbe9 001d ld $1d bbea 0004 ld $04 bbeb 0063 ld $63 bbec 00ff ld $ff bbed 0075 ld $75 bbee 00dd ld $dd bbef 003a ld $3a bbf0 0021 ld $21 bbf1 003a ld $3a bbf2 00c5 ld $c5 bbf3 00bc ld $bc bbf4 0008 ld $08 bbf5 0044 ld $44 bbf6 0001 ld $01 bbf7 0082 ld $82 bbf8 0036 ld $36 bbf9 0059 ld $59 bbfa 000f ld $0f bbfb fe00 bra ac ;+-----------------------------------+ bbfc fcfd bra $bbfd ;| | bbfd 1418 ld $18,y ;| Trampoline for page $bb00 lookups | bbfe e006 jmp y,$06 ;| | bbff c218 st [$18] ;+-----------------------------------+ bc00 0085 ld $85 bc01 00a4 ld $a4 bc02 0040 ld $40 bc03 002b ld $2b bc04 003a ld $3a bc05 0085 ld $85 bc06 001d ld $1d bc07 0004 ld $04 bc08 0063 ld $63 bc09 00ff ld $ff bc0a 0075 ld $75 bc0b 0021 ld $21 bc0c 0042 ld $42 bc0d 00e6 ld $e6 bc0e 0001 ld $01 bc0f 00ad ld $ad bc10 002b ld $2b bc11 0074 ld $74 bc12 00a7 ld $a7 bc13 0001 ld $01 bc14 0074 ld $74 bc15 00bd ld $bd bc16 00d5 ld $d5 bc17 0008 ld $08 bc18 004d ld $4d bc19 0000 ld $00 bc1a 0044 ld $44 bc1b 0085 ld $85 bc1c 0041 ld $41 bc1d 0005 ld $05 bc1e 00a7 ld $a7 bc1f 0003 ld $03 bc20 0074 ld $74 bc21 00bd ld $bd bc22 00e9 ld $e9 bc23 0008 ld $08 bc24 004d ld $4d bc25 0002 ld $02 bc26 0044 ld $44 bc27 0011 ld $11 bc28 00fe ld $fe bc29 007c ld $7c bc2a 002b ld $2b bc2b 0084 ld $84 bc2c 0011 ld $11 bc2d 00a0 ld $a0 bc2e 007b ld $7b bc2f 0085 ld $85 bc30 00a4 ld $a4 bc31 0075 ld $75 bc32 00a7 ld $a7 bc33 0002 ld $02 bc34 0074 ld $74 bc35 00bd ld $bd bc36 009e ld $9e bc37 0009 ld $09 bc38 004d ld $4d bc39 0001 ld $01 bc3a 0044 ld $44 bc3b 0032 ld $32 bc3c 0084 ld $84 bc3d 0042 ld $42 bc3e 0011 ld $11 bc3f 00a0 ld $a0 bc40 007b ld $7b bc41 0085 ld $85 bc42 00a4 ld $a4 bc43 0075 ld $75 bc44 0085 ld $85 bc45 00a0 ld $a0 bc46 0009 ld $09 bc47 0009 ld $09 bc48 00a0 ld $a0 bc49 005d ld $5d bc4a 0063 ld $63 bc4b 00ff ld $ff bc4c 0075 ld $75 bc4d 0032 ld $32 bc4e 0022 ld $22 bc4f 006e ld $6e bc50 004d ld $4d bc51 0046 ld $46 bc52 0024 ld $24 bc53 0016 ld $16 bc54 00cf ld $cf bc55 0027 ld $27 bc56 00b4 ld $b4 bc57 00fe ld $fe bc58 001a ld $1a bc59 0046 ld $46 bc5a 00bd ld $bd bc5b 00a4 ld $a4 bc5c 0009 ld $09 bc5d 004d ld $4d bc5e 0002 ld $02 bc5f 0082 ld $82 bc60 0085 ld $85 bc61 00a6 ld $a6 bc62 0073 ld $73 bc63 0063 ld $63 bc64 00ff ld $ff bc65 0075 ld $75 bc66 004d ld $4d bc67 0001 ld $01 bc68 0032 ld $32 bc69 0011 ld $11 bc6a 00d5 ld $d5 bc6b 007c ld $7c bc6c 0025 ld $25 bc6d 0006 ld $06 bc6e 0085 ld $85 bc6f 00ad ld $ad bc70 0002 ld $02 bc71 002f ld $2f bc72 00d6 ld $d6 bc73 006e ld $6e bc74 0063 ld $63 bc75 00ff ld $ff bc76 0075 ld $75 bc77 004d ld $4d bc78 0001 ld $01 bc79 0032 ld $32 bc7a 0011 ld $11 bc7b 00d5 ld $d5 bc7c 007c ld $7c bc7d 0025 ld $25 bc7e 0001 ld $01 bc7f 0085 ld $85 bc80 00ad ld $ad bc81 0002 ld $02 bc82 0063 ld $63 bc83 00ff ld $ff bc84 0075 ld $75 bc85 004d ld $4d bc86 0001 ld $01 bc87 0032 ld $32 bc88 0011 ld $11 bc89 00d5 ld $d5 bc8a 007c ld $7c bc8b 0025 ld $25 bc8c 0004 ld $04 bc8d 0085 ld $85 bc8e 00ad ld $ad bc8f 0002 ld $02 bc90 0063 ld $63 bc91 00ff ld $ff bc92 0075 ld $75 bc93 004d ld $4d bc94 0001 ld $01 bc95 0032 ld $32 bc96 0011 ld $11 bc97 00d5 ld $d5 bc98 007c ld $7c bc99 0025 ld $25 bc9a 0005 ld $05 bc9b 0085 ld $85 bc9c 00ad ld $ad bc9d 0002 ld $02 bc9e 0085 ld $85 bc9f 00a2 ld $a2 bca0 0009 ld $09 bca1 0063 ld $63 bca2 00ff ld $ff bca3 0075 ld $75 bca4 0085 ld $85 bca5 00a0 ld $a0 bca6 000a ld $0a bca7 000a ld $0a bca8 00a0 ld $a0 bca9 0060 ld $60 bcaa 004d ld $4d bcab 0032 ld $32 bcac 009c ld $9c bcad 0085 ld $85 bcae 00b3 ld $b3 bcaf 0040 ld $40 bcb0 0085 ld $85 bcb1 00db ld $db bcb2 0004 ld $04 bcb3 0011 ld $11 bcb4 00d5 ld $d5 bcb5 007c ld $7c bcb6 002b ld $2b bcb7 0030 ld $30 bcb8 0016 ld $16 bcb9 0020 ld $20 bcba 00a3 ld $a3 bcbb 004d ld $4d bcbc 0002 ld $02 bcbd 0082 ld $82 bcbe 004d ld $4d bcbf 0002 ld $02 bcc0 0084 ld $84 bcc1 004d ld $4d bcc2 009d ld $9d bcc3 0086 ld $86 bcc4 004d ld $4d bcc5 0064 ld $64 bcc6 0088 ld $88 bcc7 0085 ld $85 bcc8 00c2 ld $c2 bcc9 0045 ld $45 bcca 0011 ld $11 bccb 0010 ld $10 bccc 002a ld $2a bccd 002b ld $2b bcce 00a2 ld $a2 bccf 00c7 ld $c7 bcd0 00fd ld $fd bcd1 0066 ld $66 bcd2 00aa ld $aa bcd3 0016 ld $16 bcd4 0006 ld $06 bcd5 00a4 ld $a4 bcd6 0016 ld $16 bcd7 0068 ld $68 bcd8 00a5 ld $a5 bcd9 0085 ld $85 bcda 00dc ld $dc bcdb 0041 ld $41 bcdc 0011 ld $11 bcdd 00a7 ld $a7 bcde 007a ld $7a bcdf 0085 ld $85 bce0 00d6 ld $d6 bce1 0040 ld $40 bce2 0011 ld $11 bce3 00a0 ld $a0 bce4 007c ld $7c bce5 002b ld $2b bce6 00c4 ld $c4 bce7 004d ld $4d bce8 003f ld $3f bce9 00c6 ld $c6 bcea 0085 ld $85 bceb 00b5 ld $b5 bcec 000b ld $0b bced 0011 ld $11 bcee 00bd ld $bd bcef 0048 ld $48 bcf0 0085 ld $85 bcf1 00d6 ld $d6 bcf2 0040 ld $40 bcf3 0016 ld $16 bcf4 0008 ld $08 bcf5 00a4 ld $a4 bcf6 0016 ld $16 bcf7 006e ld $6e bcf8 00a5 ld $a5 bcf9 0085 ld $85 bcfa 00dc ld $dc bcfb fe00 bra ac ;+-----------------------------------+ bcfc fcfd bra $bcfd ;| | bcfd 1418 ld $18,y ;| Trampoline for page $bc00 lookups | bcfe e006 jmp y,$06 ;| | bcff c218 st [$18] ;+-----------------------------------+ bd00 0041 ld $41 bd01 0011 ld $11 bd02 00a0 ld $a0 bd03 007a ld $7a bd04 0085 ld $85 bd05 00d6 ld $d6 bd06 0040 ld $40 bd07 0011 ld $11 bd08 00ac ld $ac bd09 007a ld $7a bd0a 002b ld $2b bd0b 00c4 ld $c4 bd0c 0085 ld $85 bd0d 00a0 ld $a0 bd0e 000b ld $0b bd0f 000b ld $0b bd10 00a0 ld $a0 bd11 0025 ld $25 bd12 004d ld $4d bd13 003f ld $3f bd14 00c6 ld $c6 bd15 0085 ld $85 bd16 00b5 ld $b5 bd17 000b ld $0b bd18 0011 ld $11 bd19 00ad ld $ad bd1a 0048 ld $48 bd1b 0085 ld $85 bd1c 00d6 ld $d6 bd1d 0040 ld $40 bd1e 0016 ld $16 bd1f 0020 ld $20 bd20 00a2 ld $a2 bd21 00c7 ld $c7 bd22 0002 ld $02 bd23 0069 ld $69 bd24 00aa ld $aa bd25 0063 ld $63 bd26 00ff ld $ff bd27 0075 ld $75 bd28 0065 ld $65 bd29 00a3 ld $a3 bd2a 00c6 ld $c6 bd2b 0021 ld $21 bd2c 00c4 ld $c4 bd2d 0085 ld $85 bd2e 00d6 ld $d6 bd2f 0040 ld $40 bd30 0016 ld $16 bd31 002a ld $2a bd32 00a3 ld $a3 bd33 0063 ld $63 bd34 00ff ld $ff bd35 00b4 ld $b4 bd36 0080 ld $80 bd37 003f ld $3f bd38 00f0 ld $f0 bd39 000f ld $0f bd3a 002b ld $2b bd3b 0084 ld $84 bd3c 0021 ld $21 bd3d 0082 ld $82 bd3e 00b8 ld $b8 bd3f 0084 ld $84 bd40 0035 ld $35 bd41 0053 ld $53 bd42 00fa ld $fa bd43 0021 ld $21 bd44 0084 ld $84 bd45 00ff ld $ff bd46 0021 ld $21 bd47 0082 ld $82 bd48 00ff ld $ff bd49 0040 ld $40 bd4a 00a4 ld $a4 bd4b 005b ld $5b bd4c 002b ld $2b bd4d 0084 ld $84 bd4e 0021 ld $21 bd4f 0082 ld $82 bd50 00b8 ld $b8 bd51 0084 ld $84 bd52 0035 ld $35 bd53 0056 ld $56 bd54 00ae ld $ae bd55 0021 ld $21 bd56 0084 ld $84 bd57 00ff ld $ff bd58 0021 ld $21 bd59 0082 ld $82 bd5a 00ff ld $ff bd5b 0059 ld $59 bd5c 0080 ld $80 bd5d 00b8 ld $b8 bd5e 009c ld $9c bd5f 002b ld $2b bd60 009e ld $9e bd61 0018 ld $18 bd62 009e ld $9e bd63 0059 ld $59 bd64 0000 ld $00 bd65 0060 ld $60 bd66 009c ld $9c bd67 009e ld $9e bd68 00bb ld $bb bd69 009e ld $9e bd6a 00ff ld $ff bd6b 0075 ld $75 bd6c 0035 ld $35 bd6d 003f ld $3f bd6e 00d2 ld $d2 bd6f 005e ld $5e bd70 0084 ld $84 bd71 0085 ld $85 bd72 00ea ld $ea bd73 0040 ld $40 bd74 0059 ld $59 bd75 0020 ld $20 bd76 0085 ld $85 bd77 00cc ld $cc bd78 0044 ld $44 bd79 009e ld $9e bd7a 00ca ld $ca bd7b 0084 ld $84 bd7c 0063 ld $63 bd7d 00ff ld $ff bd7e 0075 ld $75 bd7f 002b ld $2b bd80 0082 ld $82 bd81 0085 ld $85 bd82 00ea ld $ea bd83 0040 ld $40 bd84 0093 ld $93 bd85 0082 ld $82 bd86 0023 ld $23 bd87 0082 ld $82 bd88 0035 ld $35 bd89 003f ld $3f bd8a 00e6 ld $e6 bd8b 0085 ld $85 bd8c 00cc ld $cc bd8d 0044 ld $44 bd8e 0090 ld $90 bd8f 00dc ld $dc bd90 0063 ld $63 bd91 00ff ld $ff bd92 00c7 ld $c7 bd93 0010 ld $10 bd94 006f ld $6f bd95 00aa ld $aa bd96 00bd ld $bd bd97 00a3 ld $a3 bd98 0074 ld $74 bd99 0011 ld $11 bd9a 00e1 ld $e1 bd9b 0004 ld $04 bd9c 002b ld $2b bd9d 0022 ld $22 bd9e 0032 ld $32 bd9f 0024 ld $24 bda0 00a2 ld $a2 bda1 0021 ld $21 bda2 00a4 ld $a4 bda3 002f ld $2f bda4 0028 ld $28 bda5 0059 ld $59 bda6 00ff ld $ff bda7 0041 ld $41 bda8 00ac ld $ac bda9 0053 ld $53 bdaa 00c7 ld $c7 bdab 0094 ld $94 bdac 0028 ld $28 bdad 0092 ld $92 bdae 0016 ld $16 bdaf 0003 ld $03 bdb0 0026 ld $26 bdb1 0021 ld $21 bdb2 0028 ld $28 bdb3 002f ld $2f bdb4 0094 ld $94 bdb5 0057 ld $57 bdb6 001c ld $1c bdb7 0028 ld $28 bdb8 0028 ld $28 bdb9 0004 ld $04 bdba 0075 ld $75 bdbb 0085 ld $85 bdbc 00a2 ld $a2 bdbd 0042 ld $42 bdbe 0063 ld $63 bdbf 00ff ld $ff bdc0 0075 ld $75 bdc1 004d ld $4d bdc2 0008 ld $08 bdc3 0098 ld $98 bdc4 0011 ld $11 bdc5 0000 ld $00 bdc6 0001 ld $01 bdc7 002b ld $2b bdc8 009a ld $9a bdc9 0016 ld $16 bdca 0078 ld $78 bdcb 0096 ld $96 bdcc 0021 ld $21 bdcd 0098 ld $98 bdce 0060 ld $60 bdcf 009a ld $9a bdd0 0093 ld $93 bdd1 0098 ld $98 bdd2 009e ld $9e bdd3 00cc ld $cc bdd4 0096 ld $96 bdd5 0085 ld $85 bdd6 00a6 ld $a6 bdd7 0072 ld $72 bdd8 0063 ld $63 bdd9 00ff ld $ff bdda 00c7 ld $c7 bddb 0010 ld $10 bddc 006f ld $6f bddd 00aa ld $aa bdde 00bd ld $bd bddf 00a0 ld $a0 bde0 0046 ld $46 bde1 00a7 ld $a7 bde2 009a ld $9a bde3 00a4 ld $a4 bde4 0035 ld $35 bde5 0056 ld $56 bde6 00ea ld $ea bde7 0016 ld $16 bde8 0000 ld $00 bde9 00a4 ld $a4 bdea 00a7 ld $a7 bdeb 0070 ld $70 bdec 00a5 ld $a5 bded 0035 ld $35 bdee 0050 ld $50 bdef 00f8 ld $f8 bdf0 0016 ld $16 bdf1 0070 ld $70 bdf2 00a5 ld $a5 bdf3 00c7 ld $c7 bdf4 0004 ld $04 bdf5 0069 ld $69 bdf6 00aa ld $aa bdf7 00ff ld $ff bdf8 00c7 ld $c7 bdf9 00fb ld $fb bdfa 0066 ld $66 bdfb fe00 bra ac ;+-----------------------------------+ bdfc fcfd bra $bdfd ;| | bdfd 1418 ld $18,y ;| Trampoline for page $bd00 lookups | bdfe e006 jmp y,$06 ;| | bdff c218 st [$18] ;+-----------------------------------+ be00 00aa ld $aa be01 00ff ld $ff be02 0042 ld $42 be03 00a2 ld $a2 be04 005d ld $5d be05 001c ld $1c be06 00a4 ld $a4 be07 00a4 ld $a4 be08 0004 ld $04 be09 00a7 ld $a7 be0a 009c ld $9c be0b 00a4 ld $a4 be0c 0035 ld $35 be0d 0056 ld $56 be0e 00b6 ld $b6 be0f 00c7 ld $c7 be10 0008 ld $08 be11 006f ld $6f be12 00aa ld $aa be13 0035 ld $35 be14 0072 ld $72 be15 00b6 ld $b6 be16 0075 ld $75 be17 0085 ld $85 be18 00be ld $be be19 0046 ld $46 be1a 0063 ld $63 be1b 00ff ld $ff be1c 0075 ld $75 be1d 0011 ld $11 be1e 0003 ld $03 be1f 000b ld $0b be20 002b ld $2b be21 0022 ld $22 be22 0065 ld $65 be23 0025 ld $25 be24 00a2 ld $a2 be25 0011 ld $11 be26 0000 ld $00 be27 0001 ld $01 be28 0067 ld $67 be29 0027 ld $27 be2a 004d ld $4d be2b 0006 ld $06 be2c 009e ld $9e be2d 0016 ld $16 be2e 00a0 ld $a0 be2f 0024 ld $24 be30 0016 ld $16 be31 0000 ld $00 be32 0026 ld $26 be33 00b4 ld $b4 be34 00f3 ld $f3 be35 0093 ld $93 be36 0027 ld $27 be37 009e ld $9e be38 00c8 ld $c8 be39 009e ld $9e be3a 0085 ld $85 be3b 00ea ld $ea be3c 0040 ld $40 be3d 0063 ld $63 be3e 00ff ld $ff be3f 0075 ld $75 be40 0011 ld $11 be41 0003 ld $03 be42 000b ld $0b be43 002b ld $2b be44 0022 ld $22 be45 0065 ld $65 be46 0025 ld $25 be47 00a2 ld $a2 be48 0011 ld $11 be49 0000 ld $00 be4a 0001 ld $01 be4b 0067 ld $67 be4c 0027 ld $27 be4d 004d ld $4d be4e 0008 ld $08 be4f 009e ld $9e be50 0016 ld $16 be51 00a0 ld $a0 be52 0024 ld $24 be53 0016 ld $16 be54 0000 ld $00 be55 0026 ld $26 be56 00b4 ld $b4 be57 00f3 ld $f3 be58 0093 ld $93 be59 0027 ld $27 be5a 009e ld $9e be5b 00eb ld $eb be5c 009e ld $9e be5d 0085 ld $85 be5e 00ea ld $ea be5f 0040 ld $40 be60 0063 ld $63 be61 00ff ld $ff be62 0043 ld $43 be63 00a5 ld $a5 be64 005a ld $5a be65 001a ld $1a be66 0021 ld $21 be67 0082 ld $82 be68 00fc ld $fc be69 002b ld $2b be6a 0084 ld $84 be6b 00b8 ld $b8 be6c 0082 ld $82 be6d 0035 ld $35 be6e 003f ld $3f be6f 00cb ld $cb be70 0021 ld $21 be71 0082 ld $82 be72 00e6 ld $e6 be73 0080 ld $80 be74 0035 ld $35 be75 0072 ld $72 be76 00be ld $be be77 0021 ld $21 be78 0084 ld $84 be79 00b8 ld $b8 be7a 0082 ld $82 be7b 0035 ld $35 be7c 003f ld $3f be7d 00cb ld $cb be7e 0090 ld $90 be7f 00c5 ld $c5 be80 0021 ld $21 be81 0084 ld $84 be82 00b8 ld $b8 be83 0082 ld $82 be84 0035 ld $35 be85 004d ld $4d be86 00cb ld $cb be87 001a ld $1a be88 0006 ld $06 be89 00f0 ld $f0 be8a 007e ld $7e be8b 0090 ld $90 be8c 00c5 ld $c5 be8d 00ff ld $ff be8e 0075 ld $75 be8f 0011 ld $11 be90 00a0 ld $a0 be91 0079 ld $79 be92 002b ld $2b be93 0086 ld $86 be94 002b ld $2b be95 0092 ld $92 be96 0011 ld $11 be97 00a2 ld $a2 be98 0078 ld $78 be99 002b ld $2b be9a 0088 ld $88 be9b 003b ld $3b be9c 0092 ld $92 be9d 0035 ld $35 be9e 0072 ld $72 be9f 00e7 ld $e7 bea0 0021 ld $21 bea1 0084 ld $84 bea2 0035 ld $35 bea3 003f ld $3f bea4 00e5 ld $e5 bea5 00cf ld $cf bea6 0084 ld $84 bea7 0063 ld $63 bea8 00ff ld $ff bea9 00b8 ld $b8 beaa 0082 ld $82 beab 0035 ld $35 beac 003f ld $3f bead 00f2 ld $f2 beae 001c ld $1c beaf 0092 ld $92 beb0 0092 ld $92 beb1 0002 ld $02 beb2 0090 ld $90 beb3 00d9 ld $d9 beb4 0021 ld $21 beb5 0092 ld $92 beb6 00b8 ld $b8 beb7 0086 ld $86 beb8 0099 ld $99 beb9 0088 ld $88 beba 00f6 ld $f6 bebb 00cf ld $cf bebc 0018 ld $18 bebd 0063 ld $63 bebe 00ff ld $ff bebf 0044 ld $44 bec0 00a2 ld $a2 bec1 005d ld $5d bec2 0075 ld $75 bec3 0085 ld $85 bec4 00a0 ld $a0 bec5 0077 ld $77 bec6 004d ld $4d bec7 0008 ld $08 bec8 0094 ld $94 bec9 0016 ld $16 beca 003c ld $3c becb 009e ld $9e becc 0016 ld $16 becd 00a0 ld $a0 bece 0024 ld $24 becf 0016 ld $16 bed0 0000 ld $00 bed1 0026 ld $26 bed2 0065 ld $65 bed3 0027 ld $27 bed4 0094 ld $94 bed5 00b4 ld $b4 bed6 00f3 ld $f3 bed7 0016 ld $16 bed8 00a0 ld $a0 bed9 0024 ld $24 beda 0016 ld $16 bedb 0000 ld $00 bedc 0026 ld $26 bedd 0059 ld $59 bede 0087 ld $87 bedf 00b8 ld $b8 bee0 0094 ld $94 bee1 005e ld $5e bee2 0027 ld $27 bee3 00b4 ld $b4 bee4 00f3 ld $f3 bee5 0093 ld $93 bee6 0094 ld $94 bee7 009e ld $9e bee8 00aa ld $aa bee9 009e ld $9e beea 0063 ld $63 beeb 00ff ld $ff beec 002b ld $2b beed 0092 ld $92 beee 00c7 ld $c7 beef 0084 ld $84 bef0 0089 ld $89 bef1 0020 ld $20 bef2 0035 ld $35 bef3 0072 ld $72 bef4 00fc ld $fc bef5 00c7 ld $c7 bef6 0010 ld $10 bef7 006f ld $6f bef8 00aa ld $aa bef9 00bd ld $bd befa 00aa ld $aa befb fe00 bra ac ;+-----------------------------------+ befc fcfd bra $befd ;| | befd 1418 ld $18,y ;| Trampoline for page $be00 lookups | befe e006 jmp y,$06 ;| | beff c218 st [$18] ;+-----------------------------------+ bf00 0041 ld $41 bf01 00c7 ld $c7 bf02 0094 ld $94 bf03 0025 ld $25 bf04 0092 ld $92 bf05 0016 ld $16 bf06 0005 ld $05 bf07 0096 ld $96 bf08 0021 ld $21 bf09 0094 ld $94 bf0a 007f ld $7f bf0b 0000 ld $00 bf0c 005e ld $5e bf0d 0026 ld $26 bf0e 00b4 ld $b4 bf0f 00cb ld $cb bf10 0093 ld $93 bf11 0094 ld $94 bf12 0093 ld $93 bf13 0028 ld $28 bf14 009e ld $9e bf15 00e1 ld $e1 bf16 0096 ld $96 bf17 0016 ld $16 bf18 0000 ld $00 bf19 0026 ld $26 bf1a 00b4 ld $b4 bf1b 00cb ld $cb bf1c 0093 ld $93 bf1d 0028 ld $28 bf1e 0075 ld $75 bf1f 0085 ld $85 bf20 00a0 ld $a0 bf21 0047 ld $47 bf22 0063 ld $63 bf23 00ff ld $ff bf24 0045 ld $45 bf25 00a7 ld $a7 bf26 0058 ld $58 bf27 0059 ld $59 bf28 0000 ld $00 bf29 002f ld $2f bf2a 0000 ld $00 bf2b 0027 ld $27 bf2c 002f ld $2f bf2d 0001 ld $01 bf2e 0027 ld $27 bf2f 002f ld $2f bf30 0002 ld $02 bf31 0027 ld $27 bf32 002f ld $2f bf33 0003 ld $03 bf34 0027 ld $27 bf35 002f ld $2f bf36 0000 ld $00 bf37 005c ld $5c bf38 002f ld $2f bf39 0001 ld $01 bf3a 005c ld $5c bf3b 002f ld $2f bf3c 0002 ld $02 bf3d 005c ld $5c bf3e 002f ld $2f bf3f 0003 ld $03 bf40 005c ld $5c bf41 00ff ld $ff bf42 0011 ld $11 bf43 0003 ld $03 bf44 000b ld $0b bf45 002b ld $2b bf46 0022 ld $22 bf47 00ab ld $ab bf48 0094 ld $94 bf49 0084 ld $84 bf4a 0088 ld $88 bf4b 0035 ld $35 bf4c 0053 ld $53 bf4d 00d2 ld $d2 bf4e 0065 ld $65 bf4f 0084 ld $84 bf50 0088 ld $88 bf51 002f ld $2f bf52 0094 ld $94 bf53 0017 ld $17 bf54 001c ld $1c bf55 0084 ld $84 bf56 0084 ld $84 bf57 0008 ld $08 bf58 0093 ld $93 bf59 0094 ld $94 bf5a 001a ld $1a bf5b 0086 ld $86 bf5c 00b8 ld $b8 bf5d 0082 ld $82 bf5e 0035 ld $35 bf5f 0053 ld $53 bf60 00e5 ld $e5 bf61 0065 ld $65 bf62 0082 ld $82 bf63 0086 ld $86 bf64 002f ld $2f bf65 0018 ld $18 bf66 0017 ld $17 bf67 00e3 ld $e3 bf68 0001 ld $01 bf69 005e ld $5e bf6a 0092 ld $92 bf6b 0065 ld $65 bf6c 0025 ld $25 bf6d 00a3 ld $a3 bf6e 0065 ld $65 bf6f 0027 ld $27 bf70 0084 ld $84 bf71 0065 ld $65 bf72 0024 ld $24 bf73 0092 ld $92 bf74 0065 ld $65 bf75 0026 ld $26 bf76 0082 ld $82 bf77 00b4 ld $b4 bf78 00f3 ld $f3 bf79 0093 ld $93 bf7a 0027 ld $27 bf7b 009e ld $9e bf7c 00ef ld $ef bf7d 0094 ld $94 bf7e 00ff ld $ff bf7f 0046 ld $46 bf80 00a2 ld $a2 bf81 005d ld $5d bf82 00a7 ld $a7 bf83 009c ld $9c bf84 00a4 ld $a4 bf85 0035 ld $35 bf86 0056 ld $56 bf87 00a9 ld $a9 bf88 0016 ld $16 bf89 0000 ld $00 bf8a 00a4 ld $a4 bf8b 00a7 ld $a7 bf8c 0072 ld $72 bf8d 00a5 ld $a5 bf8e 0035 ld $35 bf8f 0050 ld $50 bf90 00b7 ld $b7 bf91 0016 ld $16 bf92 0072 ld $72 bf93 00a5 ld $a5 bf94 00c7 ld $c7 bf95 0004 ld $04 bf96 0069 ld $69 bf97 00aa ld $aa bf98 00ff ld $ff bf99 00c7 ld $c7 bf9a 00fb ld $fb bf9b 0066 ld $66 bf9c 00aa ld $aa bf9d 00ff ld $ff bf9e 0059 ld $59 bf9f 0000 ld $00 bfa0 005e ld $5e bfa1 00a4 ld $a4 bfa2 005e ld $5e bfa3 0028 ld $28 bfa4 00c7 ld $c7 bfa5 0002 ld $02 bfa6 006f ld $6f bfa7 00aa ld $aa bfa8 0035 ld $35 bfa9 0072 ld $72 bfaa 00ca ld $ca bfab 00ff ld $ff bfac 0075 ld $75 bfad 00c7 ld $c7 bfae 0004 ld $04 bfaf 006f ld $6f bfb0 00aa ld $aa bfb1 0035 ld $35 bfb2 0072 ld $72 bfb3 00df ld $df bfb4 001c ld $1c bfb5 00a5 ld $a5 bfb6 00a5 ld $a5 bfb7 0006 ld $06 bfb8 00a7 ld $a7 bfb9 0078 ld $78 bfba 00a5 ld $a5 bfbb 0035 ld $35 bfbc 0050 ld $50 bfbd 00f8 ld $f8 bfbe 0016 ld $16 bfbf 0072 ld $72 bfc0 00a5 ld $a5 bfc1 0085 ld $85 bfc2 00b9 ld $b9 bfc3 0042 ld $42 bfc4 0011 ld $11 bfc5 0000 ld $00 bfc6 0001 ld $01 bfc7 002b ld $2b bfc8 0026 ld $26 bfc9 0016 ld $16 bfca 0006 ld $06 bfcb 0024 ld $24 bfcc 0016 ld $16 bfcd 0078 ld $78 bfce 0025 ld $25 bfcf 0011 ld $11 bfd0 00c0 ld $c0 bfd1 0020 ld $20 bfd2 002b ld $2b bfd3 0022 ld $22 bfd4 00b4 ld $b4 bfd5 00fb ld $fb bfd6 00c7 ld $c7 bfd7 0004 ld $04 bfd8 0069 ld $69 bfd9 00aa ld $aa bfda 0085 ld $85 bfdb 00a5 ld $a5 bfdc 0074 ld $74 bfdd 0063 ld $63 bfde 00ff ld $ff bfdf 0047 ld $47 bfe0 00a0 ld $a0 bfe1 005f ld $5f bfe2 001c ld $1c bfe3 00a4 ld $a4 bfe4 00a4 ld $a4 bfe5 0006 ld $06 bfe6 00a7 ld $a7 bfe7 009a ld $9a bfe8 00a4 ld $a4 bfe9 0035 ld $35 bfea 0056 ld $56 bfeb 00b4 ld $b4 bfec 00c7 ld $c7 bfed 0008 ld $08 bfee 006f ld $6f bfef 00aa ld $aa bff0 0035 ld $35 bff1 0072 ld $72 bff2 00b4 ld $b4 bff3 0075 ld $75 bff4 0085 ld $85 bff5 00b7 ld $b7 bff6 0047 ld $47 bff7 0063 ld $63 bff8 00ff ld $ff bff9 00c7 ld $c7 bffa 0010 ld $10 bffb fe00 bra ac ;+-----------------------------------+ bffc fcfd bra $bffd ;| | bffd 1418 ld $18,y ;| Trampoline for page $bf00 lookups | bffe e006 jmp y,$06 ;| | bfff c218 st [$18] ;+-----------------------------------+ c000 006f ld $6f c001 00aa ld $aa c002 00bd ld $bd c003 00bc ld $bc c004 0046 ld $46 c005 0059 ld $59 c006 0002 ld $02 c007 005e ld $5e c008 00a4 ld $a4 c009 005e ld $5e c00a 0028 ld $28 c00b 00c7 ld $c7 c00c 0002 ld $02 c00d 006f ld $6f c00e 00aa ld $aa c00f 0035 ld $35 c010 0072 ld $72 c011 00ca ld $ca c012 00ff ld $ff c013 0075 ld $75 c014 00c7 ld $c7 c015 0004 ld $04 c016 006f ld $6f c017 00aa ld $aa c018 0035 ld $35 c019 0072 ld $72 c01a 00df ld $df c01b 001c ld $1c c01c 00a5 ld $a5 c01d 00a5 ld $a5 c01e 0008 ld $08 c01f 00a7 ld $a7 c020 0078 ld $78 c021 00a5 ld $a5 c022 0035 ld $35 c023 0050 ld $50 c024 00f8 ld $f8 c025 0016 ld $16 c026 0070 ld $70 c027 00a5 ld $a5 c028 0085 ld $85 c029 00dc ld $dc c02a 0042 ld $42 c02b 0011 ld $11 c02c 0000 ld $00 c02d 0001 ld $01 c02e 002b ld $2b c02f 0026 ld $26 c030 0016 ld $16 c031 0008 ld $08 c032 0024 ld $24 c033 0016 ld $16 c034 0078 ld $78 c035 0025 ld $25 c036 0011 ld $11 c037 00c0 ld $c0 c038 0020 ld $20 c039 002b ld $2b c03a 0022 ld $22 c03b 00b4 ld $b4 c03c 00fb ld $fb c03d 00c7 ld $c7 c03e 0004 ld $04 c03f 0069 ld $69 c040 00aa ld $aa c041 0085 ld $85 c042 00ea ld $ea c043 0040 ld $40 c044 0063 ld $63 c045 00ff ld $ff c046 0048 ld $48 c047 00ad ld $ad c048 002a ld $2a c049 000e ld $0e c04a 0054 ld $54 c04b 004f ld $4f c04c 0020 ld $20 c04d 004c ld $4c c04e 0049 ld $49 c04f 0053 ld $53 c050 0054 ld $54 c051 0020 ld $20 c052 004f ld $4f c053 0052 ld $52 c054 0020 ld $20 c055 0052 ld $52 c056 0055 ld $55 c057 004e ld $4e c058 0000 ld $00 c059 0018 ld $18 c05a 0054 ld $54 c05b 004f ld $4f c05c 0020 ld $20 c05d 0053 ld $53 c05e 0045 ld $45 c05f 004c ld $4c c060 0045 ld $45 c061 0043 ld $43 c062 0054 ld $54 c063 0020 ld $20 c064 004f ld $4f c065 0052 ld $52 c066 0020 ld $20 c067 0043 ld $43 c068 0048 ld $48 c069 0041 ld $41 c06a 004e ld $4e c06b 0047 ld $47 c06c 0045 ld $45 c06d 0020 ld $20 c06e 0050 ld $50 c06f 0041 ld $41 c070 0047 ld $47 c071 0045 ld $45 c072 0000 ld $00 c073 0071 ld $71 c074 00a7 ld $a7 c075 0007 ld $07 c076 002b ld $2b c077 001a ld $1a c078 004d ld $4d c079 00ad ld $ad c07a 0022 ld $22 c07b 00b4 ld $b4 c07c 00e2 ld $e2 c07d 0072 ld $72 c07e 00a6 ld $a6 c07f 0008 ld $08 c080 004d ld $4d c081 0002 ld $02 c082 00a4 ld $a4 c083 00c7 ld $c7 c084 00fb ld $fb c085 0066 ld $66 c086 00aa ld $aa c087 00ff ld $ff c088 0073 ld $73 c089 00a6 ld $a6 c08a 0008 ld $08 c08b 002f ld $2f c08c 00d6 ld $d6 c08d 006e ld $6e c08e 00a4 ld $a4 c08f 0082 ld $82 c090 00a4 ld $a4 c091 0073 ld $73 c092 00ff ld $ff c093 0074 ld $74 c094 00a0 ld $a0 c095 000e ld $0e c096 00a0 ld $a0 c097 0096 ld $96 c098 0099 ld $99 c099 0098 ld $98 c09a 00ff ld $ff c09b 0032 ld $32 c09c 0024 ld $24 c09d 00a2 ld $a2 c09e 0021 ld $21 c09f 00a4 ld $a4 c0a0 002f ld $2f c0a1 0028 ld $28 c0a2 0059 ld $59 c0a3 00ff ld $ff c0a4 0075 ld $75 c0a5 00a4 ld $a4 c0a6 000a ld $0a c0a7 002b ld $2b c0a8 0086 ld $86 c0a9 0023 ld $23 c0aa 0084 ld $84 c0ab 00d1 ld $d1 c0ac 0086 ld $86 c0ad 0035 ld $35 c0ae 0072 ld $72 c0af 00a4 ld $a4 c0b0 00ff ld $ff c0b1 0076 ld $76 c0b2 00a4 ld $a4 c0b3 000a ld $0a c0b4 0011 ld $11 c0b5 0000 ld $00 c0b6 000b ld $0b c0b7 002b ld $2b c0b8 0022 ld $22 c0b9 0021 ld $21 c0ba 0082 ld $82 c0bb 00b4 ld $b4 c0bc 00e6 ld $e6 c0bd 00ff ld $ff c0be 0077 ld $77 c0bf 00a0 ld $a0 c0c0 000e ld $0e c0c1 0075 ld $75 c0c2 0085 ld $85 c0c3 00a6 ld $a6 c0c4 0072 ld $72 c0c5 0011 ld $11 c0c6 0003 ld $03 c0c7 000b ld $0b c0c8 002b ld $2b c0c9 0022 ld $22 c0ca 0065 ld $65 c0cb 0025 ld $25 c0cc 00a2 ld $a2 c0cd 0063 ld $63 c0ce 00ff ld $ff c0cf 0078 ld $78 c0d0 00a2 ld $a2 c0d1 000c ld $0c c0d2 00df ld $df c0d3 0005 ld $05 c0d4 00e5 ld $e5 c0d5 0005 ld $05 c0d6 00eb ld $eb c0d7 0005 ld $05 c0d8 000e ld $0e c0d9 0006 ld $06 c0da 0022 ld $22 c0db 0006 ld $06 c0dc 00ab ld $ab c0dd 0008 ld $08 c0de 0079 ld $79 c0df 00a0 ld $a0 c0e0 000e ld $0e c0e1 007f ld $7f c0e2 0000 ld $00 c0e3 000a ld $0a c0e4 0000 ld $00 c0e5 00fe ld $fe c0e6 0000 ld $00 c0e7 00fd ld $fd c0e8 0000 ld $00 c0e9 00fb ld $fb c0ea 0000 ld $00 c0eb 00f7 ld $f7 c0ec 0000 ld $00 c0ed 0000 ld $00 c0ee 0000 ld $00 c0ef 007a ld $7a c0f0 00a0 ld $a0 c0f1 0060 ld $60 c0f2 0005 ld $05 c0f3 0050 ld $50 c0f4 0052 ld $52 c0f5 0045 ld $45 c0f6 0053 ld $53 c0f7 0053 ld $53 c0f8 0000 ld $00 c0f9 0003 ld $03 c0fa 0055 ld $55 c0fb fe00 bra ac ;+-----------------------------------+ c0fc fcfd bra $c0fd ;| | c0fd 1418 ld $18,y ;| Trampoline for page $c000 lookups | c0fe e006 jmp y,$06 ;| | c0ff c218 st [$18] ;+-----------------------------------+ c100 0053 ld $53 c101 0045 ld $45 c102 0000 ld $00 c103 0011 ld $11 c104 0020 ld $20 c105 005b ld $5b c106 0041 ld $41 c107 005d ld $5d c108 005b ld $5b c109 0045 ld $45 c10a 004e ld $4e c10b 0054 ld $54 c10c 0045 ld $45 c10d 0052 ld $52 c10e 005d ld $5d c10f 005b ld $5b c110 0044 ld $44 c111 0045 ld $45 c112 004c ld $4c c113 005d ld $5d c114 0020 ld $20 c115 0000 ld $00 c116 0000 ld $00 c117 0000 ld $00 * 66 times c157 007b ld $7b c158 00a0 ld $a0 c159 0002 ld $02 c15a 0000 ld $00 c15b 0000 ld $00 c15c 007c ld $7c c15d 00a0 ld $a0 c15e 000c ld $0c c15f 000a ld $0a c160 0020 ld $20 c161 005b ld $5b c162 0041 ld $41 c163 0052 ld $52 c164 0052 ld $52 c165 004f ld $4f c166 0057 ld $57 c167 0053 ld $53 c168 005d ld $5d c169 0020 ld $20 c16a 0000 ld $00 c16b 007c ld $7c c16c 00d5 ld $d5 c16d 002b ld $2b c16e 0000 ld $00 c16f 0000 ld $00 c170 0000 ld $00 * 43 times c199 007d ld $7d c19a 00a0 ld $a0 c19b 0002 ld $02 c19c 0000 ld $00 c19d 0000 ld $00 c19e 0000 ld $00 c19f 0000 ld $00 ;End of gbas/browser/Browser_SDCard_ROMvX0.gt1, size 2777 ;+-----------------------------------+ ;| gasm/loader/Loader_ROMvX0.gt1 | ;+-----------------------------------+ c1a0 dc53 st $53,[y,x++] ;'S' c1a1 dc44 st $44,[y,x++] ;'D' c1a2 dc43 st $43,[y,x++] ;'C' c1a3 dc61 st $61,[y,x++] ;'a' c1a4 dc72 st $72,[y,x++] ;'r' c1a5 dc64 st $64,[y,x++] ;'d' c1a6 dc00 st $00,[y,x++] ;'\x00' c1a7 dc00 st $00,[y,x++] ;'\x00' c1a8 00c7 ld $c7 c1a9 c218 st [$18] c1aa 00b6 ld $b6 c1ab 14e0 ld $e0,y c1ac e036 jmp y,$36 c1ad c219 st [$19] Loader: c1ae 0000 ld $00 c1af 00a8 ld $a8 c1b0 0015 ld $15 c1b1 0011 ld $11 c1b2 0080 ld $80 c1b3 0030 ld $30 c1b4 002b ld $2b c1b5 0022 ld $22 c1b6 0016 ld $16 c1b7 00b8 ld $b8 c1b8 0024 ld $24 c1b9 0016 ld $16 c1ba 0026 ld $26 c1bb 0025 ld $25 c1bc 00b4 ld $b4 c1bd 00f2 ld $f2 c1be 0000 ld $00 c1bf 0000 ld $00 c1c0 0000 ld $00 c1c1 00cf ld $cf c1c2 00db ld $db c1c3 00eb ld $eb c1c4 00fb ld $fb c1c5 0002 ld $02 c1c6 0000 ld $00 c1c7 0000 ld $00 ;End of gasm/loader/Loader_ROMvX0.gt1, size 26 ;+-----------------------------------+ ;| Apps/CardBoot/CardBoot.gt1 | ;+-----------------------------------+ c1c8 dc4c st $4c,[y,x++] ;'L' c1c9 dc6f st $6f,[y,x++] ;'o' c1ca dc61 st $61,[y,x++] ;'a' c1cb dc64 st $64,[y,x++] ;'d' c1cc dc65 st $65,[y,x++] ;'e' c1cd dc72 st $72,[y,x++] ;'r' c1ce dc00 st $00,[y,x++] ;'\x00' c1cf dc00 st $00,[y,x++] ;'\x00' c1d0 00ae ld $ae c1d1 c218 st [$18] c1d2 00c1 ld $c1 c1d3 14e0 ld $e0,y c1d4 e036 jmp y,$36 c1d5 c219 st [$19] Boot: c1d6 0002 ld $02 c1d7 0000 ld $00 c1d8 004c ld $4c c1d9 001a ld $1a c1da 0021 ld $21 c1db 00e6 ld $e6 c1dc 0040 ld $40 c1dd 0035 ld $35 c1de 0053 ld $53 c1df 000b ld $0b c1e0 0021 ld $21 c1e1 000e ld $0e c1e2 00f3 ld $f3 c1e3 0017 ld $17 c1e4 0090 ld $90 c1e5 0005 ld $05 c1e6 0011 ld $11 c1e7 0000 ld $00 c1e8 007d ld $7d c1e9 002b ld $2b c1ea 0030 ld $30 c1eb 0011 ld $11 c1ec 00f9 ld $f9 c1ed 0001 ld $01 c1ee 002b ld $2b c1ef 0032 ld $32 c1f0 0059 ld $59 c1f1 0000 ld $00 c1f2 0085 ld $85 c1f3 00b1 ld $b1 c1f4 0072 ld $72 c1f5 0059 ld $59 c1f6 0020 ld $20 c1f7 00f0 ld $f0 c1f8 0032 ld $32 c1f9 0011 ld $11 c1fa 00e8 ld $e8 c1fb fe00 bra ac ;+-----------------------------------+ c1fc fcfd bra $c1fd ;| | c1fd 1418 ld $18,y ;| Trampoline for page $c100 lookups | c1fe e006 jmp y,$06 ;| | c1ff c218 st [$18] ;+-----------------------------------+ c200 0001 ld $01 c201 002b ld $2b c202 0034 ld $34 c203 0059 ld $59 c204 007b ld $7b c205 00f0 ld $f0 c206 0034 ld $34 c207 0021 ld $21 c208 0034 ld $34 c209 00e3 ld $e3 c20a 0002 ld $02 c20b 002b ld $2b c20c 0034 ld $34 c20d 0011 ld $11 c20e 00f0 ld $f0 c20f 0001 ld $01 c210 00fc ld $fc c211 0034 ld $34 c212 0035 ld $35 c213 0072 ld $72 c214 0023 ld $23 c215 0011 ld $11 c216 007c ld $7c c217 0000 ld $00 c218 005e ld $5e c219 0027 ld $27 c21a 0059 ld $59 c21b 00ff ld $ff c21c 002b ld $2b c21d 0025 ld $25 c21e 0059 ld $59 c21f 0000 ld $00 c220 005e ld $5e c221 0024 ld $24 c222 00b4 ld $b4 c223 00f3 ld $f3 c224 0011 ld $11 c225 00a0 ld $a0 c226 0058 ld $58 c227 002b ld $2b c228 001a ld $1a c229 00ff ld $ff c22a 0058 ld $58 c22b 00a0 ld $a0 c22c 0042 ld $42 c22d 00cd ld $cd c22e 00c8 ld $c8 c22f 0075 ld $75 c230 0059 ld $59 c231 0000 ld $00 c232 002b ld $2b c233 0036 ld $36 c234 0059 ld $59 c235 000a ld $0a c236 002b ld $2b c237 0034 ld $34 c238 0085 ld $85 c239 00bc ld $bc c23a 005d ld $5d c23b 0021 ld $21 c23c 0034 ld $34 c23d 00e6 ld $e6 c23e 0001 ld $01 c23f 0035 ld $35 c240 004d ld $4d c241 00a7 ld $a7 c242 0085 ld $85 c243 00a2 ld $a2 c244 005d ld $5d c245 00cd ld $cd c246 00be ld $be c247 0040 ld $40 c248 0000 ld $00 c249 0000 ld $00 c24a 0000 ld $00 c24b 0000 ld $00 c24c 0095 ld $95 c24d 0085 ld $85 c24e 00a2 ld $a2 c24f 005f ld $5f c250 0085 ld $85 c251 00da ld $da c252 005f ld $5f c253 008c ld $8c c254 0001 ld $01 c255 0063 ld $63 c256 00ff ld $ff c257 00cd ld $cd c258 00dd ld $dd c259 0075 ld $75 c25a 0085 ld $85 c25b 00a2 ld $a2 c25c 0058 ld $58 c25d 0035 ld $35 c25e 003f ld $3f c25f 00db ld $db c260 0085 ld $85 c261 00af ld $af c262 005d ld $5d c263 001a ld $1a c264 000e ld $0e c265 00e6 ld $e6 c266 003c ld $3c c267 0035 ld $35 c268 0050 ld $50 c269 00cb ld $cb c26a 0063 ld $63 c26b 00ff ld $ff c26c 0093 ld $93 c26d 001b ld $1b c26e 00ff ld $ff c26f 0059 ld $59 c270 00a0 ld $a0 c271 0044 ld $44 c272 00cd ld $cd c273 00df ld $df c274 0075 ld $75 c275 0085 ld $85 c276 00a2 ld $a2 c277 005d ld $5d c278 00cd ld $cd c279 00ac ld $ac c27a 0048 ld $48 c27b 0000 ld $00 c27c 0000 ld $00 c27d 0001 ld $01 c27e 00aa ld $aa c27f 0087 ld $87 c280 0085 ld $85 c281 00a2 ld $a2 c282 005f ld $5f c283 0085 ld $85 c284 00da ld $da c285 005f ld $5f c286 008c ld $8c c287 00ff ld $ff c288 0035 ld $35 c289 003f ld $3f c28a 00d9 ld $d9 c28b 0021 ld $21 c28c 0038 ld $38 c28d 0082 ld $82 c28e 0004 ld $04 c28f 0035 ld $35 c290 003f ld $3f c291 00c4 ld $c4 c292 0059 ld $59 c293 0001 ld $01 c294 002b ld $2b c295 0036 ld $36 c296 0090 ld $90 c297 00d9 ld $d9 c298 0085 ld $85 c299 00bc ld $bc c29a 005d ld $5d c29b 0085 ld $85 c29c 00bc ld $bc c29d 005d ld $5d c29e 0085 ld $85 c29f 00bc ld $bc c2a0 005d ld $5d c2a1 0085 ld $85 c2a2 00bc ld $bc c2a3 005d ld $5d c2a4 008c ld $8c c2a5 00aa ld $aa c2a6 0035 ld $35 c2a7 0072 ld $72 c2a8 00d9 ld $d9 c2a9 0059 ld $59 c2aa 0002 ld $02 c2ab 002b ld $2b c2ac 0036 ld $36 c2ad 0021 ld $21 c2ae 0038 ld $38 c2af 0082 ld $82 c2b0 00fa ld $fa c2b1 0063 ld $63 c2b2 00ff ld $ff c2b3 0093 ld $93 c2b4 001b ld $1b c2b5 00ff ld $ff c2b6 005a ld $5a c2b7 00a0 ld $a0 c2b8 0044 ld $44 c2b9 00cd ld $cd c2ba 00ca ld $ca c2bb 0075 ld $75 c2bc 0085 ld $85 c2bd 00a2 ld $a2 c2be 005d ld $5d c2bf 00cd ld $cd c2c0 00ac ld $ac c2c1 007a ld $7a c2c2 0000 ld $00 c2c3 0000 ld $00 c2c4 0000 ld $00 * 5 times c2c7 0085 ld $85 c2c8 00a2 ld $a2 c2c9 005f ld $5f c2ca 0085 ld $85 c2cb 00da ld $da c2cc 005f ld $5f c2cd 0085 ld $85 c2ce 00bc ld $bc c2cf 005d ld $5d c2d0 0082 ld $82 c2d1 0040 ld $40 c2d2 0035 ld $35 c2d3 003f ld $3f c2d4 00be ld $be c2d5 0059 ld $59 c2d6 0004 ld $04 c2d7 002b ld $2b c2d8 0036 ld $36 c2d9 0085 ld $85 c2da 00bc ld $bc c2db 005d ld $5d c2dc 0085 ld $85 c2dd 00bc ld $bc c2de 005d ld $5d c2df 0021 ld $21 c2e0 0038 ld $38 c2e1 0082 ld $82 c2e2 00fe ld $fe c2e3 0063 ld $63 c2e4 00ff ld $ff c2e5 00cd ld $cd c2e6 00df ld $df c2e7 0075 ld $75 c2e8 00cd ld $cd c2e9 00d5 ld $d5 c2ea 0077 ld $77 c2eb 0000 ld $00 c2ec 0000 ld $00 c2ed 0000 ld $00 * 5 times c2f0 0085 ld $85 c2f1 00a2 ld $a2 c2f2 005f ld $5f c2f3 0085 ld $85 c2f4 00da ld $da c2f5 005f ld $5f c2f6 0082 ld $82 c2f7 00fe ld $fe c2f8 0063 ld $63 c2f9 00ff ld $ff c2fa 0093 ld $93 c2fb fe00 bra ac ;+-----------------------------------+ c2fc fcfd bra $c2fd ;| | c2fd 1418 ld $18,y ;| Trampoline for page $c200 lookups | c2fe e006 jmp y,$06 ;| | c2ff c218 st [$18] ;+-----------------------------------+ c300 001b ld $1b c301 00ff ld $ff c302 005b ld $5b c303 00a0 ld $a0 c304 0055 ld $55 c305 00cd ld $cd c306 00c4 ld $c4 c307 0075 ld $75 c308 0021 ld $21 c309 0036 ld $36 c30a 008c ld $8c c30b 0001 ld $01 c30c 0035 ld $35 c30d 0072 ld $72 c30e 00b2 ld $b2 c30f 00cd ld $cd c310 00b0 ld $b0 c311 0069 ld $69 c312 0000 ld $00 c313 0000 ld $00 c314 0000 ld $00 * 5 times c317 0090 ld $90 c318 00ba ld $ba c319 00cd ld $cd c31a 00ba ld $ba c31b 0069 ld $69 c31c 0040 ld $40 c31d 0000 ld $00 c31e 0000 ld $00 c31f 0000 ld $00 c320 0000 ld $00 c321 0085 ld $85 c322 00a2 ld $a2 c323 005f ld $5f c324 0085 ld $85 c325 00da ld $da c326 005f ld $5f c327 0082 ld $82 c328 00fe ld $fe c329 0063 ld $63 c32a 00ff ld $ff c32b 00cd ld $cd c32c 00db ld $db c32d 0075 ld $75 c32e 0085 ld $85 c32f 00ce ld $ce c330 005a ld $5a c331 0085 ld $85 c332 00a2 ld $a2 c333 005b ld $5b c334 0021 ld $21 c335 0038 ld $38 c336 0035 ld $35 c337 003f ld $3f c338 00d9 ld $d9 c339 001a ld $1a c33a 000e ld $0e c33b 00e6 ld $e6 c33c 0078 ld $78 c33d 0035 ld $35 c33e 0050 ld $50 c33f 00c7 ld $c7 c340 0063 ld $63 c341 00ff ld $ff c342 00cd ld $cd c343 00f0 ld $f0 c344 0075 ld $75 c345 00cd ld $cd c346 00e6 ld $e6 c347 0050 ld $50 c348 0000 ld $00 c349 0000 ld $00 c34a 0002 ld $02 c34b 0000 ld $00 c34c 0000 ld $00 c34d 0085 ld $85 c34e 00a2 ld $a2 c34f 005f ld $5f c350 0085 ld $85 c351 00da ld $da c352 005f ld $5f c353 0082 ld $82 c354 00fe ld $fe c355 0063 ld $63 c356 00ff ld $ff c357 0093 ld $93 c358 001b ld $1b c359 00ff ld $ff c35a 005c ld $5c c35b 00a0 ld $a0 c35c 0041 ld $41 c35d 00cd ld $cd c35e 00dc ld $dc c35f 0075 ld $75 c360 00cd ld $cd c361 00a9 ld $a9 c362 0051 ld $51 c363 0000 ld $00 c364 0000 ld $00 c365 0000 ld $00 * 5 times c368 002b ld $2b c369 003a ld $3a c36a 002b ld $2b c36b 003c ld $3c c36c 001a ld $1a c36d 003f ld $3f c36e 0093 ld $93 c36f 003c ld $3c c370 00f0 ld $f0 c371 003c ld $3c c372 001a ld $1a c373 003e ld $3e c374 0093 ld $93 c375 003c ld $3c c376 00f0 ld $f0 c377 003c ld $3c c378 001a ld $1a c379 0041 ld $41 c37a 0093 ld $93 c37b 003c ld $3c c37c 00f0 ld $f0 c37d 003c ld $3c c37e 001a ld $1a c37f 0040 ld $40 c380 0093 ld $93 c381 003c ld $3c c382 00f0 ld $f0 c383 003c ld $3c c384 0021 ld $21 c385 003a ld $3a c386 0085 ld $85 c387 00a2 ld $a2 c388 005f ld $5f c389 0085 ld $85 c38a 00da ld $da c38b 005f ld $5f c38c 0082 ld $82 c38d 00fe ld $fe c38e 0035 ld $35 c38f 0072 ld $72 c390 00da ld $da c391 0085 ld $85 c392 00bc ld $bc c393 005d ld $5d c394 008c ld $8c c395 00ff ld $ff c396 0035 ld $35 c397 003f ld $3f c398 00d2 ld $d2 c399 0063 ld $63 c39a 00ff ld $ff c39b 0093 ld $93 c39c 001b ld $1b c39d 00ff ld $ff c39e 005d ld $5d c39f 00a0 ld $a0 c3a0 0035 ld $35 c3a1 00cd ld $cd c3a2 00ab ld $ab c3a3 0011 ld $11 c3a4 0009 ld $09 c3a5 000b ld $0b c3a6 002b ld $2b c3a7 0022 ld $22 c3a8 0011 ld $11 c3a9 0078 ld $78 c3aa 0080 ld $80 c3ab 00b4 ld $b4 c3ac 00fa ld $fa c3ad 00ff ld $ff c3ae 00cd ld $cd c3af 00b8 ld $b8 c3b0 0011 ld $11 c3b1 0009 ld $09 c3b2 000b ld $0b c3b3 002b ld $2b c3b4 0022 ld $22 c3b5 0011 ld $11 c3b6 007c ld $7c c3b7 0080 ld $80 c3b8 00b4 ld $b4 c3b9 00fa ld $fa c3ba 00ff ld $ff c3bb 00cd ld $cd c3bc 00d0 ld $d0 c3bd 0059 ld $59 c3be 00ff ld $ff c3bf 005e ld $5e c3c0 002a ld $2a c3c1 0059 ld $59 c3c2 002a ld $2a c3c3 002b ld $2b c3c4 0024 ld $24 c3c5 00e3 ld $e3 c3c6 0001 ld $01 c3c7 002b ld $2b c3c8 0026 ld $26 c3c9 0011 ld $11 c3ca 0015 ld $15 c3cb 000b ld $0b c3cc 002b ld $2b c3cd 0022 ld $22 c3ce 00b4 ld $b4 c3cf 00cb ld $cb c3d0 001a ld $1a c3d1 002a ld $2a c3d2 00ff ld $ff c3d3 0093 ld $93 c3d4 001b ld $1b c3d5 00ff ld $ff c3d6 005e ld $5e c3d7 00a0 ld $a0 c3d8 0029 ld $29 c3d9 00cd ld $cd c3da 00c4 ld $c4 c3db 00fc ld $fc c3dc 0043 ld $43 c3dd 005e ld $5e c3de 0043 ld $43 c3df 0059 ld $59 c3e0 0008 ld $08 c3e1 002b ld $2b c3e2 0034 ld $34 c3e3 0021 ld $21 c3e4 0042 ld $42 c3e5 0035 ld $35 c3e6 0053 ld $53 c3e7 00b8 ld $b8 c3e8 0099 ld $99 c3e9 0042 ld $42 c3ea 002b ld $2b c3eb 0042 ld $42 c3ec 0011 ld $11 c3ed 0021 ld $21 c3ee 0010 ld $10 c3ef 00fc ld $fc c3f0 0042 ld $42 c3f1 0090 ld $90 c3f2 00ba ld $ba c3f3 0099 ld $99 c3f4 0042 ld $42 c3f5 002b ld $2b c3f6 0042 ld $42 c3f7 0021 ld $21 c3f8 0034 ld $34 c3f9 00e6 ld $e6 c3fa 0001 ld $01 c3fb fe00 bra ac ;+-----------------------------------+ c3fc fcfd bra $c3fd ;| | c3fd 1418 ld $18,y ;| Trampoline for page $c300 lookups | c3fe e006 jmp y,$06 ;| | c3ff c218 st [$18] ;+-----------------------------------+ c400 0035 ld $35 c401 004d ld $4d c402 00a6 ld $a6 c403 00ff ld $ff c404 0093 ld $93 c405 001b ld $1b c406 00ff ld $ff c407 005f ld $5f c408 00a0 ld $a0 c409 0057 ld $57 c40a 00cd ld $cd c40b 00d6 ld $d6 c40c 0075 ld $75 c40d 002b ld $2b c40e 003a ld $3a c40f 0021 ld $21 c410 0044 ld $44 c411 002b ld $2b c412 003c ld $3c c413 0059 ld $59 c414 00ff ld $ff c415 00f0 ld $f0 c416 003c ld $3c c417 0093 ld $93 c418 003c ld $3c c419 00f0 ld $f0 c41a 003c ld $3c c41b 0093 ld $93 c41c 003c ld $3c c41d 0059 ld $59 c41e 0006 ld $06 c41f 002b ld $2b c420 0034 ld $34 c421 0021 ld $21 c422 003a ld $3a c423 00ad ld $ad c424 0093 ld $93 c425 003a ld $3a c426 00f0 ld $f0 c427 003c ld $3c c428 0093 ld $93 c429 003c ld $3c c42a 0021 ld $21 c42b 0034 ld $34 c42c 00e6 ld $e6 c42d 0001 ld $01 c42e 0035 ld $35 c42f 004d ld $4d c430 00b3 ld $b3 c431 0021 ld $21 c432 0044 ld $44 c433 002b ld $2b c434 0024 ld $24 c435 00e3 ld $e3 c436 0008 ld $08 c437 002b ld $2b c438 0026 ld $26 c439 0011 ld $11 c43a 0015 ld $15 c43b 000b ld $0b c43c 002b ld $2b c43d 0022 ld $22 c43e 00b4 ld $b4 c43f 00cb ld $cb c440 0063 ld $63 c441 00ff ld $ff c442 00cd ld $cd c443 00f2 ld $f2 c444 0075 ld $75 c445 0059 ld $59 c446 0008 ld $08 c447 002b ld $2b c448 0034 ld $34 c449 0085 ld $85 c44a 00bc ld $bc c44b 005d ld $5d c44c 0082 ld $82 c44d 0080 ld $80 c44e 0035 ld $35 c44f 003f ld $3f c450 00ec ld $ec c451 0021 ld $21 c452 0034 ld $34 c453 00e6 ld $e6 c454 0001 ld $01 c455 0035 ld $35 c456 004d ld $4d c457 00db ld $db c458 001a ld $1a c459 002a ld $2a c45a 002b ld $2b c45b 0038 ld $38 c45c 0063 ld $63 c45d 00ff ld $ff c45e 0093 ld $93 c45f 001b ld $1b c460 00ff ld $ff c461 0060 ld $60 c462 00a0 ld $a0 c463 004f ld $4f c464 00cd ld $cd c465 00c3 ld $c3 c466 0075 ld $75 c467 0085 ld $85 c468 00cc ld $cc c469 0058 ld $58 c46a 0085 ld $85 c46b 00a2 ld $a2 c46c 0059 ld $59 c46d 0085 ld $85 c46e 00c8 ld $c8 c46f 005b ld $5b c470 0021 ld $21 c471 0036 ld $36 c472 00e6 ld $e6 c473 0002 ld $02 c474 0035 ld $35 c475 0072 ld $72 c476 00b4 ld $b4 c477 0085 ld $85 c478 00a2 ld $a2 c479 005a ld $5a c47a 0021 ld $21 c47b 0036 ld $36 c47c 00e6 ld $e6 c47d 0002 ld $02 c47e 0035 ld $35 c47f 004d ld $4d c480 00be ld $be c481 0085 ld $85 c482 00df ld $df c483 005b ld $5b c484 0085 ld $85 c485 00af ld $af c486 005d ld $5d c487 0063 ld $63 c488 00ff ld $ff c489 00cd ld $cd c48a 00ea ld $ea c48b 0075 ld $75 c48c 0085 ld $85 c48d 00a2 ld $a2 c48e 0063 ld $63 c48f 00cd ld $cd c490 00d3 ld $d3 c491 0056 ld $56 c492 006f ld $6f c493 006c ld $6c c494 002e ld $2e c495 0049 ld $49 c496 0044 ld $44 c497 0020 ld $20 c498 0000 ld $00 c499 0085 ld $85 c49a 00a2 ld $a2 c49b 0069 ld $69 c49c 0059 ld $59 c49d 000b ld $0b c49e 0099 ld $99 c49f 0030 ld $30 c4a0 00f6 ld $f6 c4a1 002b ld $2b c4a2 0046 ld $46 c4a3 0085 ld $85 c4a4 00ce ld $ce c4a5 0067 ld $67 c4a6 0011 ld $11 c4a7 0000 ld $00 c4a8 0002 ld $02 c4a9 00fc ld $fc c4aa 0046 ld $46 c4ab 0085 ld $85 c4ac 00bb ld $bb c4ad 0068 ld $68 c4ae 0063 ld $63 c4af 00ff ld $ff c4b0 0093 ld $93 c4b1 001b ld $1b c4b2 00ff ld $ff c4b3 0061 ld $61 c4b4 00a0 ld $a0 c4b5 005e ld $5e c4b6 00cd ld $cd c4b7 00ea ld $ea c4b8 0075 ld $75 c4b9 0059 ld $59 c4ba 0000 ld $00 c4bb 002b ld $2b c4bc 0040 ld $40 c4bd 002b ld $2b c4be 003e ld $3e c4bf 0085 ld $85 c4c0 00a2 ld $a2 c4c1 0063 ld $63 c4c2 00cd ld $cd c4c3 00b1 ld $b1 c4c4 004d ld $4d c4c5 0042 ld $42 c4c6 0052 ld $52 c4c7 0020 ld $20 c4c8 0000 ld $00 c4c9 0085 ld $85 c4ca 00a2 ld $a2 c4cb 0069 ld $69 c4cc 0011 ld $11 c4cd 00fe ld $fe c4ce 0001 ld $01 c4cf 0099 ld $99 c4d0 0030 ld $30 c4d1 00f6 ld $f6 c4d2 002b ld $2b c4d3 0046 ld $46 c4d4 0011 ld $11 c4d5 0055 ld $55 c4d6 00aa ld $aa c4d7 00fc ld $fc c4d8 0046 ld $46 c4d9 0035 ld $35 c4da 0072 ld $72 c4db 00e8 ld $e8 c4dc 0011 ld $11 c4dd 00c6 ld $c6 c4de 0001 ld $01 c4df 0099 ld $99 c4e0 0030 ld $30 c4e1 00f6 ld $f6 c4e2 002b ld $2b c4e3 0040 ld $40 c4e4 0011 ld $11 c4e5 00c8 ld $c8 c4e6 0001 ld $01 c4e7 0099 ld $99 c4e8 0030 ld $30 c4e9 00f6 ld $f6 c4ea 002b ld $2b c4eb 003e ld $3e c4ec 0011 ld $11 c4ed 00c2 ld $c2 c4ee 0001 ld $01 c4ef 0099 ld $99 c4f0 0030 ld $30 c4f1 00ad ld $ad c4f2 002b ld $2b c4f3 0046 ld $46 c4f4 0085 ld $85 c4f5 00a2 ld $a2 c4f6 0068 ld $68 c4f7 0059 ld $59 c4f8 000b ld $0b c4f9 00fc ld $fc c4fa 0046 ld $46 c4fb fe00 bra ac ;+-----------------------------------+ c4fc fcfd bra $c4fd ;| | c4fd 1418 ld $18,y ;| Trampoline for page $c400 lookups | c4fe e006 jmp y,$06 ;| | c4ff c218 st [$18] ;+-----------------------------------+ c500 0035 ld $35 c501 003f ld $3f c502 00e8 ld $e8 c503 008c ld $8c c504 0007 ld $07 c505 0063 ld $63 c506 00ff ld $ff c507 00cd ld $cd c508 00f9 ld $f9 c509 002b ld $2b c50a 0048 ld $48 c50b 0099 ld $99 c50c 0048 ld $48 c50d 00e6 ld $e6 c50e 0001 ld $01 c50f 005e ld $5e c510 0019 ld $19 c511 0088 ld $88 c512 00ff ld $ff c513 002b ld $2b c514 004a ld $4a c515 00ff ld $ff c516 0093 ld $93 c517 001b ld $1b c518 00ff ld $ff c519 0062 ld $62 c51a 00a0 ld $a0 c51b 0060 ld $60 c51c 00cd ld $cd c51d 00fb ld $fb c51e 0075 ld $75 c51f 0059 ld $59 c520 000d ld $0d c521 0099 ld $99 c522 0030 ld $30 c523 00ad ld $ad c524 0085 ld $85 c525 00ee ld $ee c526 0061 ld $61 c527 0021 ld $21 c528 0040 ld $40 c529 002b ld $2b c52a 004c ld $4c c52b 0021 ld $21 c52c 003e ld $3e c52d 002b ld $2b c52e 004e ld $4e c52f 0059 ld $59 c530 000e ld $0e c531 0099 ld $99 c532 0030 ld $30 c533 00f6 ld $f6 c534 002b ld $2b c535 0050 ld $50 c536 0085 ld $85 c537 00d2 ld $d2 c538 0066 ld $66 c539 002b ld $2b c53a 0052 ld $52 c53b 0021 ld $21 c53c 004e ld $4e c53d 002b ld $2b c53e 0054 ld $54 c53f 0059 ld $59 c540 0024 ld $24 c541 0099 ld $99 c542 0030 ld $30 c543 00f6 ld $f6 c544 002b ld $2b c545 0050 ld $50 c546 0059 ld $59 c547 0026 ld $26 c548 0099 ld $99 c549 0030 ld $30 c54a 00f6 ld $f6 c54b 002b ld $2b c54c 0056 ld $56 c54d 0085 ld $85 c54e 00d6 ld $d6 c54f 0066 ld $66 c550 0085 ld $85 c551 00d6 ld $d6 c552 0066 ld $66 c553 0059 ld $59 c554 0000 ld $00 c555 00b8 ld $b8 c556 0048 ld $48 c557 00b8 ld $b8 c558 0048 ld $48 c559 002b ld $2b c55a 0050 ld $50 c55b 0011 ld $11 c55c 00ff ld $ff c55d 00ff ld $ff c55e 002b ld $2b c55f 0056 ld $56 c560 0085 ld $85 c561 00d6 ld $d6 c562 0066 ld $66 c563 002b ld $2b c564 0058 ld $58 c565 0021 ld $21 c566 004e ld $4e c567 002b ld $2b c568 005a ld $5a c569 0059 ld $59 c56a 002c ld $2c c56b 0099 ld $99 c56c 0030 ld $30 c56d 00f6 ld $f6 c56e 002b ld $2b c56f 005c ld $5c c570 0059 ld $59 c571 002e ld $2e c572 0099 ld $99 c573 0030 ld $30 c574 00f6 ld $f6 c575 002b ld $2b c576 005e ld $5e c577 0063 ld $63 c578 00ff ld $ff c579 0093 ld $93 c57a 001b ld $1b c57b 00ff ld $ff c57c 0063 ld $63 c57d 00a0 ld $a0 c57e 003e ld $3e c57f 00cd ld $cd c580 00d9 ld $d9 c581 0075 ld $75 c582 0085 ld $85 c583 00a2 ld $a2 c584 005d ld $5d c585 0021 ld $21 c586 0036 ld $36 c587 00e6 ld $e6 c588 0002 ld $02 c589 0035 ld $35 c58a 004d ld $4d c58b 00ae ld $ae c58c 0085 ld $85 c58d 00a2 ld $a2 c58e 0066 ld $66 c58f 0085 ld $85 c590 00a2 ld $a2 c591 005c ld $5c c592 001a ld $1a c593 002a ld $2a c594 008c ld $8c c595 00fe ld $fe c596 0035 ld $35 c597 0072 ld $72 c598 00d7 ld $d7 c599 0011 ld $11 c59a 0015 ld $15 c59b 000b ld $0b c59c 002b ld $2b c59d 0022 ld $22 c59e 0011 ld $11 c59f 0000 ld $00 c5a0 007c ld $7c c5a1 002b ld $2b c5a2 0024 ld $24 c5a3 0021 ld $21 c5a4 0030 ld $30 c5a5 002b ld $2b c5a6 0026 ld $26 c5a7 00b4 ld $b4 c5a8 00cb ld $cb c5a9 0093 ld $93 c5aa 0027 ld $27 c5ab 00b4 ld $b4 c5ac 00cb ld $cb c5ad 0085 ld $85 c5ae 00bc ld $bc c5af 005d ld $5d c5b0 0085 ld $85 c5b1 00bc ld $bc c5b2 005d ld $5d c5b3 0085 ld $85 c5b4 00af ld $af c5b5 005d ld $5d c5b6 0059 ld $59 c5b7 0000 ld $00 c5b8 0063 ld $63 c5b9 00ff ld $ff c5ba 0093 ld $93 c5bb 001b ld $1b c5bc 00ff ld $ff c5bd 0064 ld $64 c5be 00a0 ld $a0 c5bf 0050 ld $50 c5c0 00cd ld $cd c5c1 00eb ld $eb c5c2 0075 ld $75 c5c3 0021 ld $21 c5c4 0060 ld $60 c5c5 00fc ld $fc c5c6 0062 ld $62 c5c7 0035 ld $35 c5c8 0072 ld $72 c5c9 00ae ld $ae c5ca 0021 ld $21 c5cb 0064 ld $64 c5cc 00fc ld $fc c5cd 0066 ld $66 c5ce 001a ld $1a c5cf 0019 ld $19 c5d0 0035 ld $35 c5d1 0072 ld $72 c5d2 00b5 ld $b5 c5d3 0021 ld $21 c5d4 0066 ld $66 c5d5 0090 ld $90 c5d6 00bb ld $bb c5d7 0021 ld $21 c5d8 0064 ld $64 c5d9 0088 ld $88 c5da 00ff ld $ff c5db 00e3 ld $e3 c5dc 0001 ld $01 c5dd 00b8 ld $b8 c5de 0064 ld $64 c5df 002b ld $2b c5e0 0068 ld $68 c5e1 0035 ld $35 c5e2 003f ld $3f c5e3 00e5 ld $e5 c5e4 0011 ld $11 c5e5 00ff ld $ff c5e6 0001 ld $01 c5e7 00f8 ld $f8 c5e8 0064 ld $64 c5e9 0035 ld $35 c5ea 003f ld $3f c5eb 00ce ld $ce c5ec 0099 ld $99 c5ed 0030 ld $30 c5ee 0090 ld $90 c5ef 00e5 ld $e5 c5f0 0085 ld $85 c5f1 00a2 ld $a2 c5f2 0063 ld $63 c5f3 0035 ld $35 c5f4 0072 ld $72 c5f5 00db ld $db c5f6 0085 ld $85 c5f7 00a2 ld $a2 c5f8 0075 ld $75 c5f9 0021 ld $21 c5fa 0030 ld $30 c5fb fe00 bra ac ;+-----------------------------------+ c5fc fcfd bra $c5fd ;| | c5fd 1418 ld $18,y ;| Trampoline for page $c500 lookups | c5fe e006 jmp y,$06 ;| | c5ff c218 st [$18] ;+-----------------------------------+ c600 0090 ld $90 c601 00e5 ld $e5 c602 0021 ld $21 c603 0060 ld $60 c604 002b ld $2b c605 0062 ld $62 c606 0021 ld $21 c607 0064 ld $64 c608 002b ld $2b c609 0066 ld $66 c60a 0059 ld $59 c60b 0000 ld $00 c60c 002b ld $2b c60d 006a ld $6a c60e 0021 ld $21 c60f 0068 ld $68 c610 0063 ld $63 c611 00ff ld $ff c612 0093 ld $93 c613 001b ld $1b c614 00ff ld $ff c615 0065 ld $65 c616 00a0 ld $a0 c617 0060 ld $60 c618 00cd ld $cd c619 00cb ld $cb c61a 0075 ld $75 c61b 0059 ld $59 c61c 0000 ld $00 c61d 002b ld $2b c61e 0064 ld $64 c61f 002b ld $2b c620 0060 ld $60 c621 0021 ld $21 c622 003a ld $3a c623 00e3 ld $e3 c624 001c ld $1c c625 00f6 ld $f6 c626 002b ld $2b c627 0066 ld $66 c628 0021 ld $21 c629 003a ld $3a c62a 00e3 ld $e3 c62b 001e ld $1e c62c 00f6 ld $f6 c62d 002b ld $2b c62e 0062 ld $62 c62f 0021 ld $21 c630 003a ld $3a c631 00e3 ld $e3 c632 001a ld $1a c633 00f6 ld $f6 c634 002b ld $2b c635 004c ld $4c c636 0021 ld $21 c637 003a ld $3a c638 00e3 ld $e3 c639 0014 ld $14 c63a 00f6 ld $f6 c63b 002b ld $2b c63c 004e ld $4e c63d 0085 ld $85 c63e 00a2 ld $a2 c63f 0076 ld $76 c640 0085 ld $85 c641 00cf ld $cf c642 0065 ld $65 c643 0063 ld $63 c644 00ff ld $ff c645 00cd ld $cd c646 00fb ld $fb c647 0075 ld $75 c648 001a ld $1a c649 004f ld $4f c64a 0082 ld $82 c64b 000f ld $0f c64c 005e ld $5e c64d 004f ld $4f c64e 0059 ld $59 c64f 0001 ld $01 c650 002b ld $2b c651 0046 ld $46 c652 00b8 ld $b8 c653 0048 ld $48 c654 0035 ld $35 c655 0053 ld $53 c656 00e6 ld $e6 c657 0085 ld $85 c658 00c2 ld $c2 c659 0066 ld $66 c65a 0021 ld $21 c65b 0046 ld $46 c65c 0099 ld $99 c65d 0046 ld $46 c65e 0090 ld $90 c65f 00d6 ld $d6 c660 0021 ld $21 c661 0058 ld $58 c662 002b ld $2b c663 0050 ld $50 c664 0021 ld $21 c665 005a ld $5a c666 002b ld $2b c667 0056 ld $56 c668 0085 ld $85 c669 00d6 ld $d6 c66a 0066 ld $66 c66b 0021 ld $21 c66c 004c ld $4c c66d 002b ld $2b c66e 0040 ld $40 c66f 0021 ld $21 c670 004e ld $4e c671 002b ld $2b c672 003e ld $3e c673 0063 ld $63 c674 00ff ld $ff c675 0093 ld $93 c676 001b ld $1b c677 00ff ld $ff c678 0066 ld $66 c679 00a0 ld $a0 c67a 005f ld $5f c67b 00cd ld $cd c67c 00be ld $be c67d 0075 ld $75 c67e 0059 ld $59 c67f 0000 ld $00 c680 005e ld $5e c681 0050 ld $50 c682 001a ld $1a c683 004c ld $4c c684 005e ld $5e c685 0051 ld $51 c686 001a ld $1a c687 004d ld $4d c688 005e ld $5e c689 0056 ld $56 c68a 001a ld $1a c68b 004e ld $4e c68c 005e ld $5e c68d 0057 ld $57 c68e 0021 ld $21 c68f 0050 ld $50 c690 002b ld $2b c691 004c ld $4c c692 0021 ld $21 c693 0056 ld $56 c694 002b ld $2b c695 004e ld $4e c696 0085 ld $85 c697 00d6 ld $d6 c698 0066 ld $66 c699 0063 ld $63 c69a 00ff ld $ff c69b 00cd ld $cd c69c 00fa ld $fa c69d 0075 ld $75 c69e 0021 ld $21 c69f 004c ld $4c c6a0 002b ld $2b c6a1 0050 ld $50 c6a2 0021 ld $21 c6a3 004e ld $4e c6a4 002b ld $2b c6a5 0056 ld $56 c6a6 0085 ld $85 c6a7 00d6 ld $d6 c6a8 0066 ld $66 c6a9 0021 ld $21 c6aa 0056 ld $56 c6ab 0063 ld $63 c6ac 00ff ld $ff c6ad 0059 ld $59 c6ae 0000 ld $00 c6af 002b ld $2b c6b0 0056 ld $56 c6b1 0021 ld $21 c6b2 004c ld $4c c6b3 00fc ld $fc c6b4 0050 ld $50 c6b5 0035 ld $35 c6b6 0053 ld $53 c6b7 00df ld $df c6b8 0021 ld $21 c6b9 004c ld $4c c6ba 0090 ld $90 c6bb 00e2 ld $e2 c6bc 0011 ld $11 c6bd 0000 ld $00 c6be 0080 ld $80 c6bf 0099 ld $99 c6c0 0050 ld $50 c6c1 0035 ld $35 c6c2 0050 ld $50 c6c3 00ed ld $ed c6c4 0021 ld $21 c6c5 004e ld $4e c6c6 00e3 ld $e3 c6c7 0001 ld $01 c6c8 002b ld $2b c6c9 004e ld $4e c6ca 0021 ld $21 c6cb 004e ld $4e c6cc 0099 ld $99 c6cd 0056 ld $56 c6ce 002b ld $2b c6cf 004e ld $4e c6d0 0021 ld $21 c6d1 004c ld $4c c6d2 0099 ld $99 c6d3 0050 ld $50 c6d4 002b ld $2b c6d5 004c ld $4c c6d6 00ff ld $ff c6d7 0093 ld $93 c6d8 001b ld $1b c6d9 00ff ld $ff c6da 0067 ld $67 c6db 00a0 ld $a0 c6dc 0040 ld $40 c6dd 00cd ld $cd c6de 00b8 ld $b8 c6df 0075 ld $75 c6e0 00e6 ld $e6 c6e1 0020 ld $20 c6e2 0035 ld $35 c6e3 0053 ld $53 c6e4 00aa ld $aa c6e5 0059 ld $59 c6e6 007f ld $7f c6e7 0090 ld $90 c6e8 00b1 ld $b1 c6e9 00e6 ld $e6 c6ea 0060 ld $60 c6eb 0035 ld $35 c6ec 0050 ld $50 c6ed 00b1 ld $b1 c6ee 0059 ld $59 c6ef 007f ld $7f c6f0 0082 ld $82 c6f1 007f ld $7f c6f2 0085 ld $85 c6f3 00a2 ld $a2 c6f4 006e ld $6e c6f5 0063 ld $63 c6f6 00ff ld $ff c6f7 00cd ld $cd c6f8 00ca ld $ca c6f9 0075 ld $75 c6fa 0021 ld $21 c6fb fe00 bra ac ;+-----------------------------------+ c6fc fcfd bra $c6fd ;| | c6fd 1418 ld $18,y ;| Trampoline for page $c600 lookups | c6fe e006 jmp y,$06 ;| | c6ff c218 st [$18] ;+-----------------------------------+ c700 004e ld $4e c701 0085 ld $85 c702 00ce ld $ce c703 0067 ld $67 c704 0021 ld $21 c705 004c ld $4c c706 0085 ld $85 c707 00ce ld $ce c708 0067 ld $67 c709 0085 ld $85 c70a 00a2 ld $a2 c70b 006d ld $6d c70c 0063 ld $63 c70d 00ff ld $ff c70e 00cd ld $cd c70f 00db ld $db c710 0075 ld $75 c711 002b ld $2b c712 0046 ld $46 c713 001a ld $1a c714 0047 ld $47 c715 0085 ld $85 c716 00a2 ld $a2 c717 0068 ld $68 c718 001a ld $1a c719 0046 ld $46 c71a 0085 ld $85 c71b 00a2 ld $a2 c71c 0068 ld $68 c71d 0063 ld $63 c71e 00ff ld $ff c71f 0093 ld $93 c720 001b ld $1b c721 00ff ld $ff c722 0068 ld $68 c723 00a0 ld $a0 c724 0054 ld $54 c725 00cd ld $cd c726 00b7 ld $b7 c727 0075 ld $75 c728 00df ld $df c729 00fe ld $fe c72a 00ec ld $ec c72b 0000 ld $00 c72c 00e9 ld $e9 c72d 00e9 ld $e9 c72e 00e9 ld $e9 c72f 00e9 ld $e9 c730 001a ld $1a c731 0019 ld $19 c732 0085 ld $85 c733 00de ld $de c734 0068 ld $68 c735 00ee ld $ee c736 0000 ld $00 c737 00df ld $df c738 0002 ld $02 c739 0085 ld $85 c73a 00de ld $de c73b 0068 ld $68 c73c 0063 ld $63 c73d 00ff ld $ff c73e 00cd ld $cd c73f 00da ld $da c740 0075 ld $75 c741 002b ld $2b c742 0046 ld $46 c743 0035 ld $35 c744 0072 ld $72 c745 00c8 ld $c8 c746 00cd ld $cd c747 00c6 ld $c6 c748 0020 ld $20 c749 004f ld $4f c74a 004b ld $4b c74b 000a ld $0a c74c 0000 ld $00 c74d 0090 ld $90 c74e 00d3 ld $d3 c74f 00cd ld $cd c750 00d3 ld $d3 c751 0020 ld $20 c752 0046 ld $46 c753 0041 ld $41 c754 0049 ld $49 c755 004c ld $4c c756 0045 ld $45 c757 0044 ld $44 c758 000a ld $0a c759 0000 ld $00 c75a 0085 ld $85 c75b 00a2 ld $a2 c75c 0069 ld $69 c75d 0021 ld $21 c75e 0046 ld $46 c75f 0063 ld $63 c760 00ff ld $ff c761 00cd ld $cd c762 00ef ld $ef c763 0075 ld $75 c764 0082 ld $82 c765 000f ld $0f c766 00e6 ld $e6 c767 000a ld $0a c768 0035 ld $35 c769 0053 ld $53 c76a 00e8 ld $e8 c76b 00e3 ld $e3 c76c 003a ld $3a c76d 0090 ld $90 c76e 00ea ld $ea c76f 00e3 ld $e3 c770 0041 ld $41 c771 0085 ld $85 c772 00a2 ld $a2 c773 006e ld $6e c774 0063 ld $63 c775 00ff ld $ff c776 0093 ld $93 c777 001b ld $1b c778 00ff ld $ff c779 0069 ld $69 c77a 00a0 ld $a0 c77b 004f ld $4f c77c 00cd ld $cd c77d 00be ld $be c77e 0075 ld $75 c77f 002b ld $2b c780 003c ld $3c c781 0021 ld $21 c782 003c ld $3c c783 00ad ld $ad c784 0035 ld $35 c785 003f ld $3f c786 00bc ld $bc c787 008c ld $8c c788 000a ld $0a c789 0035 ld $35 c78a 003f ld $3f c78b 00b5 ld $b5 c78c 008c ld $8c c78d 000a ld $0a c78e 0085 ld $85 c78f 00a2 ld $a2 c790 006e ld $6e c791 0090 ld $90 c792 00b8 ld $b8 c793 0085 ld $85 c794 00a2 ld $a2 c795 006d ld $6d c796 0093 ld $93 c797 003c ld $3c c798 0090 ld $90 c799 00a3 ld $a3 c79a 0063 ld $63 c79b 00ff ld $ff c79c 00cd ld $cd c79d 00ea ld $ea c79e 0075 ld $75 c79f 00cd ld $cd c7a0 00cb ld $cb c7a1 0056 ld $56 c7a2 006f ld $6f c7a3 006c ld $6c c7a4 0075 ld $75 c7a5 006d ld $6d c7a6 0065 ld $65 c7a7 0020 ld $20 c7a8 0000 ld $00 c7a9 0085 ld $85 c7aa 00a2 ld $a2 c7ab 0069 ld $69 c7ac 0021 ld $21 c7ad 003a ld $3a c7ae 002b ld $2b c7af 003c ld $3c c7b0 0059 ld $59 c7b1 000b ld $0b c7b2 002b ld $2b c7b3 0046 ld $46 c7b4 0021 ld $21 c7b5 003c ld $3c c7b6 00ad ld $ad c7b7 0093 ld $93 c7b8 003c ld $3c c7b9 0085 ld $85 c7ba 00a2 ld $a2 c7bb 0067 ld $67 c7bc 0021 ld $21 c7bd 0046 ld $46 c7be 00e6 ld $e6 c7bf 0001 ld $01 c7c0 0035 ld $35 c7c1 004d ld $4d c7c2 00d4 ld $d4 c7c3 0085 ld $85 c7c4 00a2 ld $a2 c7c5 006d ld $6d c7c6 0063 ld $63 c7c7 00ff ld $ff c7c8 0093 ld $93 c7c9 001b ld $1b c7ca 00ff ld $ff c7cb 006a ld $6a c7cc 00a0 ld $a0 c7cd 0050 ld $50 c7ce 00cd ld $cd c7cf 00b5 ld $b5 c7d0 0075 ld $75 c7d1 002b ld $2b c7d2 006c ld $6c c7d3 0059 ld $59 c7d4 0030 ld $30 c7d5 002b ld $2b c7d6 0046 ld $46 c7d7 0059 ld $59 c7d8 000a ld $0a c7d9 0085 ld $85 c7da 00a2 ld $a2 c7db 006c ld $6c c7dc 0021 ld $21 c7dd 006c ld $6c c7de 00e3 ld $e3 c7df 0030 ld $30 c7e0 0085 ld $85 c7e1 00a2 ld $a2 c7e2 006e ld $6e c7e3 0063 ld $63 c7e4 00ff ld $ff c7e5 00cd ld $cd c7e6 00eb ld $eb c7e7 0075 ld $75 c7e8 0011 ld $11 c7e9 0000 ld $00 c7ea 0006 ld $06 c7eb 002b ld $2b c7ec 0022 ld $22 c7ed 0021 ld $21 c7ee 003a ld $3a c7ef 00e3 ld $e3 c7f0 0011 ld $11 c7f1 00ad ld $ad c7f2 00b4 ld $b4 c7f3 00f6 ld $f6 c7f4 00e6 ld $e6 c7f5 0014 ld $14 c7f6 0035 ld $35 c7f7 0053 ld $53 c7f8 00cb ld $cb c7f9 00e3 ld $e3 c7fa 0064 ld $64 c7fb fe00 bra ac ;+-----------------------------------+ c7fc fcfd bra $c7fd ;| | c7fd 1418 ld $18,y ;| Trampoline for page $c700 lookups | c7fe e006 jmp y,$06 ;| | c7ff c218 st [$18] ;+-----------------------------------+ c800 0085 ld $85 c801 00a2 ld $a2 c802 006a ld $6a c803 0011 ld $11 c804 006d ld $6d c805 0006 ld $06 c806 002b ld $2b c807 0022 ld $22 c808 0021 ld $21 c809 003a ld $3a c80a 00e3 ld $e3 c80b 0010 ld $10 c80c 00f6 ld $f6 c80d 00b4 ld $b4 c80e 00f5 ld $f5 c80f 0082 ld $82 c810 000f ld $0f c811 0085 ld $85 c812 00a2 ld $a2 c813 006a ld $6a c814 0021 ld $21 c815 003a ld $3a c816 00e3 ld $e3 c817 0010 ld $10 c818 00ad ld $ad c819 0082 ld $82 c81a 001f ld $1f c81b 0085 ld $85 c81c 00a2 ld $a2 c81d 006a ld $6a c81e 0063 ld $63 c81f 00ff ld $ff c820 0093 ld $93 c821 001b ld $1b c822 00ff ld $ff c823 006b ld $6b c824 00a0 ld $a0 c825 0055 ld $55 c826 00cd ld $cd c827 00bb ld $bb c828 0075 ld $75 c829 0085 ld $85 c82a 00b9 ld $b9 c82b 006a ld $6a c82c 0059 ld $59 c82d 0004 ld $04 c82e 0099 ld $99 c82f 006e ld $6e c830 002b ld $2b c831 006e ld $6e c832 0085 ld $85 c833 00a2 ld $a2 c834 0070 ld $70 c835 0059 ld $59 c836 0004 ld $04 c837 0099 ld $99 c838 006e ld $6e c839 002b ld $2b c83a 006e ld $6e c83b 0085 ld $85 c83c 00bf ld $bf c83d 006b ld $6b c83e 0085 ld $85 c83f 00a2 ld $a2 c840 006d ld $6d c841 0063 ld $63 c842 00ff ld $ff c843 00cd ld $cd c844 00f0 ld $f0 c845 0075 ld $75 c846 0021 ld $21 c847 003a ld $3a c848 002b ld $2b c849 003c ld $3c c84a 0059 ld $59 c84b 000b ld $0b c84c 002b ld $2b c84d 0046 ld $46 c84e 008c ld $8c c84f 0003 ld $03 c850 0035 ld $35 c851 0072 ld $72 c852 00d8 ld $d8 c853 0021 ld $21 c854 003c ld $3c c855 00ad ld $ad c856 008c ld $8c c857 0020 ld $20 c858 0035 ld $35 c859 003f ld $3f c85a 00d8 ld $d8 c85b 0059 ld $59 c85c 002e ld $2e c85d 0085 ld $85 c85e 00a2 ld $a2 c85f 006e ld $6e c860 0021 ld $21 c861 003c ld $3c c862 00ad ld $ad c863 0093 ld $93 c864 003c ld $3c c865 008c ld $8c c866 0020 ld $20 c867 0035 ld $35 c868 003f ld $3f c869 00e7 ld $e7 c86a 008c ld $8c c86b 0020 ld $20 c86c 0085 ld $85 c86d 00a2 ld $a2 c86e 0067 ld $67 c86f 0021 ld $21 c870 0046 ld $46 c871 00e6 ld $e6 c872 0001 ld $01 c873 0035 ld $35 c874 004d ld $4d c875 00c4 ld $c4 c876 0063 ld $63 c877 00ff ld $ff c878 0093 ld $93 c879 001b ld $1b c87a 00ff ld $ff c87b 006c ld $6c c87c 00a0 ld $a0 c87d 002c ld $2c c87e 00cd ld $cd c87f 00c7 ld $c7 c880 0075 ld $75 c881 002b ld $2b c882 0034 ld $34 c883 0021 ld $21 c884 006c ld $6c c885 00b8 ld $b8 c886 0034 ld $34 c887 0035 ld $35 c888 0050 ld $50 c889 00b0 ld $b0 c88a 002b ld $2b c88b 006c ld $6c c88c 0093 ld $93 c88d 0046 ld $46 c88e 0090 ld $90 c88f 00a5 ld $a5 c890 0021 ld $21 c891 0046 ld $46 c892 0035 ld $35 c893 0072 ld $72 c894 00bc ld $bc c895 0059 ld $59 c896 0020 ld $20 c897 0085 ld $85 c898 00a2 ld $a2 c899 006e ld $6e c89a 0090 ld $90 c89b 00c5 ld $c5 c89c 0088 ld $88 c89d 0030 ld $30 c89e 0085 ld $85 c89f 00a2 ld $a2 c8a0 006e ld $6e c8a1 0059 ld $59 c8a2 0030 ld $30 c8a3 002b ld $2b c8a4 0046 ld $46 c8a5 0063 ld $63 c8a6 00ff ld $ff c8a7 0093 ld $93 c8a8 001b ld $1b c8a9 00ff ld $ff c8aa 006d ld $6d c8ab 00a0 ld $a0 c8ac 004c ld $4c c8ad 00cd ld $cd c8ae 00e7 ld $e7 c8af 0011 ld $11 c8b0 0000 ld $00 c8b1 003f ld $3f c8b2 002b ld $2b c8b3 0024 ld $24 c8b4 0059 ld $59 c8b5 0000 ld $00 c8b6 005e ld $5e c8b7 006e ld $6e c8b8 0011 ld $11 c8b9 0020 ld $20 c8ba 0001 ld $01 c8bb 00ad ld $ad c8bc 005e ld $5e c8bd 006f ld $6f c8be 0021 ld $21 c8bf 006e ld $6e c8c0 002b ld $2b c8c1 0028 ld $28 c8c2 005e ld $5e c8c3 0026 ld $26 c8c4 0011 ld $11 c8c5 00e1 ld $e1 c8c6 0004 ld $04 c8c7 002b ld $2b c8c8 0022 ld $22 c8c9 00b4 ld $b4 c8ca 00cb ld $cb c8cb 0093 ld $93 c8cc 0028 ld $28 c8cd 001a ld $1a c8ce 0028 ld $28 c8cf 008c ld $8c c8d0 00a0 ld $a0 c8d1 0035 ld $35 c8d2 0072 ld $72 c8d3 00b5 ld $b5 c8d4 0059 ld $59 c8d5 0001 ld $01 c8d6 005e ld $5e c8d7 0035 ld $35 c8d8 0059 ld $59 c8d9 00c0 ld $c0 c8da 00e3 ld $e3 c8db 001e ld $1e c8dc 005e ld $5e c8dd 0034 ld $34 c8de 0021 ld $21 c8df 0034 ld $34 c8e0 00ad ld $ad c8e1 00e6 ld $e6 c8e2 0070 ld $70 c8e3 0035 ld $35 c8e4 0053 ld $53 c8e5 00db ld $db c8e6 00e3 ld $e3 c8e7 0078 ld $78 c8e8 0090 ld $90 c8e9 00dd ld $dd c8ea 00e3 ld $e3 c8eb 0018 ld $18 c8ec 00f0 ld $f0 c8ed 0034 ld $34 c8ee 001a ld $1a c8ef 0034 ld $34 c8f0 00e6 ld $e6 c8f1 0020 ld $20 c8f2 0035 ld $35 c8f3 004d ld $4d c8f4 00cb ld $cb c8f5 00ff ld $ff c8f6 0093 ld $93 c8f7 001b ld $1b c8f8 00ff ld $ff c8f9 006e ld $6e c8fa 00a0 ld $a0 c8fb fe00 bra ac ;+-----------------------------------+ c8fc fcfd bra $c8fd ;| | c8fd 1418 ld $18,y ;| Trampoline for page $c800 lookups | c8fe e006 jmp y,$06 ;| | c8ff c218 st [$18] ;+-----------------------------------+ c900 004e ld $4e c901 00cd ld $cd c902 00e9 ld $e9 c903 00e6 ld $e6 c904 0052 ld $52 c905 0035 ld $35 c906 0053 ld $53 c907 00ae ld $ae c908 00e3 ld $e3 c909 0032 ld $32 c90a 002b ld $2b c90b 0034 ld $34 c90c 0011 ld $11 c90d 0000 ld $00 c90e 0007 ld $07 c90f 0090 ld $90 c910 00b3 ld $b3 c911 002b ld $2b c912 0034 ld $34 c913 0011 ld $11 c914 0000 ld $00 c915 0008 ld $08 c916 002b ld $2b c917 0070 ld $70 c918 0021 ld $21 c919 0034 ld $34 c91a 00e9 ld $e9 c91b 00e9 ld $e9 c91c 0099 ld $99 c91d 0034 ld $34 c91e 0099 ld $99 c91f 0070 ld $70 c920 002b ld $2b c921 0070 ld $70 c922 0011 ld $11 c923 0000 ld $00 c924 003f ld $3f c925 002b ld $2b c926 0024 ld $24 c927 0021 ld $21 c928 006e ld $6e c929 002b ld $2b c92a 0028 ld $28 c92b 00e3 ld $e3 c92c 0006 ld $06 c92d 002b ld $2b c92e 006e ld $6e c92f 0011 ld $11 c930 00e1 ld $e1 c931 0004 ld $04 c932 002b ld $2b c933 0022 ld $22 c934 0059 ld $59 c935 0005 ld $05 c936 002b ld $2b c937 0034 ld $34 c938 0021 ld $21 c939 0070 ld $70 c93a 007f ld $7f c93b 0000 ld $00 c93c 005e ld $5e c93d 0026 ld $26 c93e 00b4 ld $b4 c93f 00cb ld $cb c940 0093 ld $93 c941 0070 ld $70 c942 0093 ld $93 c943 0028 ld $28 c944 0021 ld $21 c945 0034 ld $34 c946 00e6 ld $e6 c947 0001 ld $01 c948 0035 ld $35 c949 004d ld $4d c94a 00d3 ld $d3 c94b 00ff ld $ff c94c 0093 ld $93 c94d 001b ld $1b c94e 00ff ld $ff c94f 006f ld $6f c950 00a0 ld $a0 c951 004f ld $4f c952 00cd ld $cd c953 00ea ld $ea c954 0075 ld $75 c955 0085 ld $85 c956 00a2 ld $a2 c957 0064 ld $64 c958 0021 ld $21 c959 006a ld $6a c95a 002b ld $2b c95b 003a ld $3a c95c 00ad ld $ad c95d 0035 ld $35 c95e 003f ld $3f c95f 00e8 ld $e8 c960 008c ld $8c c961 00e5 ld $e5 c962 0035 ld $35 c963 003f ld $3f c964 00e1 ld $e1 c965 0021 ld $21 c966 003a ld $3a c967 00e3 ld $e3 c968 000b ld $0b c969 00ad ld $ad c96a 002b ld $2b c96b 0046 ld $46 c96c 008c ld $8c c96d 000f ld $0f c96e 0035 ld $35 c96f 003f ld $3f c970 00e1 ld $e1 c971 0082 ld $82 c972 0002 ld $02 c973 0035 ld $35 c974 003f ld $3f c975 00e1 ld $e1 c976 0021 ld $21 c977 0046 ld $46 c978 0082 ld $82 c979 0008 ld $08 c97a 0035 ld $35 c97b 003f ld $3f c97c 00ce ld $ce c97d 0085 ld $85 c97e 00c2 ld $c2 c97f 0069 ld $69 c980 0090 ld $90 c981 00e1 ld $e1 c982 0085 ld $85 c983 00a2 ld $a2 c984 006b ld $6b c985 0085 ld $85 c986 00a2 ld $a2 c987 0074 ld $74 c988 0035 ld $35 c989 0072 ld $72 c98a 00e1 ld $e1 c98b 0059 ld $59 c98c 00d0 ld $d0 c98d 00f0 ld $f0 c98e 0032 ld $32 c98f 0085 ld $85 c990 00a2 ld $a2 c991 0073 ld $73 c992 0085 ld $85 c993 00cd ld $cd c994 0074 ld $74 c995 0059 ld $59 c996 0020 ld $20 c997 0085 ld $85 c998 00c6 ld $c6 c999 0075 ld $75 c99a 0090 ld $90 c99b 00a1 ld $a1 c99c 0063 ld $63 c99d 00ff ld $ff c99e 0093 ld $93 c99f 001b ld $1b c9a0 00ff ld $ff c9a1 0070 ld $70 c9a2 00a0 ld $a0 c9a3 005e ld $5e c9a4 00cd ld $cd c9a5 00f9 ld $f9 c9a6 0075 ld $75 c9a7 0021 ld $21 c9a8 003a ld $3a c9a9 00e3 ld $e3 c9aa 000b ld $0b c9ab 00ad ld $ad c9ac 0082 ld $82 c9ad 0010 ld $10 c9ae 0035 ld $35 c9af 003f ld $3f c9b0 00b7 ld $b7 c9b1 00cd ld $cd c9b2 00b5 ld $b5 c9b3 0020 ld $20 c9b4 0020 ld $20 c9b5 003c ld $3c c9b6 0044 ld $44 c9b7 0049 ld $49 c9b8 0052 ld $52 c9b9 003e ld $3e c9ba 0000 ld $00 c9bb 0090 ld $90 c9bc 00f4 ld $f4 c9bd 0021 ld $21 c9be 003a ld $3a c9bf 00e3 ld $e3 c9c0 001c ld $1c c9c1 00f6 ld $f6 c9c2 002b ld $2b c9c3 004c ld $4c c9c4 0021 ld $21 c9c5 003a ld $3a c9c6 00e3 ld $e3 c9c7 001e ld $1e c9c8 00f6 ld $f6 c9c9 002b ld $2b c9ca 004e ld $4e c9cb 0085 ld $85 c9cc 00a2 ld $a2 c9cd 0071 ld $71 c9ce 0059 ld $59 c9cf 0000 ld $00 c9d0 002b ld $2b c9d1 0070 ld $70 c9d2 0059 ld $59 c9d3 0008 ld $08 c9d4 002b ld $2b c9d5 0034 ld $34 c9d6 0021 ld $21 c9d7 003c ld $3c c9d8 00ad ld $ad c9d9 008c ld $8c c9da 0030 ld $30 c9db 0035 ld $35 c9dc 0072 ld $72 c9dd 00f0 ld $f0 c9de 0021 ld $21 c9df 0034 ld $34 c9e0 00e6 ld $e6 c9e1 0006 ld $06 c9e2 0035 ld $35 c9e3 0053 ld $53 c9e4 00e5 ld $e5 c9e5 0059 ld $59 c9e6 0020 ld $20 c9e7 00f0 ld $f0 c9e8 003c ld $3c c9e9 0090 ld $90 c9ea 00e7 ld $e7 c9eb 0093 ld $93 c9ec 0070 ld $70 c9ed 0093 ld $93 c9ee 003c ld $3c c9ef 0021 ld $21 c9f0 0034 ld $34 c9f1 00e6 ld $e6 c9f2 0001 ld $01 c9f3 0035 ld $35 c9f4 0053 ld $53 c9f5 00ce ld $ce c9f6 0021 ld $21 c9f7 0044 ld $44 c9f8 0099 ld $99 c9f9 0070 ld $70 c9fa 0085 ld $85 c9fb fe00 bra ac ;+-----------------------------------+ c9fc fcfd bra $c9fd ;| | c9fd 1418 ld $18,y ;| Trampoline for page $c900 lookups | c9fe e006 jmp y,$06 ;| | c9ff c218 st [$18] ;+-----------------------------------+ ca00 00a2 ld $a2 ca01 0069 ld $69 ca02 0063 ld $63 ca03 00ff ld $ff ca04 0093 ld $93 ca05 001b ld $1b ca06 00ff ld $ff ca07 0071 ld $71 ca08 00a0 ld $a0 ca09 0060 ld $60 ca0a 00cd ld $cd ca0b 00fb ld $fb ca0c 0075 ld $75 ca0d 0059 ld $59 ca0e 0009 ld $09 ca0f 002b ld $2b ca10 0034 ld $34 ca11 0021 ld $21 ca12 0044 ld $44 ca13 0099 ld $99 ca14 0034 ld $34 ca15 002b ld $2b ca16 003c ld $3c ca17 0059 ld $59 ca18 0030 ld $30 ca19 00f0 ld $f0 ca1a 003c ld $3c ca1b 0021 ld $21 ca1c 0034 ld $34 ca1d 00e6 ld $e6 ca1e 0001 ld $01 ca1f 0035 ld $35 ca20 0053 ld $53 ca21 00a3 ld $a3 ca22 0059 ld $59 ca23 001f ld $1f ca24 002b ld $2b ca25 0070 ld $70 ca26 0085 ld $85 ca27 00c2 ld $c2 ca28 0066 ld $66 ca29 0035 ld $35 ca2a 0050 ld $50 ca2b 00c4 ld $c4 ca2c 0059 ld $59 ca2d 006a ld $6a ca2e 0090 ld $90 ca2f 00c6 ld $c6 ca30 0059 ld $59 ca31 0069 ld $69 ca32 002b ld $2b ca33 0046 ld $46 ca34 0059 ld $59 ca35 0009 ld $09 ca36 002b ld $2b ca37 0034 ld $34 ca38 0021 ld $21 ca39 0044 ld $44 ca3a 0099 ld $99 ca3b 0034 ld $34 ca3c 002b ld $2b ca3d 003c ld $3c ca3e 0021 ld $21 ca3f 003c ld $3c ca40 00ad ld $ad ca41 00e9 ld $e9 ca42 00b8 ld $b8 ca43 0046 ld $46 ca44 0035 ld $35 ca45 0053 ld $53 ca46 00e3 ld $e3 ca47 00e3 ld $e3 ca48 003a ld $3a ca49 00f0 ld $f0 ca4a 003c ld $3c ca4b 0059 ld $59 ca4c 006a ld $6a ca4d 0090 ld $90 ca4e 00e9 ld $e9 ca4f 00e3 ld $e3 ca50 0030 ld $30 ca51 00f0 ld $f0 ca52 003c ld $3c ca53 0059 ld $59 ca54 0069 ld $69 ca55 002b ld $2b ca56 0046 ld $46 ca57 0021 ld $21 ca58 0034 ld $34 ca59 00e6 ld $e6 ca5a 0001 ld $01 ca5b 0035 ld $35 ca5c 0053 ld $53 ca5d 00ca ld $ca ca5e 0021 ld $21 ca5f 0070 ld $70 ca60 00e6 ld $e6 ca61 0001 ld $01 ca62 0035 ld $35 ca63 0053 ld $53 ca64 00b8 ld $b8 ca65 0063 ld $63 ca66 00ff ld $ff ca67 0093 ld $93 ca68 001b ld $1b ca69 00ff ld $ff ca6a 0072 ld $72 ca6b 00a0 ld $a0 ca6c 004f ld $4f ca6d 00cd ld $cd ca6e 00ab ld $ab ca6f 002d ld $2d ca70 002d ld $2d ca71 002d ld $2d * 10 times ca79 0000 ld $00 ca7a 002b ld $2b ca7b 0044 ld $44 ca7c 00cd ld $cd ca7d 00ea ld $ea ca7e 0075 ld $75 ca7f 005e ld $5e ca80 0025 ld $25 ca81 0011 ld $11 ca82 0003 ld $03 ca83 000b ld $0b ca84 002b ld $2b ca85 0022 ld $22 ca86 0059 ld $59 ca87 0018 ld $18 ca88 002b ld $2b ca89 0034 ld $34 ca8a 0011 ld $11 ca8b 0020 ld $20 ca8c 0001 ld $01 ca8d 002b ld $2b ca8e 0046 ld $46 ca8f 0021 ld $21 ca90 0034 ld $34 ca91 00f0 ld $f0 ca92 0046 ld $46 ca93 005e ld $5e ca94 0027 ld $27 ca95 0059 ld $59 ca96 0000 ld $00 ca97 005e ld $5e ca98 0026 ld $26 ca99 0059 ld $59 ca9a 00a0 ld $a0 ca9b 005e ld $5e ca9c 0024 ld $24 ca9d 00b4 ld $b4 ca9e 00f3 ld $f3 ca9f 0059 ld $59 caa0 0001 ld $01 caa1 0099 ld $99 caa2 0034 ld $34 caa3 002b ld $2b caa4 0034 ld $34 caa5 0059 ld $59 caa6 0002 ld $02 caa7 0099 ld $99 caa8 0046 ld $46 caa9 002b ld $2b caaa 0046 ld $46 caab 0011 ld $11 caac 00f0 ld $f0 caad 0001 ld $01 caae 00fc ld $fc caaf 0046 ld $46 cab0 0035 ld $35 cab1 0072 ld $72 cab2 00c0 ld $c0 cab3 0059 ld $59 cab4 0000 ld $00 cab5 00f0 ld $f0 cab6 0032 ld $32 cab7 0063 ld $63 cab8 00ff ld $ff cab9 0093 ld $93 caba 001b ld $1b cabb 00ff ld $ff cabc 0073 ld $73 cabd 00a0 ld $a0 cabe 0056 ld $56 cabf 00cd ld $cd cac0 00f1 ld $f1 cac1 0075 ld $75 cac2 00cd ld $cd cac3 00ac ld $ac cac4 004c ld $4c cac5 006f ld $6f cac6 0061 ld $61 cac7 0064 ld $64 cac8 0069 ld $69 cac9 006e ld $6e caca 0067 ld $67 cacb 0020 ld $20 cacc 0000 ld $00 cacd 0085 ld $85 cace 00a2 ld $a2 cacf 0069 ld $69 cad0 0085 ld $85 cad1 00bf ld $bf cad2 006b ld $6b cad3 0085 ld $85 cad4 00a2 ld $a2 cad5 0065 ld $65 cad6 0085 ld $85 cad7 00de ld $de cad8 0075 ld $75 cad9 005e ld $5e cada 0073 ld $73 cadb 0085 ld $85 cadc 00de ld $de cadd 0075 ld $75 cade 005e ld $5e cadf 0072 ld $72 cae0 0085 ld $85 cae1 00de ld $de cae2 0075 ld $75 cae3 00e6 ld $e6 cae4 0001 ld $01 cae5 0082 ld $82 cae6 00ff ld $ff cae7 00e3 ld $e3 cae8 0001 ld $01 cae9 002b ld $2b caea 0074 ld $74 caeb 0085 ld $85 caec 00a2 ld $a2 caed 0078 ld $78 caee 0021 ld $21 caef 0074 ld $74 caf0 0035 ld $35 caf1 0072 ld $72 caf2 00d8 ld $d8 caf3 0085 ld $85 caf4 00de ld $de caf5 0075 ld $75 caf6 0035 ld $35 caf7 0072 ld $72 caf8 00b8 ld $b8 caf9 0085 ld $85 cafa 00de ld $de cafb fe00 bra ac ;+-----------------------------------+ cafc fcfd bra $cafd ;| | cafd 1418 ld $18,y ;| Trampoline for page $ca00 lookups | cafe e006 jmp y,$06 ;| | caff c218 st [$18] ;+-----------------------------------+ cb00 0075 ld $75 cb01 005e ld $5e cb02 0073 ld $73 cb03 0085 ld $85 cb04 00de ld $de cb05 0075 ld $75 cb06 005e ld $5e cb07 0072 ld $72 cb08 0085 ld $85 cb09 00de ld $de cb0a 0075 ld $75 cb0b 0035 ld $35 cb0c 0050 ld $50 cb0d 00ec ld $ec cb0e 0059 ld $59 cb0f 0000 ld $00 cb10 002b ld $2b cb11 0072 ld $72 cb12 0085 ld $85 cb13 00af ld $af cb14 005d ld $5d cb15 0063 ld $63 cb16 00ff ld $ff cb17 0093 ld $93 cb18 001b ld $1b cb19 00ff ld $ff cb1a 0074 ld $74 cb1b 00a0 ld $a0 cb1c 003c ld $3c cb1d 00cd ld $cd cb1e 00c9 ld $c9 cb1f 00cd ld $cd cb20 00ae ld $ae cb21 0053 ld $53 cb22 0059 ld $59 cb23 0053 ld $53 cb24 0054 ld $54 cb25 0045 ld $45 cb26 004d ld $4d cb27 0020 ld $20 cb28 0020 ld $20 cb29 0047 ld $47 cb2a 0054 ld $54 cb2b 0031 ld $31 cb2c 0000 ld $00 cb2d 002b ld $2b cb2e 003c ld $3c cb2f 0021 ld $21 cb30 003a ld $3a cb31 002b ld $2b cb32 0034 ld $34 cb33 0021 ld $21 cb34 003c ld $3c cb35 00ad ld $ad cb36 0093 ld $93 cb37 003c ld $3c cb38 0035 ld $35 cb39 003f ld $3f cb3a 00c8 ld $c8 cb3b 002b ld $2b cb3c 0070 ld $70 cb3d 0021 ld $21 cb3e 0034 ld $34 cb3f 00ad ld $ad cb40 0093 ld $93 cb41 0034 ld $34 cb42 00fc ld $fc cb43 0070 ld $70 cb44 0035 ld $35 cb45 003f ld $3f cb46 00b4 ld $b4 cb47 00ff ld $ff cb48 00cd ld $cd cb49 00d7 ld $d7 cb4a 0059 ld $59 cb4b 0020 ld $20 cb4c 0085 ld $85 cb4d 00b1 ld $b1 cb4e 0072 ld $72 cb4f 0021 ld $21 cb50 0072 ld $72 cb51 0035 ld $35 cb52 003f ld $3f cb53 00d2 ld $d2 cb54 00cf ld $cf cb55 0018 ld $18 cb56 0093 ld $93 cb57 001b ld $1b cb58 00ff ld $ff cb59 0075 ld $75 cb5a 00a0 ld $a0 cb5b 0059 ld $59 cb5c 00cd ld $cd cb5d 00c2 ld $c2 cb5e 0075 ld $75 cb5f 0093 ld $93 cb60 0040 ld $40 cb61 0011 ld $11 cb62 0000 ld $00 cb63 0002 ld $02 cb64 0099 ld $99 cb65 0064 ld $64 cb66 00f8 ld $f8 cb67 004a ld $4a cb68 0035 ld $35 cb69 0072 ld $72 cb6a 00c0 ld $c0 cb6b 0021 ld $21 cb6c 0076 ld $76 cb6d 00e3 ld $e3 cb6e 0004 ld $04 cb6f 002b ld $2b cb70 0076 ld $76 cb71 00f6 ld $f6 cb72 002b ld $2b cb73 004c ld $4c cb74 0021 ld $21 cb75 0076 ld $76 cb76 00e3 ld $e3 cb77 0002 ld $02 cb78 00f6 ld $f6 cb79 002b ld $2b cb7a 004e ld $4e cb7b 0085 ld $85 cb7c 00cf ld $cf cb7d 0065 ld $65 cb7e 0063 ld $63 cb7f 00ff ld $ff cb80 00cd ld $cd cb81 00da ld $da cb82 002b ld $2b cb83 0034 ld $34 cb84 0099 ld $99 cb85 0064 ld $64 cb86 002b ld $2b cb87 0064 ld $64 cb88 0035 ld $35 cb89 0072 ld $72 cb8a 00d3 ld $d3 cb8b 0059 ld $59 cb8c 0001 ld $01 cb8d 0099 ld $99 cb8e 0060 ld $60 cb8f 002b ld $2b cb90 0060 ld $60 cb91 0021 ld $21 cb92 0068 ld $68 cb93 00b8 ld $b8 cb94 0034 ld $34 cb95 002b ld $2b cb96 0068 ld $68 cb97 00ff ld $ff cb98 00cd ld $cd cb99 00f4 ld $f4 cb9a 0075 ld $75 cb9b 0085 ld $85 cb9c 00a2 ld $a2 cb9d 0064 ld $64 cb9e 0035 ld $35 cb9f 0056 ld $56 cba0 00ef ld $ef cba1 0059 ld $59 cba2 0001 ld $01 cba3 0085 ld $85 cba4 00c6 ld $c6 cba5 0075 ld $75 cba6 0021 ld $21 cba7 006a ld $6a cba8 00ad ld $ad cba9 0093 ld $93 cbaa 006a ld $6a cbab 0090 ld $90 cbac 00f2 ld $f2 cbad 0011 ld $11 cbae 00ff ld $ff cbaf 00ff ld $ff cbb0 0063 ld $63 cbb1 00ff ld $ff cbb2 0093 ld $93 cbb3 001b ld $1b cbb4 00ff ld $ff cbb5 0076 ld $76 cbb6 00a0 ld $a0 cbb7 0044 ld $44 cbb8 00cd ld $cd cbb9 00df ld $df cbba 0075 ld $75 cbbb 0011 ld $11 cbbc 0000 ld $00 cbbd 007f ld $7f cbbe 002b ld $2b cbbf 0076 ld $76 cbc0 0021 ld $21 cbc1 004c ld $4c cbc2 00f3 ld $f3 cbc3 0076 ld $76 cbc4 0093 ld $93 cbc5 0076 ld $76 cbc6 0093 ld $93 cbc7 0076 ld $76 cbc8 0021 ld $21 cbc9 004e ld $4e cbca 00f3 ld $f3 cbcb 0076 ld $76 cbcc 0093 ld $93 cbcd 0076 ld $76 cbce 0093 ld $93 cbcf 0076 ld $76 cbd0 0011 ld $11 cbd1 0000 ld $00 cbd2 00f0 ld $f0 cbd3 00fa ld $fa cbd4 004e ld $4e cbd5 00e3 ld $e3 cbd6 0001 ld $01 cbd7 0035 ld $35 cbd8 0072 ld $72 cbd9 00c6 ld $c6 cbda 0059 ld $59 cbdb 0007 ld $07 cbdc 00fa ld $fa cbdd 004c ld $4c cbde 00e3 ld $e3 cbdf 0001 ld $01 cbe0 0035 ld $35 cbe1 003f ld $3f cbe2 00ce ld $ce cbe3 0085 ld $85 cbe4 00a2 ld $a2 cbe5 0077 ld $77 cbe6 0090 ld $90 cbe7 00a6 ld $a6 cbe8 0011 ld $11 cbe9 0000 ld $00 cbea 007f ld $7f cbeb 002b ld $2b cbec 0076 ld $76 cbed 00f6 ld $f6 cbee 002b ld $2b cbef 004c ld $4c cbf0 0021 ld $21 cbf1 0076 ld $76 cbf2 00e3 ld $e3 cbf3 0002 ld $02 cbf4 00f6 ld $f6 cbf5 002b ld $2b cbf6 004e ld $4e cbf7 0063 ld $63 cbf8 00ff ld $ff cbf9 0093 ld $93 cbfa 001b ld $1b cbfb fe00 bra ac ;+-----------------------------------+ cbfc fcfd bra $cbfd ;| | cbfd 1418 ld $18,y ;| Trampoline for page $cb00 lookups | cbfe e006 jmp y,$06 ;| | cbff c218 st [$18] ;+-----------------------------------+ cc00 00ff ld $ff cc01 0077 ld $77 cc02 00a0 ld $a0 cc03 005d ld $5d cc04 00cd ld $cd cc05 00f8 ld $f8 cc06 0075 ld $75 cc07 001a ld $1a cc08 004d ld $4d cc09 005e ld $5e cc0a 0050 ld $50 cc0b 001a ld $1a cc0c 004e ld $4e cc0d 005e ld $5e cc0e 0051 ld $51 cc0f 001a ld $1a cc10 004f ld $4f cc11 002b ld $2b cc12 0056 ld $56 cc13 001a ld $1a cc14 004c ld $4c cc15 002b ld $2b cc16 0078 ld $78 cc17 0082 ld $82 cc18 0080 ld $80 cc19 00ad ld $ad cc1a 002b ld $2b cc1b 004c ld $4c cc1c 0059 ld $59 cc1d 0000 ld $00 cc1e 002b ld $2b cc1f 004e ld $4e cc20 0085 ld $85 cc21 00d6 ld $d6 cc22 0066 ld $66 cc23 0085 ld $85 cc24 00d6 ld $d6 cc25 0066 ld $66 cc26 0021 ld $21 cc27 0052 ld $52 cc28 002b ld $2b cc29 0050 ld $50 cc2a 0021 ld $21 cc2b 0054 ld $54 cc2c 002b ld $2b cc2d 0056 ld $56 cc2e 0085 ld $85 cc2f 00d6 ld $d6 cc30 0066 ld $66 cc31 00fc ld $fc cc32 0040 ld $40 cc33 0035 ld $35 cc34 0072 ld $72 cc35 00d4 ld $d4 cc36 0021 ld $21 cc37 004e ld $4e cc38 00fc ld $fc cc39 003e ld $3e cc3a 0035 ld $35 cc3b 003f ld $3f cc3c 00e2 ld $e2 cc3d 0021 ld $21 cc3e 004c ld $4c cc3f 002b ld $2b cc40 0040 ld $40 cc41 0021 ld $21 cc42 004e ld $4e cc43 002b ld $2b cc44 003e ld $3e cc45 0085 ld $85 cc46 00a2 ld $a2 cc47 0063 ld $63 cc48 0021 ld $21 cc49 0078 ld $78 cc4a 0082 ld $82 cc4b 007f ld $7f cc4c 00e9 ld $e9 cc4d 00e9 ld $e9 cc4e 0099 ld $99 cc4f 0030 ld $30 cc50 002b ld $2b cc51 0078 ld $78 cc52 00f6 ld $f6 cc53 002b ld $2b cc54 004c ld $4c cc55 0021 ld $21 cc56 0078 ld $78 cc57 00e3 ld $e3 cc58 0002 ld $02 cc59 00f6 ld $f6 cc5a 002b ld $2b cc5b 004e ld $4e cc5c 0063 ld $63 cc5d 00ff ld $ff cc5e 0093 ld $93 cc5f 001b ld $1b cc60 00ff ld $ff cc61 0078 ld $78 cc62 00a0 ld $a0 cc63 0038 ld $38 cc64 00cd ld $cd cc65 00d3 ld $d3 cc66 0075 ld $75 cc67 0085 ld $85 cc68 00a2 ld $a2 cc69 0064 ld $64 cc6a 0035 ld $35 cc6b 0056 ld $56 cc6c 00d1 ld $d1 cc6d 00b8 ld $b8 cc6e 0074 ld $74 cc6f 0035 ld $35 cc70 0056 ld $56 cc71 00ae ld $ae cc72 0059 ld $59 cc73 0000 ld $00 cc74 0099 ld $99 cc75 0074 ld $74 cc76 0085 ld $85 cc77 00c6 ld $c6 cc78 0075 ld $75 cc79 0021 ld $21 cc7a 006a ld $6a cc7b 002b ld $2b cc7c 0026 ld $26 cc7d 0021 ld $21 cc7e 0072 ld $72 cc7f 002b ld $2b cc80 0024 ld $24 cc81 0099 ld $99 cc82 0034 ld $34 cc83 002b ld $2b cc84 0072 ld $72 cc85 0011 ld $11 cc86 00e9 ld $e9 cc87 0000 ld $00 cc88 002b ld $2b cc89 0022 ld $22 cc8a 0021 ld $21 cc8b 0034 ld $34 cc8c 00b4 ld $b4 cc8d 00e6 ld $e6 cc8e 0021 ld $21 cc8f 0074 ld $74 cc90 00b8 ld $b8 cc91 0034 ld $34 cc92 002b ld $2b cc93 0074 ld $74 cc94 0035 ld $35 cc95 004d ld $4d cc96 00a1 ld $a1 cc97 0063 ld $63 cc98 00ff ld $ff cc99 0093 ld $93 cc9a 001b ld $1b cc9b 00ff ld $ff cc9c 0079 ld $79 cc9d 00a0 ld $a0 cc9e 0040 ld $40 cc9f 00cd ld $cd cca0 00bf ld $bf cca1 0075 ld $75 cca2 0059 ld $59 cca3 0000 ld $00 cca4 002b ld $2b cca5 0064 ld $64 cca6 002b ld $2b cca7 0060 ld $60 cca8 0059 ld $59 cca9 0000 ld $00 ccaa 002b ld $2b ccab 0066 ld $66 ccac 0059 ld $59 ccad 0001 ld $01 ccae 002b ld $2b ccaf 0062 ld $62 ccb0 0021 ld $21 ccb1 005c ld $5c ccb2 002b ld $2b ccb3 004c ld $4c ccb4 0021 ld $21 ccb5 005e ld $5e ccb6 002b ld $2b ccb7 004e ld $4e ccb8 0085 ld $85 ccb9 00a2 ld $a2 ccba 0076 ld $76 ccbb 0085 ld $85 ccbc 00cf ld $cf ccbd 0065 ld $65 ccbe 0063 ld $63 ccbf 00ff ld $ff ccc0 00cd ld $cd ccc1 00db ld $db ccc2 0075 ld $75 ccc3 00cd ld $cd ccc4 00ce ld $ce ccc5 0043 ld $43 ccc6 0061 ld $61 ccc7 0072 ld $72 ccc8 0064 ld $64 ccc9 0054 ld $54 ccca 0079 ld $79 cccb 0070 ld $70 cccc 0065 ld $65 cccd 0020 ld $20 ccce 0000 ld $00 cccf 0085 ld $85 ccd0 00a2 ld $a2 ccd1 0069 ld $69 ccd2 0021 ld $21 ccd3 0036 ld $36 ccd4 0085 ld $85 ccd5 00a2 ld $a2 ccd6 0068 ld $68 ccd7 0085 ld $85 ccd8 00a2 ld $a2 ccd9 006d ld $6d ccda 0063 ld $63 ccdb 00ff ld $ff ccdc 0093 ld $93 ccdd 001b ld $1b ccde 00ff ld $ff ccdf 007a ld $7a cce0 00a0 ld $a0 cce1 0057 ld $57 cce2 00cd ld $cd cce3 00af ld $af cce4 000a ld $0a cce5 002a ld $2a cce6 002a ld $2a cce7 002a ld $2a cce8 0020 ld $20 cce9 0043 ld $43 ccea 0061 ld $61 cceb 0072 ld $72 ccec 0064 ld $64 cced 0042 ld $42 ccee 006f ld $6f ccef 006f ld $6f ccf0 0074 ld $74 ccf1 000a ld $0a ccf2 0000 ld $00 ccf3 0085 ld $85 ccf4 00a2 ld $a2 ccf5 0069 ld $69 ccf6 0059 ld $59 ccf7 0000 ld $00 ccf8 005e ld $5e ccf9 000e ld $0e ccfa 0085 ld $85 ccfb fe00 bra ac ;+-----------------------------------+ ccfc fcfd bra $ccfd ;| | ccfd 1418 ld $18,y ;| Trampoline for page $cc00 lookups | ccfe e006 jmp y,$06 ;| | ccff c218 st [$18] ;+-----------------------------------+ cd00 00a2 ld $a2 cd01 0060 ld $60 cd02 0085 ld $85 cd03 00c3 ld $c3 cd04 0079 ld $79 cd05 0085 ld $85 cd06 00a2 ld $a2 cd07 0061 ld $61 cd08 0085 ld $85 cd09 00bb ld $bb cd0a 0068 ld $68 cd0b 0085 ld $85 cd0c 00c7 ld $c7 cd0d 0060 ld $60 cd0e 0035 ld $35 cd0f 0072 ld $72 cd10 00d1 ld $d1 cd11 0085 ld $85 cd12 00a2 ld $a2 cd13 0062 ld $62 cd14 0085 ld $85 cd15 00a2 ld $a2 cd16 0079 ld $79 cd17 0085 ld $85 cd18 00a2 ld $a2 cd19 006f ld $6f cd1a 0059 ld $59 cd1b 0020 ld $20 cd1c 00f0 ld $f0 cd1d 0032 ld $32 cd1e 0085 ld $85 cd1f 00a2 ld $a2 cd20 006d ld $6d cd21 00cd ld $cd cd22 00f0 ld $f0 cd23 0053 ld $53 cd24 0059 ld $59 cd25 0053 ld $53 cd26 0054 ld $54 cd27 0045 ld $45 cd28 004d ld $4d cd29 002e ld $2e cd2a 0047 ld $47 cd2b 0054 ld $54 cd2c 0031 ld $31 cd2d 0020 ld $20 cd2e 006e ld $6e cd2f 006f ld $6f cd30 0074 ld $74 cd31 0020 ld $20 cd32 0066 ld $66 cd33 006f ld $6f cd34 0075 ld $75 cd35 006e ld $6e cd36 0064 ld $64 cd37 0021 ld $21 cd38 0000 ld $00 cd39 0085 ld $85 cd3a 00a2 ld $a2 cd3b 0069 ld $69 cd3c 00b4 ld $b4 cd3d 0080 ld $80 cd3e 0000 ld $00 cd3f 0000 ld $00 ;End of Apps/CardBoot/CardBoot.gt1, size 2922 ;+-----------------------------------+ ;| gbas/menu/MainMenu_vX0.gt1 | ;+-----------------------------------+ cd40 dc42 st $42,[y,x++] ;'B' cd41 dc6f st $6f,[y,x++] ;'o' cd42 dc6f st $6f,[y,x++] ;'o' cd43 dc74 st $74,[y,x++] ;'t' cd44 dc00 st $00,[y,x++] ;'\x00' cd45 dc00 st $00,[y,x++] ;'\x00' cd46 dc00 st $00,[y,x++] ;'\x00' cd47 dc00 st $00,[y,x++] ;'\x00' cd48 00d6 ld $d6 cd49 c218 st [$18] cd4a 00c1 ld $c1 cd4b 14e0 ld $e0,y cd4c e036 jmp y,$36 cd4d c219 st [$19] Main: cd4e 0000 ld $00 cd4f 007e ld $7e cd50 0002 ld $02 cd51 0001 ld $01 cd52 0001 ld $01 cd53 0002 ld $02 cd54 0000 ld $00 cd55 00f5 ld $f5 cd56 0059 ld $59 cd57 0080 ld $80 cd58 002b ld $2b cd59 0082 ld $82 cd5a 0011 ld $11 cd5b 00a0 ld $a0 cd5c 006a ld $6a cd5d 00cf ld $cf cd5e 0018 ld $18 cd5f 0011 ld $11 cd60 0020 ld $20 cd61 000f ld $0f cd62 002b ld $2b cd63 00a2 ld $a2 cd64 00c7 ld $c7 cd65 0003 ld $03 cd66 0069 ld $69 cd67 0021 ld $21 cd68 004d ld $4d cd69 0002 ld $02 cd6a 00aa ld $aa cd6b 004d ld $4d cd6c 0000 ld $00 cd6d 00d6 ld $d6 cd6e 004d ld $4d cd6f 0000 ld $00 cd70 00a6 ld $a6 cd71 0016 ld $16 cd72 0000 ld $00 cd73 002d ld $2d cd74 004d ld $4d cd75 0000 ld $00 cd76 002e ld $2e cd77 0085 ld $85 cd78 00f7 ld $f7 cd79 0061 ld $61 cd7a 0011 ld $11 cd7b 00ad ld $ad cd7c 0062 ld $62 cd7d 002b ld $2b cd7e 0084 ld $84 cd7f 0085 ld $85 cd80 00a2 ld $a2 cd81 0062 ld $62 cd82 0016 ld $16 cd83 00ff ld $ff cd84 000e ld $0e cd85 0011 ld $11 cd86 00f6 ld $f6 cd87 0001 ld $01 cd88 0077 ld $77 cd89 0065 ld $65 cd8a 00be ld $be cd8b 0011 ld $11 cd8c 00f6 ld $f6 cd8d 0067 ld $67 cd8e 0025 ld $25 cd8f 000d ld $0d cd90 0011 ld $11 cd91 00fb ld $fb cd92 0067 ld $67 cd93 0025 ld $25 cd94 0001 ld $01 cd95 00c7 ld $c7 cd96 00fd ld $fd cd97 0066 ld $66 cd98 00aa ld $aa cd99 004d ld $4d cd9a 0000 ld $00 cd9b 00a4 ld $a4 cd9c 00c7 ld $c7 cd9d 0010 ld $10 cd9e 0069 ld $69 cd9f 00aa ld $aa cda0 0016 ld $16 cda1 0020 ld $20 cda2 00a3 ld $a3 cda3 004d ld $4d cda4 0000 ld $00 cda5 0082 ld $82 cda6 004d ld $4d cda7 0000 ld $00 cda8 0084 ld $84 cda9 004d ld $4d cdaa 009f ld $9f cdab 0086 ld $86 cdac 004d ld $4d cdad 001b ld $1b cdae 0088 ld $88 cdaf 0085 ld $85 cdb0 00c2 ld $c2 cdb1 006c ld $6c cdb2 0016 ld $16 cdb3 0010 ld $10 cdb4 00a3 ld $a3 cdb5 004d ld $4d cdb6 0002 ld $02 cdb7 0082 ld $82 cdb8 004d ld $4d cdb9 0002 ld $02 cdba 0084 ld $84 cdbb 004d ld $4d cdbc 009d ld $9d cdbd 0086 ld $86 cdbe 004d ld $4d cdbf 0019 ld $19 cdc0 0088 ld $88 cdc1 0085 ld $85 cdc2 00c2 ld $c2 cdc3 006c ld $6c cdc4 0016 ld $16 cdc5 0020 ld $20 cdc6 00a3 ld $a3 cdc7 004d ld $4d cdc8 0000 ld $00 cdc9 0082 ld $82 cdca 004d ld $4d cdcb 005b ld $5b cdcc 0084 ld $84 cdcd 004d ld $4d cdce 009f ld $9f cdcf 0086 ld $86 cdd0 004d ld $4d cdd1 0077 ld $77 cdd2 0088 ld $88 cdd3 0085 ld $85 cdd4 00c2 ld $c2 cdd5 006c ld $6c cdd6 0016 ld $16 cdd7 0010 ld $10 cdd8 00a3 ld $a3 cdd9 004d ld $4d cdda 0002 ld $02 cddb 0082 ld $82 cddc 004d ld $4d cddd 005d ld $5d cdde 0084 ld $84 cddf 004d ld $4d cde0 009d ld $9d cde1 0086 ld $86 cde2 004d ld $4d cde3 0075 ld $75 cde4 0088 ld $88 cde5 0085 ld $85 cde6 00c2 ld $c2 cde7 006c ld $6c cde8 0016 ld $16 cde9 0020 ld $20 cdea 00a3 ld $a3 cdeb 004d ld $4d cdec 0000 ld $00 cded 0082 ld $82 cdee 004d ld $4d cdef 001c ld $1c cdf0 0084 ld $84 cdf1 004d ld $4d cdf2 0001 ld $01 cdf3 0086 ld $86 cdf4 004d ld $4d cdf5 005a ld $5a cdf6 0088 ld $88 cdf7 0085 ld $85 cdf8 00c2 ld $c2 cdf9 006c ld $6c cdfa 0016 ld $16 cdfb fe00 bra ac ;+-----------------------------------+ cdfc fcfd bra $cdfd ;| | cdfd 1418 ld $18,y ;| Trampoline for page $cd00 lookups | cdfe e006 jmp y,$06 ;| | cdff c218 st [$18] ;+-----------------------------------+ ce00 0020 ld $20 ce01 00a3 ld $a3 ce02 004d ld $4d ce03 009e ld $9e ce04 0082 ld $82 ce05 004d ld $4d ce06 001c ld $1c ce07 0084 ld $84 ce08 004d ld $4d ce09 009f ld $9f ce0a 0086 ld $86 ce0b 004d ld $4d ce0c 005a ld $5a ce0d 0088 ld $88 ce0e 0085 ld $85 ce0f 00c2 ld $c2 ce10 006c ld $6c ce11 0085 ld $85 ce12 0086 ld $86 ce13 0005 ld $05 ce14 0011 ld $11 ce15 0000 ld $00 ce16 000c ld $0c ce17 002b ld $2b ce18 00a2 ld $a2 ce19 004d ld $4d ce1a 0026 ld $26 ce1b 0038 ld $38 ce1c 004d ld $4d ce1d 0000 ld $00 ce1e 003a ld $3a ce1f 0016 ld $16 ce20 0018 ld $18 ce21 00a4 ld $a4 ce22 0065 ld $65 ce23 00a5 ld $a5 ce24 0038 ld $38 ce25 0085 ld $85 ce26 00aa ld $aa ce27 0067 ld $67 ce28 003f ld $3f ce29 003a ld $3a ce2a 00aa ld $aa ce2b 007f ld $7f ce2c 0085 ld $85 ce2d 00ac ld $ac ce2e 0063 ld $63 ce2f 0085 ld $85 ce30 00b7 ld $b7 ce31 0070 ld $70 ce32 0016 ld $16 ce33 0062 ld $62 ce34 00a4 ld $a4 ce35 0065 ld $65 ce36 00a5 ld $a5 ce37 0038 ld $38 ce38 0085 ld $85 ce39 00aa ld $aa ce3a 0067 ld $67 ce3b 0021 ld $21 ce3c 003a ld $3a ce3d 00e3 ld $e3 ce3e 0005 ld $05 ce3f 0079 ld $79 ce40 00aa ld $aa ce41 007f ld $7f ce42 00f6 ld $f6 ce43 0085 ld $85 ce44 00ac ld $ac ce45 0063 ld $63 ce46 0085 ld $85 ce47 00b7 ld $b7 ce48 0070 ld $70 ce49 0042 ld $42 ce4a 0008 ld $08 ce4b 0038 ld $38 ce4c 0038 ld $38 ce4d 0085 ld $85 ce4e 0000 ld $00 ce4f 0003 ld $03 ce50 0003 ld $03 ce51 0000 ld $00 ce52 00f9 ld $f9 ce53 00a7 ld $a7 ce54 0004 ld $04 ce55 003a ld $3a ce56 0093 ld $93 ce57 003a ld $3a ce58 00bd ld $bd ce59 00c2 ld $c2 ce5a 0002 ld $02 ce5b 0011 ld $11 ce5c 0010 ld $10 ce5d 002a ld $2a ce5e 002b ld $2b ce5f 00a2 ld $a2 ce60 0016 ld $16 ce61 0024 ld $24 ce62 00a4 ld $a4 ce63 0016 ld $16 ce64 005f ld $5f ce65 00a5 ld $a5 ce66 0085 ld $85 ce67 00aa ld $aa ce68 0067 ld $67 ce69 0011 ld $11 ce6a 00d0 ld $d0 ce6b 007e ld $7e ce6c 0085 ld $85 ce6d 00ac ld $ac ce6e 0063 ld $63 ce6f 0011 ld $11 ce70 00e0 ld $e0 ce71 007e ld $7e ce72 002b ld $2b ce73 00c4 ld $c4 ce74 004d ld $4d ce75 003f ld $3f ce76 00c6 ld $c6 ce77 0085 ld $85 ce78 00f0 ld $f0 ce79 0003 ld $03 ce7a 0011 ld $11 ce7b 00c5 ld $c5 ce7c 007e ld $7e ce7d 0085 ld $85 ce7e 00ac ld $ac ce7f 0063 ld $63 ce80 0016 ld $16 ce81 001c ld $1c ce82 00a4 ld $a4 ce83 0016 ld $16 ce84 0067 ld $67 ce85 00a5 ld $a5 ce86 0085 ld $85 ce87 00aa ld $aa ce88 0067 ld $67 ce89 0011 ld $11 ce8a 00be ld $be ce8b 007e ld $7e ce8c 0085 ld $85 ce8d 00ac ld $ac ce8e 0063 ld $63 ce8f 0011 ld $11 ce90 00a3 ld $a3 ce91 007f ld $7f ce92 002b ld $2b ce93 00c4 ld $c4 ce94 004d ld $4d ce95 003f ld $3f ce96 00c6 ld $c6 ce97 0085 ld $85 ce98 00f0 ld $f0 ce99 0003 ld $03 ce9a 0011 ld $11 ce9b 00ac ld $ac ce9c 007e ld $7e ce9d 0085 ld $85 ce9e 00ac ld $ac ce9f 0063 ld $63 cea0 0016 ld $16 cea1 0024 ld $24 cea2 00a4 ld $a4 cea3 0016 ld $16 cea4 006f ld $6f cea5 00a5 ld $a5 cea6 0085 ld $85 cea7 00aa ld $aa cea8 0067 ld $67 cea9 0011 ld $11 ceaa 00a6 ld $a6 ceab 007e ld $7e ceac 0085 ld $85 cead 00ac ld $ac ceae 0063 ld $63 ceaf 0011 ld $11 ceb0 00d5 ld $d5 ceb1 007e ld $7e ceb2 002b ld $2b ceb3 00c4 ld $c4 ceb4 004d ld $4d ceb5 003f ld $3f ceb6 00c6 ld $c6 ceb7 0085 ld $85 ceb8 00f0 ld $f0 ceb9 0003 ld $03 ceba 0011 ld $11 cebb 00f5 ld $f5 cebc 007d ld $7d cebd 0085 ld $85 cebe 00ac ld $ac cebf 0063 ld $63 cec0 0085 ld $85 cec1 00b7 ld $b7 cec2 0070 ld $70 cec3 0011 ld $11 cec4 0000 ld $00 cec5 0015 ld $15 cec6 002b ld $2b cec7 00a2 ld $a2 cec8 0016 ld $16 cec9 0003 ld $03 ceca 00a4 ld $a4 cecb 0016 ld $16 cecc 0055 ld $55 cecd 00a5 ld $a5 cece 0085 ld $85 cecf 00aa ld $aa ced0 0067 ld $67 ced1 0011 ld $11 ced2 00ed ld $ed ced3 007d ld $7d ced4 0085 ld $85 ced5 00ac ld $ac ced6 0063 ld $63 ced7 0016 ld $16 ced8 008e ld $8e ced9 00a4 ld $a4 ceda 0016 ld $16 cedb 0055 ld $55 cedc 00a5 ld $a5 cedd 0085 ld $85 cede 00aa ld $aa cedf 0067 ld $67 cee0 0059 ld $59 cee1 0079 ld $79 cee2 0085 ld $85 cee3 00ac ld $ac cee4 0063 ld $63 cee5 0011 ld $11 cee6 00a0 ld $a0 cee7 007f ld $7f cee8 0085 ld $85 cee9 00ac ld $ac ceea 0063 ld $63 ceeb 004d ld $4d ceec 0012 ld $12 ceed 003c ld $3c ceee 004d ld $4d ceef 0026 ld $26 cef0 0038 ld $38 cef1 0059 ld $59 cef2 0000 ld $00 cef3 002b ld $2b cef4 003e ld $3e cef5 002b ld $2b cef6 0040 ld $40 cef7 002b ld $2b cef8 0042 ld $42 cef9 002b ld $2b cefa 0044 ld $44 cefb fe00 bra ac ;+-----------------------------------+ cefc fcfd bra $cefd ;| | cefd 1418 ld $18,y ;| Trampoline for page $ce00 lookups | cefe e006 jmp y,$06 ;| | ceff c218 st [$18] ;+-----------------------------------+ cf00 0011 ld $11 cf01 0097 ld $97 cf02 0010 ld $10 cf03 002b ld $2b cf04 0046 ld $46 cf05 0011 ld $11 cf06 0097 ld $97 cf07 0017 ld $17 cf08 002b ld $2b cf09 0048 ld $48 cf0a 0016 ld $16 cf0b 0003 ld $03 cf0c 0087 ld $87 cf0d 0011 ld $11 cf0e 00a0 ld $a0 cf0f 0075 ld $75 cf10 002b ld $2b cf11 0092 ld $92 cf12 0085 ld $85 cf13 00ea ld $ea cf14 0061 ld $61 cf15 0085 ld $85 cf16 00c7 ld $c7 cf17 006b ld $6b cf18 0085 ld $85 cf19 00ce ld $ce cf1a 0006 ld $06 cf1b 0085 ld $85 cf1c 0075 ld $75 cf1d 0005 ld $05 cf1e 002f ld $2f cf1f 00d6 ld $d6 cf20 006e ld $6e cf21 001a ld $1a cf22 0011 ld $11 cf23 002b ld $2b cf24 0082 ld $82 cf25 004d ld $4d cf26 0000 ld $00 cf27 0084 ld $84 cf28 0085 ld $85 cf29 00ce ld $ce cf2a 0066 ld $66 cf2b 0065 ld $65 cf2c 00a3 ld $a3 cf2d 002d ld $2d cf2e 00e1 ld $e1 cf2f 00a4 ld $a4 cf30 0038 ld $38 cf31 003c ld $3c cf32 0085 ld $85 cf33 00aa ld $aa cf34 0067 ld $67 cf35 0059 ld $59 cf36 003e ld $3e cf37 0085 ld $85 cf38 00c5 ld $c5 cf39 0062 ld $62 cf3a 0085 ld $85 cf3b 0008 ld $08 cf3c 0004 ld $04 cf3d 0085 ld $85 cf3e 004f ld $4f cf3f 0004 ld $04 cf40 0085 ld $85 cf41 0034 ld $34 cf42 0004 ld $04 cf43 0095 ld $95 cf44 003e ld $3e cf45 0085 ld $85 cf46 00c6 ld $c6 cf47 0003 ld $03 cf48 0075 ld $75 cf49 0065 ld $65 cf4a 00a3 ld $a3 cf4b 00c6 ld $c6 cf4c 0021 ld $21 cf4d 00c4 ld $c4 cf4e 0085 ld $85 cf4f 0000 ld $00 cf50 0004 ld $04 cf51 0004 ld $04 cf52 0000 ld $00 cf53 00f8 ld $f8 cf54 0085 ld $85 cf55 00ac ld $ac cf56 0063 ld $63 cf57 0016 ld $16 cf58 002a ld $2a cf59 00a3 ld $a3 cf5a 0063 ld $63 cf5b 00ff ld $ff cf5c 0075 ld $75 cf5d 0011 ld $11 cf5e 00a4 ld $a4 cf5f 0074 ld $74 cf60 00ad ld $ad cf61 00fc ld $fc cf62 0042 ld $42 cf63 00bb ld $bb cf64 0030 ld $30 cf65 0004 ld $04 cf66 0011 ld $11 cf67 00a4 ld $a4 cf68 0074 ld $74 cf69 00ad ld $ad cf6a 002b ld $2b cf6b 0042 ld $42 cf6c 0011 ld $11 cf6d 0000 ld $00 cf6e 0015 ld $15 cf6f 002b ld $2b cf70 00a2 ld $a2 cf71 0016 ld $16 cf72 0040 ld $40 cf73 00a4 ld $a4 cf74 0016 ld $16 cf75 0055 ld $55 cf76 00a5 ld $a5 cf77 0085 ld $85 cf78 00aa ld $aa cf79 0067 ld $67 cf7a 0085 ld $85 cf7b 00dd ld $dd cf7c 0065 ld $65 cf7d 0011 ld $11 cf7e 00e6 ld $e6 cf7f 0073 ld $73 cf80 0085 ld $85 cf81 00ac ld $ac cf82 0063 ld $63 cf83 0085 ld $85 cf84 00b7 ld $b7 cf85 0070 ld $70 cf86 0063 ld $63 cf87 00ff ld $ff cf88 0075 ld $75 cf89 00c7 ld $c7 cf8a 0003 ld $03 cf8b 006f ld $6f cf8c 003e ld $3e cf8d 00bd ld $bd cf8e 004b ld $4b cf8f 0004 ld $04 cf90 0053 ld $53 cf91 0044 ld $44 cf92 00d5 ld $d5 cf93 007d ld $7d cf94 005e ld $5e cf95 0014 ld $14 cf96 0095 ld $95 cf97 0044 ld $44 cf98 00a7 ld $a7 cf99 0018 ld $18 cf9a 0044 ld $44 cf9b 00bd ld $bd cf9c 004b ld $4b cf9d 0004 ld $04 cf9e 004d ld $4d cf9f 0000 ld $00 cfa0 0044 ld $44 cfa1 0063 ld $63 cfa2 00ff ld $ff cfa3 0075 ld $75 cfa4 004d ld $4d cfa5 0000 ld $00 cfa6 003a ld $3a cfa7 003f ld $3f cfa8 003a ld $3a cfa9 00c0 ld $c0 cfaa 0079 ld $79 cfab 0051 ld $51 cfac 003a ld $3a cfad 00c0 ld $c0 cfae 007b ld $7b cfaf 002b ld $2b cfb0 004a ld $4a cfb1 003f ld $3f cfb2 003a ld $3a cfb3 00c0 ld $c0 cfb4 0078 ld $78 cfb5 0051 ld $51 cfb6 003a ld $3a cfb7 00c0 ld $c0 cfb8 007a ld $7a cfb9 002b ld $2b cfba 004c ld $4c cfbb 003f ld $3f cfbc 003a ld $3a cfbd 00c0 ld $c0 cfbe 0079 ld $79 cfbf 002b ld $2b cfc0 00e8 ld $e8 cfc1 003f ld $3f cfc2 003a ld $3a cfc3 00c0 ld $c0 cfc4 0075 ld $75 cfc5 0099 ld $99 cfc6 00e8 ld $e8 cfc7 0051 ld $51 cfc8 003a ld $3a cfc9 00c0 ld $c0 cfca 0079 ld $79 cfcb 002b ld $2b cfcc 004e ld $4e cfcd 003f ld $3f cfce 003a ld $3a cfcf 00c0 ld $c0 cfd0 0078 ld $78 cfd1 002b ld $2b cfd2 00e8 ld $e8 cfd3 003f ld $3f cfd4 003a ld $3a cfd5 00c0 ld $c0 cfd6 0074 ld $74 cfd7 0099 ld $99 cfd8 00e8 ld $e8 cfd9 0051 ld $51 cfda 003a ld $3a cfdb 00c0 ld $c0 cfdc 0078 ld $78 cfdd 002b ld $2b cfde 0050 ld $50 cfdf 0021 ld $21 cfe0 004e ld $4e cfe1 00b1 ld $b1 cfe2 0033 ld $33 cfe3 00c7 ld $c7 cfe4 004f ld $4f cfe5 007b ld $7b cfe6 0000 ld $00 cfe7 00c5 ld $c5 cfe8 0097 ld $97 cfe9 0004 ld $04 cfea 0085 ld $85 cfeb 002b ld $2b cfec 0005 ld $05 cfed 0021 ld $21 cfee 0050 ld $50 cfef 00b1 ld $b1 cff0 0033 ld $33 cff1 00c7 ld $c7 cff2 001f ld $1f cff3 007b ld $7b cff4 0000 ld $00 cff5 00c5 ld $c5 cff6 00a5 ld $a5 cff7 0004 ld $04 cff8 0085 ld $85 cff9 002b ld $2b cffa 0005 ld $05 cffb fe00 bra ac ;+-----------------------------------+ cffc fcfd bra $cffd ;| | cffd 1418 ld $18,y ;| Trampoline for page $cf00 lookups | cffe e006 jmp y,$06 ;| | cfff c218 st [$18] ;+-----------------------------------+ d000 001c ld $1c d001 004b ld $4b d002 0052 ld $52 d003 0050 ld $50 d004 001c ld $1c d005 004d ld $4d d006 0054 ld $54 d007 003c ld $3c d008 00a2 ld $a2 d009 0054 ld $54 d00a 0052 ld $52 d00b 00b1 ld $b1 d00c 0031 ld $31 d00d 0082 ld $82 d00e 0080 ld $80 d00f 00bb ld $bb d010 00c0 ld $c0 d011 0004 ld $04 d012 00a2 ld $a2 d013 0054 ld $54 d014 0052 ld $52 d015 0016 ld $16 d016 0000 ld $00 d017 00a3 ld $a3 d018 002f ld $2f d019 00a3 ld $a3 d01a 0054 ld $54 d01b 003f ld $3f d01c 003a ld $3a d01d 00c0 ld $c0 d01e 007c ld $7c d01f 002b ld $2b d020 0056 ld $56 d021 001c ld $1c d022 004f ld $4f d023 0052 ld $52 d024 0050 ld $50 d025 001c ld $1c d026 0051 ld $51 d027 0054 ld $54 d028 003c ld $3c d029 00a2 ld $a2 d02a 0054 ld $54 d02b 0052 ld $52 d02c 00b1 ld $b1 d02d 0031 ld $31 d02e 00bd ld $bd d02f 001f ld $1f d030 0005 ld $05 d031 0021 ld $21 d032 0056 ld $56 d033 00e6 ld $e6 d034 0014 ld $14 d035 00c3 ld $c3 d036 00e9 ld $e9 d037 0004 ld $04 d038 00a2 ld $a2 d039 0054 ld $54 d03a 0052 ld $52 d03b 0016 ld $16 d03c 00bf ld $bf d03d 00a3 ld $a3 d03e 002f ld $2f d03f 00a3 ld $a3 d040 0054 ld $54 d041 0085 ld $85 d042 0019 ld $19 d043 0005 ld $05 d044 0021 ld $21 d045 0056 ld $56 d046 00e6 ld $e6 d047 000a ld $0a d048 00c3 ld $c3 d049 0007 ld $07 d04a 0005 ld $05 d04b 00a2 ld $a2 d04c 0054 ld $54 d04d 0052 ld $52 d04e 0085 ld $85 d04f 0000 ld $00 d050 0005 ld $05 d051 0005 ld $05 d052 0000 ld $00 d053 00fd ld $fd d054 0016 ld $16 d055 00aa ld $aa d056 00a3 ld $a3 d057 002f ld $2f d058 00a3 ld $a3 d059 0054 ld $54 d05a 0085 ld $85 d05b 0019 ld $19 d05c 0005 ld $05 d05d 0021 ld $21 d05e 0056 ld $56 d05f 00e6 ld $e6 d060 0004 ld $04 d061 00c3 ld $c3 d062 0017 ld $17 d063 0005 ld $05 d064 00a2 ld $a2 d065 0054 ld $54 d066 0052 ld $52 d067 0016 ld $16 d068 0095 ld $95 d069 00a3 ld $a3 d06a 002f ld $2f d06b 00a3 ld $a3 d06c 0054 ld $54 d06d 0021 ld $21 d06e 0056 ld $56 d06f 00e3 ld $e3 d070 0001 ld $01 d071 0051 ld $51 d072 003a ld $3a d073 00c0 ld $c0 d074 007c ld $7c d075 00a7 ld $a7 d076 001f ld $1f d077 003a ld $3a d078 0093 ld $93 d079 003a ld $3a d07a 00bd ld $bd d07b 0051 ld $51 d07c 0004 ld $04 d07d 0063 ld $63 d07e 00ff ld $ff d07f 0075 ld $75 d080 0059 ld $59 d081 0000 ld $00 d082 0051 ld $51 d083 003a ld $3a d084 00c0 ld $c0 d085 007c ld $7c d086 0059 ld $59 d087 0000 ld $00 d088 0051 ld $51 d089 003a ld $3a d08a 00c0 ld $c0 d08b 0079 ld $79 d08c 0059 ld $59 d08d 0000 ld $00 d08e 0051 ld $51 d08f 003a ld $3a d090 00c0 ld $c0 d091 0078 ld $78 d092 00b1 ld $b1 d093 002f ld $2f d094 00c7 ld $c7 d095 0007 ld $07 d096 001f ld $1f d097 00ff ld $ff d098 00c7 ld $c7 d099 0004 ld $04 d09a 001d ld $1d d09b 0000 ld $00 d09c 0051 ld $51 d09d 003a ld $3a d09e 00c0 ld $c0 d09f 0075 ld $75 d0a0 00b1 ld $b1 d0a1 002f ld $2f d0a2 00c7 ld $c7 d0a3 0007 ld $07 d0a4 001f ld $1f d0a5 00ff ld $ff d0a6 00c7 ld $c7 d0a7 0004 ld $04 d0a8 001d ld $1d d0a9 0000 ld $00 d0aa 0051 ld $51 d0ab 003a ld $3a d0ac 00c0 ld $c0 d0ad 0074 ld $74 d0ae 003f ld $3f d0af 003a ld $3a d0b0 00c0 ld $c0 d0b1 0075 ld $75 d0b2 00b1 ld $b1 d0b3 0033 ld $33 d0b4 00e6 ld $e6 d0b5 00c8 ld $c8 d0b6 00d9 ld $d9 d0b7 00ea ld $ea d0b8 003f ld $3f d0b9 003a ld $3a d0ba 00c0 ld $c0 d0bb 0074 ld $74 d0bc 00b1 ld $b1 d0bd 0033 ld $33 d0be 00e6 ld $e6 d0bf 00c8 ld $c8 d0c0 00d9 ld $d9 d0c1 0018 ld $18 d0c2 00fa ld $fa d0c3 00ea ld $ea d0c4 00bb ld $bb d0c5 003c ld $3c d0c6 0005 ld $05 d0c7 0063 ld $63 d0c8 00ff ld $ff d0c9 0075 ld $75 d0ca 004d ld $4d d0cb 0000 ld $00 d0cc 003a ld $3a d0cd 0085 ld $85 d0ce 002b ld $2b d0cf 0005 ld $05 d0d0 00a7 ld $a7 d0d1 001f ld $1f d0d2 003a ld $3a d0d3 0093 ld $93 d0d4 003a ld $3a d0d5 00bd ld $bd d0d6 0077 ld $77 d0d7 0005 ld $05 d0d8 0063 ld $63 d0d9 00ff ld $ff d0da 0075 ld $75 d0db 004d ld $4d d0dc 0000 ld $00 d0dd 0058 ld $58 d0de 003f ld $3f d0df 0058 ld $58 d0e0 00ae ld $ae d0e1 0078 ld $78 d0e2 002b ld $2b d0e3 00c4 ld $c4 d0e4 004d ld $4d d0e5 0000 ld $00 d0e6 00c6 ld $c6 d0e7 004d ld $4d d0e8 0002 ld $02 d0e9 00c8 ld $c8 d0ea 004d ld $4d d0eb 0002 ld $02 d0ec 00ca ld $ca d0ed 003f ld $3f d0ee 0058 ld $58 d0ef 00a0 ld $a0 d0f0 007a ld $7a d0f1 002b ld $2b d0f2 00cc ld $cc d0f3 003f ld $3f d0f4 0058 ld $58 d0f5 00ae ld $ae d0f6 0079 ld $79 d0f7 002b ld $2b d0f8 00ce ld $ce d0f9 0085 ld $85 d0fa 00e4 ld $e4 d0fb fe00 bra ac ;+-----------------------------------+ d0fc fcfd bra $d0fd ;| | d0fd 1418 ld $18,y ;| Trampoline for page $d000 lookups | d0fe e006 jmp y,$06 ;| | d0ff c218 st [$18] ;+-----------------------------------+ d100 0005 ld $05 d101 003f ld $3f d102 0058 ld $58 d103 00ae ld $ae d104 0078 ld $78 d105 002b ld $2b d106 00c4 ld $c4 d107 004d ld $4d d108 003f ld $3f d109 00c6 ld $c6 d10a 004d ld $4d d10b 0000 ld $00 d10c 00c8 ld $c8 d10d 004d ld $4d d10e 0000 ld $00 d10f 00ca ld $ca d110 003f ld $3f d111 0058 ld $58 d112 00a0 ld $a0 d113 007a ld $7a d114 002b ld $2b d115 00cc ld $cc d116 003f ld $3f d117 0058 ld $58 d118 00ae ld $ae d119 0079 ld $79 d11a 002b ld $2b d11b 00ce ld $ce d11c 0085 ld $85 d11d 00e4 ld $e4 d11e 0005 ld $05 d11f 00a7 ld $a7 d120 0008 ld $08 d121 0058 ld $58 d122 0093 ld $93 d123 0058 ld $58 d124 00bd ld $bd d125 0088 ld $88 d126 0005 ld $05 d127 0011 ld $11 d128 0010 ld $10 d129 003f ld $3f d12a 002b ld $2b d12b 00a2 ld $a2 d12c 0016 ld $16 d12d 0051 ld $51 d12e 00a4 ld $a4 d12f 0016 ld $16 d130 0013 ld $13 d131 00a5 ld $a5 d132 0085 ld $85 d133 00aa ld $aa d134 0067 ld $67 d135 0011 ld $11 d136 00ad ld $ad d137 0074 ld $74 d138 0085 ld $85 d139 00ac ld $ac d13a 0063 ld $63 d13b 0063 ld $63 d13c 00ff ld $ff d13d 0075 ld $75 d13e 0065 ld $65 d13f 00a3 ld $a3 d140 00c6 ld $c6 d141 0042 ld $42 d142 0001 ld $01 d143 00e8 ld $e8 d144 00ca ld $ca d145 0032 ld $32 d146 005a ld $5a d147 00ca ld $ca d148 0042 ld $42 d149 0001 ld $01 d14a 00d8 ld $d8 d14b 00ca ld $ca d14c 0042 ld $42 d14d 0001 ld $01 d14e 00e8 ld $e8 d14f 00c8 ld $c8 d150 0032 ld $32 d151 003a ld $3a d152 00c8 ld $c8 d153 0085 ld $85 d154 0000 ld $00 d155 0006 ld $06 d156 0006 ld $06 d157 0000 ld $00 d158 00ff ld $ff d159 0042 ld $42 d15a 0001 ld $01 d15b 00dc ld $dc d15c 00c8 ld $c8 d15d 0059 ld $59 d15e 000d ld $0d d15f 0099 ld $99 d160 00cc ld $cc d161 0099 ld $99 d162 003a ld $3a d163 005e ld $5e d164 00a4 ld $a4 d165 0059 ld $59 d166 0013 ld $13 d167 0099 ld $99 d168 00ce ld $ce d169 0099 ld $99 d16a 005a ld $5a d16b 005e ld $5e d16c 00a5 ld $a5 d16d 0085 ld $85 d16e 00aa ld $aa d16f 0067 ld $67 d170 0032 ld $32 d171 0090 ld $90 d172 00c4 ld $c4 d173 0085 ld $85 d174 00c9 ld $c9 d175 006a ld $6a d176 0095 ld $95 d177 003a ld $3a d178 00b8 ld $b8 d179 00dc ld $dc d17a 00c3 ld $c3 d17b 0002 ld $02 d17c 0006 ld $06 d17d 0095 ld $95 d17e 005a ld $5a d17f 00b8 ld $b8 d180 00d8 ld $d8 d181 00c3 ld $c3 d182 00f1 ld $f1 d183 0005 ld $05 d184 0063 ld $63 d185 00ff ld $ff d186 0075 ld $75 d187 004d ld $4d d188 0000 ld $00 d189 003e ld $3e d18a 0016 ld $16 d18b 0015 ld $15 d18c 00a3 ld $a3 d18d 0016 ld $16 d18e 0040 ld $40 d18f 00a4 ld $a4 d190 0016 ld $16 d191 0055 ld $55 d192 00a5 ld $a5 d193 0085 ld $85 d194 00aa ld $aa d195 0067 ld $67 d196 0011 ld $11 d197 00a0 ld $a0 d198 007c ld $7c d199 0085 ld $85 d19a 00a1 ld $a1 d19b 006f ld $6f d19c 0016 ld $16 d19d 0048 ld $48 d19e 00a4 ld $a4 d19f 0085 ld $85 d1a0 00aa ld $aa d1a1 0067 ld $67 d1a2 0011 ld $11 d1a3 00a1 ld $a1 d1a4 0079 ld $79 d1a5 0085 ld $85 d1a6 00a1 ld $a1 d1a7 006f ld $6f d1a8 0016 ld $16 d1a9 0054 ld $54 d1aa 00a4 ld $a4 d1ab 0085 ld $85 d1ac 00aa ld $aa d1ad 0067 ld $67 d1ae 0011 ld $11 d1af 00a0 ld $a0 d1b0 0078 ld $78 d1b1 0085 ld $85 d1b2 00a1 ld $a1 d1b3 006f ld $6f d1b4 0032 ld $32 d1b5 0024 ld $24 d1b6 005c ld $5c d1b7 004d ld $4d d1b8 000d ld $0d d1b9 0026 ld $26 d1ba 0085 ld $85 d1bb 00a0 ld $a0 d1bc 006c ld $6c d1bd 0032 ld $32 d1be 005c ld $5c d1bf 0028 ld $28 d1c0 00bd ld $bd d1c1 006b ld $6b d1c2 0006 ld $06 d1c3 004d ld $4d d1c4 000c ld $0c d1c5 005c ld $5c d1c6 0032 ld $32 d1c7 0024 ld $24 d1c8 005e ld $5e d1c9 004d ld $4d d1ca 003c ld $3c d1cb 0026 ld $26 d1cc 0085 ld $85 d1cd 00a0 ld $a0 d1ce 006c ld $6c d1cf 0032 ld $32 d1d0 005e ld $5e d1d1 0028 ld $28 d1d2 0032 ld $32 d1d3 0024 ld $24 d1d4 0060 ld $60 d1d5 004d ld $4d d1d6 003c ld $3c d1d7 0026 ld $26 d1d8 0085 ld $85 d1d9 00a0 ld $a0 d1da 006c ld $6c d1db 0032 ld $32 d1dc 0060 ld $60 d1dd 0028 ld $28 d1de 0011 ld $11 d1df 00a6 ld $a6 d1e0 0074 ld $74 d1e1 002b ld $2b d1e2 0082 ld $82 d1e3 0021 ld $21 d1e4 005c ld $5c d1e5 00f0 ld $f0 d1e6 0082 ld $82 d1e7 0011 ld $11 d1e8 00a5 ld $a5 d1e9 0074 ld $74 d1ea 002b ld $2b d1eb 0082 ld $82 d1ec 0021 ld $21 d1ed 005e ld $5e d1ee 00f0 ld $f0 d1ef 0082 ld $82 d1f0 0011 ld $11 d1f1 00a4 ld $a4 d1f2 0074 ld $74 d1f3 002b ld $2b d1f4 0082 ld $82 d1f5 0021 ld $21 d1f6 0060 ld $60 d1f7 00f0 ld $f0 d1f8 0082 ld $82 d1f9 00c7 ld $c7 d1fa 00fd ld $fd d1fb fe00 bra ac ;+-----------------------------------+ d1fc fcfd bra $d1fd ;| | d1fd 1418 ld $18,y ;| Trampoline for page $d100 lookups | d1fe e006 jmp y,$06 ;| | d1ff c218 st [$18] ;+-----------------------------------+ d200 0066 ld $66 d201 00aa ld $aa d202 0063 ld $63 d203 00ff ld $ff d204 0075 ld $75 d205 0085 ld $85 d206 00a1 ld $a1 d207 0069 ld $69 d208 0011 ld $11 d209 00f6 ld $f6 d20a 0001 ld $01 d20b 0077 ld $77 d20c 0000 ld $00 d20d 0000 ld $00 d20e 0011 ld $11 d20f 0000 ld $00 d210 0002 ld $02 d211 002b ld $2b d212 0062 ld $62 d213 003f ld $3f d214 0040 ld $40 d215 00ec ld $ec d216 007e ld $7e d217 002b ld $2b d218 0064 ld $64 d219 00a7 ld $a7 d21a 0005 ld $05 d21b 0040 ld $40 d21c 00bd ld $bd d21d 00c2 ld $c2 d21e 0006 ld $06 d21f 004d ld $4d d220 00a8 ld $a8 d221 0062 ld $62 d222 0032 ld $32 d223 0024 ld $24 d224 0064 ld $64 d225 0021 ld $21 d226 0062 ld $62 d227 0085 ld $85 d228 00f0 ld $f0 d229 0061 ld $61 d22a 0063 ld $63 d22b 00ff ld $ff d22c 0075 ld $75 d22d 0016 ld $16 d22e 0002 ld $02 d22f 0087 ld $87 d230 0085 ld $85 d231 00c0 ld $c0 d232 0063 ld $63 d233 0063 ld $63 d234 00ff ld $ff d235 0075 ld $75 d236 0011 ld $11 d237 0008 ld $08 d238 0020 ld $20 d239 002f ld $2f d23a 0000 ld $00 d23b 0027 ld $27 d23c 0016 ld $16 d23d 0002 ld $02 d23e 002c ld $2c d23f 0016 ld $16 d240 00ef ld $ef d241 0011 ld $11 d242 0063 ld $63 d243 00ff ld $ff d244 0075 ld $75 d245 004d ld $4d d246 0002 ld $02 d247 00c4 ld $c4 d248 0085 ld $85 d249 00d7 ld $d7 d24a 0006 ld $06 d24b 0085 ld $85 d24c 00a6 ld $a6 d24d 0006 ld $06 d24e 0063 ld $63 d24f 00ff ld $ff d250 0075 ld $75 d251 004d ld $4d d252 0002 ld $02 d253 00c4 ld $c4 d254 0085 ld $85 d255 00d7 ld $d7 d256 0006 ld $06 d257 0085 ld $85 d258 002d ld $2d d259 0006 ld $06 d25a 0085 ld $85 d25b 00a0 ld $a0 d25c 0008 ld $08 d25d 0008 ld $08 d25e 00a0 ld $a0 d25f 005d ld $5d d260 0016 ld $16 d261 00ef ld $ef d262 0011 ld $11 d263 0063 ld $63 d264 00ff ld $ff d265 0075 ld $75 d266 00e1 ld $e1 d267 00a4 ld $a4 d268 0038 ld $38 d269 003c ld $3c d26a 0085 ld $85 d26b 00aa ld $aa d26c 0067 ld $67 d26d 0059 ld $59 d26e 0020 ld $20 d26f 0085 ld $85 d270 00c5 ld $c5 d271 0062 ld $62 d272 00a7 ld $a7 d273 005c ld $5c d274 003c ld $3c d275 00bd ld $bd d276 00b8 ld $b8 d277 0008 ld $08 d278 0063 ld $63 d279 00ff ld $ff d27a 004d ld $4d d27b 005c ld $5c d27c 003c ld $3c d27d 004d ld $4d d27e 0002 ld $02 d27f 00c4 ld $c4 d280 0085 ld $85 d281 00d7 ld $d7 d282 0006 ld $06 d283 0042 ld $42 d284 0005 ld $05 d285 0040 ld $40 d286 0040 ld $40 d287 0063 ld $63 d288 00ff ld $ff d289 0075 ld $75 d28a 00e1 ld $e1 d28b 00a4 ld $a4 d28c 0038 ld $38 d28d 003c ld $3c d28e 0085 ld $85 d28f 00aa ld $aa d290 0067 ld $67 d291 0059 ld $59 d292 0020 ld $20 d293 0085 ld $85 d294 00c5 ld $c5 d295 0062 ld $62 d296 00a7 ld $a7 d297 0012 ld $12 d298 003c ld $3c d299 00bd ld $bd d29a 00dc ld $dc d29b 0008 ld $08 d29c 0063 ld $63 d29d 00ff ld $ff d29e 004d ld $4d d29f 0012 ld $12 d2a0 003c ld $3c d2a1 004d ld $4d d2a2 0002 ld $02 d2a3 00c4 ld $c4 d2a4 0085 ld $85 d2a5 00d7 ld $d7 d2a6 0006 ld $06 d2a7 0044 ld $44 d2a8 0005 ld $05 d2a9 0040 ld $40 d2aa 0040 ld $40 d2ab 0063 ld $63 d2ac 00ff ld $ff d2ad 0075 ld $75 d2ae 00e1 ld $e1 d2af 00a4 ld $a4 d2b0 0038 ld $38 d2b1 003c ld $3c d2b2 0085 ld $85 d2b3 00aa ld $aa d2b4 0067 ld $67 d2b5 0059 ld $59 d2b6 0020 ld $20 d2b7 0085 ld $85 d2b8 00c5 ld $c5 d2b9 0062 ld $62 d2ba 0085 ld $85 d2bb 00a0 ld $a0 d2bc 0009 ld $09 d2bd 0009 ld $09 d2be 00a0 ld $a0 d2bf 0060 ld $60 d2c0 0042 ld $42 d2c1 0008 ld $08 d2c2 0038 ld $38 d2c3 0038 ld $38 d2c4 0021 ld $21 d2c5 0038 ld $38 d2c6 00e6 ld $e6 d2c7 0046 ld $46 d2c8 00c3 ld $c3 d2c9 00ae ld $ae d2ca 0009 ld $09 d2cb 004d ld $4d d2cc 0046 ld $46 d2cd 0038 ld $38 d2ce 0063 ld $63 d2cf 00ff ld $ff d2d0 004d ld $4d d2d1 0002 ld $02 d2d2 00c4 ld $c4 d2d3 0085 ld $85 d2d4 00d7 ld $d7 d2d5 0006 ld $06 d2d6 0042 ld $42 d2d7 0001 ld $01 d2d8 0040 ld $40 d2d9 0040 ld $40 d2da 00a7 ld $a7 d2db 0012 ld $12 d2dc 003c ld $3c d2dd 006b ld $6b d2de 00e8 ld $e8 d2df 0021 ld $21 d2e0 0040 ld $40 d2e1 00e6 ld $e6 d2e2 0004 ld $04 d2e3 00d9 ld $d9 d2e4 0018 ld $18 d2e5 00f8 ld $f8 d2e6 00e8 ld $e8 d2e7 00bb ld $bb d2e8 00cb ld $cb d2e9 0009 ld $09 d2ea 004d ld $4d d2eb 0004 ld $04 d2ec 0040 ld $40 d2ed 00a7 ld $a7 d2ee 005c ld $5c d2ef 003c ld $3c d2f0 006b ld $6b d2f1 00e8 ld $e8 d2f2 0021 ld $21 d2f3 0040 ld $40 d2f4 00e6 ld $e6 d2f5 0009 ld $09 d2f6 00d9 ld $d9 d2f7 0018 ld $18 d2f8 00f8 ld $f8 d2f9 00e8 ld $e8 d2fa 00bb ld $bb d2fb fe00 bra ac ;+-----------------------------------+ d2fc fcfd bra $d2fd ;| | d2fd 1418 ld $18,y ;| Trampoline for page $d200 lookups | d2fe e006 jmp y,$06 ;| | d2ff c218 st [$18] ;+-----------------------------------+ d300 00de ld $de d301 0009 ld $09 d302 004d ld $4d d303 0009 ld $09 d304 0040 ld $40 d305 0063 ld $63 d306 00ff ld $ff d307 0075 ld $75 d308 00e1 ld $e1 d309 00a4 ld $a4 d30a 0038 ld $38 d30b 003c ld $3c d30c 0085 ld $85 d30d 00aa ld $aa d30e 0067 ld $67 d30f 0059 ld $59 d310 0020 ld $20 d311 0085 ld $85 d312 00c5 ld $c5 d313 0062 ld $62 d314 0044 ld $44 d315 0008 ld $08 d316 0038 ld $38 d317 0038 ld $38 d318 0021 ld $21 d319 0038 ld $38 d31a 00e6 ld $e6 d31b 0026 ld $26 d31c 00c5 ld $c5 d31d 00a0 ld $a0 d31e 000a ld $0a d31f 004d ld $4d d320 0026 ld $26 d321 0038 ld $38 d322 0085 ld $85 d323 00a0 ld $a0 d324 000a ld $0a d325 000a ld $0a d326 00a0 ld $a0 d327 0034 ld $34 d328 0063 ld $63 d329 00ff ld $ff d32a 004d ld $4d d32b 0002 ld $02 d32c 00c4 ld $c4 d32d 0085 ld $85 d32e 00d7 ld $d7 d32f 0006 ld $06 d330 0044 ld $44 d331 0001 ld $01 d332 0040 ld $40 d333 0040 ld $40 d334 00a7 ld $a7 d335 0012 ld $12 d336 003c ld $3c d337 006b ld $6b d338 00e8 ld $e8 d339 0021 ld $21 d33a 0040 ld $40 d33b 00d7 ld $d7 d33c 0018 ld $18 d33d 00f8 ld $f8 d33e 00e8 ld $e8 d33f 00bb ld $bb d340 00bb ld $bb d341 000a ld $0a d342 004d ld $4d d343 0000 ld $00 d344 0040 ld $40 d345 00a7 ld $a7 d346 005c ld $5c d347 003c ld $3c d348 006b ld $6b d349 00e8 ld $e8 d34a 0021 ld $21 d34b 0040 ld $40 d34c 00e6 ld $e6 d34d 0005 ld $05 d34e 00d7 ld $d7 d34f 0018 ld $18 d350 00f8 ld $f8 d351 00e8 ld $e8 d352 00bb ld $bb d353 00ce ld $ce d354 000a ld $0a d355 004d ld $4d d356 0005 ld $05 d357 0040 ld $40 d358 0063 ld $63 d359 00ff ld $ff d35a 00b4 ld $b4 d35b 0080 ld $80 d35c 0061 ld $61 d35d 00ea ld $ea d35e 0015 ld $15 d35f 0075 ld $75 d360 0085 ld $85 d361 00c0 ld $c0 d362 0063 ld $63 d363 0063 ld $63 d364 00ff ld $ff d365 002b ld $2b d366 001a ld $1a d367 004d ld $4d d368 00ad ld $ad d369 0022 ld $22 d36a 00b4 ld $b4 d36b 00e2 ld $e2 d36c 004d ld $4d d36d 0002 ld $02 d36e 00a4 ld $a4 d36f 00c7 ld $c7 d370 00fb ld $fb d371 0066 ld $66 d372 00aa ld $aa d373 00ff ld $ff d374 0062 ld $62 d375 00a2 ld $a2 d376 0016 ld $16 d377 0011 ld $11 d378 00be ld $be d379 0065 ld $65 d37a 0025 ld $25 d37b 0075 ld $75 d37c 0011 ld $11 d37d 00c6 ld $c6 d37e 0065 ld $65 d37f 007d ld $7d d380 0084 ld $84 d381 00ff ld $ff d382 001a ld $1a d383 002d ld $2d d384 0035 ld $35 d385 0072 ld $72 d386 00b5 ld $b5 d387 0075 ld $75 d388 0085 ld $85 d389 00cd ld $cd d38a 0067 ld $67 d38b 0063 ld $63 d38c 00ff ld $ff d38d 0062 ld $62 d38e 00b9 ld $b9 d38f 0046 ld $46 d390 0011 ld $11 d391 00f0 ld $f0 d392 0073 ld $73 d393 002f ld $2f d394 0092 ld $92 d395 0047 ld $47 d396 00e3 ld $e3 d397 0008 ld $08 d398 002f ld $2f d399 009a ld $9a d39a 0047 ld $47 d39b 00ff ld $ff d39c 0075 ld $75 d39d 005e ld $5e d39e 0092 ld $92 d39f 0085 ld $85 d3a0 00d4 ld $d4 d3a1 0063 ld $63 d3a2 001a ld $1a d3a3 0092 ld $92 d3a4 0085 ld $85 d3a5 00cc ld $cc d3a6 0068 ld $68 d3a7 0063 ld $63 d3a8 00ff ld $ff d3a9 0075 ld $75 d3aa 00c7 ld $c7 d3ab 0002 ld $02 d3ac 0069 ld $69 d3ad 00aa ld $aa d3ae 0085 ld $85 d3af 00b7 ld $b7 d3b0 0070 ld $70 d3b1 00c7 ld $c7 d3b2 00fd ld $fd d3b3 0066 ld $66 d3b4 00aa ld $aa d3b5 0063 ld $63 d3b6 00ff ld $ff d3b7 0075 ld $75 d3b8 0085 ld $85 d3b9 00f7 ld $f7 d3ba 0061 ld $61 d3bb 0011 ld $11 d3bc 0003 ld $03 d3bd 000b ld $0b d3be 002b ld $2b d3bf 0022 ld $22 d3c0 0065 ld $65 d3c1 0025 ld $25 d3c2 00a2 ld $a2 d3c3 0063 ld $63 d3c4 00ff ld $ff d3c5 0011 ld $11 d3c6 00a0 ld $a0 d3c7 0077 ld $77 d3c8 002b ld $2b d3c9 0098 ld $98 d3ca 0046 ld $46 d3cb 0084 ld $84 d3cc 002b ld $2b d3cd 009a ld $9a d3ce 0023 ld $23 d3cf 0098 ld $98 d3d0 00d1 ld $d1 d3d1 009a ld $9a d3d2 0035 ld $35 d3d3 0072 ld $72 d3d4 00f5 ld $f5 d3d5 00ff ld $ff d3d6 0063 ld $63 d3d7 00a0 ld $a0 d3d8 005f ld $5f d3d9 0011 ld $11 d3da 00f0 ld $f0 d3db 0073 ld $73 d3dc 002f ld $2f d3dd 0092 ld $92 d3de 0045 ld $45 d3df 00e3 ld $e3 d3e0 0008 ld $08 d3e1 002f ld $2f d3e2 009a ld $9a d3e3 0045 ld $45 d3e4 00ff ld $ff d3e5 0075 ld $75 d3e6 002b ld $2b d3e7 0082 ld $82 d3e8 0085 ld $85 d3e9 00d4 ld $d4 d3ea 0063 ld $63 d3eb 0093 ld $93 d3ec 0082 ld $82 d3ed 0023 ld $23 d3ee 0082 ld $82 d3ef 0035 ld $35 d3f0 003f ld $3f d3f1 00bc ld $bc d3f2 0085 ld $85 d3f3 00cc ld $cc d3f4 0068 ld $68 d3f5 0090 ld $90 d3f6 00b2 ld $b2 d3f7 0063 ld $63 d3f8 00ff ld $ff d3f9 0075 ld $75 d3fa 0085 ld $85 d3fb fe00 bra ac ;+-----------------------------------+ d3fc fcfd bra $d3fd ;| | d3fd 1418 ld $18,y ;| Trampoline for page $d300 lookups | d3fe e006 jmp y,$06 ;| | d3ff c218 st [$18] ;+-----------------------------------+ d400 00a3 ld $a3 d401 006d ld $6d d402 0063 ld $63 d403 001a ld $1a d404 0087 ld $87 d405 002f ld $2f d406 0000 ld $00 d407 0032 ld $32 d408 002f ld $2f d409 0001 ld $01 d40a 0032 ld $32 d40b 002f ld $2f d40c 0002 ld $02 d40d 0032 ld $32 d40e 002f ld $2f d40f 0003 ld $03 d410 0032 ld $32 d411 00ff ld $ff d412 00c7 ld $c7 d413 0010 ld $10 d414 006f ld $6f d415 00aa ld $aa d416 00bd ld $bd d417 009e ld $9e d418 0068 ld $68 d419 0011 ld $11 d41a 00e1 ld $e1 d41b 0004 ld $04 d41c 002b ld $2b d41d 0022 ld $22 d41e 0032 ld $32 d41f 0024 ld $24 d420 00a2 ld $a2 d421 0021 ld $21 d422 00a4 ld $a4 d423 002f ld $2f d424 0028 ld $28 d425 0059 ld $59 d426 00ff ld $ff d427 00c7 ld $c7 d428 0094 ld $94 d429 0028 ld $28 d42a 0092 ld $92 d42b 0016 ld $16 d42c 0003 ld $03 d42d 0026 ld $26 d42e 0021 ld $21 d42f 0028 ld $28 d430 002f ld $2f d431 0094 ld $94 d432 0057 ld $57 d433 001c ld $1c d434 0028 ld $28 d435 0028 ld $28 d436 0004 ld $04 d437 0075 ld $75 d438 0085 ld $85 d439 00c9 ld $c9 d43a 0064 ld $64 d43b 0063 ld $63 d43c 00ff ld $ff d43d 0064 ld $64 d43e 00a0 ld $a0 d43f 005f ld $5f d440 0075 ld $75 d441 0011 ld $11 d442 00a1 ld $a1 d443 0077 ld $77 d444 002b ld $2b d445 0092 ld $92 d446 0046 ld $46 d447 0084 ld $84 d448 002b ld $2b d449 009a ld $9a d44a 0021 ld $21 d44b 0092 ld $92 d44c 0085 ld $85 d44d 00a0 ld $a0 d44e 0066 ld $66 d44f 00f3 ld $f3 d450 009a ld $9a d451 0063 ld $63 d452 00ff ld $ff d453 0085 ld $85 d454 00b9 ld $b9 d455 0062 ld $62 d456 0059 ld $59 d457 007f ld $7f d458 002b ld $2b d459 0092 ld $92 d45a 0085 ld $85 d45b 00a0 ld $a0 d45c 0073 ld $73 d45d 0085 ld $85 d45e 00a0 ld $a0 d45f 0063 ld $63 d460 0085 ld $85 d461 00a6 ld $a6 d462 0071 ld $71 d463 0035 ld $35 d464 003f ld $3f d465 00b1 ld $b1 d466 0085 ld $85 d467 00ba ld $ba d468 006f ld $6f d469 001c ld $1c d46a 00a4 ld $a4 d46b 00a4 ld $a4 d46c 0004 ld $04 d46d 00a7 ld $a7 d46e 009c ld $9c d46f 00a4 ld $a4 d470 0035 ld $35 d471 0056 ld $56 d472 00dd ld $dd d473 00c7 ld $c7 d474 0008 ld $08 d475 006f ld $6f d476 00aa ld $aa d477 0035 ld $35 d478 0072 ld $72 d479 00dd ld $dd d47a 0075 ld $75 d47b 0085 ld $85 d47c 00be ld $be d47d 006d ld $6d d47e 0063 ld $63 d47f 00ff ld $ff d480 002b ld $2b d481 0082 ld $82 d482 00e6 ld $e6 d483 000a ld $0a d484 0035 ld $35 d485 0050 ld $50 d486 00eb ld $eb d487 002b ld $2b d488 0082 ld $82 d489 0093 ld $93 d48a 0084 ld $84 d48b 0090 ld $90 d48c 00e0 ld $e0 d48d 00c7 ld $c7 d48e 0030 ld $30 d48f 0072 ld $72 d490 0084 ld $84 d491 00d1 ld $d1 d492 0086 ld $86 d493 00c7 ld $c7 d494 0030 ld $30 d495 0072 ld $72 d496 0082 ld $82 d497 00d1 ld $d1 d498 0086 ld $86 d499 0093 ld $93 d49a 0086 ld $86 d49b 0016 ld $16 d49c 0030 ld $30 d49d 0084 ld $84 d49e 00ff ld $ff d49f 0065 ld $65 d4a0 00a5 ld $a5 d4a1 005a ld $5a d4a2 0032 ld $32 d4a3 00a4 ld $a4 d4a4 0098 ld $98 d4a5 0085 ld $85 d4a6 00b9 ld $b9 d4a7 0062 ld $62 d4a8 0011 ld $11 d4a9 00a0 ld $a0 d4aa 0077 ld $77 d4ab 0099 ld $99 d4ac 0094 ld $94 d4ad 0085 ld $85 d4ae 00ac ld $ac d4af 0063 ld $63 d4b0 0085 ld $85 d4b1 00a0 ld $a0 d4b2 0063 ld $63 d4b3 00a9 ld $a9 d4b4 009a ld $9a d4b5 009c ld $9c d4b6 009a ld $9a d4b7 0059 ld $59 d4b8 0000 ld $00 d4b9 0063 ld $63 d4ba 00ff ld $ff d4bb 00ff ld $ff d4bc 00df ld $df d4bd 00fe ld $fe d4be 0021 ld $21 d4bf 002a ld $2a d4c0 00ec ld $ec d4c1 0000 ld $00 d4c2 0085 ld $85 d4c3 0000 ld $00 d4c4 0000 ld $00 d4c5 0090 ld $90 d4c6 00cc ld $cc d4c7 00ff ld $ff d4c8 0090 ld $90 d4c9 00cc ld $cc d4ca 00ff ld $ff d4cb 00ee ld $ee d4cc 0000 ld $00 d4cd 002b ld $2b d4ce 002a ld $2a d4cf 00df ld $df d4d0 0002 ld $02 d4d1 0063 ld $63 d4d2 0016 ld $16 d4d3 00ff ld $ff d4d4 000e ld $0e d4d5 0011 ld $11 d4d6 0000 ld $00 d4d7 0004 ld $04 d4d8 007f ld $7f d4d9 0000 ld $00 d4da 0075 ld $75 d4db 004d ld $4d d4dc 0000 ld $00 d4dd 0084 ld $84 d4de 0011 ld $11 d4df 00e7 ld $e7 d4e0 0073 ld $73 d4e1 002b ld $2b d4e2 0086 ld $86 d4e3 0011 ld $11 d4e4 00a6 ld $a6 d4e5 0074 ld $74 d4e6 002b ld $2b d4e7 0088 ld $88 d4e8 00ad ld $ad d4e9 0085 ld $85 d4ea 00e0 ld $e0 d4eb 0064 ld $64 d4ec 0014 ld $14 d4ed 0088 ld $88 d4ee 005b ld $5b d4ef 0088 ld $88 d4f0 0085 ld $85 d4f1 00e0 ld $e0 d4f2 0064 ld $64 d4f3 0014 ld $14 d4f4 0088 ld $88 d4f5 005b ld $5b d4f6 0088 ld $88 d4f7 0085 ld $85 d4f8 00e0 ld $e0 d4f9 0064 ld $64 d4fa 0063 ld $63 d4fb fe00 bra ac ;+-----------------------------------+ d4fc fcfd bra $d4fd ;| | d4fd 1418 ld $18,y ;| Trampoline for page $d400 lookups | d4fe e006 jmp y,$06 ;| | d4ff c218 st [$18] ;+-----------------------------------+ d500 00ff ld $ff d501 0066 ld $66 d502 00a0 ld $a0 d503 005f ld $5f d504 002b ld $2b d505 0092 ld $92 d506 004d ld $4d d507 0000 ld $00 d508 0096 ld $96 d509 005b ld $5b d50a 0092 ld $92 d50b 00e6 ld $e6 d50c 002d ld $2d d50d 0035 ld $35 d50e 0072 ld $72 d50f 00ac ld $ac d510 0093 ld $93 d511 0092 ld $92 d512 005b ld $5b d513 0092 ld $92 d514 00e6 ld $e6 d515 0030 ld $30 d516 0035 ld $35 d517 0050 ld $50 d518 00c6 ld $c6 d519 002b ld $2b d51a 0094 ld $94 d51b 00e6 ld $e6 d51c 0009 ld $09 d51d 0035 ld $35 d51e 004d ld $4d d51f 00c6 ld $c6 d520 0021 ld $21 d521 0096 ld $96 d522 00b1 ld $b1 d523 0055 ld $55 d524 0099 ld $99 d525 0094 ld $94 d526 002b ld $2b d527 0096 ld $96 d528 0093 ld $93 d529 0092 ld $92 d52a 0090 ld $90 d52b 00ac ld $ac d52c 002f ld $2f d52d 0096 ld $96 d52e 0067 ld $67 d52f 0021 ld $21 d530 0096 ld $96 d531 00ff ld $ff d532 0075 ld $75 d533 0011 ld $11 d534 00d8 ld $d8 d535 0073 ld $73 d536 002b ld $2b d537 0086 ld $86 d538 002b ld $2b d539 0092 ld $92 d53a 0011 ld $11 d53b 00cc ld $cc d53c 0073 ld $73 d53d 002b ld $2b d53e 0088 ld $88 d53f 003b ld $3b d540 0092 ld $92 d541 0035 ld $35 d542 0072 ld $72 d543 00e7 ld $e7 d544 0021 ld $21 d545 0084 ld $84 d546 0035 ld $35 d547 003f ld $3f d548 00e5 ld $e5 d549 00cf ld $cf d54a 0084 ld $84 d54b 0063 ld $63 d54c 00ff ld $ff d54d 00b8 ld $b8 d54e 0082 ld $82 d54f 0035 ld $35 d550 003f ld $3f d551 00f2 ld $f2 d552 001c ld $1c d553 0092 ld $92 d554 0092 ld $92 d555 0002 ld $02 d556 0090 ld $90 d557 00d9 ld $d9 d558 0021 ld $21 d559 0092 ld $92 d55a 00b8 ld $b8 d55b 0086 ld $86 d55c 0099 ld $99 d55d 0088 ld $88 d55e 00f6 ld $f6 d55f 00cf ld $cf d560 0018 ld $18 d561 0063 ld $63 d562 00ff ld $ff d563 0067 ld $67 d564 00a2 ld $a2 d565 005d ld $5d d566 002f ld $2f d567 00d6 ld $d6 d568 006e ld $6e d569 00a4 ld $a4 d56a 0082 ld $82 d56b 00a0 ld $a0 d56c 0067 ld $67 d56d 00ff ld $ff d56e 00c7 ld $c7 d56f 0010 ld $10 d570 006f ld $6f d571 00aa ld $aa d572 00bd ld $bd d573 009e ld $9e d574 006e ld $6e d575 00a7 ld $a7 d576 009a ld $9a d577 00a4 ld $a4 d578 0035 ld $35 d579 0056 ld $56 d57a 00b8 ld $b8 d57b 0016 ld $16 d57c 0000 ld $00 d57d 00a4 ld $a4 d57e 00a7 ld $a7 d57f 0070 ld $70 d580 00a5 ld $a5 d581 0035 ld $35 d582 0050 ld $50 d583 00c6 ld $c6 d584 0016 ld $16 d585 0070 ld $70 d586 00a5 ld $a5 d587 00c7 ld $c7 d588 0004 ld $04 d589 0069 ld $69 d58a 00aa ld $aa d58b 00ff ld $ff d58c 00c7 ld $c7 d58d 00fb ld $fb d58e 0066 ld $66 d58f 00aa ld $aa d590 00ff ld $ff d591 0011 ld $11 d592 00a4 ld $a4 d593 0074 ld $74 d594 002b ld $2b d595 008a ld $8a d596 00ad ld $ad d597 00e3 ld $e3 d598 0001 ld $01 d599 00f0 ld $f0 d59a 008a ld $8a d59b 008c ld $8c d59c 003c ld $3c d59d 0035 ld $35 d59e 0072 ld $72 d59f 00fc ld $fc d5a0 0059 ld $59 d5a1 0000 ld $00 d5a2 00d1 ld $d1 d5a3 008a ld $8a d5a4 005b ld $5b d5a5 008a ld $8a d5a6 00e3 ld $e3 d5a7 0001 ld $01 d5a8 00f0 ld $f0 d5a9 008a ld $8a d5aa 008c ld $8c d5ab 003c ld $3c d5ac 0035 ld $35 d5ad 0072 ld $72 d5ae 00fc ld $fc d5af 0059 ld $59 d5b0 0000 ld $00 d5b1 00d1 ld $d1 d5b2 008a ld $8a d5b3 005b ld $5b d5b4 008a ld $8a d5b5 00e3 ld $e3 d5b6 0001 ld $01 d5b7 00f0 ld $f0 d5b8 008a ld $8a d5b9 00e6 ld $e6 d5ba 0018 ld $18 d5bb 0035 ld $35 d5bc 0050 ld $50 d5bd 00fc ld $fc d5be 0059 ld $59 d5bf 0000 ld $00 d5c0 00f0 ld $f0 d5c1 008a ld $8a d5c2 00ff ld $ff d5c3 0068 ld $68 d5c4 00a0 ld $a0 d5c5 005f ld $5f d5c6 0032 ld $32 d5c7 0024 ld $24 d5c8 00a2 ld $a2 d5c9 0021 ld $21 d5ca 00a4 ld $a4 d5cb 002f ld $2f d5cc 0028 ld $28 d5cd 0059 ld $59 d5ce 00ff ld $ff d5cf 0075 ld $75 d5d0 0011 ld $11 d5d1 0003 ld $03 d5d2 000b ld $0b d5d3 002b ld $2b d5d4 0022 ld $22 d5d5 0065 ld $65 d5d6 0025 ld $25 d5d7 00a2 ld $a2 d5d8 0011 ld $11 d5d9 0000 ld $00 d5da 0001 ld $01 d5db 0067 ld $67 d5dc 0027 ld $27 d5dd 004d ld $4d d5de 0006 ld $06 d5df 009e ld $9e d5e0 0016 ld $16 d5e1 00a0 ld $a0 d5e2 0024 ld $24 d5e3 0016 ld $16 d5e4 0000 ld $00 d5e5 0026 ld $26 d5e6 00b4 ld $b4 d5e7 00f3 ld $f3 d5e8 0093 ld $93 d5e9 0027 ld $27 d5ea 009e ld $9e d5eb 00b8 ld $b8 d5ec 009e ld $9e d5ed 0085 ld $85 d5ee 00d4 ld $d4 d5ef 0063 ld $63 d5f0 0063 ld $63 d5f1 00ff ld $ff d5f2 002b ld $2b d5f3 0092 ld $92 d5f4 00c7 ld $c7 d5f5 0084 ld $84 d5f6 0089 ld $89 d5f7 0020 ld $20 d5f8 0035 ld $35 d5f9 0072 ld $72 d5fa 00fc ld $fc d5fb fe00 bra ac ;+-----------------------------------+ d5fc fcfd bra $d5fd ;| | d5fd 1418 ld $18,y ;| Trampoline for page $d500 lookups | d5fe e006 jmp y,$06 ;| | d5ff c218 st [$18] ;+-----------------------------------+ d600 00c7 ld $c7 d601 0010 ld $10 d602 006f ld $6f d603 00aa ld $aa d604 00bd ld $bd d605 00e7 ld $e7 d606 0063 ld $63 d607 00c7 ld $c7 d608 0094 ld $94 d609 0025 ld $25 d60a 0092 ld $92 d60b 0016 ld $16 d60c 0005 ld $05 d60d 0096 ld $96 d60e 0021 ld $21 d60f 0094 ld $94 d610 007f ld $7f d611 0000 ld $00 d612 005e ld $5e d613 0026 ld $26 d614 00b4 ld $b4 d615 00cb ld $cb d616 0093 ld $93 d617 0094 ld $94 d618 0093 ld $93 d619 0028 ld $28 d61a 009e ld $9e d61b 00e1 ld $e1 d61c 0096 ld $96 d61d 0016 ld $16 d61e 0000 ld $00 d61f 0026 ld $26 d620 00b4 ld $b4 d621 00cb ld $cb d622 0093 ld $93 d623 0028 ld $28 d624 0075 ld $75 d625 0085 ld $85 d626 00a0 ld $a0 d627 0070 ld $70 d628 0063 ld $63 d629 00ff ld $ff d62a 0069 ld $69 d62b 00a1 ld $a1 d62c 005e ld $5e d62d 0075 ld $75 d62e 0085 ld $85 d62f 00e0 ld $e0 d630 0062 ld $62 d631 004d ld $4d d632 0008 ld $08 d633 0094 ld $94 d634 0016 ld $16 d635 003c ld $3c d636 009e ld $9e d637 0016 ld $16 d638 00a0 ld $a0 d639 0024 ld $24 d63a 0016 ld $16 d63b 0000 ld $00 d63c 0026 ld $26 d63d 0065 ld $65 d63e 0027 ld $27 d63f 0094 ld $94 d640 00b4 ld $b4 d641 00f3 ld $f3 d642 0016 ld $16 d643 00a0 ld $a0 d644 0024 ld $24 d645 0016 ld $16 d646 0000 ld $00 d647 0026 ld $26 d648 0059 ld $59 d649 0087 ld $87 d64a 00b8 ld $b8 d64b 0094 ld $94 d64c 005e ld $5e d64d 0027 ld $27 d64e 00b4 ld $b4 d64f 00f3 ld $f3 d650 0093 ld $93 d651 0094 ld $94 d652 009e ld $9e d653 00a9 ld $a9 d654 009e ld $9e d655 0063 ld $63 d656 00ff ld $ff d657 0085 ld $85 d658 00b9 ld $b9 d659 0062 ld $62 d65a 004d ld $4d d65b 0020 ld $20 d65c 0092 ld $92 d65d 0085 ld $85 d65e 00a0 ld $a0 d65f 0073 ld $73 d660 0085 ld $85 d661 00a0 ld $a0 d662 0063 ld $63 d663 0011 ld $11 d664 00a0 ld $a0 d665 0077 ld $77 d666 002b ld $2b d667 0082 ld $82 d668 0021 ld $21 d669 0092 ld $92 d66a 00b8 ld $b8 d66b 0082 ld $82 d66c 00e6 ld $e6 d66d 0001 ld $01 d66e 00f0 ld $f0 d66f 0082 ld $82 d670 0099 ld $99 d671 0082 ld $82 d672 00e3 ld $e3 d673 0001 ld $01 d674 0025 ld $25 d675 0000 ld $00 d676 00c7 ld $c7 d677 003f ld $3f d678 006f ld $6f d679 0096 ld $96 d67a 00e6 ld $e6 d67b 0005 ld $05 d67c 0035 ld $35 d67d 0072 ld $72 d67e 00f6 ld $f6 d67f 0085 ld $85 d680 00ee ld $ee d681 0062 ld $62 d682 0090 ld $90 d683 00f9 ld $f9 d684 0085 ld $85 d685 00a0 ld $a0 d686 0064 ld $64 d687 0059 ld $59 d688 0001 ld $01 d689 0063 ld $63 d68a 00ff ld $ff d68b 006a ld $6a d68c 00a0 ld $a0 d68d 005f ld $5f d68e 001a ld $1a d68f 0021 ld $21 d690 0082 ld $82 d691 00fc ld $fc d692 002b ld $2b d693 0084 ld $84 d694 00b8 ld $b8 d695 0082 ld $82 d696 0035 ld $35 d697 003f ld $3f d698 00c6 ld $c6 d699 0021 ld $21 d69a 0082 ld $82 d69b 00e6 ld $e6 d69c 0080 ld $80 d69d 0035 ld $35 d69e 0072 ld $72 d69f 00b9 ld $b9 d6a0 0021 ld $21 d6a1 0084 ld $84 d6a2 00b8 ld $b8 d6a3 0082 ld $82 d6a4 0035 ld $35 d6a5 003f ld $3f d6a6 00c6 ld $c6 d6a7 0090 ld $90 d6a8 00c0 ld $c0 d6a9 0021 ld $21 d6aa 0084 ld $84 d6ab 00b8 ld $b8 d6ac 0082 ld $82 d6ad 0035 ld $35 d6ae 004d ld $4d d6af 00c6 ld $c6 d6b0 001a ld $1a d6b1 0006 ld $06 d6b2 00f0 ld $f0 d6b3 007e ld $7e d6b4 0090 ld $90 d6b5 00c0 ld $c0 d6b6 00ff ld $ff d6b7 0075 ld $75 d6b8 001a ld $1a d6b9 00a4 ld $a4 d6ba 002b ld $2b d6bb 0082 ld $82 d6bc 001a ld $1a d6bd 00a5 ld $a5 d6be 002b ld $2b d6bf 0084 ld $84 d6c0 0046 ld $46 d6c1 0090 ld $90 d6c2 002b ld $2b d6c3 0086 ld $86 d6c4 00e6 ld $e6 d6c5 00ff ld $ff d6c6 0035 ld $35 d6c7 003f ld $3f d6c8 00f2 ld $f2 d6c9 0021 ld $21 d6ca 0082 ld $82 d6cb 0099 ld $99 d6cc 0086 ld $86 d6cd 002b ld $2b d6ce 0086 ld $86 d6cf 005e ld $5e d6d0 00a4 ld $a4 d6d1 0046 ld $46 d6d2 0090 ld $90 d6d3 002b ld $2b d6d4 0088 ld $88 d6d5 0021 ld $21 d6d6 0084 ld $84 d6d7 0099 ld $99 d6d8 0088 ld $88 d6d9 002b ld $2b d6da 0088 ld $88 d6db 005e ld $5e d6dc 00a5 ld $a5 d6dd 0085 ld $85 d6de 00a6 ld $a6 d6df 0072 ld $72 d6e0 0090 ld $90 d6e1 00c8 ld $c8 d6e2 0016 ld $16 d6e3 0099 ld $99 d6e4 009e ld $9e d6e5 0085 ld $85 d6e6 00a0 ld $a0 d6e7 0072 ld $72 d6e8 0085 ld $85 d6e9 00a0 ld $a0 d6ea 0071 ld $71 d6eb 0063 ld $63 d6ec 00ff ld $ff d6ed 006b ld $6b d6ee 00a4 ld $a4 d6ef 005b ld $5b d6f0 0075 ld $75 d6f1 0011 ld $11 d6f2 0003 ld $03 d6f3 000b ld $0b d6f4 002b ld $2b d6f5 0022 ld $22 d6f6 0065 ld $65 d6f7 0025 ld $25 d6f8 00a2 ld $a2 d6f9 0011 ld $11 d6fa 0000 ld $00 d6fb fe00 bra ac ;+-----------------------------------+ d6fc fcfd bra $d6fd ;| | d6fd 1418 ld $18,y ;| Trampoline for page $d600 lookups | d6fe e006 jmp y,$06 ;| | d6ff c218 st [$18] ;+-----------------------------------+ d700 0001 ld $01 d701 0067 ld $67 d702 0027 ld $27 d703 004d ld $4d d704 0008 ld $08 d705 009e ld $9e d706 0016 ld $16 d707 00a0 ld $a0 d708 0024 ld $24 d709 0016 ld $16 d70a 0000 ld $00 d70b 0026 ld $26 d70c 00b4 ld $b4 d70d 00f3 ld $f3 d70e 0093 ld $93 d70f 0027 ld $27 d710 009e ld $9e d711 00b3 ld $b3 d712 009e ld $9e d713 0085 ld $85 d714 00d4 ld $d4 d715 0063 ld $63 d716 0063 ld $63 d717 00ff ld $ff d718 0075 ld $75 d719 0023 ld $23 d71a 0092 ld $92 d71b 005e ld $5e d71c 0096 ld $96 d71d 0082 ld $82 d71e 00f0 ld $f0 d71f 008c ld $8c d720 0090 ld $90 d721 0035 ld $35 d722 0072 ld $72 d723 00da ld $da d724 0023 ld $23 d725 0092 ld $92 d726 00b1 ld $b1 d727 0014 ld $14 d728 002f ld $2f d729 0096 ld $96 d72a 0022 ld $22 d72b 0090 ld $90 d72c 00c6 ld $c6 d72d 008c ld $8c d72e 0010 ld $10 d72f 0035 ld $35 d730 0072 ld $72 d731 00e4 ld $e4 d732 002f ld $2f d733 0096 ld $96 d734 0022 ld $22 d735 0090 ld $90 d736 00c6 ld $c6 d737 008c ld $8c d738 0050 ld $50 d739 0035 ld $35 d73a 0072 ld $72 d73b 00f2 ld $f2 d73c 003b ld $3b d73d 0092 ld $92 d73e 002b ld $2b d73f 0092 ld $92 d740 0035 ld $35 d741 0072 ld $72 d742 00c6 ld $c6 d743 0063 ld $63 d744 00ff ld $ff d745 001a ld $1a d746 0096 ld $96 d747 005e ld $5e d748 002c ld $2c d749 002b ld $2b d74a 0082 ld $82 d74b 0085 ld $85 d74c 00a2 ld $a2 d74d 0067 ld $67 d74e 0090 ld $90 d74f 00c6 ld $c6 d750 006c ld $6c d751 00a0 ld $a0 d752 005f ld $5f d753 0021 ld $21 d754 0024 ld $24 d755 00fc ld $fc d756 0026 ld $26 d757 002b ld $2b d758 009e ld $9e d759 002f ld $2f d75a 0024 ld $24 d75b 0067 ld $67 d75c 002f ld $2f d75d 0026 ld $26 d75e 0067 ld $67 d75f 004d ld $4d d760 00a1 ld $a1 d761 0022 ld $22 d762 004d ld $4d d763 0000 ld $00 d764 0028 ld $28 d765 004d ld $4d d766 0001 ld $01 d767 002a ld $2a d768 00b4 ld $b4 d769 00e6 ld $e6 d76a 0021 ld $21 d76b 009e ld $9e d76c 0035 ld $35 d76d 0053 ld $53 d76e 00bd ld $bd d76f 002f ld $2f d770 0024 ld $24 d771 0017 ld $17 d772 0021 ld $21 d773 0024 ld $24 d774 00ff ld $ff d775 0011 ld $11 d776 0003 ld $03 d777 000b ld $0b d778 002b ld $2b d779 0022 ld $22 d77a 00ab ld $ab d77b 0094 ld $94 d77c 0084 ld $84 d77d 0088 ld $88 d77e 0035 ld $35 d77f 0053 ld $53 d780 00d2 ld $d2 d781 0065 ld $65 d782 0084 ld $84 d783 0088 ld $88 d784 002f ld $2f d785 0094 ld $94 d786 0017 ld $17 d787 001c ld $1c d788 0084 ld $84 d789 0084 ld $84 d78a 0008 ld $08 d78b 0093 ld $93 d78c 0094 ld $94 d78d 001a ld $1a d78e 0086 ld $86 d78f 00b8 ld $b8 d790 0082 ld $82 d791 0035 ld $35 d792 0053 ld $53 d793 00e5 ld $e5 d794 0065 ld $65 d795 0082 ld $82 d796 0086 ld $86 d797 002f ld $2f d798 0018 ld $18 d799 0017 ld $17 d79a 00e3 ld $e3 d79b 0001 ld $01 d79c 005e ld $5e d79d 0092 ld $92 d79e 0065 ld $65 d79f 0025 ld $25 d7a0 00a3 ld $a3 d7a1 0065 ld $65 d7a2 0027 ld $27 d7a3 0084 ld $84 d7a4 0065 ld $65 d7a5 0024 ld $24 d7a6 0092 ld $92 d7a7 0065 ld $65 d7a8 0026 ld $26 d7a9 0082 ld $82 d7aa 00b4 ld $b4 d7ab 00f3 ld $f3 d7ac 0093 ld $93 d7ad 0027 ld $27 d7ae 009e ld $9e d7af 00ef ld $ef d7b0 0094 ld $94 d7b1 00ff ld $ff d7b2 006d ld $6d d7b3 00a3 ld $a3 d7b4 005c ld $5c d7b5 0059 ld $59 d7b6 0000 ld $00 d7b7 002f ld $2f d7b8 0000 ld $00 d7b9 0027 ld $27 d7ba 002f ld $2f d7bb 0001 ld $01 d7bc 0027 ld $27 d7bd 002f ld $2f d7be 0002 ld $02 d7bf 0027 ld $27 d7c0 002f ld $2f d7c1 0003 ld $03 d7c2 0027 ld $27 d7c3 002f ld $2f d7c4 0000 ld $00 d7c5 005c ld $5c d7c6 002f ld $2f d7c7 0001 ld $01 d7c8 005c ld $5c d7c9 002f ld $2f d7ca 0002 ld $02 d7cb 005c ld $5c d7cc 002f ld $2f d7cd 0003 ld $03 d7ce 005c ld $5c d7cf 00ff ld $ff d7d0 0059 ld $59 d7d1 0000 ld $00 d7d2 005e ld $5e d7d3 00a4 ld $a4 d7d4 005e ld $5e d7d5 0028 ld $28 d7d6 00c7 ld $c7 d7d7 0002 ld $02 d7d8 006f ld $6f d7d9 00aa ld $aa d7da 0035 ld $35 d7db 0072 ld $72 d7dc 00ca ld $ca d7dd 00ff ld $ff d7de 0075 ld $75 d7df 00c7 ld $c7 d7e0 0004 ld $04 d7e1 006f ld $6f d7e2 00aa ld $aa d7e3 0035 ld $35 d7e4 0072 ld $72 d7e5 00df ld $df d7e6 001c ld $1c d7e7 00a5 ld $a5 d7e8 00a5 ld $a5 d7e9 0006 ld $06 d7ea 00a7 ld $a7 d7eb 0078 ld $78 d7ec 00a5 ld $a5 d7ed 0035 ld $35 d7ee 0050 ld $50 d7ef 00f8 ld $f8 d7f0 0016 ld $16 d7f1 0072 ld $72 d7f2 00a5 ld $a5 d7f3 0085 ld $85 d7f4 00a9 ld $a9 d7f5 0068 ld $68 d7f6 0011 ld $11 d7f7 0000 ld $00 d7f8 0001 ld $01 d7f9 002b ld $2b d7fa 0026 ld $26 d7fb fe00 bra ac ;+-----------------------------------+ d7fc fcfd bra $d7fd ;| | d7fd 1418 ld $18,y ;| Trampoline for page $d700 lookups | d7fe e006 jmp y,$06 ;| | d7ff c218 st [$18] ;+-----------------------------------+ d800 0016 ld $16 d801 0006 ld $06 d802 0024 ld $24 d803 0016 ld $16 d804 0078 ld $78 d805 0025 ld $25 d806 0011 ld $11 d807 00c0 ld $c0 d808 0020 ld $20 d809 002b ld $2b d80a 0022 ld $22 d80b 00b4 ld $b4 d80c 00fb ld $fb d80d 00c7 ld $c7 d80e 0004 ld $04 d80f 0069 ld $69 d810 00aa ld $aa d811 0085 ld $85 d812 00a0 ld $a0 d813 0068 ld $68 d814 0063 ld $63 d815 00ff ld $ff d816 006e ld $6e d817 00a0 ld $a0 d818 005f ld $5f d819 00a7 ld $a7 d81a 009c ld $9c d81b 00a4 ld $a4 d81c 0035 ld $35 d81d 0056 ld $56 d81e 00a7 ld $a7 d81f 0016 ld $16 d820 0000 ld $00 d821 00a4 ld $a4 d822 00a7 ld $a7 d823 0072 ld $72 d824 00a5 ld $a5 d825 0035 ld $35 d826 0050 ld $50 d827 00b5 ld $b5 d828 0016 ld $16 d829 0072 ld $72 d82a 00a5 ld $a5 d82b 00c7 ld $c7 d82c 0004 ld $04 d82d 0069 ld $69 d82e 00aa ld $aa d82f 00ff ld $ff d830 00c7 ld $c7 d831 00fb ld $fb d832 0066 ld $66 d833 00aa ld $aa d834 00ff ld $ff d835 001a ld $1a d836 0094 ld $94 d837 0035 ld $35 d838 003f ld $3f d839 00d0 ld $d0 d83a 00e6 ld $e6 d83b 0001 ld $01 d83c 002b ld $2b d83d 0094 ld $94 d83e 004d ld $4d d83f 0000 ld $00 d840 009c ld $9c d841 0021 ld $21 d842 0092 ld $92 d843 0025 ld $25 d844 0000 ld $00 d845 00dd ld $dd d846 0092 ld $92 d847 0025 ld $25 d848 0020 ld $20 d849 0090 ld $90 d84a 00f6 ld $f6 d84b 0021 ld $21 d84c 0098 ld $98 d84d 00b8 ld $b8 d84e 009a ld $9a d84f 0035 ld $35 d850 0053 ld $53 d851 00f9 ld $f9 d852 00c7 ld $c7 d853 0010 ld $10 d854 006f ld $6f d855 00aa ld $aa d856 0035 ld $35 d857 0072 ld $72 d858 00e2 ld $e2 d859 009c ld $9c d85a 0006 ld $06 d85b 0090 ld $90 d85c 00e4 ld $e4 d85d 009c ld $9c d85e 0004 ld $04 d85f 002b ld $2b d860 009c ld $9c d861 0059 ld $59 d862 0020 ld $20 d863 00d1 ld $d1 d864 0092 ld $92 d865 0021 ld $21 d866 0092 ld $92 d867 0025 ld $25 d868 0000 ld $00 d869 0038 ld $38 d86a 0002 ld $02 d86b 0092 ld $92 d86c 0092 ld $92 d86d 0021 ld $21 d86e 0092 ld $92 d86f 0025 ld $25 d870 0020 ld $20 d871 0085 ld $85 d872 00a5 ld $a5 d873 0065 ld $65 d874 0059 ld $59 d875 0000 ld $00 d876 0063 ld $63 d877 00ff ld $ff d878 006f ld $6f d879 00a1 ld $a1 d87a 005e ld $5e d87b 0075 ld $75 d87c 002b ld $2b d87d 0082 ld $82 d87e 0046 ld $46 d87f 0082 ld $82 d880 002b ld $2b d881 0084 ld $84 d882 0046 ld $46 d883 0082 ld $82 d884 002b ld $2b d885 0086 ld $86 d886 003b ld $3b d887 0082 ld $82 d888 002b ld $2b d889 0088 ld $88 d88a 00c7 ld $c7 d88b 00fd ld $fd d88c 0066 ld $66 d88d 00aa ld $aa d88e 0065 ld $65 d88f 0081 ld $81 d890 000f ld $0f d891 0085 ld $85 d892 00ba ld $ba d893 006f ld $6f d894 0046 ld $46 d895 0088 ld $88 d896 0035 ld $35 d897 003f ld $3f d898 00f7 ld $f7 d899 002b ld $2b d89a 0096 ld $96 d89b 0082 ld $82 d89c 0040 ld $40 d89d 0035 ld $35 d89e 003f ld $3f d89f 00c7 ld $c7 d8a0 0085 ld $85 d8a1 00d2 ld $d2 d8a2 0062 ld $62 d8a3 0085 ld $85 d8a4 00b9 ld $b9 d8a5 0062 ld $62 d8a6 0046 ld $46 d8a7 0086 ld $86 d8a8 0085 ld $85 d8a9 00ac ld $ac d8aa 0063 ld $63 d8ab 0085 ld $85 d8ac 00a0 ld $a0 d8ad 0063 ld $63 d8ae 00c7 ld $c7 d8af 0080 ld $80 d8b0 006f ld $6f d8b1 0096 ld $96 d8b2 0035 ld $35 d8b3 003f ld $3f d8b4 00dc ld $dc d8b5 0085 ld $85 d8b6 00d2 ld $d2 d8b7 0062 ld $62 d8b8 0011 ld $11 d8b9 00a1 ld $a1 d8ba 0077 ld $77 d8bb 002b ld $2b d8bc 0092 ld $92 d8bd 004d ld $4d d8be 0000 ld $00 d8bf 0094 ld $94 d8c0 0011 ld $11 d8c1 00a0 ld $a0 d8c2 0077 ld $77 d8c3 002b ld $2b d8c4 009e ld $9e d8c5 001a ld $1a d8c6 0097 ld $97 d8c7 0099 ld $99 d8c8 009e ld $9e d8c9 002b ld $2b d8ca 009e ld $9e d8cb 0032 ld $32 d8cc 009a ld $9a d8cd 00a4 ld $a4 d8ce 002b ld $2b d8cf 0098 ld $98 d8d0 0085 ld $85 d8d1 00b3 ld $b3 d8d2 0064 ld $64 d8d3 00c7 ld $c7 d8d4 0002 ld $02 d8d5 0069 ld $69 d8d6 00aa ld $aa d8d7 0063 ld $63 d8d8 00ff ld $ff d8d9 0070 ld $70 d8da 00a0 ld $a0 d8db 005f ld $5f d8dc 001c ld $1c d8dd 00a4 ld $a4 d8de 00a4 ld $a4 d8df 0006 ld $06 d8e0 00a7 ld $a7 d8e1 009a ld $9a d8e2 00a4 ld $a4 d8e3 0035 ld $35 d8e4 0056 ld $56 d8e5 00b4 ld $b4 d8e6 00c7 ld $c7 d8e7 0008 ld $08 d8e8 006f ld $6f d8e9 00aa ld $aa d8ea 0035 ld $35 d8eb 0072 ld $72 d8ec 00b4 ld $b4 d8ed 0075 ld $75 d8ee 0085 ld $85 d8ef 00b7 ld $b7 d8f0 0070 ld $70 d8f1 0063 ld $63 d8f2 00ff ld $ff d8f3 00c7 ld $c7 d8f4 0010 ld $10 d8f5 006f ld $6f d8f6 00aa ld $aa d8f7 00bd ld $bd d8f8 00bc ld $bc d8f9 006d ld $6d d8fa 0059 ld $59 d8fb fe00 bra ac ;+-----------------------------------+ d8fc fcfd bra $d8fd ;| | d8fd 1418 ld $18,y ;| Trampoline for page $d800 lookups | d8fe e006 jmp y,$06 ;| | d8ff c218 st [$18] ;+-----------------------------------+ d900 0002 ld $02 d901 005e ld $5e d902 00a4 ld $a4 d903 005e ld $5e d904 0028 ld $28 d905 00c7 ld $c7 d906 0002 ld $02 d907 006f ld $6f d908 00aa ld $aa d909 0035 ld $35 d90a 0072 ld $72 d90b 00ca ld $ca d90c 00ff ld $ff d90d 0075 ld $75 d90e 00c7 ld $c7 d90f 0004 ld $04 d910 006f ld $6f d911 00aa ld $aa d912 0035 ld $35 d913 0072 ld $72 d914 00df ld $df d915 001c ld $1c d916 00a5 ld $a5 d917 00a5 ld $a5 d918 0008 ld $08 d919 00a7 ld $a7 d91a 0078 ld $78 d91b 00a5 ld $a5 d91c 0035 ld $35 d91d 0050 ld $50 d91e 00f8 ld $f8 d91f 0016 ld $16 d920 0070 ld $70 d921 00a5 ld $a5 d922 0085 ld $85 d923 00a4 ld $a4 d924 006b ld $6b d925 0011 ld $11 d926 0000 ld $00 d927 0001 ld $01 d928 002b ld $2b d929 0026 ld $26 d92a 0016 ld $16 d92b 0008 ld $08 d92c 0024 ld $24 d92d 0016 ld $16 d92e 0078 ld $78 d92f 0025 ld $25 d930 0011 ld $11 d931 00c0 ld $c0 d932 0020 ld $20 d933 002b ld $2b d934 0022 ld $22 d935 00b4 ld $b4 d936 00fb ld $fb d937 00c7 ld $c7 d938 0004 ld $04 d939 0069 ld $69 d93a 00aa ld $aa d93b 0085 ld $85 d93c 00d4 ld $d4 d93d 0063 ld $63 d93e 0063 ld $63 d93f 00ff ld $ff d940 0071 ld $71 d941 00a0 ld $a0 d942 005f ld $5f d943 0011 ld $11 d944 00e9 ld $e9 d945 006a ld $6a d946 0069 ld $69 d947 009e ld $9e d948 00ff ld $ff d949 0075 ld $75 d94a 0065 ld $65 d94b 0082 ld $82 d94c 000f ld $0f d94d 001a ld $1a d94e 0081 ld $81 d94f 002f ld $2f d950 0082 ld $82 d951 0062 ld $62 d952 0035 ld $35 d953 003f ld $3f d954 00f9 ld $f9 d955 0085 ld $85 d956 00ba ld $ba d957 0073 ld $73 d958 0065 ld $65 d959 0081 ld $81 d95a 0082 ld $82 d95b 00a7 ld $a7 d95c 007f ld $7f d95d 0082 ld $82 d95e 0035 ld $35 d95f 004d ld $4d d960 00f9 ld $f9 d961 0035 ld $35 d962 0072 ld $72 d963 00c2 ld $c2 d964 0085 ld $85 d965 00bc ld $bc d966 006e ld $6e d967 00a7 ld $a7 d968 000a ld $0a d969 0082 ld $82 d96a 0035 ld $35 d96b 0072 ld $72 d96c 00cb ld $cb d96d 0085 ld $85 d96e 00cb ld $cb d96f 0069 ld $69 d970 0021 ld $21 d971 009e ld $9e d972 00b8 ld $b8 d973 0092 ld $92 d974 0035 ld $35 d975 003f ld $3f d976 00f9 ld $f9 d977 00a7 ld $a7 d978 0020 ld $20 d979 0082 ld $82 d97a 0035 ld $35 d97b 0050 ld $50 d97c 00f9 ld $f9 d97d 001a ld $1a d97e 0082 ld $82 d97f 00d1 ld $d1 d980 0092 ld $92 d981 0021 ld $21 d982 0092 ld $92 d983 0025 ld $25 d984 0000 ld $00 d985 00a7 ld $a7 d986 0095 ld $95 d987 009a ld $9a d988 0035 ld $35 d989 0050 ld $50 d98a 00ec ld $ec d98b 0093 ld $93 d98c 0094 ld $94 d98d 0059 ld $59 d98e 0000 ld $00 d98f 0090 ld $90 d990 00f4 ld $f4 d991 00c7 ld $c7 d992 0010 ld $10 d993 006f ld $6f d994 00aa ld $aa d995 00c7 ld $c7 d996 0006 ld $06 d997 002a ld $2a d998 0004 ld $04 d999 002b ld $2b d99a 009c ld $9c d99b 0085 ld $85 d99c 00a5 ld $a5 d99d 0065 ld $65 d99e 0059 ld $59 d99f 0000 ld $00 d9a0 0063 ld $63 d9a1 00ff ld $ff d9a2 0072 ld $72 d9a3 00a0 ld $a0 d9a4 005f ld $5f d9a5 0011 ld $11 d9a6 00dd ld $dd d9a7 006a ld $6a d9a8 0069 ld $69 d9a9 009e ld $9e d9aa 00ff ld $ff d9ab 0075 ld $75 d9ac 00ab ld $ab d9ad 009a ld $9a d9ae 0082 ld $82 d9af 0086 ld $86 d9b0 00b1 ld $b1 d9b1 0036 ld $36 d9b2 002b ld $2b d9b3 0092 ld $92 d9b4 002b ld $2b d9b5 0096 ld $96 d9b6 002f ld $2f d9b7 009a ld $9a d9b8 0067 ld $67 d9b9 00ab ld $ab d9ba 009c ld $9c d9bb 0084 ld $84 d9bc 0088 ld $88 d9bd 002b ld $2b d9be 009e ld $9e d9bf 00b1 ld $b1 d9c0 0036 ld $36 d9c1 002b ld $2b d9c2 0094 ld $94 d9c3 002f ld $2f d9c4 009c ld $9c d9c5 0067 ld $67 d9c6 004d ld $4d d9c7 0000 ld $00 d9c8 0098 ld $98 d9c9 0021 ld $21 d9ca 009a ld $9a d9cb 00b8 ld $b8 d9cc 009c ld $9c d9cd 0035 ld $35 d9ce 0053 ld $53 d9cf 00d6 ld $d6 d9d0 004d ld $4d d9d1 0000 ld $00 d9d2 0096 ld $96 d9d3 00c7 ld $c7 d9d4 009c ld $9c d9d5 0017 ld $17 d9d6 009a ld $9a d9d7 0021 ld $21 d9d8 009e ld $9e d9d9 00b1 ld $b1 d9da 0036 ld $36 d9db 002b ld $2b d9dc 0098 ld $98 d9dd 002d ld $2d d9de 0082 ld $82 d9df 0084 ld $84 d9e0 0082 ld $82 d9e1 002d ld $2d d9e2 0084 ld $84 d9e3 0088 ld $88 d9e4 0086 ld $86 d9e5 001a ld $1a d9e6 009a ld $9a d9e7 0018 ld $18 d9e8 0018 ld $18 d9e9 00e3 ld $e3 d9ea 0001 ld $01 d9eb 002b ld $2b d9ec 00a0 ld $a0 d9ed 002b ld $2b d9ee 009e ld $9e d9ef 002f ld $2f d9f0 0094 ld $94 d9f1 005e ld $5e d9f2 0099 ld $99 d9f3 0092 ld $92 d9f4 002b ld $2b d9f5 0086 ld $86 d9f6 002f ld $2f d9f7 0098 ld $98 d9f8 005e ld $5e d9f9 0099 ld $99 d9fa 0096 ld $96 d9fb fe00 bra ac ;+-----------------------------------+ d9fc fcfd bra $d9fd ;| | d9fd 1418 ld $18,y ;| Trampoline for page $d900 lookups | d9fe e006 jmp y,$06 ;| | d9ff c218 st [$18] ;+-----------------------------------+ da00 002b ld $2b da01 0088 ld $88 da02 004d ld $4d da03 00a4 ld $a4 da04 0022 ld $22 da05 00b4 ld $b4 da06 00e3 ld $e3 da07 0063 ld $63 da08 00ff ld $ff da09 0073 ld $73 da0a 00a0 ld $a0 da0b 0050 ld $50 da0c 0075 ld $75 da0d 008c ld $8c da0e 007f ld $7f da0f 0035 ld $35 da10 0072 ld $72 da11 00ae ld $ae da12 00c7 ld $c7 da13 0020 ld $20 da14 006f ld $6f da15 002d ld $2d da16 0035 ld $35 da17 0072 ld $72 da18 00ae ld $ae da19 004d ld $4d da1a 0020 ld $20 da1b 0092 ld $92 da1c 0032 ld $32 da1d 00a4 ld $a4 da1e 009a ld $9a da1f 0021 ld $21 da20 0092 ld $92 da21 0085 ld $85 da22 00c5 ld $c5 da23 0062 ld $62 da24 0063 ld $63 da25 00ff ld $ff da26 00a7 ld $a7 da27 00ff ld $ff da28 0082 ld $82 da29 0035 ld $35 da2a 003f ld $3f da2b 00c9 ld $c9 da2c 0011 ld $11 da2d 0008 ld $08 da2e 0020 ld $20 da2f 0018 ld $18 da30 0018 ld $18 da31 002f ld $2f da32 0000 ld $00 da33 0027 ld $27 da34 0016 ld $16 da35 0002 ld $02 da36 002c ld $2c da37 00ff ld $ff da38 00e6 ld $e6 da39 0006 ld $06 da3a 00f2 ld $f2 da3b 0006 ld $06 da3c 00a5 ld $a5 da3d 0008 ld $08 da3e 00c9 ld $c9 da3f 0008 ld $08 da40 00ed ld $ed da41 0008 ld $08 da42 00e2 ld $e2 da43 0009 ld $09 da44 007f ld $7f da45 0000 ld $00 da46 000a ld $0a da47 0000 ld $00 da48 00fe ld $fe da49 0000 ld $00 da4a 00fd ld $fd da4b 0000 ld $00 da4c 00fb ld $fb da4d 0000 ld $00 da4e 00f7 ld $f7 da4f 0000 ld $00 da50 0000 ld $00 da51 0000 ld $00 da52 0008 ld $08 da53 0030 ld $30 da54 0030 ld $30 da55 003a ld $3a da56 0030 ld $30 da57 0030 ld $30 da58 003a ld $3a da59 0030 ld $30 da5a 0030 ld $30 da5b 0000 ld $00 da5c 0074 ld $74 da5d 00a4 ld $a4 da5e 005c ld $5c da5f 0000 ld $00 da60 0000 ld $00 da61 0000 ld $00 da62 0003 ld $03 da63 0003 ld $03 da64 0000 ld $00 da65 0000 ld $00 da66 00a7 ld $a7 da67 0079 ld $79 da68 0011 ld $11 da69 0054 ld $54 da6a 0054 ld $54 da6b 004c ld $4c da6c 0020 ld $20 da6d 006d ld $6d da6e 0069 ld $69 da6f 0063 ld $63 da70 0072 ld $72 da71 006f ld $6f da72 0063 ld $63 da73 006f ld $6f da74 006d ld $6d da75 0070 ld $70 da76 0075 ld $75 da77 0074 ld $74 da78 0065 ld $65 da79 0072 ld $72 da7a 0000 ld $00 da7b 0000 ld $00 da7c 0000 ld $00 * 65 times dabb 0075 ld $75 dabc 00a0 ld $a0 dabd 0060 ld $60 dabe 0090 ld $90 dabf 003c ld $3c dac0 0091 ld $91 dac1 0040 ld $40 dac2 0092 ld $92 dac3 0043 ld $43 dac4 0093 ld $93 dac5 0048 ld $48 dac6 000c ld $0c dac7 0080 ld $80 dac8 0081 ld $81 dac9 0082 ld $82 daca 0083 ld $83 dacb 0001 ld $01 dacc 0090 ld $90 dacd 003c ld $3c dace 0091 ld $91 dacf 0040 ld $40 dad0 0092 ld $92 dad1 0043 ld $43 dad2 0093 ld $93 dad3 0048 ld $48 dad4 0024 ld $24 dad5 0080 ld $80 dad6 0081 ld $81 dad7 0082 ld $82 dad8 0083 ld $83 dad9 00d0 ld $d0 dada 0000 ld $00 dadb 0000 ld $00 dadc 0060 ld $60 dadd 0000 ld $00 dade 0000 ld $00 dadf 0000 ld $00 * 30 times dafb fe00 bra ac ;+-----------------------------------+ dafc fcfd bra $dafd ;| | dafd 1418 ld $18,y ;| Trampoline for page $da00 lookups | dafe e006 jmp y,$06 ;| | daff c218 st [$18] ;+-----------------------------------+ db00 0000 ld $00 db01 0000 ld $00 db02 0000 ld $00 * 35 times db23 0078 ld $78 db24 00a0 ld $a0 db25 0060 ld $60 db26 00be ld $be db27 0075 ld $75 db28 00ab ld $ab db29 0074 ld $74 db2a 00a7 ld $a7 db2b 0074 ld $74 db2c 0003 ld $03 db2d 0003 ld $03 db2e 0000 ld $00 db2f 0000 ld $00 db30 00a7 ld $a7 db31 0079 ld $79 db32 005e ld $5e db33 0000 ld $00 db34 00be ld $be db35 007d ld $7d db36 00a0 ld $a0 db37 007e ld $7e db38 00b8 ld $b8 db39 007d ld $7d db3a 00be ld $be db3b 007d ld $7d db3c 00a2 ld $a2 db3d 007d ld $7d db3e 00a6 ld $a6 db3f 007c ld $7c db40 00b6 ld $b6 db41 007b ld $7b db42 00a4 ld $a4 db43 007b ld $7b db44 00b2 ld $b2 db45 007a ld $7a db46 0000 ld $00 db47 0000 ld $00 db48 0000 ld $00 * 64 times db86 0079 ld $79 db87 00a1 ld $a1 db88 005f ld $5f db89 00ac ld $ac db8a 0078 ld $78 db8b 00aa ld $aa db8c 0078 ld $78 db8d 00a6 ld $a6 db8e 0078 ld $78 db8f 0001 ld $01 db90 003a ld $3a db91 0000 ld $00 db92 0003 ld $03 db93 0003 ld $03 db94 0000 ld $00 db95 0000 ld $00 db96 0000 ld $00 db97 0000 ld $00 db98 00fc ld $fc db99 00ff ld $ff db9a 00f0 ld $f0 db9b 00ff ld $ff db9c 0000 ld $00 db9d 0000 ld $00 db9e 00f4 ld $f4 db9f 00ff ld $ff dba0 00f0 ld $f0 dba1 00ff ld $ff dba2 00fc ld $fc dba3 00ff ld $ff dba4 00fc ld $fc dba5 00ff ld $ff dba6 00fc ld $fc dba7 00ff ld $ff dba8 0000 ld $00 dba9 0000 ld $00 dbaa 0000 ld $00 * 64 times dbe8 007a ld $7a dbe9 00a0 ld $a0 dbea 0060 ld $60 dbeb 0000 ld $00 dbec 0000 ld $00 dbed 0013 ld $13 dbee 0000 ld $00 dbef 0013 ld $13 dbf0 0000 ld $00 dbf1 0017 ld $17 dbf2 0000 ld $00 dbf3 002a ld $2a dbf4 0000 ld $00 dbf5 003d ld $3d dbf6 0000 ld $00 dbf7 0050 ld $50 dbf8 0000 ld $00 dbf9 0063 ld $63 dbfa 0000 ld $00 dbfb fe00 bra ac ;+-----------------------------------+ dbfc fcfd bra $dbfd ;| | dbfd 1418 ld $18,y ;| Trampoline for page $db00 lookups | dbfe e006 jmp y,$06 ;| | dbff c218 st [$18] ;+-----------------------------------+ dc00 0076 ld $76 dc01 0000 ld $00 dc02 0000 ld $00 dc03 0000 ld $00 dc04 00f8 ld $f8 dc05 00ff ld $ff dc06 000f ld $0f dc07 0000 ld $00 dc08 0000 ld $00 dc09 0000 ld $00 * 5 times dc0c 0008 ld $08 dc0d 0000 ld $00 dc0e 00ff ld $ff dc0f 0000 ld $00 dc10 0000 ld $00 dc11 0000 ld $00 * 65 times dc50 007b ld $7b dc51 00a0 ld $a0 dc52 0060 ld $60 dc53 00a0 ld $a0 dc54 007d ld $7d dc55 005c ld $5c dc56 0000 ld $00 dc57 0000 ld $00 dc58 0000 ld $00 dc59 00f8 ld $f8 dc5a 00ff ld $ff dc5b 000f ld $0f dc5c 0000 ld $00 dc5d 0000 ld $00 dc5e 0000 ld $00 * 5 times dc61 0008 ld $08 dc62 0000 ld $00 dc63 00f1 ld $f1 dc64 00ff ld $ff dc65 0000 ld $00 dc66 0000 ld $00 dc67 00ff ld $ff dc68 0000 ld $00 dc69 0000 ld $00 dc6a 0000 ld $00 dc6b 00f8 ld $f8 dc6c 00ff ld $ff dc6d 000f ld $0f dc6e 0000 ld $00 dc6f 0000 ld $00 dc70 0000 ld $00 dc71 00ff ld $ff dc72 0000 ld $00 dc73 0000 ld $00 dc74 0000 ld $00 * 65 times dcb3 007c ld $7c dcb4 00a0 ld $a0 dcb5 0060 ld $60 dcb6 00a2 ld $a2 dcb7 007b ld $7b dcb8 00a0 ld $a0 dcb9 007b ld $7b dcba 00aa ld $aa dcbb 0079 ld $79 dcbc 0000 ld $00 dcbd 0000 ld $00 dcbe 0000 ld $00 * 6 times dcc2 0004 ld $04 dcc3 0000 ld $00 dcc4 000f ld $0f dcc5 0000 ld $00 dcc6 0000 ld $00 dcc7 0000 ld $00 dcc8 00f1 ld $f1 dcc9 00ff ld $ff dcca 0000 ld $00 dccb 0000 ld $00 dccc 0000 ld $00 dccd 0000 ld $00 dcce 0008 ld $08 dccf 0000 ld $00 dcd0 000f ld $0f dcd1 0000 ld $00 dcd2 0000 ld $00 dcd3 0000 ld $00 dcd4 00ff ld $ff dcd5 0000 ld $00 dcd6 0000 ld $00 dcd7 0000 ld $00 * 38 times dcfb fe00 bra ac ;+-----------------------------------+ dcfc fcfd bra $dcfd ;| | dcfd 1418 ld $18,y ;| Trampoline for page $dc00 lookups | dcfe e006 jmp y,$06 ;| | dcff c218 st [$18] ;+-----------------------------------+ dd00 0000 ld $00 dd01 0000 ld $00 dd02 0000 ld $00 * 27 times dd1b 007d ld $7d dd1c 00a0 ld $a0 dd1d 0034 ld $34 dd1e 0000 ld $00 dd1f 0000 ld $00 dd20 000f ld $0f dd21 0000 ld $00 dd22 0000 ld $00 dd23 0000 ld $00 * 5 times dd26 0008 ld $08 dd27 0000 ld $00 dd28 00f1 ld $f1 dd29 00ff ld $ff dd2a 0000 ld $00 dd2b 0000 ld $00 dd2c 0000 ld $00 dd2d 0000 ld $00 dd2e 00fc ld $fc dd2f 00ff ld $ff dd30 000e ld $0e dd31 0000 ld $00 dd32 0000 ld $00 dd33 0000 ld $00 dd34 00ff ld $ff dd35 0000 ld $00 dd36 0000 ld $00 dd37 0000 ld $00 * 5 times dd3a 00ff ld $ff dd3b 0000 ld $00 dd3c 000f ld $0f dd3d 0000 ld $00 dd3e 0000 ld $00 dd3f 0000 ld $00 * 5 times dd42 00f4 ld $f4 dd43 00ff ld $ff dd44 00f1 ld $f1 dd45 00ff ld $ff dd46 0000 ld $00 dd47 0000 ld $00 dd48 0000 ld $00 dd49 0000 ld $00 dd4a 0008 ld $08 dd4b 0000 ld $00 dd4c 000e ld $0e dd4d 0000 ld $00 dd4e 0000 ld $00 dd4f 0000 ld $00 dd50 00ff ld $ff dd51 0000 ld $00 dd52 007d ld $7d dd53 00d5 ld $d5 dd54 002b ld $2b dd55 000f ld $0f dd56 0007 ld $07 dd57 0003 ld $03 dd58 0001 ld $01 dd59 0002 ld $02 dd5a 0004 ld $04 dd5b 0008 ld $08 dd5c 0004 ld $04 dd5d 0002 ld $02 dd5e 0001 ld $01 dd5f 0003 ld $03 dd60 0007 ld $07 dd61 000f ld $0f dd62 000e ld $0e dd63 000c ld $0c dd64 0008 ld $08 dd65 0004 ld $04 dd66 0002 ld $02 dd67 0001 ld $01 dd68 0002 ld $02 dd69 0004 ld $04 dd6a 0008 ld $08 dd6b 000c ld $0c dd6c 000e ld $0e dd6d 0006 ld $06 dd6e 0052 ld $52 dd6f 004f ld $4f dd70 004d ld $4d dd71 0076 ld $76 dd72 0058 ld $58 dd73 0030 ld $30 dd74 0000 ld $00 dd75 0009 ld $09 dd76 0046 ld $46 dd77 004f ld $4f dd78 0052 ld $52 dd79 0020 ld $20 dd7a 0052 ld $52 dd7b 0045 ld $45 dd7c 0053 ld $53 dd7d 0045 ld $45 dd7e 0054 ld $54 dd7f 0000 ld $00 dd80 007e ld $7e dd81 00a0 ld $a0 dd82 0060 ld $60 dd83 0000 ld $00 dd84 0000 ld $00 dd85 00f8 ld $f8 dd86 00ff ld $ff dd87 00ff ld $ff dd88 0000 ld $00 dd89 0004 ld $04 dd8a 0048 ld $48 dd8b 004f ld $4f dd8c 004c ld $4c dd8d 0044 ld $44 dd8e 0000 ld $00 dd8f 0010 ld $10 dd90 0054 ld $54 dd91 004f ld $4f dd92 0020 ld $20 dd93 0053 ld $53 dd94 0054 ld $54 dd95 0041 ld $41 dd96 0052 ld $52 dd97 0054 ld $54 dd98 0020 ld $20 dd99 0050 ld $50 dd9a 0052 ld $52 dd9b 004f ld $4f dd9c 0047 ld $47 dd9d 0052 ld $52 dd9e 0041 ld $41 dd9f 004d ld $4d dda0 0000 ld $00 dda1 0005 ld $05 dda2 0050 ld $50 dda3 0052 ld $52 dda4 0045 ld $45 dda5 0053 ld $53 dda6 0053 ld $53 dda7 0000 ld $00 dda8 0009 ld $09 dda9 0054 ld $54 ddaa 004f ld $4f ddab 0020 ld $20 ddac 0053 ld $53 ddad 0045 ld $45 ddae 004c ld $4c ddaf 0045 ld $45 ddb0 0043 ld $43 ddb1 0054 ld $54 ddb2 0000 ld $00 ddb3 0003 ld $03 ddb4 0055 ld $55 ddb5 0053 ld $53 ddb6 0045 ld $45 ddb7 0000 ld $00 ddb8 0009 ld $09 ddb9 0020 ld $20 ddba 005b ld $5b ddbb 0053 ld $53 ddbc 0054 ld $54 ddbd 0041 ld $41 ddbe 0052 ld $52 ddbf 0054 ld $54 ddc0 005d ld $5d ddc1 0020 ld $20 ddc2 0000 ld $00 ddc3 000a ld $0a ddc4 0020 ld $20 ddc5 005b ld $5b ddc6 0041 ld $41 ddc7 0052 ld $52 ddc8 0052 ld $52 ddc9 004f ld $4f ddca 0057 ld $57 ddcb 0053 ld $53 ddcc 005d ld $5d ddcd 0020 ld $20 ddce 0000 ld $00 ddcf 00c7 ld $c7 ddd0 00b6 ld $b6 ddd1 00f9 ld $f9 ddd2 0054 ld $54 ddd3 0051 ld $51 ddd4 00a5 ld $a5 ddd5 000e ld $0e ddd6 0085 ld $85 ddd7 00de ld $de ddd8 0061 ld $61 ddd9 00ae ld $ae ddda 00c1 ld $c1 dddb 000e ld $0e dddc 0050 ld $50 dddd 00c7 ld $c7 ddde 00b6 ld $b6 dddf 00c7 ld $c7 dde0 00b6 ld $b6 dde1 00c7 ld $c7 dde2 00b6 ld $b6 dde3 007f ld $7f dde4 00a0 ld $a0 dde5 0060 ld $60 dde6 0001 ld $01 dde7 004b ld $4b dde8 0000 ld $00 dde9 0005 ld $05 ddea 0020 ld $20 ddeb 005b ld $5b ddec 0041 ld $41 dded 005d ld $5d ddee 0020 ld $20 ddef 0000 ld $00 ddf0 00f8 ld $f8 ddf1 007f ld $7f ddf2 00f1 ld $f1 ddf3 007f ld $7f ddf4 00ea ld $ea ddf5 007f ld $7f ddf6 00de ld $de ddf7 007f ld $7f ddf8 00d5 ld $d5 ddf9 007f ld $7f ddfa 00cd ld $cd ddfb fe00 bra ac ;+-----------------------------------+ ddfc fcfd bra $ddfd ;| | ddfd 1418 ld $18,y ;| Trampoline for page $dd00 lookups | ddfe e006 jmp y,$06 ;| | ddff c218 st [$18] ;+-----------------------------------+ de00 007f ld $7f de01 00c4 ld $c4 de02 007f ld $7f de03 00c2 ld $c2 de04 007f ld $7f de05 00c0 ld $c0 de06 007f ld $7f de07 00be ld $be de08 007f ld $7f de09 0000 ld $00 de0a 0000 ld $00 de0b 0000 ld $00 * 6 times de0f 0007 ld $07 de10 0043 ld $43 de11 0052 ld $52 de12 0045 ld $45 de13 0044 ld $44 de14 0049 ld $49 de15 0054 ld $54 de16 0053 ld $53 de17 0000 ld $00 de18 0006 ld $06 de19 004c ld $4c de1a 004f ld $4f de1b 0041 ld $41 de1c 0044 ld $44 de1d 0045 ld $45 de1e 0052 ld $52 de1f 0000 ld $00 de20 0007 ld $07 de21 0049 ld $49 de22 004e ld $4e de23 0056 ld $56 de24 0041 ld $41 de25 0044 ld $44 de26 0045 ld $45 de27 0052 ld $52 de28 0000 ld $00 de29 000a ld $0a de2a 0056 ld $56 de2b 0049 ld $49 de2c 0044 ld $44 de2d 0045 ld $45 de2e 004f ld $4f de2f 0050 ld $50 de30 004f ld $4f de31 004b ld $4b de32 0045 ld $45 de33 0052 ld $52 de34 0000 ld $00 de35 0005 ld $05 de36 0042 ld $42 de37 0041 ld $41 de38 0053 ld $53 de39 0049 ld $49 de3a 0043 ld $43 de3b 0000 ld $00 de3c 0005 ld $05 de3d 0043 ld $43 de3e 004c ld $4c de3f 004f ld $4f de40 0043 ld $43 de41 004b ld $4b de42 0000 ld $00 de43 0006 ld $06 de44 0053 ld $53 de45 0044 ld $44 de46 0043 ld $43 de47 0041 ld $41 de48 0052 ld $52 de49 0044 ld $44 de4a 0000 ld $00 de4b 0000 ld $00 de4c 0000 ld $00 ;End of gbas/menu/MainMenu_vX0.gt1, size 4351 ;+-----------------------------------+ ;| Core/Reset_vX0.gcl | ;+-----------------------------------+ de4d dc4d st $4d,[y,x++] ;'M' de4e dc61 st $61,[y,x++] ;'a' de4f dc69 st $69,[y,x++] ;'i' de50 dc6e st $6e,[y,x++] ;'n' de51 dc00 st $00,[y,x++] ;'\x00' de52 dc00 st $00,[y,x++] ;'\x00' de53 dc00 st $00,[y,x++] ;'\x00' de54 dc00 st $00,[y,x++] ;'\x00' de55 004e ld $4e de56 c218 st [$18] de57 00cd ld $cd de58 14e0 ld $e0,y de59 e036 jmp y,$36 de5a c219 st [$19] Reset: de5b 0002 ld $02 ;| RAM segment address (high byte first) de5c 0000 ld $00 ;| de5d 0084 ld $84 ;| Length (1..256) de5e 0011 ld $11 ;0200 LDWI de5f 00f8 ld $f8 de60 0001 ld $01 de61 002b ld $2b ;0203 STW de62 0030 ld $30 ;0203 'CtrlBits' de63 00cd ld $cd ;0205 DEF de64 007d ld $7d de65 0075 ld $75 ;0207 PUSH de66 001a ld $1a ;0208 LD de67 0001 ld $01 de68 00e6 ld $e6 ;020a SUBI de69 0001 ld $01 de6a 0082 ld $82 ;020c ANDI de6b 00ff ld $ff de6c 00e3 ld $e3 ;020e ADDI de6d 0001 ld $01 de6e 002b ld $2b ;0210 STW de6f 0032 ld $32 ;0210 'i' de70 0059 ld $59 ;0212 LDI de71 0020 ld $20 de72 005e ld $5e ;0214 ST de73 007a ld $7a de74 0011 ld $11 ;0216 LDWI de75 0009 ld $09 de76 000b ld $0b de77 002b ld $2b ;0219 STW de78 0022 ld $22 ;0219 '_sysFn' de79 0059 ld $59 ;021b LDI de7a 00aa ld $aa de7b 005e ld $5e ;021d ST de7c 007c ld $7c de7d 0059 ld $59 ;021f LDI de7e 007c ld $7c de7f 00b4 ld $b4 ;0221 SYS de80 00fb ld $fb de81 001a ld $1a ;0223 LD de82 007c ld $7c de83 008c ld $8c ;0225 XORI de84 00aa ld $aa de85 0035 ld $35 ;0227 BCC de86 003f ld $3f ;0228 EQ de87 002e ld $2e de88 0059 ld $59 ;022a LDI de89 0000 ld $00 de8a 00f0 ld $f0 ;022c POKE de8b 0030 ld $30 ;022c 'CtrlBits' de8c 0090 ld $90 ;022e BRA de8d 0058 ld $58 de8e 0011 ld $11 ;0230 LDWI de8f 0024 ld $24 de90 0080 ld $80 de91 002b ld $2b ;0233 STW de92 0034 ld $34 ;0233 'q' de93 0059 ld $59 ;0235 LDI de94 00bc ld $bc de95 00b4 ld $b4 ;0237 SYS de96 00fb ld $fb de97 0021 ld $21 ;0239 LDW de98 0034 ld $34 ;0239 'q' de99 00ad ld $ad ;023b PEEK de9a 008c ld $8c ;023c XORI de9b 00ff ld $ff de9c 00f0 ld $f0 ;023e POKE de9d 0034 ld $34 ;023e 'q' de9e 002b ld $2b ;0240 STW de9f 0024 ld $24 ;0240 '_sysArgs0' dea0 008c ld $8c ;0242 XORI dea1 00ff ld $ff dea2 00f0 ld $f0 ;0244 POKE dea3 0034 ld $34 ;0244 'q' dea4 00fc ld $fc ;0246 XORW dea5 0024 ld $24 ;0246 '_sysArgs0' dea6 0035 ld $35 ;0248 BCC dea7 003f ld $3f ;0249 EQ dea8 0053 ld $53 dea9 0059 ld $59 ;024b LDI deaa 0031 ld $31 deab 002b ld $2b ;024d STW deac 0036 ld $36 ;024d 'Char' dead 005e ld $5e ;024f ST deae 007a ld $7a deaf 0059 ld $59 ;0251 LDI deb0 0070 ld $70 deb1 002b ld $2b ;0253 STW deb2 0032 ld $32 ;0253 'i' deb3 0011 ld $11 ;0255 LDWI deb4 007c ld $7c deb5 0080 ld $80 deb6 00b4 ld $b4 ;0258 SYS deb7 00fb ld $fb deb8 0011 ld $11 ;025a LDWI deb9 002f ld $2f deba 002f ld $2f debb 002b ld $2b ;025d STW debc 0036 ld $36 ;025d 'Char' debd 0021 ld $21 ;025f LDW debe 0032 ld $32 ;025f 'i' debf 0093 ld $93 ;0261 INC dec0 0036 ld $36 ;0261 'Char' dec1 00e6 ld $e6 ;0263 SUBI dec2 0028 ld $28 dec3 0035 ld $35 ;0265 BCC dec4 0053 ld $53 ;0266 GE dec5 005f ld $5f dec6 00e3 ld $e3 ;0268 ADDI dec7 0028 ld $28 dec8 0093 ld $93 ;026a INC dec9 0037 ld $37 ;026a 'Char'+1 deca 00e6 ld $e6 ;026c SUBI decb 0004 ld $04 decc 0035 ld $35 ;026e BCC decd 0053 ld $53 ;026f GE dece 0068 ld $68 decf 0021 ld $21 ;0271 LDW ded0 0036 ld $36 ;0271 'Char' ded1 002b ld $2b ;0273 STW ded2 007b ld $7b ded3 0059 ld $59 ;0275 LDI ded4 0003 ld $03 ded5 005e ld $5e ;0277 ST ded6 0079 ld $79 ded7 0059 ld $59 ;0279 LDI ded8 0000 ld $00 ded9 005e ld $5e ;027b ST deda 007d ld $7d dedb 0063 ld $63 ;027d POP dedc 00ff ld $ff ;027e RET dedd 002b ld $2b ;027f STW dede 0038 ld $38 ;027f 'CheckMemory' dedf 0093 ld $93 ;0281 INC dee0 001b ld $1b dee1 00ff ld $ff ;0283 RET dee2 0003 ld $03 ;| RAM segment address (high byte first) dee3 0000 ld $00 ;| dee4 00af ld $af ;| Length (1..256) dee5 00cd ld $cd ;0300 DEF dee6 008e ld $8e dee7 0075 ld $75 ;0302 PUSH dee8 0059 ld $59 ;0303 LDI dee9 0010 ld $10 deea 002b ld $2b ;0305 STW deeb 003a ld $3a ;0305 'j' deec 0059 ld $59 ;0307 LDI deed 000a ld $0a deee 002b ld $2b ;0309 STW deef 0032 ld $32 ;0309 'i' def0 00cf ld $cf ;030b CALL def1 003c ld $3c ;030b 'SendOnesToCard' def2 0021 ld $21 ;030d LDW def3 0032 ld $32 ;030d 'i' def4 00e6 ld $e6 ;030f SUBI def5 0001 ld $01 def6 0035 ld $35 ;0311 BCC def7 004d ld $4d ;0312 GT def8 0007 ld $07 def9 0011 ld $11 ;0314 LDWI defa 0009 ld $09 defb fe00 bra ac ;+-----------------------------------+ defc fcfd bra $defd ;| | defd 1418 ld $18,y ;| Trampoline for page $de00 lookups | defe e006 jmp y,$06 ;| | deff c218 st [$18] ;+-----------------------------------+ df00 000b ld $0b df01 002b ld $2b ;0317 STW df02 0022 ld $22 ;0317 '_sysFn' df03 0011 ld $11 ;0319 LDWI df04 0078 ld $78 df05 0080 ld $80 df06 00b4 ld $b4 ;031c SYS df07 00fb ld $fb df08 00cd ld $cd ;031e DEF df09 0026 ld $26 df0a 00ff ld $ff ;0320 255 df0b 00ff ld $ff ;0321 255 df0c 0040 ld $40 ;0322 64 df0d 0000 ld $00 ;0323 0 df0e 0000 ld $00 ;0324 0 df0f 0000 ld $00 ;0325 0 df10 0000 ld $00 ;0326 0 df11 0095 ld $95 ;0327 149 df12 002b ld $2b ;0328 STW df13 003e ld $3e ;0328 'p' df14 0059 ld $59 ;032a LDI df15 0081 ld $81 df16 002b ld $2b ;032c STW df17 0034 ld $34 ;032c 'q' df18 0059 ld $59 ;032e LDI df19 0008 ld $08 df1a 002b ld $2b ;0330 STW df1b 0032 ld $32 ;0330 'i' df1c 0021 ld $21 ;0332 LDW df1d 003e ld $3e ;0332 'p' df1e 00ad ld $ad ;0334 PEEK df1f 0093 ld $93 ;0335 INC df20 003e ld $3e ;0335 'p' df21 00f0 ld $f0 ;0337 POKE df22 0034 ld $34 ;0337 'q' df23 0093 ld $93 ;0339 INC df24 0034 ld $34 ;0339 'q' df25 0021 ld $21 ;033b LDW df26 0032 ld $32 ;033b 'i' df27 00e6 ld $e6 ;033d SUBI df28 0001 ld $01 df29 0035 ld $35 ;033f BCC df2a 004d ld $4d ;0340 GT df2b 002e ld $2e df2c 0059 ld $59 ;0342 LDI df2d 0081 ld $81 df2e 002b ld $2b ;0344 STW df2f 0024 ld $24 ;0344 '_sysArgs0' df30 00e3 ld $e3 ;0346 ADDI df31 0008 ld $08 df32 002b ld $2b ;0348 STW df33 0026 ld $26 ;0348 '_sysArgs2' df34 0011 ld $11 ;034a LDWI df35 0015 ld $15 df36 000b ld $0b df37 002b ld $2b ;034d STW df38 0022 ld $22 ;034d '_sysFn' df39 00b4 ld $b4 ;034f SYS df3a 00cc ld $cc df3b 0059 ld $59 ;0351 LDI df3c 0010 ld $10 df3d 002b ld $2b ;0353 STW df3e 0032 ld $32 ;0353 'i' df3f 00cf ld $cf ;0355 CALL df40 003c ld $3c ;0355 'SendOnesToCard' df41 0082 ld $82 ;0357 ANDI df42 0080 ld $80 df43 0035 ld $35 ;0359 BCC df44 003f ld $3f ;035a EQ df45 0061 ld $61 df46 0021 ld $21 ;035c LDW df47 0032 ld $32 ;035c 'i' df48 00e6 ld $e6 ;035e SUBI df49 0001 ld $01 df4a 0035 ld $35 ;0360 BCC df4b 004d ld $4d ;0361 GT df4c 0051 ld $51 df4d 0011 ld $11 ;0363 LDWI df4e 0009 ld $09 df4f 000b ld $0b df50 002b ld $2b ;0366 STW df51 0022 ld $22 ;0366 '_sysFn' df52 0011 ld $11 ;0368 LDWI df53 007c ld $7c df54 0080 ld $80 df55 00b4 ld $b4 ;036b SYS df56 00fb ld $fb df57 001a ld $1a ;036d LD df58 002a ld $2a df59 0035 ld $35 ;036f BCC df5a 003f ld $3f ;0370 EQ df5b 008c ld $8c df5c 008c ld $8c ;0372 XORI df5d 0001 ld $01 df5e 0035 ld $35 ;0374 BCC df5f 0072 ld $72 ;0375 NE df60 0085 ld $85 df61 0011 ld $11 ;0377 LDWI df62 00d6 ld $d6 df63 00c1 ld $c1 df64 002b ld $2b ;037a STW df65 0024 ld $24 ;037a '_sysArgs0' df66 0011 ld $11 ;037c LDWI df67 0000 ld $00 df68 0002 ld $02 df69 002b ld $2b ;037f STW df6a 001a ld $1a ;037f '_vLR' df6b 0059 ld $59 ;0381 LDI df6c 00ad ld $ad df6d 002b ld $2b ;0383 STW df6e 0022 ld $22 ;0383 '_sysFn' df6f 00b4 ld $b4 ;0385 SYS df70 00e3 ld $e3 df71 0021 ld $21 ;0387 LDW df72 003a ld $3a ;0387 'j' df73 00e6 ld $e6 ;0389 SUBI df74 0001 ld $01 df75 0035 ld $35 ;038b BCC df76 004d ld $4d ;038c GT df77 0003 ld $03 df78 0063 ld $63 ;038e POP df79 00ff ld $ff ;038f RET df7a 002b ld $2b ;0390 STW df7b 0040 ld $40 ;0390 'CheckCard' df7c 00cd ld $cd ;0392 DEF df7d 00a8 ld $a8 df7e 0059 ld $59 ;0394 LDI df7f 00ff ld $ff df80 005e ld $5e ;0396 ST df81 002a ld $2a df82 0059 ld $59 ;0398 LDI df83 002a ld $2a df84 002b ld $2b ;039a STW df85 0024 ld $24 ;039a '_sysArgs0' df86 00e3 ld $e3 ;039c ADDI df87 0001 ld $01 df88 002b ld $2b ;039e STW df89 0026 ld $26 ;039e '_sysArgs2' df8a 0011 ld $11 ;03a0 LDWI df8b 0015 ld $15 df8c 000b ld $0b df8d 002b ld $2b ;03a3 STW df8e 0022 ld $22 ;03a3 '_sysFn' df8f 00b4 ld $b4 ;03a5 SYS df90 00cc ld $cc df91 001a ld $1a ;03a7 LD df92 002a ld $2a df93 00ff ld $ff ;03a9 RET df94 002b ld $2b ;03aa STW df95 003c ld $3c ;03aa 'SendOnesToCard' df96 0093 ld $93 ;03ac INC df97 001b ld $1b df98 00ff ld $ff ;03ae RET df99 0004 ld $04 ;| RAM segment address (high byte first) df9a 0000 ld $00 ;| df9b 007b ld $7b ;| Length (1..256) df9c 0011 ld $11 ;0400 LDWI df9d 000f ld $0f df9e 000b ld $0b df9f 002b ld $2b ;0403 STW dfa0 0022 ld $22 dfa1 0059 ld $59 ;0405 LDI dfa2 0000 ld $00 dfa3 00b4 ld $b4 ;0407 SYS dfa4 00f6 ld $f6 dfa5 0011 ld $11 ;0409 LDWI dfa6 0012 ld $12 dfa7 000b ld $0b dfa8 002b ld $2b ;040c STW dfa9 0022 ld $22 dfaa 0059 ld $59 ;040e LDI dfab 0000 ld $00 dfac 00b4 ld $b4 ;0410 SYS dfad 00f8 ld $f8 dfae 00b4 ld $b4 ;0412 SYS dfaf 00f8 ld $f8 dfb0 00b4 ld $b4 ;0414 SYS dfb1 00f8 ld $f8 dfb2 00b4 ld $b4 ;0416 SYS dfb3 00f8 ld $f8 dfb4 0011 ld $11 ;0418 LDWI dfb5 0000 ld $00 dfb6 0001 ld $01 dfb7 002b ld $2b ;041b STW dfb8 003e ld $3e ;041b 'p' dfb9 0011 ld $11 ;041d LDWI dfba 0000 ld $00 dfbb 0008 ld $08 dfbc 002b ld $2b ;0420 STW dfbd 0034 ld $34 ;0420 'q' dfbe 001a ld $1a ;0422 LD dfbf 0035 ld $35 ;0422 'q'+1 dfc0 00f0 ld $f0 ;0424 POKE dfc1 003e ld $3e ;0424 'p' dfc2 0093 ld $93 ;0426 INC dfc3 003e ld $3e ;0426 'p' dfc4 0059 ld $59 ;0428 LDI dfc5 0000 ld $00 dfc6 00f0 ld $f0 ;042a POKE dfc7 003e ld $3e ;042a 'p' dfc8 0093 ld $93 ;042c INC dfc9 003e ld $3e ;042c 'p' dfca 0093 ld $93 ;042e INC dfcb 0035 ld $35 ;042e 'q'+1 dfcc 0021 ld $21 ;0430 LDW dfcd 0034 ld $34 ;0430 'q' dfce 0035 ld $35 ;0432 BCC dfcf 004d ld $4d ;0433 GT dfd0 0020 ld $20 dfd1 0011 ld $11 ;0435 LDWI dfd2 0003 ld $03 dfd3 000b ld $0b dfd4 002b ld $2b ;0438 STW dfd5 0022 ld $22 ;0438 '_sysFn' dfd6 0059 ld $59 ;043a LDI dfd7 0000 ld $00 dfd8 005e ld $5e ;043c ST dfd9 0025 ld $25 dfda 0011 ld $11 ;043e LDWI dfdb 0000 ld $00 dfdc 0008 ld $08 dfdd 002b ld $2b ;0441 STW dfde 003e ld $3e ;0441 'p' dfdf 002b ld $2b ;0443 STW dfe0 0026 ld $26 ;0443 '_sysArgs2' dfe1 0059 ld $59 ;0445 LDI dfe2 00a0 ld $a0 dfe3 005e ld $5e ;0447 ST dfe4 0024 ld $24 dfe5 00b4 ld $b4 ;0449 SYS dfe6 00f4 ld $f4 dfe7 0011 ld $11 ;044b LDWI dfe8 0000 ld $00 dfe9 0001 ld $01 dfea 0099 ld $99 ;044e ADDW dfeb 003e ld $3e ;044e 'p' dfec 0035 ld $35 ;0450 BCC dfed 004d ld $4d ;0451 GT dfee 003f ld $3f dfef 0011 ld $11 ;0453 LDWI dff0 0014 ld $14 dff1 0008 ld $08 dff2 002b ld $2b ;0456 STW dff3 0042 ld $42 ;0456 'Pos' dff4 00cf ld $cf ;0458 CALL dff5 0038 ld $38 ;0458 'CheckMemory' dff6 0011 ld $11 ;045a LDWI dff7 0000 ld $00 dff8 000b ld $0b dff9 002b ld $2b ;045d STW dffa 0022 ld $22 ;045d '_sysFn' dffb fe00 bra ac ;+-----------------------------------+ dffc fcfd bra $dffd ;| | dffd 1418 ld $18,y ;| Trampoline for page $df00 lookups | dffe e006 jmp y,$06 ;| | dfff c218 st [$18] ;+-----------------------------------+ e000 0059 ld $59 ;045f LDI e001 0002 ld $02 e002 00b4 ld $b4 ;0461 SYS e003 00e7 ld $e7 e004 0021 ld $21 ;0463 LDW e005 0030 ld $30 ;0463 'CtrlBits' e006 00ad ld $ad ;0465 PEEK e007 0035 ld $35 ;0466 BCC e008 003f ld $3f ;0467 EQ e009 0069 ld $69 e00a 00cf ld $cf ;0469 CALL e00b 0040 ld $40 ;0469 'CheckCard' e00c 0011 ld $11 ;046b LDWI e00d 004e ld $4e e00e 00cd ld $cd e00f 002b ld $2b ;046e STW e010 0024 ld $24 ;046e '_sysArgs0' e011 0011 ld $11 ;0470 LDWI e012 0000 ld $00 e013 0002 ld $02 e014 002b ld $2b ;0473 STW e015 001a ld $1a ;0473 '_vLR' e016 0059 ld $59 ;0475 LDI e017 00ad ld $ad e018 002b ld $2b ;0477 STW e019 0022 ld $22 ;0477 '_sysFn' e01a 00b4 ld $b4 ;0479 SYS e01b 00e3 ld $e3 e01c 0000 ld $00 ;End of Core/Reset_vX0.gcl, size 450 sys_ReadRomDir: e01d f023 beq .sysDir#20 e01e 1024 ld $24,x e01f 1600 ld ac,y e020 0118 ld [$18] e021 a00e suba $0e e022 e200 jmp y,ac .sysDir#20: e023 1400 ld $00,y e024 0028 ld $28 e025 14e0 ld $e0,y e026 e200 jmp y,ac e027 1400 ld $00,y .sysDir#25: e028 dc52 st $52,[y,x++] ;'R' e029 dc65 st $65,[y,x++] ;'e' e02a dc73 st $73,[y,x++] ;'s' e02b dc65 st $65,[y,x++] ;'e' e02c dc74 st $74,[y,x++] ;'t' e02d dc00 st $00,[y,x++] ;'\x00' e02e dc00 st $00,[y,x++] ;'\x00' e02f dc00 st $00,[y,x++] ;'\x00' e030 005b ld $5b e031 c218 st [$18] e032 00de ld $de e033 14e0 ld $e0,y e034 e036 jmp y,$36 e035 c219 st [$19] .sysDir#39: e036 1403 ld $03,y e037 e0cb jmp y,$cb e038 00ea ld $ea e039 0200 nop ;194 fillers e03a 0200 nop e03b 0200 nop * 194 times e0fb fe00 bra ac ;+-----------------------------------+ e0fc fcfd bra $e0fd ;| | e0fd 1418 ld $18,y ;| Trampoline for page $e000 lookups | e0fe e006 jmp y,$06 ;| | e0ff c218 st [$18] ;+-----------------------------------+ e100