Added port support, and removed things from BASIC_DEVELOPMENT it does not yet support

This commit is contained in:
deadvey
2026-03-04 23:09:29 +00:00
parent beca477ff9
commit 43d0a020f7
6 changed files with 33 additions and 84 deletions

View File

@@ -354,12 +354,12 @@ disk_list_contents:
popa
ret
disk_file_list:
ret
disk_file_exists:
ret
disk_file_size:
ret
disk_file_list:
ret
disk_remove_file:
ret
disk_rename_file:

View File

@@ -1,4 +1,5 @@
; AX = key pressed
; Waits until key is pressed before returning
os_read_input:
mov ah, 11h ; BIOS call to check for key
int 16h ; Interrupt
@@ -12,6 +13,16 @@ os_read_input:
int 16h
ret
; AX = key pressed
; Returns straight away
keyboard_check_key:
xor ax,ax
mov ah, 11h ; BIOS call to check for key
int 16h ; Interrupt
jz .no_key
.no_key:
xor ax,ax
ret
; -------------------------------------------
; IN:
; AX = output address
@@ -23,11 +34,6 @@ keyboard_display_input:
mov ax, bx
mov bx,20
.loop:
jmp .check_key_pressed
jmp .loop
.check_key_pressed:
call os_read_input
@@ -43,7 +49,8 @@ keyboard_display_input:
dec bx
cmp bx, 0
jae .print_current_input ; Echo the user input back
je .enter_key ; Once the limit is reached just enter it
ja .print_current_input ; Echo the user input back
jmp .check_key_pressed
@@ -59,7 +66,7 @@ keyboard_display_input:
.backspace:
cmp bx, 20 ; Cannot backspace if the cursor is at the start
jb .move_cursor_back ; then .move_cursor_back
jmp .loop ; Else .loop
jmp .check_key_pressed ; Else check the next key
.move_cursor_back:
mov ah, 0Eh
@@ -73,7 +80,7 @@ keyboard_display_input:
inc bx
dec di
jmp .loop
jmp .check_key_pressed
.print_current_input: ; Echo back that character and return the key inputing
stosb
@@ -81,9 +88,9 @@ keyboard_display_input:
int 10h
jmp .check_key_pressed
keyboard_get_cursor_pos: ;TODO
keyboard_get_cursor_pos:
ret
keyboard_wait_for_key: ;TODO
keyboard_wait_for_key:
ret
keyboard_show_cursor:
ret
@@ -91,5 +98,3 @@ keyboard_hide_cursor:
ret
keyboard_move_cursor:
ret
keyboard_check_key:
ret

View File

@@ -1,7 +1,20 @@
; IN:
; DX = port address
; AL = byte
port_byte_out:
pusha
out dx,al
popa
ret
; -----------------------------------------
; IN:
; DX = port address
; OUT:
; AL = byte from port
port_byte_in:
in al, dx
ret
port_serial_enable:
ret
port_send_via_serial:

View File

@@ -331,7 +331,5 @@ string_lower_case: ; to lower case
popa
ret
string_input:
ret
string_print_2hex:
ret