:bootstartup
; Welcome to lDebug!
@r ysf |= 4000
if not exists y ldp/ldbgseri.tmp then goto :loopend
r v0 0
:loop
if (v0 >= 8) then goto :loopend
r v1 = word [40:v0]
if not (v1) then goto :loopnext
r dspvp = v1
r v2 = 0
if (v1 == 2F8) then r v2 = 3
if (v1 == 3F8) then r v2 = 4
if not (v2) then goto :loopnext
r dspvi = 8 + v2
r dspvm = 1 << v2
r dspvp .
r dco |= 4000
if (dco & 4000) then goto :end
:loopnext
r v0 += 2
goto :loop

@:applicationstartup
@:devicestartup
@install getinput
@install quietinstall
@ext extlib.eld quit.eld install
@install quickrun
@goto :eof

:loopend
if exists y ldp/ldbgterm.tmp then goto :end
:runfreedos
if not exists y ldp/fdkernel.sys then goto :endnowait
boot protocol=freedos ldp/fdkernel.sys
; sleep 5 seconds
if (rc == 0 && ioi == 0) then q
:end

install quietinstall
ext extlib.eld printf install
printf "Press any key to enter debugger terminal!\x07\r\n"
r v0 = #10 * #18
:wait
r v0 -= 1
if (ioi != 0) then goto :terminal
printf "\r%2u.%02u" (v0 / #18) (v0 * #100 / #18 % #100)
sleep 1 ticks
if (v0) then goto :wait
printf "\rTime is up\r\n"
goto :runfreedos

:terminal
if (byte ioi == 20) then r v0 = iok
printf "\rTimer stopped\r\n"
ext extlib.eld set run /e vldfoo=printf uninstall
ext extlib.eld set run vldfoo=
:endnowait
rv
;install quietinstall
ext extlib.eld alias.eld install
alias add fred boot protocol freedos ldp/fdkernel.sys
alias add fred327 boot protocol freedos cmdline=1 ldp/fdkernel.sys . config fdconfig.327
alias add edr boot protocol ldos ldp/edrdos.com
; alias add ldos boot protocol ldos ldp/lmsdos.com // config ldos.ini
alias add ldos boot protocol ldos . // .
alias add ldosr boot protocol ldos . // append devicehigh srdxms.sys
alias add ldoshigh boot protocol ldos ldp/lmsdos.com // config ldoshigh.ini
alias add oldldos boot protocol ldos oldldos/lmsdos.com // config ldos.ini
alias add ms5 boot protocol msdos6 ldp/io5.sys
alias add tepe tp cccccc while cs != 70 silent 1
alias add seri install serial timer
alias add dmm dm word [ri31s ?? ri31s :: ri27s:24]
alias add denv d word [es:bx]:0
alias add zap if (byte [cs:ip - 1] == CC) then e cs:ip - 1 90
alias add strat dosstrat force
alias add voone r v0 :=
ext extlib.eld dm.eld install
ext extlib.eld dosstrat.eld install
rc.abort
; rc.replace ldos; g; r f cy; tp FFFFFF while cs == 70 silent 1; r v0 = cs; tp FFFFFF while cs == v0 silent 1
; rc.replace ms5; g; g C13E:0219; t; e es:bx + 3 as words 100; e es:bx + E as words 0, DFFF - v0
; rc.replace ldoshigh; g; r f CY; tp fffff while cs < 4000 silent 1
rc.replace ldos; g; r f CY; tp fffff while cs < 4000 silent 1
@ext extlib.eld quit.eld install
@install quickrun

