;* ;* CLASS FILE _Object.class ;* .BYTE $CA,$FE,$BA,$BE ; MAGIC .BYTE $00,$00 ; MINOR 0 .BYTE $00,$31 ; MAJOR 49 ;* ;* CONSTANT POOL ;* .BYTE $00,$1A ; CONST POOL COUNT 26 ;* CONST POOL INDEX 1 .BYTE $0A ; METHODREF .BYTE $00,$03 ; CLASS #3 .BYTE $00,$17 ; NAME AND TYPE #23 ;* CONST POOL INDEX 2 .BYTE 07 ; CLASS .BYTE $00,$19 ; #25 ;* CONST POOL INDEX 3 .BYTE 07 ; CLASS .BYTE $00,$00 ; #0 ;* CONST POOL INDEX 4 .BYTE $01 ; UTF8 .BYTE $00,$06 ; STRLEN .BYTE "" ;* CONST POOL INDEX 5 .BYTE $01 ; UTF8 .BYTE $00,$03 ; STRLEN .BYTE "()V" ;* CONST POOL INDEX 6 .BYTE $01 ; UTF8 .BYTE $00,$04 ; STRLEN .BYTE "Code" ;* CONST POOL INDEX 7 .BYTE $01 ; UTF8 .BYTE $00,$05 ; STRLEN .BYTE "clone" ;* CONST POOL INDEX 8 .BYTE $01 ; UTF8 .BYTE $00,$14 ; STRLEN .BYTE "()Ljava/lang/Object;" ;* CONST POOL INDEX 9 .BYTE $01 ; UTF8 .BYTE $00,$06 ; STRLEN .BYTE "equals" ;* CONST POOL INDEX 10 .BYTE $01 ; UTF8 .BYTE $00,$15 ; STRLEN .BYTE "(Ljava/lang/Object;)Z" ;* CONST POOL INDEX 11 .BYTE $01 ; UTF8 .BYTE $00,$08 ; STRLEN .BYTE "finalize" ;* CONST POOL INDEX 12 .BYTE $01 ; UTF8 .BYTE $00,$08 ; STRLEN .BYTE "getClass" ;* CONST POOL INDEX 13 .BYTE $01 ; UTF8 .BYTE $00,$13 ; STRLEN .BYTE "()Ljava/lang/Class;" ;* CONST POOL INDEX 14 .BYTE $01 ; UTF8 .BYTE $00,$08 ; STRLEN .BYTE "hashCode" ;* CONST POOL INDEX 15 .BYTE $01 ; UTF8 .BYTE $00,$03 ; STRLEN .BYTE "()I" ;* CONST POOL INDEX 16 .BYTE $01 ; UTF8 .BYTE $00,$06 ; STRLEN .BYTE "notify" ;* CONST POOL INDEX 17 .BYTE $01 ; UTF8 .BYTE $00,$09 ; STRLEN .BYTE "notifyAll" ;* CONST POOL INDEX 18 .BYTE $01 ; UTF8 .BYTE $00,$08 ; STRLEN .BYTE "toString" ;* CONST POOL INDEX 19 .BYTE $01 ; UTF8 .BYTE $00,$14 ; STRLEN .BYTE "()Ljava/lang/String;" ;* CONST POOL INDEX 20 .BYTE $01 ; UTF8 .BYTE $00,$04 ; STRLEN .BYTE "wait" ;* CONST POOL INDEX 21 .BYTE $01 ; UTF8 .BYTE $00,$04 ; STRLEN .BYTE "(J)V" ;* CONST POOL INDEX 22 .BYTE $01 ; UTF8 .BYTE $00,$05 ; STRLEN .BYTE "(JI)V" ;* CONST POOL INDEX 23 .BYTE $0C ; NAME AND TYPE .BYTE $00,$04 ; NAME #4 .BYTE $00,$05 ; DESC #5 ;* CONST POOL INDEX 24 .BYTE $01 ; UTF8 .BYTE $00,$04 ; STRLEN .BYTE "6502" ;* CONST POOL INDEX 25 .BYTE $01 ; UTF8 .BYTE $00,$10 ; STRLEN .BYTE "java/lang/Object" ;* ;* ACCESS FLAGS ;* .BYTE $00,$21 ; 0x0021 ;* ;* THIS CLASS ;* .BYTE $00,$02 ; #2 ;* ;* SUPER CLASS ;* .BYTE $00,$00 ; #0 ;* ;* INTERFACES ;* .BYTE $00,$00 ; IFACE COUNT 0 ;* ;* FIELDS ;* .BYTE $00,$00 ; FIELD COUNT 0 ;* ;* METHODS ;* .BYTE $00,$0C ; METHOD COUNT 12 ;******* METHOD INDEX 0 ******** .BYTE $01,$01 ; ACCESS FLAGS 0x0101 .BYTE $00,$04 ; NAME #4 .BYTE $00,$05 ; DESC #5 .BYTE $00,$01 ; ATTRIB COUNT 1 ;* ATTRIB INDEX 0 .BYTE $00,24 ; NAME #24 .BYTE $00,$00,>(M0A0END-M0A0BGN),<(M0A0END-M0A0BGN) M0A0BGN: ;* CODE: .BYTE $00,$01 ; MAX STACK 1 .BYTE $00,$01 ; MAX LOCALS 1 .BYTE $00,$00,>(M0C0END-M0C0BGN),<(M0C0END-M0C0BGN) M0C0BGN: .IFDEF DEBUG_FINALIZE ; PSTRLN "HELLO FROM OBJECT." .ENDIF TSX LDA $0103,X CMP $0107,X BNE :+ TAY LDA $0104,X CMP $0108,X BNE :+ STA TMP LDA $0106,X CMP $010A,X BNE :+ LDA $0105,X CMP $0109,X BNE :+ BMI :+ ; SKIP IF NOREF INC FLAG ALREADY SET ORA #$80 ; SET REF COUNT FLAG STA $0109,X LDA $0101,X ; POP *THIS* STA $0105,X LDA $0102,X STA $0106,X INX INX INX INX TXS TYA LDX TMP JMP HMEM_REF_INC : PLA TAX PLA TAY PLA PLA PLA PLA TYA PHA TXA PHA RTS M0C0END: ;* EXCEPTION TABLE .BYTE $00,$00 ; COUNT 0 ;* CODE ATTRIB .BYTE $00,$00 ; ATTRIB COUNT 0 M0A0END: ;******* METHOD INDEX 1 ******** .BYTE $00,$04 ; ACCESS FLAGS 0x0004 .BYTE $00,$07 ; NAME #7 .BYTE $00,$08 ; DESC #8 .BYTE $00,$01 ; ATTRIB COUNT 1 ;* ATTRIB INDEX 0 .BYTE $00,$06 ; NAME #6 .BYTE $00,$00,>(M1A0END-M1A0BGN),<(M1A0END-M1A0BGN) M1A0BGN: ;* CODE: .BYTE $00,$01 ; MAX STACK 1 .BYTE $00,$01 ; MAX LOCALS 1 .BYTE $00,$00,>(M1C0END-M1C0BGN),<(M1C0END-M1C0BGN) M1C0BGN: .BYTE $01 ; 00000: aconst_null .BYTE $B0 ; 00001: areturn M1C0END: ;* EXCEPTION TABLE .BYTE $00,$00 ; COUNT 0 ;* CODE ATTRIB .BYTE $00,$00 ; ATTRIB COUNT 0 M1A0END: ;******* METHOD INDEX 2 ******** .BYTE $00,$01 ; ACCESS FLAGS 0x0001 .BYTE $00,$09 ; NAME #9 .BYTE $00,$0A ; DESC #10 .BYTE $00,$01 ; ATTRIB COUNT 1 ;* ATTRIB INDEX 0 .BYTE $00,$06 ; NAME #6 .BYTE $00,$00,>(M2A0END-M2A0BGN),<(M2A0END-M2A0BGN) M2A0BGN: ;* CODE: .BYTE $00,$01 ; MAX STACK 1 .BYTE $00,$02 ; MAX LOCALS 2 .BYTE $00,$00,>(M2C0END-M2C0BGN),<(M2C0END-M2C0BGN) M2C0BGN: .BYTE $04 ; 00000: iconst_1 .BYTE $AC ; 00001: ireturn M2C0END: ;* EXCEPTION TABLE .BYTE $00,$00 ; COUNT 0 ;* CODE ATTRIB .BYTE $00,$00 ; ATTRIB COUNT 0 M2A0END: ;******* METHOD INDEX 3 - finalize ******** .BYTE $01,$04 ; ACCESS FLAGS 0x0104 .BYTE $00,$0B ; NAME #11 .BYTE $00,$05 ; DESC #5 .BYTE $00,$01 ; ATTRIB COUNT 1 ;* ATTRIB INDEX 0 .BYTE $00,24 ; NAME #24 .BYTE $00,$00,>(M3A0END-M3A0BGN),<(M3A0END-M3A0BGN) M3A0BGN: ;* CODE: .BYTE $00,$00 ; MAX STACK 0 .BYTE $00,$01 ; MAX LOCALS 1 .BYTE $00,$00,>(M3C0END-M3C0BGN),<(M3C0END-M3C0BGN) M3C0BGN: .IFDEF DEBUG_FINALIZE PSTRLN "HELLO FROM OBJECT.FINALIZE()" .ENDIF PLA TAX PLA TAY PLA PLA PLA PLA TYA PHA TXA PHA RTS M3C0END: ;* EXCEPTION TABLE .BYTE $00,$00 ; COUNT 0 ;* CODE ATTRIB .BYTE $00,$00 ; ATTRIB COUNT 0 M3A0END: ;******* METHOD INDEX 4 ******** .BYTE $00,$11 ; ACCESS FLAGS 0x0011 .BYTE $00,$0C ; NAME #12 .BYTE $00,$0D ; DESC #13 .BYTE $00,$01 ; ATTRIB COUNT 1 ;* ATTRIB INDEX 0 .BYTE $00,$06 ; NAME #6 .BYTE $00,$00,>(M4A0END-M4A0BGN),<(M4A0END-M4A0BGN) M4A0BGN: ;* CODE: .BYTE $00,$01 ; MAX STACK 1 .BYTE $00,$01 ; MAX LOCALS 1 .BYTE $00,$00,>(M4C0END-M4C0BGN),<(M4C0END-M4C0BGN) M4C0BGN: .BYTE $01 ; 00000: aconst_null .BYTE $B0 ; 00001: areturn M4C0END: ;* EXCEPTION TABLE .BYTE $00,$00 ; COUNT 0 ;* CODE ATTRIB .BYTE $00,$00 ; ATTRIB COUNT 0 M4A0END: ;******* METHOD INDEX 5 ******** .BYTE $00,$01 ; ACCESS FLAGS 0x0001 .BYTE $00,$0E ; NAME #14 .BYTE $00,$0F ; DESC #15 .BYTE $00,$01 ; ATTRIB COUNT 1 ;* ATTRIB INDEX 0 .BYTE $00,$06 ; NAME #6 .BYTE $00,$00,>(M5A0END-M5A0BGN),<(M5A0END-M5A0BGN) M5A0BGN: ;* CODE: .BYTE $00,$01 ; MAX STACK 1 .BYTE $00,$01 ; MAX LOCALS 1 .BYTE $00,$00,>(M5C0END-M5C0BGN),<(M5C0END-M5C0BGN) M5C0BGN: .BYTE $03 ; 00000: iconst_0 .BYTE $AC ; 00001: ireturn M5C0END: ;* EXCEPTION TABLE .BYTE $00,$00 ; COUNT 0 ;* CODE ATTRIB .BYTE $00,$00 ; ATTRIB COUNT 0 M5A0END: ;******* METHOD INDEX 6 ******** .BYTE $00,$11 ; ACCESS FLAGS 0x0011 .BYTE $00,$10 ; NAME #16 .BYTE $00,$05 ; DESC #5 .BYTE $00,$01 ; ATTRIB COUNT 1 ;* ATTRIB INDEX 0 .BYTE $00,$06 ; NAME #6 .BYTE $00,$00,>(M6A0END-M6A0BGN),<(M6A0END-M6A0BGN) M6A0BGN: ;* CODE: .BYTE $00,$00 ; MAX STACK 0 .BYTE $00,$01 ; MAX LOCALS 1 .BYTE $00,$00,>(M6C0END-M6C0BGN),<(M6C0END-M6C0BGN) M6C0BGN: .BYTE $B1 ; 00000: return M6C0END: ;* EXCEPTION TABLE .BYTE $00,$00 ; COUNT 0 ;* CODE ATTRIB .BYTE $00,$00 ; ATTRIB COUNT 0 M6A0END: ;******* METHOD INDEX 7 ******** .BYTE $00,$11 ; ACCESS FLAGS 0x0011 .BYTE $00,$11 ; NAME #17 .BYTE $00,$05 ; DESC #5 .BYTE $00,$01 ; ATTRIB COUNT 1 ;* ATTRIB INDEX 0 .BYTE $00,$06 ; NAME #6 .BYTE $00,$00,>(M7A0END-M7A0BGN),<(M7A0END-M7A0BGN) M7A0BGN: ;* CODE: .BYTE $00,$00 ; MAX STACK 0 .BYTE $00,$01 ; MAX LOCALS 1 .BYTE $00,$00,>(M7C0END-M7C0BGN),<(M7C0END-M7C0BGN) M7C0BGN: .BYTE $B1 ; 00000: return M7C0END: ;* EXCEPTION TABLE .BYTE $00,$00 ; COUNT 0 ;* CODE ATTRIB .BYTE $00,$00 ; ATTRIB COUNT 0 M7A0END: ;******* METHOD INDEX 8 ******** .BYTE $00,$01 ; ACCESS FLAGS 0x0001 .BYTE $00,$12 ; NAME #18 .BYTE $00,$13 ; DESC #19 .BYTE $00,$01 ; ATTRIB COUNT 1 ;* ATTRIB INDEX 0 .BYTE $00,$06 ; NAME #6 .BYTE $00,$00,>(M8A0END-M8A0BGN),<(M8A0END-M8A0BGN) M8A0BGN: ;* CODE: .BYTE $00,$01 ; MAX STACK 1 .BYTE $00,$01 ; MAX LOCALS 1 .BYTE $00,$00,>(M8C0END-M8C0BGN),<(M8C0END-M8C0BGN) M8C0BGN: .BYTE $01 ; 00000: aconst_null .BYTE $B0 ; 00001: areturn M8C0END: ;* EXCEPTION TABLE .BYTE $00,$00 ; COUNT 0 ;* CODE ATTRIB .BYTE $00,$00 ; ATTRIB COUNT 0 M8A0END: ;******* METHOD INDEX 9 ******** .BYTE $00,$11 ; ACCESS FLAGS 0x0011 .BYTE $00,$14 ; NAME #20 .BYTE $00,$05 ; DESC #5 .BYTE $00,$01 ; ATTRIB COUNT 1 ;* ATTRIB INDEX 0 .BYTE $00,$06 ; NAME #6 .BYTE $00,$00,>(M9A0END-M9A0BGN),<(M9A0END-M9A0BGN) M9A0BGN: ;* CODE: .BYTE $00,$00 ; MAX STACK 0 .BYTE $00,$01 ; MAX LOCALS 1 .BYTE $00,$00,>(M9C0END-M9C0BGN),<(M9C0END-M9C0BGN) M9C0BGN: .BYTE $B1 ; 00000: return M9C0END: ;* EXCEPTION TABLE .BYTE $00,$00 ; COUNT 0 ;* CODE ATTRIB .BYTE $00,$00 ; ATTRIB COUNT 0 M9A0END: ;******* METHOD INDEX 10 ******** .BYTE $00,$11 ; ACCESS FLAGS 0x0011 .BYTE $00,$14 ; NAME #20 .BYTE $00,$15 ; DESC #21 .BYTE $00,$01 ; ATTRIB COUNT 1 ;* ATTRIB INDEX 0 .BYTE $00,$06 ; NAME #6 .BYTE $00,$00,>(M10A0END-M10A0BGN),<(M10A0END-M10A0BGN) M10A0BGN: ;* CODE: .BYTE $00,$00 ; MAX STACK 0 .BYTE $00,$03 ; MAX LOCALS 3 .BYTE $00,$00,>(M10C0END-M10C0BGN),<(M10C0END-M10C0BGN) M10C0BGN: .BYTE $B1 ; 00000: return M10C0END: ;* EXCEPTION TABLE .BYTE $00,$00 ; COUNT 0 ;* CODE ATTRIB .BYTE $00,$00 ; ATTRIB COUNT 0 M10A0END: ;******* METHOD INDEX 11 ******** .BYTE $00,$11 ; ACCESS FLAGS 0x0011 .BYTE $00,$14 ; NAME #20 .BYTE $00,$16 ; DESC #22 .BYTE $00,$01 ; ATTRIB COUNT 1 ;* ATTRIB INDEX 0 .BYTE $00,$06 ; NAME #6 .BYTE $00,$00,>(M11A0END-M11A0BGN),<(M11A0END-M11A0BGN) M11A0BGN: ;* CODE: .BYTE $00,$00 ; MAX STACK 0 .BYTE $00,$04 ; MAX LOCALS 4 .BYTE $00,$00,>(M11C0END-M11C0BGN),<(M11C0END-M11C0BGN) M11C0BGN: .BYTE $B1 ; 00000: return M11C0END: ;* EXCEPTION TABLE .BYTE $00,$00 ; COUNT 0 ;* CODE ATTRIB .BYTE $00,$00 ; ATTRIB COUNT 0 M11A0END: ;* ;* GLOBAL ATTRIBUTES ;* .BYTE $00,$00 ; ATTRIB COUNT 0