aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Tuomi <jans.tuomi@gmail.com>2023-11-04 16:13:18 +0200
committerJan Tuomi <jans.tuomi@gmail.com>2023-11-04 16:13:18 +0200
commitc28c5320a4084c1c728c10ec35196630e35d94db (patch)
treeab9d5fbd0db55cbab3d6466d505e2839cad5c657
parent066ad25889c143f62a817248f7fbf66490a7f4a3 (diff)
Fix bugs
-rw-r--r--asm/text_mode.atk1627
-rw-r--r--digital/atk16_mem.dig2
2 files changed, 17 insertions, 12 deletions
diff --git a/asm/text_mode.atk16 b/asm/text_mode.atk16
index 9a57954..54741dc 100644
--- a/asm/text_mode.atk16
+++ b/asm/text_mode.atk16
@@ -9,9 +9,9 @@
@label main
cursor_to_line RC 1
- put_string RC RB " HELLO CORECAMP"
+ put_string RC RB " HELLO #vaincoodijutut"
new_line RC
- put_string RC RB " »»»»»»» BY JAN"
+ put_string RC RB " »»»» BY @kal_jan »»»»"
new_line RC
new_line RC
put_string RC RB " > "
@@ -22,32 +22,37 @@
jpi loop
@label keyboard_isr
- stack_stash RA RB
+ 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
+ mov RA RD ; RD := character code
+ subi RD 5 RD ; if code == 10 (enter key), then run newline handler
subi RD 5 RD
- subi RD 5 RD
- bri zero keyboard_isr_clear
- mov RA 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
+ str RA RC ; else code is not special; write it to text buffer
addi RC 1 RC
jpi keyboard_isr_end
-@label keyboard_isr_clear
+
+@label keyboard_isr_newline
new_line RC
put_string RC RB " > "
- addi RC 1 RC
+ 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
+ stack_restore RA RB RD
rti
diff --git a/digital/atk16_mem.dig b/digital/atk16_mem.dig
index cd6b6be..1ec8f11 100644
--- a/digital/atk16_mem.dig
+++ b/digital/atk16_mem.dig
@@ -34,7 +34,7 @@
</entry>
<entry>
<string>Data</string>
- <data>4014,2a00,6019,8000,8000,8000,8000,8000,8000,8000,8000,8000,8000,8000,8000,8000,0096,001a,001a,001a,8000,e000,e001,e002,e800,f800,4855,f000,4017,2000,4200,3008,6000,6001,f840,4422,2480,4220,3088,1488,4248,3088,1488,4245,3088,1488,424c,3088,1488,424c,3088,1488,424f,3088,1488,4220,3088,1488,4243,3088,1488,424f,3088,1488,4252,3088,1488,4245,3088,1488,4243,3088,1488,4241,3088,1488,424d,3088,1488,4250,3088,1488,14b5,1488,14b7,4220,3088,1488,42bb,3088,1488,42bb,3088,1488,42bb,3088,1488,42bb,3088,1488,42bb,3088,1488,42bb,3088,1488,42bb,3088,1488,4220,3088,1488,4242,3088,1488,4259,3088,1488,4220,3088,1488,424a,3088,1488,4241,3088,1488,424e,3088,1488,14b5,1488,14b7,14b5,1488,14b7,4220,3088,1488,423e,3088,1488,4220,3088,1488,4017,2000,4201,3008,61ff,3140,1b48,3148,1b48,4016,2000,2000,4215,2240,1600,16e9,16e9,8407,1600,16e9,16d9,8410,3080,1488,6012,14b5,1488,14b7,4220,3088,1488,423e,3088,1488,4220,3088,1488,1488,1489,4220,3088,1488,1489,3148,1b48,3140,1b48,e000</data>
+ <data>4014,2a00,6019,8000,8000,8000,8000,8000,8000,8000,8000,8000,8000,8000,8000,8000,00c0,001a,001a,001a,8000,e000,e001,e002,e800,f800,4855,f000,4017,2000,4200,3008,6000,6001,f840,4422,2480,4220,3088,1488,4248,3088,1488,4245,3088,1488,424c,3088,1488,424c,3088,1488,424f,3088,1488,4220,3088,1488,4223,3088,1488,4276,3088,1488,4261,3088,1488,4269,3088,1488,426e,3088,1488,4263,3088,1488,426f,3088,1488,426f,3088,1488,4264,3088,1488,4269,3088,1488,426a,3088,1488,4275,3088,1488,4274,3088,1488,4275,3088,1488,4274,3088,1488,14b5,1488,14b7,4220,3088,1488,42bb,3088,1488,42bb,3088,1488,42bb,3088,1488,42bb,3088,1488,4220,3088,1488,4242,3088,1488,4259,3088,1488,4220,3088,1488,4240,3088,1488,426b,3088,1488,4261,3088,1488,426c,3088,1488,425f,3088,1488,426a,3088,1488,4261,3088,1488,426e,3088,1488,4220,3088,1488,42bb,3088,1488,42bb,3088,1488,42bb,3088,1488,42bb,3088,1488,14b5,1488,14b7,14b5,1488,14b7,4220,3088,1488,423e,3088,1488,4220,3088,1488,4017,2000,4201,3008,61ff,3140,1b48,3148,1b48,3158,1b48,4016,2000,2000,4215,2240,1600,16e9,16e9,8407,1600,16e9,16d9,8410,3080,1488,6012,14b5,1488,14b7,4220,3088,1488,423e,3088,1488,4220,3088,1488,6005,1489,4220,3088,1488,1489,3158,1b48,3148,1b48,3140,1b48,e000</data>
</entry>
</elementAttributes>
<pos x="740" y="100" />