From 16f3cb74564cf7c19da6e13666c98aca36094716 Mon Sep 17 00:00:00 2001 From: Melodi <62381002+Melodi17@users.noreply.github.com> Date: Tue, 5 Aug 2025 21:24:16 +1000 Subject: updates --- ROMs/hello_world.dat | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 ROMs/hello_world.dat (limited to 'ROMs/hello_world.dat') diff --git a/ROMs/hello_world.dat b/ROMs/hello_world.dat new file mode 100644 index 0000000..6cdacff --- /dev/null +++ b/ROMs/hello_world.dat @@ -0,0 +1,33 @@ +.org $1FFF +JMP program + +font: + .include "font.bin" + +program: + MOV 13, V0 ; Load character #12 + MOV 0, V1 ; X position + MOV 0, V2 ; Y position + MOV 1, V3 ; Color (1 = white) + CALL write_char ; Call function to write character + SUS + +write_char: + ; V0: Character to write + ; V1: X position + ; V2: Y position + ; V3: Color + ; Write a character to the screen at (V1, V2) with color V3 + + MUL V0, 64 ; V0 = Character * 64 (character size) + MOV AX, V0 ; Store result back into character + + MUL V2, 64 + ADD AX, V1 + MOV AX, V4 ; V4 = X position + Y position * 64 (screen index) + + MOV [V0 + $1FFF], V5 ; Read character + MUL V5, V3 ; V5 = Character * Color (color index) + MOV AX, V5 ; Store result into V5 + MOV V5, [V4 + $3FFF] ; Write character to screen memory + RET \ No newline at end of file -- cgit v1.3.1