diff options
Diffstat (limited to 'resources/asm/test_py_src.atk16')
| -rw-r--r-- | resources/asm/test_py_src.atk16 | 301 |
1 files changed, 0 insertions, 301 deletions
diff --git a/resources/asm/test_py_src.atk16 b/resources/asm/test_py_src.atk16 deleted file mode 100644 index bd1d93f..0000000 --- a/resources/asm/test_py_src.atk16 +++ /dev/null @@ -1,301 +0,0 @@ -;; BEGIN BOOTSTRAP - -@use ext_std:* - -@let sp RH ; stack pointer (points to empty slot at top of stack) -@let fp RG ; frame pointer (points to base of currently active frame) - -@let vector_table 0x10 -@let vt_ISR0 0x10 ; ISR0 -@let vt_ISR1 0x11 ; ISR1 -@let vt_ISR2 0x12 ; ISR2 -@let vt_ISR3 0x13 ; ISR3 -@let vt_stack_addr 0x14 ; Stack address -@let vt_term_pp_addr 0x15 ; Terminal peripheral address -@let vt_kb_pp_addr 0x16 ; Keyboard peripheral address -@let vt_gr_mode_addr 0x17 ; Graphics mode setting address -@let vt_sprite_mem 0x18 ; Sprite memory address -@let vt_text_mem 0x19 ; Text memory buffer address - -@let stack_segment 0x8000 -@let mmio_segment 0xE7F0 -@let terminal_addr 0xE7F0 -@let keyboard_addr 0xE7F1 -@let gr_mode_addr 0xE7F2 -@let sprite_mem 0xE800 -@let text_mem 0xF800 - -@let gr_disabled_mode 0b00 -@let gr_text_mode 0b01 -@let gr_sprite_mode 0b10 - -@address 0x0 - ldi vt_stack_addr RA - ldr RA SP - mov SP FP - jpi program_segment - -@address vector_table - keyboard_isr ; 0x10 - hlt_isr ; 0x11 - hlt_isr ; 0x12 - hlt_isr ; 0x13 - stack_segment ; 0x14 - terminal_addr ; 0x15 - keyboard_addr ; 0x16 - gr_mode_addr ; 0x17 - sprite_mem ; 0x18 - text_mem ; 0x19 - -@label hlt_isr - ldi 0x55 RE - hlt - -@label keyboard_isr - spu RA - spu RB - ldi vt_kb_pp_addr RA - ldr RA RA - ldr RA RA - ldi vt_term_pp_addr RB - ldr RB RB - str RA RB - spo RB - spo RA - rti - -@label program_segment - ldi vt_gr_mode_addr RA - ldr RA RA - ldi gr_disabled_mode RB - str RB RA - - jpi main - -;; END BOOTSTRAP - -@label text_mode - 1 -@label graphics_mode_addr_p - 23 -@label text_mem_addr_p - 25 -@label int_0 - 65 -@label int_6 - 26 - -; <ast.FunctionDef object at 0x104969570> -@label nth_letter -; stack frame with offsets -; n 0 -; <ast.Return object at 0x1049694b0> -; <ast.Add object at 0x104686bf0> -; BinOp lhs <ast.BinOp object at 0x104969480> -; <ast.Call object at 0x104969450> -; Builtin call ord [<ast.Constant object at 0x1049693c0>] -; <ast.Constant object at 0x1049693c0> - ldi int_0 RC - ldr RC RC ; int_0 = 65 - spu RC -; BinOp rhs <ast.BinOp object at 0x104969480> -; <ast.Name object at 0x104969390> (n) - ldi 0 RC - add FP RC RC - ldr RC RC - spu RC - spo RD - spo RC - add RC RD RC - spu RC -; return value is on top of stack -; return from function - subi FP 1 FP - ldr FP RB - jpr RB - -@label main -; stack frame with offsets -; graphics_mode_addr 0 -; text_mem_addr 1 -; i 2 - addi SP 3 SP -; <ast.Assign object at 0x1049698d0> -; assigning graphics_mode_addr at FP + 0 -; evaluating value to be assigned -; <ast.Call object at 0x104969870> -; Builtin call load [<ast.Name object at 0x1049697e0>] -; <ast.Name object at 0x1049697e0> (GRAPHICS_MODE_ADDR_P) - ldi graphics_mode_addr_p RC - ldr RC RC - spu RC -; (load) dereferencing top of stack - spo RC - ldr RC RC - spu RC -; assigning stack address (FP + 0) := top of stack - spo RA - ldi 0 RB - add RB FP RB - str RA RB -; <ast.Assign object at 0x1049697b0> -; assigning text_mem_addr at FP + 1 -; evaluating value to be assigned -; <ast.Call object at 0x104969750> -; Builtin call load [<ast.Name object at 0x1049696c0>] -; <ast.Name object at 0x1049696c0> (TEXT_MEM_ADDR_P) - ldi text_mem_addr_p RC - ldr RC RC - spu RC -; (load) dereferencing top of stack - spo RC - ldr RC RC - spu RC -; assigning stack address (FP + 1) := top of stack - spo RA - ldi 1 RB - add RB FP RB - str RA RB -; <ast.Call object at 0x104969660> -; Builtin call store [<ast.Name object at 0x1049695d0>, <ast.Name object at 0x1049695a0>] -; <ast.Name object at 0x1049695d0> (graphics_mode_addr) - ldi 0 RA - add FP RA RA - ldr RA RA - spu RA -; <ast.Name object at 0x1049695a0> (TEXT_MODE) - ldi text_mode RA - ldr RA RA - spu RA - spo RB - spo RA - str RB RA - ldi 0 RA - spu RA -; popping free-standing Expr result from stack - spo RA -; <ast.Assign object at 0x104969330> -; assigning i at FP + 2 -; evaluating value to be assigned -; <ast.Constant object at 0x1049692d0> - ldi 0 RC - spu RC -; assigning stack address (FP + 2) := top of stack - spo RA - ldi 2 RB - add RB FP RB - str RA RB -; <ast.While object at 0x1049692a0> -@label while_test_1 -; <ast.Compare object at 0x104969270> -; <ast.Name object at 0x104969240> (i) - ldi 2 RB - add FP RB RB - ldr RB RB - spu RB -; <ast.Constant object at 0x104969210> - ldi int_6 RB - ldr RB RB ; int_6 = 26 - spu RB -; Comparing <ast.Name object at 0x104969240> <ast.Lt object at 0x104686440> <ast.Constant object at 0x104969210> - spo RC - spo RB - sub RB RC RB - bri carry Compare_true_4 - ldi 0 RB - spu RB - jpi Compare_end_5 -@label compare_true_4 - ldi 1 RB - spu RB -@label compare_end_5 - spo RA - addi RA 0 RA - bri zero While_else_2 -; <ast.Call object at 0x1049691b0> -; Builtin call store [<ast.BinOp object at 0x104969120>, <ast.Call object at 0x104969090>] -; <ast.Add object at 0x104686bf0> -; BinOp lhs <ast.BinOp object at 0x104969120> -; <ast.Name object at 0x1049690f0> (text_mem_addr) - ldi 1 RA - add FP RA RA - ldr RA RA - spu RA -; BinOp rhs <ast.BinOp object at 0x104969120> -; <ast.Name object at 0x1049690c0> (i) - ldi 2 RA - add FP RA RA - ldr RA RA - spu RA - spo RB - spo RA - add RA RB RA - spu RA -; <ast.Call object at 0x104969090> -; Call function nth_letter - spu FP - ldi 0 RA - spu RA -; <ast.Name object at 0x104969030> (i) - ldi 2 RA - add FP RA RA - ldr RA RA - spu RA - subi SP 2 FP -; set up return address and jump to subroutine - lpc RA - addi RA 4 RA - str RA FP - addi FP 1 FP - jpi nth_letter - spo RA - mov FP SP - spo FP - spu RA - spo RB - spo RA - str RB RA - ldi 0 RA - spu RA -; popping free-standing Expr result from stack - spo RA -; <ast.Assign object at 0x104968580> -; assigning i at FP + 2 -; evaluating value to be assigned -; <ast.Add object at 0x104686bf0> -; BinOp lhs <ast.BinOp object at 0x104968550> -; <ast.Name object at 0x104968fd0> (i) - ldi 2 RC - add FP RC RC - ldr RC RC - spu RC -; BinOp rhs <ast.BinOp object at 0x104968550> -; <ast.Constant object at 0x104968fa0> - ldi 1 RC - spu RC - spo RD - spo RC - add RC RD RC - spu RC -; assigning stack address (FP + 2) := top of stack - spo RA - ldi 2 RB - add RB FP RB - str RA RB - jpi While_test_1 -@label while_else_2 -@label while_end_3 -; <ast.While object at 0x104968f70> -@label while_test_7 -; <ast.Constant object at 0x104968f40> - ldi 1 RB - spu RB - spo RA - addi RA 0 RA - bri zero While_else_8 -; <ast.Pass object at 0x104968f10> - jpi While_test_7 -@label while_else_8 -@label while_end_9 - mov FP SP - hlt |
