aboutsummaryrefslogtreecommitdiffstats
path: root/asm/text_mode.atk16
diff options
context:
space:
mode:
Diffstat (limited to 'asm/text_mode.atk16')
-rw-r--r--asm/text_mode.atk1658
1 files changed, 0 insertions, 58 deletions
diff --git a/asm/text_mode.atk16 b/asm/text_mode.atk16
deleted file mode 100644
index f20eac9..0000000
--- a/asm/text_mode.atk16
+++ /dev/null
@@ -1,58 +0,0 @@
-@opt stack_pointer RG
-@opt csr_scratch RH
-@use ext_std:*
-@use ext_string_io:*
-
-; bootstrap code (must be called to set up mandatory data)
-; will jump to label main
-@include bootstrap
-
-@label main
- cursor_to_line RC 1
- put_string RC RB " HELLO #vaincoodijutut"
- new_line RC
- put_string RC RB " »»»» BY @kal_jan »»»»"
- new_line RC
- new_line RC
- put_string RC RB " > "
-
- set_graphics_mode gr_text_mode
-
-@label loop
- jpi loop
-
-@label keyboard_isr
- stack_stash RA RB RD
- ldi vt_kb_pp_addr RA ; RA := Keyboard peripheral address pointer
- ldr RA RA ; RA := Keyboard peripheral address deref
- ldr RA RA ; RA := <16-bit keyboard character code> from MMIO register
- ldi vt_term_pp_addr RB ; RB := Terminal peripheral address pointer
- ldr RB RB ; RB := Terminal peripheral address deref
-
- mov RA RD ; RD := character code
- subi RD 5 RD ; if code == 10 (enter key), then run newline handler
- subi RD 5 RD
- bri zero keyboard_isr_newline
-
- mov RA RD ; if code == 8 (backspace key), then run backspace handler
- subi RD 5 RD
- subi RD 3 RD
-
- bri zero keyboard_isr_backspace
- str RA RC ; else code is not special; write it to text buffer
- addi RC 1 RC
- jpi keyboard_isr_end
-
-@label keyboard_isr_newline
- new_line RC
- put_string RC RB " > "
- jpi keyboard_isr_end
-
-@label keyboard_isr_backspace
- subi RC 1 RC
- put_char RC RB " "
- subi RC 1 RC
-
-@label keyboard_isr_end
- stack_restore RA RB RD
- rti