diff options
| author | Jan Tuomi <jan@jantuomi.fi> | 2024-04-26 15:40:14 +0300 |
|---|---|---|
| committer | Jan Tuomi <jan@jantuomi.fi> | 2024-04-26 15:40:14 +0300 |
| commit | 7ca56c1a730fcecd0fe3af5e6b652fa09514a18b (patch) | |
| tree | e2ef6a4d28fa26adf11e00d138ef21b8316497f6 /resources/asm/text_mode.atk16 | |
| parent | 2b18b320e97260f1d27143a37fe14953cf62e56d (diff) | |
Refactor project structure, add README and LICENSE
Diffstat (limited to 'resources/asm/text_mode.atk16')
| -rw-r--r-- | resources/asm/text_mode.atk16 | 69 |
1 files changed, 0 insertions, 69 deletions
diff --git a/resources/asm/text_mode.atk16 b/resources/asm/text_mode.atk16 deleted file mode 100644 index 1761361..0000000 --- a/resources/asm/text_mode.atk16 +++ /dev/null @@ -1,69 +0,0 @@ -@use ext_string_io:* - -@include %bootstrap -@include %std_mem - -@data text_buffer_size 2048 - -@label main - ; use memset to clear the text buffer - ldi vt_text_mem RA ; RA := text buffer address pointer - ldr RA RA ; RA := text buffer address - ldi text_buffer_size RB ; RB := pointer to 1024 - ldr RB RB ; RB := 1024 - ldi 0 RC ; RC := 0 - calli memset - - 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 - -@address vt_ISR0 -@begin_override - keyboard_isr -@end_override |
