aboutsummaryrefslogtreecommitdiffstats
path: root/resources/asm/test_py_src.atk16
diff options
context:
space:
mode:
Diffstat (limited to 'resources/asm/test_py_src.atk16')
-rw-r--r--resources/asm/test_py_src.atk16301
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