From 1e181bc22c37a2d34664cc421bb7ab02c7d8919b Mon Sep 17 00:00:00 2001 From: Elaina Claus Date: Sun, 7 Sep 2025 16:25:08 -0400 Subject: [PATCH] remove print_string macro --- include/fat32/FAT32_SYS.inc | 14 ++++++++++---- src/stage2/stage2.nasm | 33 ++++++++++++++++----------------- 2 files changed, 26 insertions(+), 21 deletions(-) diff --git a/include/fat32/FAT32_SYS.inc b/include/fat32/FAT32_SYS.inc index 348cae1..715186e 100644 --- a/include/fat32/FAT32_SYS.inc +++ b/include/fat32/FAT32_SYS.inc @@ -106,7 +106,9 @@ ALIGN 4, db 0x90 SearchFATDIR: __CDECL16_PROC_ENTRY .file_lookup: - print_string SearchFATDIR_info + __CDECL16_CALL_ARGS SearchFATDIR_info + __CDECL16_CALL PrintString, 1 + mov bx, fat32_state .load_first_dir: mov eax, dword [bx + FAT32_State_t.curr_dir_cluster_32] @@ -176,7 +178,9 @@ SearchFATDIR: ; TODO: move this to a seperate string search function .parse_dir: - print_string MaybeFound_Boot_info + __CDECL16_CALL_ARGS MaybeFound_Boot_info + __CDECL16_CALL PrintString, 1 + .lfn_check: ; check for ATTR_READ_ONLY | ATTR_HIDDEN | ATTR_SYSTEM | ATTR_VOLUME_ID (0x0F) in offset 11 ; TODO: going to skip LFN for now, since all valid volumes will have SFN's @@ -212,7 +216,8 @@ ALIGN 4, db 0x90 NextCluster: __CDECL16_PROC_ENTRY .func: - print_string NextFATCluster_info + __CDECL16_CALL_ARGS NextFATCluster_info + __CDECL16_CALL PrintString, 1 mov ax, FAT32_NextClusterData_t_size push ax ; length @@ -285,7 +290,8 @@ ALIGN 4, db 0x90 ReadFATCluster: __CDECL16_PROC_ENTRY .func: - print_string ReadFATCluster_info + __CDECL16_CALL_ARGS ReadFATCluster_info + __CDECL16_CALL PrintString, 1 mov bx, fat32_bpb mov si, fat32_ebpb diff --git a/src/stage2/stage2.nasm b/src/stage2/stage2.nasm index 26b4e44..b350088 100755 --- a/src/stage2/stage2.nasm +++ b/src/stage2/stage2.nasm @@ -34,13 +34,6 @@ %include "early_mem.inc" %include "error_codes.inc" -%macro print_string 1 - mov ax, %1 - push ax - call PrintString - add sp, 0x2 -%endmacro - section .text begin_text: ; dl = byte boot_drive @@ -145,38 +138,44 @@ main: call SetTextMode call disable_cursor_bios - print_string HelloPrompt_info - + + __CDECL16_CALL_ARGS HelloPrompt_info + __CDECL16_CALL PrintString, 1 + ; setup the early heap __CDECL16_CALL_ARGS early_heap_state - __CDECL16_CALL arena_init, 1 - + ; enable A20 gate call EnableA20 - print_string A20_Enabled_OK_info + __CDECL16_CALL_ARGS A20_Enabled_OK_info + __CDECL16_CALL PrintString, 1 ; get system memory map call GetMemoryMap - print_string MemoryMap_OK_info + __CDECL16_CALL_ARGS MemoryMap_OK_info + __CDECL16_CALL PrintString, 1 ; enter unreal mode (enter PM w/ 16 bit code, 32 bit flat memory model & return to real) ; ds, es will be set to the 64KiB STAGE2_SEGMENT, fs/gs will be flat/huge memory (4GiB) ; use __REFLAT macros to re-flat ds/es for easy transfers to >1MiB ; NOTE: if you modify a segment register you will need to re-unreal it call EnterUnrealMode - print_string UnrealMode_OK_info + __CDECL16_CALL_ARGS UnrealMode_OK_info + __CDECL16_CALL PrintString, 1 ; FAT Driver setup call InitFATDriver - print_string InitFATSYS_OK_info + __CDECL16_CALL_ARGS InitFATSYS_OK_info + __CDECL16_CALL PrintString, 1 ; ; Find first cluster of bootable file call SearchFATDIR push dword eax ; save first cluster of bootable file - print_string FileFound_OK_info - + __CDECL16_CALL_ARGS FileFound_OK_info + __CDECL16_CALL PrintString, 1 + pop dword eax push dword eax ; print Cluster of boot file call PrintDWORD ; void PrintDWORD(uint32_t dword)