From c1e17503d12375aa2ce3e32fff0cf3d624f19f13 Mon Sep 17 00:00:00 2001
From: Robert Pengelly <robertapengelly@hotmail.com>
Date: Wed, 14 Aug 2024 09:58:48 +0100
Subject: [PATCH] Load programs only

---
 build/chimaera.img       | Bin 368640 -> 368640 bytes
 build/chimaera.vhd       | Bin 34120704 -> 34120704 bytes
 src/apps/hello/hello.asm | 169 +++++++++++++++++++++++++++++++++++++++
 src/kernel/int21.asm     |  70 +++++++++++-----
 src/kernel/kernel.asm    |   2 +-
 src/kernel/prog.asm      |  12 +--
 src/lib/crt/crt0.asm     |   2 +
 7 files changed, 224 insertions(+), 31 deletions(-)

diff --git a/build/chimaera.img b/build/chimaera.img
index a28c5360de2a52173e1910e83c15486619a68741..b3e0a5e31ae9b55348b009f87f1b27250b64b7f8 100644
GIT binary patch
delta 6285
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

delta 6348
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
ScxZS$-i^BAdC>}g&Ho33$y;au

diff --git a/build/chimaera.vhd b/build/chimaera.vhd
index 2321841972c112fd147baee467c70c6f5ed7fbc9..26c7b5c8a7edac55bfcdf61bab16d2dbb49c7763 100644
GIT binary patch
delta 8930
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

delta 8984
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

diff --git a/src/apps/hello/hello.asm b/src/apps/hello/hello.asm
index 6180d5f..bba6775 100644
--- a/src/apps/hello/hello.asm
+++ b/src/apps/hello/hello.asm
@@ -1,4 +1,5 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
 ;; @file            hello.asm
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 %ifndef     HEX
@@ -16,8 +17,166 @@
 global      _main
 _main:
 
+;    mov     ax,     HEX (2522)
+;    mov     dx,     offset _int22_handler
+;    int     HEX (21)
+    
     mov     bx,     offset _msg_hello
     call    _writestr
+    
+;    mov     bp,     sp
+;    
+;    mov     ax,     bp
+;    call    _writehex
+;    call    _crlf
+;    
+;    mov     ax,     word ptr [bp]
+;    call    _writehex
+;    call    _crlf
+;    
+;    mov     ax,     word ptr [bp + 2]
+;    call    _writehex
+;    call    _crlf
+;    
+;    mov     ax,     word ptr [bp + 4]
+;    call    _writehex
+;    call    _crlf
+;    
+;    mov     ax,     word ptr [bp + 6]
+;    call    _writehex
+;    call    _crlf
+;    
+;    cli
+;    hlt
+;    
+;    mov     ah,     HEX (62)
+;    int     HEX (21)
+;    
+;    mov     ax,     bx
+;    call    _writehex
+;    call    _crlf
+;    
+;    mov     ax,     ss
+;    call    _writehex
+;    call    _crlf
+;    
+;    mov     ax,     sp
+;    call    _writehex
+;    call    _crlf
+;    
+;    mov     bp,     sp
+;    
+;    mov     ax,     [bp]
+;    call    _writehex
+;    call    _crlf
+;    
+;    mov     ax,     HEX (4B01)
+;    mov     bx,     offset _param_blk
+;    mov     dx,     offset _app_name
+;    int     HEX (21)
+;    
+;    mov     ah,     HEX (62)
+;    int     HEX (21)
+;    
+;    mov     ax,     bx
+;    call    _writehex
+;    call    _crlf
+;    
+;    mov     ax,     ss
+;    call    _writehex
+;    call    _crlf
+;    
+;    mov     ax,     sp
+;    call    _writehex
+;    call    _crlf
+;    
+;    call    _writehex
+;    call    _crlf
+;    
+;    mov     bp,     sp
+;    
+;    mov     ax,     bp
+;    call    _writehex
+;    call    _crlf
+;    
+;    mov     ax,     word ptr [bp]
+;    call    _writehex
+;    call    _crlf
+;    
+;    mov     ax,     word ptr [bp + 2]
+;    call    _writehex
+;    call    _crlf
+;    
+;    mov     ax,     word ptr [bp + 4]
+;    call    _writehex
+;    call    _crlf
+;    
+;    mov     ax,     word ptr [bp + 6]
+;    call    _writehex
+;    call    _crlf
+;    
+;    mov     bp,     sp
+;    
+;    mov     ax,     [bp + 0]
+;    call    _writehex
+;    call    _crlf
+;    
+;    mov     ax,     [bp + 2]
+;    call    _writehex
+;    call    _crlf
+;    
+;    mov     ax,     [bp + 4]
+;    call    _writehex
+;    call    _crlf
+;    
+;    mov     bx,     offset _param_blk
+;    mov     cx,     11
+;
+;.loop:
+;
+;    mov     ax,     es:[bx]
+;    call    _writehex
+;    call    _crlf
+;    
+;    add     bx,     2
+;    loop    .loop
+;   
+;    call    _writehex
+;    call    _crlf
+    
+;    mov     ax,     cs
+;    call    _writehex
+;    call    _crlf
+;
+;    mov     ax,     es:[bx + 18]
+;    call    _writehex
+;    call    _crlf
+;
+;    mov     ah,     HEX (62)
+;    int     HEX (21)
+;    
+;    mov     ax,     bx
+;    call    _writehex
+;    call    _crlf
+;    
+;    xor     ax,     ax
+;    int     0x16
+;    
+;    mov     ax,     es:[bx + 14]
+;    call    _writehex
+;    call    _crlf
+;    
+;    mov     ax,     es:[bx + 16]
+;    call    _writehex
+;    call    _crlf
+;    
+;    mov     ax,     es:[bx + 18]
+;    call    _writehex
+;    call    _crlf
+;    
+;    mov     ax,     es:[bx + 20]
+;    call    _writehex
+;    call    _crlf
 
 ;.console_loop:
 ;
@@ -322,6 +481,12 @@ _main:
 
 .exit:
 
+;    mov     bx,     offset _msg_any_key
+;    call    _writestr
+;    
+;    xor     ax,     ax
+;    int     0x16
+    
     xor     ax,     ax
     ret
 
@@ -338,3 +503,7 @@ _msg_hello:                     db      "Hello, world!",        HEX (0D),   HEX
 ;_flags:                         db      "w+b",      HEX (00)
 ;_buffer:                        db      512     dup (0)
 ;_to_write:                      dw      HEX (0000)
+;_app_name:                      db      "\\command.com",        HEX (00)
+;_param_blk:                     db      22      dup (0)
+;
+;_msg_any_key:                   db      "Press any key to exit...",     HEX (0D),   HEX (0A),   HEX (00)
diff --git a/src/kernel/int21.asm b/src/kernel/int21.asm
index 257d2b7..2b2e5e1 100644
--- a/src/kernel/int21.asm
+++ b/src/kernel/int21.asm
@@ -647,12 +647,10 @@ _int21_dispatch.check:
 _int21_dispatch.no_key:
 
     cld                                                                         ; Make sure direction flag is always clean
+    
     push    bx
     push    bp
     
-    ;mov     bp,     sp
-    ;mov     word ptr [bp + 2],      bx
-    
     mov     bp,     offset _int21_dispatch.list
     mov     bx,     offset _int21_dispatch.list_end
 
@@ -941,6 +939,12 @@ _int21_dispatch.list:
     ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
     ;db      HEX (5B)
     ;dw      _int21_5B
+    
+    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+    ;; Get PSP Address.
+    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+    db      HEX (62)
+    dw      _int21_62
 
 _int21_dispatch.list_end:
 
@@ -3976,8 +3980,8 @@ _int21_4A:
 ;******************************************************************************
 _int21_4B:
 
-    and     al,     al
-    jz      _int21_4B.arg_ok
+    cmp     al,     1
+    jbe     _int21_4B.arg_ok
     
     mov     ax,     1
     stc
@@ -3987,13 +3991,15 @@ _int21_4B:
 _int21_4B.arg_ok:
 
     push    bp
+    mov     bp,     sp
+    
+    push    ds
     push    bx
     push    cx
     push    dx
     push    si
     push    di
     push    es
-    push    ds
     
     push    ax
     push    bx
@@ -4040,16 +4046,17 @@ _int21_4B.disk_error:
 
 _int21_4B.error:
     
-    pop     ds
     pop     es
     pop     di
     pop     si
     pop     dx
     pop     cx
     pop     bx
-    pop     bp
+    pop     ds
     
+    pop     bp
     stc
+    
     jmp     iretc
 
 _int21_4B.load_ok:
@@ -4079,9 +4086,7 @@ _int21_4B.copy_cmd_line:
     and     bl,     bl
     jz      _int21_4B.start
     
-    mov     ax,     cs
     mov     ds,     ax
-    
     add     di,     14
     
     mov     ax,     cs:[_child_sssp]
@@ -4096,28 +4101,45 @@ _int21_4B.copy_cmd_line:
     mov     ax,     cs:[_child_csip + 2]
     stosw
     
-    jmp     short   _int21_4B.ret_ok
+    pop     es
+    pop     di
+    pop     si
+    pop     dx
+    pop     cx
+    
+    lea     bx,     [bp + 8]
+    mov     [HEX (42)],     bx
+    
+    mov     [HEX (44)],     ss
+    
+    pop     bx
+    pop     ds
+    pop     bp
+    
+    mov     ax,     HEX (0100)
+    clc
+    
+    jmp     iretc
 
 _int21_4B.start:
 
+    push    cs
     call    _start_program
     
     mov     al,     cs:[_last_ret_val]
 
-_int21_4B.ret_ok:
-
-    clc
-
 _int21_4B.done:
 
-    pop     ds
     pop     es
     pop     di
     pop     si
     pop     dx
     pop     cx
     pop     bx
+    pop     ds
+    
     pop     bp
+    clc
     
     jmp     iretc
 
@@ -4259,12 +4281,7 @@ _int21_4C.done:
     mov     cs:[_curr_psp],     bx
     
     call    _free_mem
-    
-    xor     bx,     bx
-    mov     es,     bx
-    
-    mov     bx,     HEX (22) * 4
-    jmp     far ptr es:[bx]
+    retf
 
 ;******************************************************************************
 ; @function         _int21_4E
@@ -4754,3 +4771,12 @@ _int21_4F.error:
     stc
     
     jmp     iretc
+
+;******************************************************************************
+; @function         _int21_62
+; @brief            Get PSP Address
+;******************************************************************************
+_int21_62:
+
+    mov     bx,     cs:[_curr_psp]
+    iret
diff --git a/src/kernel/kernel.asm b/src/kernel/kernel.asm
index 331a054..70afdd2 100644
--- a/src/kernel/kernel.asm
+++ b/src/kernel/kernel.asm
@@ -852,7 +852,7 @@ _setup_interrupts:
 _app_errmsg:                    db      "Bad or missing Command Interpreter",       HEX (00)
 
 _app_name:                      db      "\\command.com",        HEX (00)
-_param_blk:                     db      16      dup (0)
+_param_blk:                     db      22      dup (0)
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Data area.
diff --git a/src/kernel/prog.asm b/src/kernel/prog.asm
index 6e76d5a..9c42bbe 100644
--- a/src/kernel/prog.asm
+++ b/src/kernel/prog.asm
@@ -122,15 +122,13 @@ _load_program.got_size:
 
 _load_program.no_mem:
 
-    push    ax
-    
     mov     ax,     cs
     mov     ds,     ax
     
     mov     bx,     offset _load_program.errmsg
     call    _writestr
     
-    pop     ax
+    mov     ax,     8
     jmp     _load_program.error
 
 _load_program.mem_ok:
@@ -352,12 +350,11 @@ _start_program:
     cli
     
     mov     ds,     ax
-    
-    mov     [HEX (42)],     sp
-    mov     [HEX (44)],     ss
-    
     mov     es,     ax
     
+    mov     es:[HEX (42)],      sp
+    mov     es:[HEX (44)],      ss
+    
     mov     ss,     cs:[_child_sssp + 2]
     mov     sp,     cs:[_child_sssp]
     
@@ -377,7 +374,6 @@ _start_program:
     push    si
     
     iret
-    ret
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Data area.
diff --git a/src/lib/crt/crt0.asm b/src/lib/crt/crt0.asm
index 7b22d2d..7e9ecfe 100644
--- a/src/lib/crt/crt0.asm
+++ b/src/lib/crt/crt0.asm
@@ -157,6 +157,8 @@ _start:
 
     mov     ah,     HEX (4C)
     int     HEX (21)
+    
+    jmp     .L6
 
 ;******************************************************************************
 ; @function         _get_args
-- 
2.34.1