# Pastebin t3JYcQ9N .memorymap defaultslot 0 slotsize $1000 slot 0 $F000 ; eeprom .endme .rombankmap bankstotal 1 banksize $1000 ; EEPROM banks 1 .endro .emptyfill $FF .bank 0 slot 0 .org $0000 .db "--[[CABE:Thistle:" .section __TEXT,__text,regular,pure_instructions ; .macosx_version_min 10, 12 ; .globl __Z3dmattt ; .align 4, 0x90 ; z3dmattt .cfi_startproc ; lda $100 ; pushl %ebp pha ; pushl %ebp lda $100 ; pushl %ebp pha ; pushl %ebp tsx ; pushl %ebp stx $FF ; pushl %ebp .cfi_def_cfa_offset 8 ; .cfi_offset %ebp, -8 ; lda $FF ; movl %esp, %ebp sta $100 ; movl %esp, %ebp sta $100 ; movl %esp, %ebp .cfi_def_cfa_register %ebp ; lda $05 ; pushl %ebx pha ; pushl %ebx lda $06 ; pushl %ebx pha ; pushl %ebx tsx ; pushl %ebx stx $FF ; pushl %ebx lda $39 ; pushl %edi pha ; pushl %edi lda $3a ; pushl %edi pha ; pushl %edi tsx ; pushl %edi stx $FF ; pushl %edi lda $22 ; pushl %esi pha ; pushl %esi lda $23 ; pushl %esi pha ; pushl %esi tsx ; pushl %esi stx $FF ; pushl %esi .cfi_offset %esi, -20 ; .cfi_offset %edi, -16 ; .cfi_offset %ebx, -12 ; lda #<16(%ebp) ; movzwl 16(%ebp), %eax sta $03 ; movzwl 16(%ebp), %eax lda #>16(%ebp) ; movzwl 16(%ebp), %eax sta $04 ; movzwl 16(%ebp), %eax lda #<12(%ebp) ; movzwl 12(%ebp), %eax sta $03 ; movzwl 12(%ebp), %eax lda #>12(%ebp) ; movzwl 12(%ebp), %eax sta $04 ; movzwl 12(%ebp), %eax lda #<8(%ebp) ; movzwl 8(%ebp), %eax sta $03 ; movzwl 8(%ebp), %eax lda #>8(%ebp) ; movzwl 8(%ebp), %eax sta $04 ; movzwl 8(%ebp), %eax lda #<-14(%ebp) ; movzwl -14(%ebp), %edi sta $39 ; movzwl -14(%ebp), %edi lda #>-14(%ebp) ; movzwl -14(%ebp), %edi sta $3a ; movzwl -14(%ebp), %edi lda $39 ; movl %edi, %ebx sta $05 ; movl %edi, %ebx lda $3a ; movl %edi, %ebx sta $06 ; movl %edi, %ebx lda $05 ; movb %bl, %cl sta $fb ; movb %bl, %cl jsr z6memoryihervtt ; calll __Z6memoryIhERVT_t lda $fb ; movb %cl, (%eax) sta (%eax) ; movb %cl, (%eax) lda #<-14(%ebp) ; movzwl -14(%ebp), %eax sta $03 ; movzwl -14(%ebp), %eax lda #>-14(%ebp) ; movzwl -14(%ebp), %eax sta $04 ; movzwl -14(%ebp), %eax lda $03 ; movb %al, %cl sta $fb ; movb %al, %cl sta $fb ; movb %al, %cl jsr z6memoryihervtt ; calll __Z6memoryIhERVT_t lda $fb ; movb %cl, (%eax) sta (%eax) ; movb %cl, (%eax) lda #<-14(%ebp) ; movzwl -14(%ebp), %eax sta $03 ; movzwl -14(%ebp), %eax lda #>-14(%ebp) ; movzwl -14(%ebp), %eax sta $04 ; movzwl -14(%ebp), %eax lda $03 ; movb %al, %cl sta $fb ; movb %al, %cl jsr z6memoryihervtt ; calll __Z6memoryIhERVT_t lda $fb ; movb %cl, (%eax) sta (%eax) ; movb %cl, (%eax) lda #<-14(%ebp) ; movzwl -14(%ebp), %eax sta $03 ; movzwl -14(%ebp), %eax lda #>-14(%ebp) ; movzwl -14(%ebp), %eax sta $04 ; movzwl -14(%ebp), %eax lda $03 ; movb %al, %cl sta $fb ; movb %al, %cl sta $fb ; movb %al, %cl jsr z6memoryihervtt ; calll __Z6memoryIhERVT_t lda $fb ; movb %cl, (%eax) sta (%eax) ; movb %cl, (%eax) lda #<-18(%ebp) ; movzwl -18(%ebp), %eax sta $03 ; movzwl -18(%ebp), %eax lda #>-18(%ebp) ; movzwl -18(%ebp), %eax sta $04 ; movzwl -18(%ebp), %eax lda $03 ; movb %al, %cl sta $fb ; movb %al, %cl jsr z6memoryihervtt ; calll __Z6memoryIhERVT_t lda $fb ; movb %cl, (%eax) sta (%eax) ; movb %cl, (%eax) lda #<-18(%ebp) ; movzwl -18(%ebp), %eax sta $03 ; movzwl -18(%ebp), %eax lda #>-18(%ebp) ; movzwl -18(%ebp), %eax sta $04 ; movzwl -18(%ebp), %eax lda $03 ; movb %al, %cl sta $fb ; movb %al, %cl sta $fb ; movb %al, %cl jsr z6memoryihervtt ; calll __Z6memoryIhERVT_t lda $fb ; movb %cl, (%eax) sta (%eax) ; movb %cl, (%eax) pla $22 ; popl %esi pla $23 ; popl %esi tsx ; popl %esi stx $FF ; popl %esi lda $22 ; popl %esi pha ; popl %esi lda $23 ; popl %esi pha ; popl %esi tsx ; popl %esi stx $FF ; popl %esi pla $39 ; popl %edi pla $3a ; popl %edi tsx ; popl %edi stx $FF ; popl %edi lda $39 ; popl %edi pha ; popl %edi lda $3a ; popl %edi pha ; popl %edi tsx ; popl %edi stx $FF ; popl %edi pla $05 ; popl %ebx pla $06 ; popl %ebx tsx ; popl %ebx stx $FF ; popl %ebx lda $05 ; popl %ebx pha ; popl %ebx lda $06 ; popl %ebx pha ; popl %ebx tsx ; popl %ebx stx $FF ; popl %ebx pla $100 ; popl %ebp pla $100 ; popl %ebp tsx ; popl %ebp stx $FF ; popl %ebp lda $100 ; popl %ebp pha ; popl %ebp lda $100 ; popl %ebp pha ; popl %ebp tsx ; popl %ebp stx $FF ; popl %ebp rts ; retl .cfi_endproc ; .globl __Z6memoryIhERVT_t ; .weak_def_can_be_hidden __Z6memoryIhERVT_t ; .align 4, 0x90 ; z6memoryihervtt lda $100 ; pushl %ebp pha ; pushl %ebp lda $100 ; pushl %ebp pha ; pushl %ebp tsx ; pushl %ebp stx $FF ; pushl %ebp lda $FF ; movl %esp, %ebp sta $100 ; movl %esp, %ebp sta $100 ; movl %esp, %ebp lda $03 ; pushl %eax pha ; pushl %eax lda $04 ; pushl %eax pha ; pushl %eax tsx ; pushl %eax stx $FF ; pushl %eax lda #<8(%ebp) ; movzwl 8(%ebp), %eax sta $03 ; movzwl 8(%ebp), %eax lda #>8(%ebp) ; movzwl 8(%ebp), %eax sta $04 ; movzwl 8(%ebp), %eax lda #<-2(%ebp) ; movzwl -2(%ebp), %eax sta $03 ; movzwl -2(%ebp), %eax lda #>-2(%ebp) ; movzwl -2(%ebp), %eax sta $04 ; movzwl -2(%ebp), %eax pla $100 ; popl %ebp pla $100 ; popl %ebp tsx ; popl %ebp stx $FF ; popl %ebp lda $100 ; popl %ebp pha ; popl %ebp lda $100 ; popl %ebp pha ; popl %ebp tsx ; popl %ebp stx $FF ; popl %ebp rts ; retl .globl _main ; .align 4, 0x90 ; .cfi_startproc ; lda $100 ; pushl %ebp pha ; pushl %ebp lda $100 ; pushl %ebp pha ; pushl %ebp tsx ; pushl %ebp stx $FF ; pushl %ebp .cfi_def_cfa_offset 8 ; .cfi_offset %ebp, -8 ; lda $FF ; movl %esp, %ebp sta $100 ; movl %esp, %ebp sta $100 ; movl %esp, %ebp .cfi_def_cfa_register %ebp ; lda $22 ; pushl %esi pha ; pushl %esi lda $23 ; pushl %esi pha ; pushl %esi tsx ; pushl %esi stx $FF ; pushl %esi .cfi_offset %esi, -12 ; jsr l2pb ; calll L2$pb l2pb pla $03 ; popl %eax pla $04 ; popl %eax tsx ; popl %eax stx $FF ; popl %eax lda $03 ; popl %eax pha ; popl %eax lda $04 ; popl %eax pha ; popl %eax tsx ; popl %eax stx $FF ; popl %eax jsr zn7consolec1ev ; calll __ZN7ConsoleC1Ev lda #<$12 ; movl $12, %ecx sta $fb ; movl $12, %ecx lda #>$12 ; movl $12, %ecx sta $fc ; movl $12, %ecx lda #<_hello-L2$pb(%edx) ; movl _hello-L2$pb(%edx), %esi sta $22 ; movl _hello-L2$pb(%edx), %esi lda #>_hello-L2$pb(%edx) ; movl _hello-L2$pb(%edx), %esi sta $23 ; movl _hello-L2$pb(%edx), %esi jsr zn7console5writeepkch ; calll __ZN7Console5writeEPKch lda #$00 ; xorl %eax, %eax sta $03 ; xorl %eax, %eax sta $04 ; xorl %eax, %eax pla $22 ; popl %esi pla $23 ; popl %esi tsx ; popl %esi stx $FF ; popl %esi lda $22 ; popl %esi pha ; popl %esi lda $23 ; popl %esi pha ; popl %esi tsx ; popl %esi stx $FF ; popl %esi pla $100 ; popl %ebp pla $100 ; popl %ebp tsx ; popl %ebp stx $FF ; popl %ebp lda $100 ; popl %ebp pha ; popl %ebp lda $100 ; popl %ebp pha ; popl %ebp tsx ; popl %ebp stx $FF ; popl %ebp rts ; retl .cfi_endproc ; .globl __ZN7ConsoleC1Ev ; .weak_def_can_be_hidden __ZN7ConsoleC1Ev ; .align 4, 0x90 ; zn7consolec1ev .cfi_startproc ; lda $100 ; pushl %ebp pha ; pushl %ebp lda $100 ; pushl %ebp pha ; pushl %ebp tsx ; pushl %ebp stx $FF ; pushl %ebp .cfi_def_cfa_offset 8 ; .cfi_offset %ebp, -8 ; lda $FF ; movl %esp, %ebp sta $100 ; movl %esp, %ebp sta $100 ; movl %esp, %ebp .cfi_def_cfa_register %ebp ; lda #<8(%ebp) ; movl 8(%ebp), %eax sta $03 ; movl 8(%ebp), %eax lda #>8(%ebp) ; movl 8(%ebp), %eax sta $04 ; movl 8(%ebp), %eax lda #<-4(%ebp) ; movl -4(%ebp), %eax sta $03 ; movl -4(%ebp), %eax lda #>-4(%ebp) ; movl -4(%ebp), %eax sta $04 ; movl -4(%ebp), %eax jsr zn7consolec2ev ; calll __ZN7ConsoleC2Ev pla $100 ; popl %ebp pla $100 ; popl %ebp tsx ; popl %ebp stx $FF ; popl %ebp lda $100 ; popl %ebp pha ; popl %ebp lda $100 ; popl %ebp pha ; popl %ebp tsx ; popl %ebp stx $FF ; popl %ebp rts ; retl .cfi_endproc ; .globl __ZN7Console5writeEPKch ; .weak_def_can_be_hidden __ZN7Console5writeEPKch ; .align 4, 0x90 ; zn7console5writeepkch .cfi_startproc ; lda $100 ; pushl %ebp pha ; pushl %ebp lda $100 ; pushl %ebp pha ; pushl %ebp tsx ; pushl %ebp stx $FF ; pushl %ebp .cfi_def_cfa_offset 8 ; .cfi_offset %ebp, -8 ; lda $FF ; movl %esp, %ebp sta $100 ; movl %esp, %ebp sta $100 ; movl %esp, %ebp .cfi_def_cfa_register %ebp ; lda $05 ; pushl %ebx pha ; pushl %ebx lda $06 ; pushl %ebx pha ; pushl %ebx tsx ; pushl %ebx stx $FF ; pushl %ebx lda $39 ; pushl %edi pha ; pushl %edi lda $3a ; pushl %edi pha ; pushl %edi tsx ; pushl %edi stx $FF ; pushl %edi lda $22 ; pushl %esi pha ; pushl %esi lda $23 ; pushl %esi pha ; pushl %esi tsx ; pushl %esi stx $FF ; pushl %esi .cfi_offset %esi, -20 ; .cfi_offset %edi, -16 ; .cfi_offset %ebx, -12 ; lda 16(%ebp) ; movb 16(%ebp), %al sta $03 ; movb 16(%ebp), %al lda #<12(%ebp) ; movl 12(%ebp), %ecx sta $fb ; movl 12(%ebp), %ecx lda #>12(%ebp) ; movl 12(%ebp), %ecx sta $fc ; movl 12(%ebp), %ecx lda #<8(%ebp) ; movl 8(%ebp), %edx sta $fd ; movl 8(%ebp), %edx lda #>8(%ebp) ; movl 8(%ebp), %edx sta $fe ; movl 8(%ebp), %edx lda $03 ; movb %al, -21(%ebp) sta -21(%ebp) ; movb %al, -21(%ebp) lda #<-20(%ebp) ; movzwl -20(%ebp), %ecx sta $fb ; movzwl -20(%ebp), %ecx lda #>-20(%ebp) ; movzwl -20(%ebp), %ecx sta $fc ; movzwl -20(%ebp), %ecx lda $03 ; movb %al, %ah sta $04 ; movb %al, %ah lda $39 ; movzwl %di, %ecx sta $fb ; movzwl %di, %ecx lda $3a ; movzwl %di, %ecx sta $fc ; movzwl %di, %ecx lda $05 ; movzwl %bx, %ecx sta $fb ; movzwl %bx, %ecx lda $06 ; movzwl %bx, %ecx sta $fc ; movzwl %bx, %ecx jsr z3dmattt ; calll __Z3dmattt jsr z6memoryihervtt ; calll __Z6memoryIhERVT_t lda #2 ; movb $2, (%eax) sta (%eax) ; movb $2, (%eax) pla $22 ; popl %esi pla $23 ; popl %esi tsx ; popl %esi stx $FF ; popl %esi lda $22 ; popl %esi pha ; popl %esi lda $23 ; popl %esi pha ; popl %esi tsx ; popl %esi stx $FF ; popl %esi pla $39 ; popl %edi pla $3a ; popl %edi tsx ; popl %edi stx $FF ; popl %edi lda $39 ; popl %edi pha ; popl %edi lda $3a ; popl %edi pha ; popl %edi tsx ; popl %edi stx $FF ; popl %edi pla $05 ; popl %ebx pla $06 ; popl %ebx tsx ; popl %ebx stx $FF ; popl %ebx lda $05 ; popl %ebx pha ; popl %ebx lda $06 ; popl %ebx pha ; popl %ebx tsx ; popl %ebx stx $FF ; popl %ebx pla $100 ; popl %ebp pla $100 ; popl %ebp tsx ; popl %ebp stx $FF ; popl %ebp lda $100 ; popl %ebp pha ; popl %ebp lda $100 ; popl %ebp pha ; popl %ebp tsx ; popl %ebp stx $FF ; popl %ebp rts ; retl .cfi_endproc ; .globl __ZN7ConsoleC2Ev ; .weak_def_can_be_hidden __ZN7ConsoleC2Ev ; .align 4, 0x90 ; zn7consolec2ev lda $100 ; pushl %ebp pha ; pushl %ebp lda $100 ; pushl %ebp pha ; pushl %ebp tsx ; pushl %ebp stx $FF ; pushl %ebp lda $FF ; movl %esp, %ebp sta $100 ; movl %esp, %ebp sta $100 ; movl %esp, %ebp lda $03 ; pushl %eax pha ; pushl %eax lda $04 ; pushl %eax pha ; pushl %eax tsx ; pushl %eax stx $FF ; pushl %eax lda #<8(%ebp) ; movl 8(%ebp), %eax sta $03 ; movl 8(%ebp), %eax lda #>8(%ebp) ; movl 8(%ebp), %eax sta $04 ; movl 8(%ebp), %eax pla $100 ; popl %ebp pla $100 ; popl %ebp tsx ; popl %ebp stx $FF ; popl %ebp lda $100 ; popl %ebp pha ; popl %ebp lda $100 ; popl %ebp pha ; popl %ebp tsx ; popl %ebp stx $FF ; popl %ebp rts ; retl .section __TEXT,__cstring,cstring_literals ; .asciz "Hello World?" ; .section __DATA,__data ; .globl _hello ## @hello ; .align 2 ; .long L_.str ; .db "--[[CABE:Thistle:" .db "]]error\"Thistle arch required.\"--" .orga .dw nmi .dw reset .dw irq