From b16f848c313901b2e1555f355ab738cfe5c393f9 Mon Sep 17 00:00:00 2001 From: Robert Pengelly Date: Sun, 29 Sep 2024 12:41:27 +0100 Subject: [PATCH] Toggle echo --- build/chimaera.img | Bin 368640 -> 368640 bytes build/chimaera.vhd | Bin 34120704 -> 34120704 bytes src/Makefile.unix | 7 +++- src/apps/pcomm/pcomm.asm | 83 ++++++++++++++++++++++++++++++++++++++- 4 files changed, 86 insertions(+), 4 deletions(-) diff --git a/build/chimaera.img b/build/chimaera.img index d8581c36958d762ab82ff0b61c0913dda301f2ff..2c9457a41e8fbb9407a54b8ca65256ad0a0aedb3 100644 GIT binary patch delta 5112 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 JoA4G^`Tw)j`FH>T delta 5108 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 DfZfLG diff --git a/src/Makefile.unix b/src/Makefile.unix index f33d33f..6377e4f 100644 --- a/src/Makefile.unix +++ b/src/Makefile.unix @@ -25,10 +25,12 @@ chimaera.img: all if [ -f autoexec.bat ]; then rm -rf autoexec.bat; fi if [ -f $@ ]; then rm -rf $@; fi + echo @echo off >> autoexec.bat echo set PATH=A:\\DOS >> autoexec.bat +# echo '%PATH%\\temp.bat' >> autoexec.bat # echo echo 123 >> temp.bat -# echo @ echo %PATH% >> temp.bat -# echo temp.bat >> temp.bat +# echo echo %PATH% >> temp.bat +# echo temp >> temp.bat utils/dosfstools/mkdosfs --boot boot/freeldr/bootsect/fat12.bin --sectors 720 -F 12 -n "CHIMAERA OS" $@ utils/dosfstools/mmd -i $@ boot boot/freeldr @@ -47,6 +49,7 @@ chimaera.vhd: all if [ -f autoexec.bat ]; then rm -rf autoexec.bat; fi if [ -f $@ ]; then rm -rf $@; fi + echo @echo off >> autoexec.bat echo set PATH=C:\\DOS >> autoexec.bat # echo echo %PATH% >> autoexec.bat # echo autoexec.bat >> autoexec.bat diff --git a/src/apps/pcomm/pcomm.asm b/src/apps/pcomm/pcomm.asm index 5f92e12..ef84c04 100644 --- a/src/apps/pcomm/pcomm.asm +++ b/src/apps/pcomm/pcomm.asm @@ -37,6 +37,11 @@ _main: .L5: + mov ax, cs:[_echo_line] + mov word ptr [bp - 4], ax + +.L119: + push es push di push cx @@ -165,12 +170,15 @@ _main: pop di pop es - jmp .L5 + jmp .L119 .L111: mov word ptr [_scratch_list], 0 + mov ax, word ptr [bp - 4] + mov cs:[_echo_line], ax + pop cx pop di pop es @@ -2122,9 +2130,75 @@ _handler_echo: push ax push dx push si - + push es + push ds + mov si, bx +_handler_echo.copy: + + push es + push ds + push si + push di + + mov ax, cs + mov es, ax + + mov di, offset _temp + push si + + call _strlen + add sp, 2 + + mov cx, ax + rep movsb + + xor al, al + stosb + + pop di + pop si + pop ds + pop es + + mov ax, cs + mov ds, ax + + mov si, offset _temp + +_handler_echo.check_off: + + push si + + mov ax, offset _echo_off + push ax + + call _strcmp + add sp, 4 + + and ax, ax + jnz _handler_echo.check_on + + mov word ptr cs:[_echo_line], 0 + jmp _handler_echo.done + +_handler_echo.check_on: + + push si + + mov ax, offset _echo_on + push ax + + call _strcmp + add sp, 4 + + and ax, ax + jnz _handler_echo.check + + mov word ptr cs:[_echo_line], 1 + jmp _handler_echo.done + _handler_echo.check: cmp word ptr cs:[_cbreak], 1 @@ -2153,6 +2227,8 @@ _handler_echo.newline: _handler_echo.done: + pop ds + pop es pop si pop dx pop ax @@ -2969,6 +3045,9 @@ _temp: db 257 dup (0) _autoexec: db "AUTOEXEC.BAT", HEX (00) _batch_flags: db "r", HEX (00) +_echo_off: db "off", HEX (00) +_echo_on: db "on", HEX (00) + _echo_line: dw HEX (0001) _in_batch: dw HEX (0000) _ll_scratch: dw HEX (0000) -- 2.34.1