From cccbbddf0aac72383004ed22485c378e25c29afd Mon Sep 17 00:00:00 2001 From: Robert Pengelly Date: Sun, 29 Sep 2024 16:27:04 +0100 Subject: [PATCH] Hand && in command line --- build/chimaera.img | Bin 368640 -> 368640 bytes build/chimaera.vhd | Bin 34120704 -> 34120704 bytes src/Makefile.unix | 2 +- src/apps/pcomm/list.asm | 9 ++- src/apps/pcomm/pcomm.asm | 132 ++++++++++++++++++++++++++++++++++----- 5 files changed, 124 insertions(+), 19 deletions(-) diff --git a/build/chimaera.img b/build/chimaera.img index 2c9457a41e8fbb9407a54b8ca65256ad0a0aedb3..a57cbef4486241c0092477f36214eb81674c3ba3 100644 GIT binary patch delta 5593 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 HS^571Ggl?V delta 5430 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 diff --git a/build/chimaera.vhd b/build/chimaera.vhd index 1e702116c28f030420e32a54c21e5bedfd3de4c0..6fde73c7b6a2f7f84a6232c880141d4d2ac85801 100644 GIT binary patch delta 7539 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 delta 7363 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 diff --git a/src/Makefile.unix b/src/Makefile.unix index 6377e4f..3c68507 100644 --- a/src/Makefile.unix +++ b/src/Makefile.unix @@ -29,7 +29,7 @@ chimaera.img: all echo set PATH=A:\\DOS >> autoexec.bat # echo '%PATH%\\temp.bat' >> autoexec.bat # echo echo 123 >> temp.bat -# echo echo %PATH% >> temp.bat +# echo 'echo %PATH% && echo 123' >> temp.bat # echo temp >> temp.bat utils/dosfstools/mkdosfs --boot boot/freeldr/bootsect/fat12.bin --sectors 720 -F 12 -n "CHIMAERA OS" $@ diff --git a/src/apps/pcomm/list.asm b/src/apps/pcomm/list.asm index 4afa475..99e82ff 100644 --- a/src/apps/pcomm/list.asm +++ b/src/apps/pcomm/list.asm @@ -25,7 +25,7 @@ _list_push: push es push ds - mov ax, 4 + mov ax, 6 xor dx, dx push ax @@ -39,6 +39,9 @@ _list_push: xor bx, bx + mov ax, word ptr [bp + 8] + mov es:[bx + 2], ax + mov ax, word ptr [bp + 6] mov es:[bx], ax @@ -67,13 +70,13 @@ _list_push.got_head: _list_push.search: mov es, ax - mov ax, es:[bx + 2] + mov ax, es:[bx + 4] and ax, ax jnz _list_push.search mov dx, word ptr [bp - 2] - mov es:[bx + 2], dx + mov es:[bx + 4], dx _list_push.done: diff --git a/src/apps/pcomm/pcomm.asm b/src/apps/pcomm/pcomm.asm index ef84c04..f1b5362 100644 --- a/src/apps/pcomm/pcomm.asm +++ b/src/apps/pcomm/pcomm.asm @@ -56,20 +56,21 @@ _main: and cx, cx jz .L109 + +.L125: + + mov dx, 1 + push dx mov ax, es:[di] - - push ds push ax mov ax, offset _scratch_list push ax call _list_push - add sp, 2 + add sp, 6 - pop ax - pop ds add di, 2 dec cx @@ -136,6 +137,9 @@ _main: cmp word ptr cs:[_echo_line], 0 je .L115 + cmp word ptr es:[di + 2], 0 + je .L115 + call _writestr call _crlf @@ -154,7 +158,7 @@ _main: pop di pop ds - mov ax, word ptr es:[di + 2] + mov ax, word ptr es:[di + 4] push es call _free @@ -1950,7 +1954,7 @@ _get_command: push dx mov word ptr [bp - 2], 0 - mov si, offset _formatted_command + mov si, word ptr [bp + 4] _get_command.loop: @@ -2003,7 +2007,10 @@ _get_command.null: _get_command.done: - mov bx, word ptr [bp - 2] + mov ax, word ptr [bp - 2] + + and ax, ax + jnz _get_command.external pop dx pop ax @@ -2012,16 +2019,23 @@ _get_command.done: add sp, 2 clc + mov bx, word ptr [bp + 4] pop bp - and bx, bx - jz _get_command.ret - - stc + ret -_get_command.ret: +_get_command.external: - mov bx, offset _formatted_command + pop dx + pop ax + pop si + + add sp, 2 + stc + + mov bx, word ptr [bp + 4] + pop bp + ret ;****************************************************************************** @@ -2329,6 +2343,16 @@ _process_line: mov ax, cs mov es, ax + + mov bx, word ptr [bp + 4] + +.L121: + + cmp byte ptr [bx], ' ' + jne .L102 + + inc bx + jmp .L121 .L102: @@ -2340,7 +2364,6 @@ _process_line: mov cx, 255 rep stosb - mov bx, word ptr [bp + 4] push bx call _expand_vars @@ -2348,8 +2371,85 @@ _process_line: mov ax, cs mov ds, ax + +.L124: + + mov ax, '&' + push ax + + mov si, offset _formatted_command + push si + + call _strchr + add sp, 4 + + and ax, ax + jz .L120 + + mov di, ax + + xor al, al + stosb + + cmp byte ptr [di], '&' + jne .L120 + + stosb + +.L122: + + cmp byte ptr [di], ' ' + jne .L123 + + inc di + jmp .L122 + +.L123: + + push es + push di + + call _strlen + add sp, 2 + + xor dx, dx + inc ax + + push ax + push dx + + call _xmalloc + add sp, 4 + + xor dx, dx + push dx + + mov es, ax + push es + + mov ax, offset _scratch_list + push ax + + call _list_push + add sp, 6 + + push di + + xor ax, ax + push ax + + call _strcpy + add sp, 4 + + pop es + +.L120: + + push si call _get_command + add sp, 2 + jc .L23 mov si, bx @@ -2946,6 +3046,8 @@ _read_batch.check: _read_batch.next: + inc word ptr cs:[_in_batch] + pop ds pop bx pop ax -- 2.34.1