commit
8fb3e8a982
2
disk.asm
2
disk.asm
|
@ -23,7 +23,7 @@ read_sector:
|
|||
pop r3
|
||||
ret
|
||||
|
||||
; wrtie a sector from the specified memory buffer
|
||||
; write a sector from the specified memory buffer
|
||||
; inputs:
|
||||
; r0: sector number
|
||||
; r1: disk ID
|
||||
|
|
2
main.asm
2
main.asm
|
@ -33,7 +33,7 @@ entry_seed_loop:
|
|||
entry_seed_done:
|
||||
mov [RANDOM_STATE], r0
|
||||
|
||||
; set the stach pointer again to pop the return address and flags off the stack
|
||||
; set the stack pointer again to pop the return address and flags off the stack
|
||||
mov rsp, SYSTEM_STACK
|
||||
|
||||
; set the interrupt vector for interrupt 0xFF - vsync
|
||||
|
|
12
memory.asm
12
memory.asm
|
@ -4,7 +4,7 @@
|
|||
; if the source and destination overlap, the behavior is undefined
|
||||
; inputs:
|
||||
; r0: pointer to source
|
||||
; r1: pointer to destinaton
|
||||
; r1: pointer to destination
|
||||
; r2: number of bytes to copy
|
||||
; outputs:
|
||||
; none
|
||||
|
@ -29,7 +29,7 @@ copy_memory_bytes_loop:
|
|||
; if the source and destination overlap, the behavior is undefined
|
||||
; inputs:
|
||||
; r0: pointer to source
|
||||
; r1: pointer to destinaton
|
||||
; r1: pointer to destination
|
||||
; r2: number of words to copy
|
||||
; outputs:
|
||||
; none
|
||||
|
@ -53,7 +53,7 @@ copy_memory_words_loop:
|
|||
; compare specified number of bytes from source pointer with destination pointer
|
||||
; inputs:
|
||||
; r0: pointer to source
|
||||
; r1: pointer to destinaton
|
||||
; r1: pointer to destination
|
||||
; r2: number of bytes to compare
|
||||
; outputs:
|
||||
; Z flag
|
||||
|
@ -69,7 +69,7 @@ compare_memory_bytes_loop:
|
|||
inc r0
|
||||
inc r1
|
||||
loop compare_memory_bytes_loop
|
||||
; set Z flag if we reach thie point
|
||||
; set Z flag if we reach this point
|
||||
mov r0, 0
|
||||
cmp r0, 0
|
||||
compare_memory_bytes_not_equal:
|
||||
|
@ -81,7 +81,7 @@ compare_memory_bytes_not_equal:
|
|||
; compare specified number of words from source pointer with destination pointer
|
||||
; inputs:
|
||||
; r0: pointer to source
|
||||
; r1: pointer to destinaton
|
||||
; r1: pointer to destination
|
||||
; r2: number of words to compare
|
||||
; outputs:
|
||||
; Z flag
|
||||
|
@ -97,7 +97,7 @@ compare_memory_words_loop:
|
|||
add r0, 4
|
||||
add r1, 4
|
||||
loop compare_memory_words_loop
|
||||
; set Z flag if we reach thie point
|
||||
; set Z flag if we reach this point
|
||||
mov r0, 0
|
||||
cmp r0, 0
|
||||
compare_memory_words_not_equal:
|
||||
|
|
|
@ -143,7 +143,7 @@ print_character_to_monitor_end:
|
|||
; none
|
||||
; outputs:
|
||||
; none
|
||||
; FIXME: this shouldnt have hard coded values
|
||||
; FIXME: this shouldn't have hard coded values
|
||||
; also this is extremely slow and bad
|
||||
scroll_monitor_console:
|
||||
push r0
|
||||
|
|
16
overlay.asm
16
overlay.asm
|
@ -89,7 +89,7 @@ fill_overlay:
|
|||
mov r2, r1
|
||||
or r2, 0x80000100 ; bitwise or the overlay number with the command to get the overlay size
|
||||
or r1, 0x80000200 ; bitwise or the overlay number with the command to get the framebuffer pointer
|
||||
in r1, r1 ; r1: overlay framebuffer poiner
|
||||
in r1, r1 ; r1: overlay framebuffer pointer
|
||||
in r2, r2
|
||||
mov r3, r2
|
||||
and r2, 0x0000FFFF ; r2: X size
|
||||
|
@ -122,7 +122,7 @@ draw_pixel_to_overlay:
|
|||
mov r4, r3
|
||||
or r4, 0x80000100 ; bitwise or the overlay number with the command to get the overlay size
|
||||
or r3, 0x80000200 ; bitwise or the overlay number with the command to get the framebuffer pointer
|
||||
in r3, r3 ; r3: overlay framebuffer poiner
|
||||
in r3, r3 ; r3: overlay framebuffer pointer
|
||||
in r4, r4
|
||||
and r4, 0x0000FFFF ; r4: overlay width
|
||||
|
||||
|
@ -149,7 +149,7 @@ draw_filled_rectangle_to_overlay:
|
|||
mov r6, r5
|
||||
or r6, 0x80000100 ; bitwise or the overlay number with the command to get the overlay size
|
||||
or r5, 0x80000200 ; bitwise or the overlay number with the command to get the framebuffer pointer
|
||||
in r5, r5 ; r5: overlay framebuffer poiner
|
||||
in r5, r5 ; r5: overlay framebuffer pointer
|
||||
in r6, r6
|
||||
and r6, 0x0000FFFF ; r6: overlay width
|
||||
|
||||
|
@ -176,7 +176,7 @@ draw_tile_to_overlay:
|
|||
mov r4, r3
|
||||
or r4, 0x80000100 ; bitwise or the overlay number with the command to get the overlay size
|
||||
or r3, 0x80000200 ; bitwise or the overlay number with the command to get the framebuffer pointer
|
||||
in r8, r3 ; r8: overlay framebuffer poiner
|
||||
in r8, r3 ; r8: overlay framebuffer pointer
|
||||
in r9, r4
|
||||
and r9, 0x0000FFFF ; r9: overlay width
|
||||
|
||||
|
@ -208,7 +208,7 @@ draw_font_tile_to_overlay:
|
|||
mov r6, r5
|
||||
or r6, 0x80000100 ; bitwise or the overlay number with the command to get the overlay size
|
||||
or r5, 0x80000200 ; bitwise or the overlay number with the command to get the framebuffer pointer
|
||||
in r8, r5 ; r8: overlay framebuffer poiner
|
||||
in r8, r5 ; r8: overlay framebuffer pointer
|
||||
in r9, r6
|
||||
and r9, 0x0000FFFF ; r9: overlay width
|
||||
|
||||
|
@ -245,7 +245,7 @@ draw_format_str_to_overlay:
|
|||
mov r6, r5
|
||||
or r6, 0x80000100 ; bitwise or the overlay number with the command to get the overlay size
|
||||
or r5, 0x80000200 ; bitwise or the overlay number with the command to get the framebuffer pointer
|
||||
in r8, r5 ; r8: overlay framebuffer poiner
|
||||
in r8, r5 ; r8: overlay framebuffer pointer
|
||||
in r9, r6
|
||||
and r9, 0x0000FFFF ; r9: overlay width
|
||||
|
||||
|
@ -306,7 +306,7 @@ draw_decimal_to_overlay:
|
|||
mov r6, r5
|
||||
or r6, 0x80000100 ; bitwise or the overlay number with the command to get the overlay size
|
||||
or r5, 0x80000200 ; bitwise or the overlay number with the command to get the framebuffer pointer
|
||||
in r8, r5 ; r8: overlay framebuffer poiner
|
||||
in r8, r5 ; r8: overlay framebuffer pointer
|
||||
in r9, r6
|
||||
and r9, 0x0000FFFF ; r9: overlay width
|
||||
|
||||
|
@ -342,7 +342,7 @@ draw_hex_to_overlay:
|
|||
mov r6, r5
|
||||
or r6, 0x80000100 ; bitwise or the overlay number with the command to get the overlay size
|
||||
or r5, 0x80000200 ; bitwise or the overlay number with the command to get the framebuffer pointer
|
||||
in r8, r5 ; r8: overlay framebuffer poiner
|
||||
in r8, r5 ; r8: overlay framebuffer pointer
|
||||
in r9, r6
|
||||
and r9, 0x0000FFFF ; r9: overlay width
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
; if the source and destination overlap, the behavior is undefined
|
||||
; inputs:
|
||||
; r0: pointer to source
|
||||
; r1: pointer to destinaton
|
||||
; r1: pointer to destination
|
||||
; outputs:
|
||||
; none
|
||||
copy_string:
|
||||
|
@ -28,7 +28,7 @@ copy_string_loop:
|
|||
; compare string from source pointer with destination pointer
|
||||
; inputs:
|
||||
; r0: pointer to source
|
||||
; r1: pointer to destinaton
|
||||
; r1: pointer to destination
|
||||
; outputs:
|
||||
; Z flag
|
||||
compare_string:
|
||||
|
@ -40,7 +40,7 @@ compare_string_loop:
|
|||
ifnz jmp compare_string_not_equal
|
||||
|
||||
; if this is the end of string 1, then this must also be the end of string 2
|
||||
; the cmp above alredy ensured that both strings have a null-terminator here
|
||||
; the cmp above already ensured that both strings have a null-terminator here
|
||||
cmp.8 [r0], 0
|
||||
ifz jmp compare_string_equal
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user