summaryrefslogtreecommitdiff
path: root/ROMs/_old
diff options
context:
space:
mode:
Diffstat (limited to 'ROMs/_old')
-rw-r--r--ROMs/_old/hello_world.asm42
-rw-r--r--ROMs/_old/hello_world.q1bin0 -> 2151 bytes
-rw-r--r--ROMs/_old/manual.q1bin0 -> 10 bytes
-rw-r--r--ROMs/_old/write_display_direct.asm21
-rw-r--r--ROMs/_old/write_display_direct.q1bin0 -> 51 bytes
5 files changed, 63 insertions, 0 deletions
diff --git a/ROMs/_old/hello_world.asm b/ROMs/_old/hello_world.asm
new file mode 100644
index 0000000..1d812fb
--- /dev/null
+++ b/ROMs/_old/hello_world.asm
@@ -0,0 +1,42 @@
+.org $1FFF
+JMP program
+
+font:
+ .include "font.bin"
+
+program:
+ MOV 0, 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 V4, [$EFFF] ; Debug
+
+ MOV [V0 + $2003], V5 ; Read character (1FFF + 4 since jump address is 1FFF)
+ MOV V5, [$EFFF] ; Debug
+ AND V5, $01 ; Mask to get first bit (color)
+ MOV DX, V5
+ MOV V5, [$EFFF] ; Debug
+ MUL V5, V3 ; V5 = Character * Color (color index)
+ MOV AX, V5 ; Store result into V5
+
+ MOV V5, [$EFFF] ; Debug
+
+ MOVB V5, [V4 + $402F] ; Write character to screen memory
+ RET \ No newline at end of file
diff --git a/ROMs/_old/hello_world.q1 b/ROMs/_old/hello_world.q1
new file mode 100644
index 0000000..fd66ffe
--- /dev/null
+++ b/ROMs/_old/hello_world.q1
Binary files differ
diff --git a/ROMs/_old/manual.q1 b/ROMs/_old/manual.q1
new file mode 100644
index 0000000..b166c7a
--- /dev/null
+++ b/ROMs/_old/manual.q1
Binary files differ
diff --git a/ROMs/_old/write_display_direct.asm b/ROMs/_old/write_display_direct.asm
new file mode 100644
index 0000000..9fde417
--- /dev/null
+++ b/ROMs/_old/write_display_direct.asm
@@ -0,0 +1,21 @@
+.org $1FFF
+
+program:
+MOV $0000, V0
+MUL 32, 64 ; Set AX to 32 * 64
+MOV AX, V1 ; Copy AX to V1
+MOV 1, V2 ; Color value 1
+
+reset:
+MOV 0, V0
+INC V2 ; Increment color value
+
+draw:
+GT V0, V1 ; V0 > V1?
+BZ ; If number exceeds, branch to reset
+JMP reset
+
+MOVB V2, [V0+$402F] ; Set pixel at V0 to color 6
+INC V0 ; Increment V0
+
+JMP draw ; Repeat drawing \ No newline at end of file
diff --git a/ROMs/_old/write_display_direct.q1 b/ROMs/_old/write_display_direct.q1
new file mode 100644
index 0000000..4041649
--- /dev/null
+++ b/ROMs/_old/write_display_direct.q1
Binary files differ