diff --git a/Doc/ChangeLog.txt b/Doc/ChangeLog.txt index dcb6c934..85e1400e 100644 --- a/Doc/ChangeLog.txt +++ b/Doc/ChangeLog.txt @@ -7,6 +7,7 @@ Version 3.5 - WBW: Allow front panel LED/Switch bits to be inverted in config - WBW: Add API to expose application banks available - WBW: Added console takeover at boot loader prompt +- L?N: Fixed Propeller font vertical line character to align properly Version 3.4 ----------- diff --git a/Doc/RomWBW Applications.pdf b/Doc/RomWBW Applications.pdf index 14b90f72..b38b3c40 100644 Binary files a/Doc/RomWBW Applications.pdf and b/Doc/RomWBW Applications.pdf differ diff --git a/Doc/RomWBW Disk Catalog.pdf b/Doc/RomWBW Disk Catalog.pdf index 93e04b2b..b3431d60 100644 Binary files a/Doc/RomWBW Disk Catalog.pdf and b/Doc/RomWBW Disk Catalog.pdf differ diff --git a/Doc/RomWBW Errata.pdf b/Doc/RomWBW Errata.pdf index 1f1011c3..260c131a 100644 Binary files a/Doc/RomWBW Errata.pdf and b/Doc/RomWBW Errata.pdf differ diff --git a/Doc/RomWBW ROM Applications.pdf b/Doc/RomWBW ROM Applications.pdf index ce18db27..2d311f87 100644 Binary files a/Doc/RomWBW ROM Applications.pdf and b/Doc/RomWBW ROM Applications.pdf differ diff --git a/Doc/RomWBW System Guide.pdf b/Doc/RomWBW System Guide.pdf index ef2eebb5..7ce63e91 100644 Binary files a/Doc/RomWBW System Guide.pdf and b/Doc/RomWBW System Guide.pdf differ diff --git a/Doc/RomWBW User Guide.pdf b/Doc/RomWBW User Guide.pdf index 327ce247..06e945aa 100644 Binary files a/Doc/RomWBW User Guide.pdf and b/Doc/RomWBW User Guide.pdf differ diff --git a/ReadMe.md b/ReadMe.md index 81d42e7c..b9519a38 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -3,7 +3,7 @@ **RomWBW ReadMe** \ Version 3.5 \ Wayne Warthen ([wwarthen@gmail.com](mailto:wwarthen@gmail.com)) \ -04 Feb 2024 +07 Feb 2024 # Overview diff --git a/ReadMe.txt b/ReadMe.txt index 860fd1db..3348ae59 100644 --- a/ReadMe.txt +++ b/ReadMe.txt @@ -1,6 +1,6 @@ RomWBW ReadMe Wayne Warthen (wwarthen@gmail.com) -04 Feb 2024 +07 Feb 2024 diff --git a/Source/Doc/UserGuide.md b/Source/Doc/UserGuide.md index 15a4d0b1..38be134b 100644 --- a/Source/Doc/UserGuide.md +++ b/Source/Doc/UserGuide.md @@ -903,23 +903,23 @@ If your system has more than one character unit, then the Boot Loader will "poll" all of the character devices for a request to make any of the alternate character devices the active console. This is called a console takeover request. This functionality must be enabled in the ROM -build configuration, but it is for all standard ROMs. +build configuration, but currently it is for all standard ROMs. -To request a console takeover, you just press the \ character -at the port or terminal that you want to move the console to. The -terminal or communication software **must** be configured for the -default serial port speed and data bits for this to work. +To request a console takeover, you just press the \ character +twice in a row at the port or terminal that you want to move the console +to. The terminal or communication software **must** be configured for +the default serial port speed and data bits for this to work. A takeover request is only possible while the active console is showing the Boot Loader prompt prior to typing any characters at the active console. In other words, once you start typing at the active console prompt, the takeover polling is suspended. If you have started typing characters, you can press \ at the active -console to get a new Boot Loader prompt and reactivate the polling. +console to get a fresh Boot Loader prompt and reactivate the polling. If you have built a custom ROM that includes an automatic boot command with a timeout, then performing a console takeover will -abort the timeout process and the automatic command will not be +abort the timeout process and the automatic boot command will not be performed. ## Front Panel diff --git a/Source/HBIOS/romldr.asm b/Source/HBIOS/romldr.asm index 04a25006..a22ce42f 100644 --- a/Source/HBIOS/romldr.asm +++ b/Source/HBIOS/romldr.asm @@ -265,6 +265,18 @@ prompt: call dsky_beep call dsky_l2on #endif +; + ; purge any garbage on the line + call delay ; wait for prompt to be sent + ld b,0 ; failsafe max iterations +purge: + call cst ; anything there? + jr z,wtkey ; if not, move on + call cin ; read and discard + djnz purge ; and loop till no more +; + or $ff ; initial value + ld (conpend),a ; ... for conpoll routine ; wtkey: ; wait for a key or timeout @@ -319,9 +331,10 @@ clrbuf1: ;======================================================================= ; ; Poll all character units in system for a console takeover request. -; A takeover request is just pressing at the port that wants -; to takeover. Return with ZF set if a console takeover was requested. -; If so, the requested console unit will be recorded in (newcon). +; A takeover request consists of pressing the twice in a row. +; at the character unit that wants to be the console. Return with ZF +; set if a console takeover was requested. If so, the requested console +; unit will be recorded in (newcon). ; #if (BIOS == BIOS_WBW) #if (AUTOCON) @@ -329,7 +342,6 @@ clrbuf1: conpoll: ; save active console unit ld a,(curcon) - ;ld (savcon),a ld e,a ; save in E ; ; loop through all char ports @@ -347,7 +359,14 @@ conpoll1: call cin ; get char cp ' ' ; space char? jr nz,conpoll2 ; if not, move on - jr conpoll3 ; space char typed, take console +; + ; a char was typed. check to see if we just saw a + ; from this same unit. + ld a,(conpend) ; pending con unit to A + cp c ; compare to active unit + jr z,conpoll3 ; if =, second , take con + ld a,c ; if not, unit to A + ld (conpend),a ; and update pending console ; conpoll2: inc c ; next char unit @@ -2498,6 +2517,7 @@ dskyact .db 0 ; DSKY active if != 0 curcon .db CIO_CONSOLE ; current console unit ciocnt .db 1 ; count of char units savcon .db 0 ; con save for conpoll +conpend .db $ff ; pending con unit (first pressed) #endif ; diff --git a/Source/ver.inc b/Source/ver.inc index d885f4a1..85b6bfe6 100644 --- a/Source/ver.inc +++ b/Source/ver.inc @@ -2,7 +2,7 @@ #DEFINE RMN 5 #DEFINE RUP 0 #DEFINE RTP 0 -#DEFINE BIOSVER "3.5.0-dev.7" +#DEFINE BIOSVER "3.5.0-dev.8" #define rmj RMJ #define rmn RMN #define rup RUP diff --git a/Source/ver.lib b/Source/ver.lib index 0d066221..d197b6ef 100644 --- a/Source/ver.lib +++ b/Source/ver.lib @@ -3,5 +3,5 @@ rmn equ 5 rup equ 0 rtp equ 0 biosver macro - db "3.5.0-dev.7" + db "3.5.0-dev.8" endm