$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