$B526/46374: Garbage Collection
Jump from $A41C, $B384, $B51C:
B526: A6 37 LDX $37 ; Pointer: Highest Address available to BASIC
B528: A5 38 LDA $38 ; Pointer: Highest Address available to BASIC
Jump from $B63A:
B52A: 86 33 STX $33 ; Pointer: Bottom of String space
B52C: 85 34 STA $34 ; Pointer: Bottom of String space
B52E: A0 00 LDY #$00
B530: 84 4F STY $4F ; Temporary storage for FLPT value
B532: 84 4E STY $4E ; Temporary storage for FLPT value
B534: A5 31 LDA $31 ; Pointer: End of BASIC Arrays + 1
B536: A6 32 LDX $32 ; Pointer: End of BASIC Arrays + 1
B538: 85 5F STA $5F ; Temporary storage for FLPT value
B53A: 86 60 STX $60 ; Temporary storage for FLPT value
B53C: A9 19 LDA #$19
B53E: A2 00 LDX #$00
B540: 85 22 STA $22 ; Second Utility Pointer
B542: 86 23 STX $23 ; Second Utility Pointer
Jump from $B54B:
B544: C5 16 CMP $16 ; Pointer: Temporary String Stack
B546: F0 05 BEQ $B54D
B548: 20 C7 B5 JSR $B5C7 ; Search for Next String
B54B: F0 F7 BEQ $B544
Jump from $B546:
B54D: A9 07 LDA #$07
B54F: 85 53 STA $53 ; Length of String during Garbage collection
B551: A5 2D LDA $2D ; Pointer: Start of BASIC Variables
B553: A6 2E LDX $2E ; Pointer: Start of BASIC Variables
B555: 85 22 STA $22 ; Second Utility Pointer
B557: 86 23 STX $23 ; Second Utility Pointer
Jump from $B564:
B559: E4 30 CPX $30 ; Pointer: Start of BASIC Arrays
B55B: D0 04 BNE $B561
B55D: C5 2F CMP $2F ; Pointer: Start of BASIC Arrays
B55F: F0 05 BEQ $B566
Jump from $B55B:
B561: 20 BD B5 JSR $B5BD ; Search for Next String
B564: F0 F3 BEQ $B559
Jump from $B55F:
B566: 85 58 STA $58 ; Temporary storage for FLPT value
B568: 86 59 STX $59 ; Temporary storage for FLPT value
B56A: A9 03 LDA #$03
B56C: 85 53 STA $53 ; Length of String during Garbage collection
Jump from $B599, $B59C:
B56E: A5 58 LDA $58 ; Temporary storage for FLPT value
B570: A6 59 LDX $59 ; Temporary storage for FLPT value
Jump from $B5B6:
B572: E4 32 CPX $32 ; Pointer: End of BASIC Arrays + 1
B574: D0 07 BNE $B57D
B576: C5 31 CMP $31 ; Pointer: End of BASIC Arrays + 1
B578: D0 03 BNE $B57D
B57A: 4C 06 B6 JMP $B606 ; Collect a String
Jump from $B574, $B578:
B57D: 85 22 STA $22 ; Second Utility Pointer
B57F: 86 23 STX $23 ; Second Utility Pointer
B581: A0 00 LDY #$00
B583: B1 22 LDA ($22),Y ; Second Utility Pointer
B585: AA TAX
B586: C8 INY
B587: B1 22 LDA ($22),Y ; Second Utility Pointer
B589: 08 PHP
B58A: C8 INY
B58B: B1 22 LDA ($22),Y ; Second Utility Pointer
B58D: 65 58 ADC $58 ; Temporary storage for FLPT value
B58F: 85 58 STA $58 ; Temporary storage for FLPT value
B591: C8 INY
B592: B1 22 LDA ($22),Y ; Second Utility Pointer
B594: 65 59 ADC $59 ; Temporary storage for FLPT value
B596: 85 59 STA $59 ; Temporary storage for FLPT value
B598: 28 PLP
B599: 10 D3 BPL $B56E
B59B: 8A TXA
B59C: 30 D0 BMI $B56E
B59E: C8 INY
B59F: B1 22 LDA ($22),Y ; Second Utility Pointer
B5A1: A0 00 LDY #$00
B5A3: 0A ASL
B5A4: 69 05 ADC #$05
B5A6: 65 22 ADC $22 ; Second Utility Pointer
B5A8: 85 22 STA $22 ; Second Utility Pointer
B5AA: 90 02 BCC $B5AE
B5AC: E6 23 INC $23 ; Second Utility Pointer
Jump from $B5AA:
B5AE: A6 23 LDX $23 ; Second Utility Pointer
Jump from $B5BB:
B5B0: E4 59 CPX $59 ; Temporary storage for FLPT value
B5B2: D0 04 BNE $B5B8
B5B4: C5 58 CMP $58 ; Temporary storage for FLPT value
B5B6: F0 BA BEQ $B572
Jump from $B5B2:
B5B8: 20 C7 B5 JSR $B5C7 ; Search for Next String
B5BB: F0 F3 BEQ $B5B0
Previous Page / Next Page