rr

Berlin, Germany, 14.03.2021, 21:42 |
NOKEYB Release 1 (Announce) |
Hi!
I recently acquired two Highscreen Handy Organizer palmtop PCs and wondered, whether and how it would be possible to free some precious memory by replacing KEYB.COM. But on the Highscreen Handy Organizer, files C:\AUTOEXEC.BAT and D:\DOS\KEYB.COM are in read-only memory (ROM), which prevents modification.
I took my 2002 FIX8X14 device driver and created NOKEYB. It works by intercepting DOS function 4Bh 'load and execute'.
For those w/o a Highscreen Handy Organizer (a.k.a. Tidalwave PS-1000 or Zeos Pocket PC) there is probably little to no use, but maybe you can use the source code (for NASM) as another skeleton for your own drivers.
You can find NOKEYB at: https://www.bttr-software.de/products/nokeyb/ --- Forum admin |
RayeR

CZ, 15.03.2021, 23:05 (edited by RayeR, 15.03.2021, 23:17)
@ rr
|
NOKEYB Release 1 |
Nice toy, similar to my HP 200 LX but making RO config files is horrible idea. If I remember well HP has it on internal RAMDISK that is restored by default when batteries discharged and powered again. So I could disable automatic start of built in apps and I can launch e.g. DosNavigator instead :)
So good job you overcome that stupid obstacle. BTW does it have real (OTP)ROM or is it flashable? Maybe you could do a permanent mod by reflash, otherwise only by changing ROM chip by flashROM...
BTW I wondered why you not tried SHELL to point a different autoexec.bat but seems to be valid only for DOS 6.0 and newer (you had a luck that config.sys is editable).
The DOS 6.0 COMMAND.COM option /K= sets the name of the AUTOEXEC.BAT file. COMMAND.COM /K=mybat.bat is a handy way to set up a DOS session from Windows.
Maybe you could try make your device driver to patch a specific memory location with "autoexec.bat" string, of course in case that DOS kernel is loaded to RAM and not executed directly from ROM. --- DOS gives me freedom to unlimited HW access. |
rr

Berlin, Germany, 16.03.2021, 22:41
@ RayeR
|
NOKEYB Release 1 |
> So good job you overcome that stupid obstacle. BTW does it have real
> (OTP)ROM or is it flashable? Maybe you could do a permanent mod by reflash,
> otherwise only by changing ROM chip by flashROM...
I have no idea. I didn't find tech specs at that level and haven't opened the housing of my Organizers so far.
> BTW I wondered why you not tried SHELL to point a different autoexec.bat
> but seems to be valid only for DOS 6.0 and newer (you had a luck that
> config.sys is editable).
There's a R/O C:\CONFIG.SYS and a R/W E:\CONFIG.SYS on a RAM disk.
Processing order on the Organizer is:
1) C:\config.sys,
2) E:\config.sys,
3) C:\autoexec.bat,
4) A:\autoexec.bat, (by C:\autoexec.bat)
5) E:\autoexec.bat. (by C:\autoexec.bat)
I had partial success now: I transferred COMMAND.COM from a German MS-DOS 5 installation disk to E:\. Then I added a line "SHELL=E:\COMMAND.COM E:\ /D /P" to E:\CONFIG.SYS. "/D" is an undocumented option in DOS 5, as I learned today. It skips processing C:\AUTOEXEC.BAT. Unfortunately that means, (A:|E:)\AUTOEXEC.BAT is also skipped. So on each boot you have to start E:\AUTOEXEC.BAT manually. Of course, you can rename E:\AUTOEXEC.BAT to something shorter, e.g., GO.BAT.
According to MEM maximum memory for executable program is 1,888 byte less than with my NOKEYB driver and built-in COMMAND.COM. COMMAND.COM from my installation disk takes more memory (4,832+256 bytes vs. 2,752+256 bytes). The ROM edition is a special build probably. And don't forget the 50K disk space on E:\ for COMMAND.COM...
> The DOS 6.0 COMMAND.COM option /K= sets the name of the AUTOEXEC.BAT
> file. COMMAND.COM /K=mybat.bat is a handy way to set up a DOS session from
> Windows.
I tried "/C" instead with DOS 5 COMMAND.COM and the Organizer is stuck in a boot loop now. I have to restart from scratch. 
> Maybe you could try make your device driver to patch a specific memory
> location with "autoexec.bat" string, of course in case that DOS kernel is
> loaded to RAM and not executed directly from ROM.
"ver/r" says "DOS is in ROM".
My idea is a second device driver to kill fopen() for C:\AUTOEXEC.BAT. Or even better: redirect fopen() for C:\AUTOEXEC.BAT to E:\AUTOEXEC.BAT. This will render NOKEYB useless, but it's okay. --- Forum admin |
rr

Berlin, Germany, 17.03.2021, 22:37
@ rr
|
NOKEYB Release 1 |
> > The DOS 6.0 COMMAND.COM option /K= sets the name of the AUTOEXEC.BAT
> > file. COMMAND.COM /K=mybat.bat is a handy way to set up a DOS session
> from
> > Windows.
>
> I tried "/C" instead with DOS 5 COMMAND.COM and the Organizer is stuck in a
> boot loop now. I have to restart from scratch. 
Today I took COMMAND.COM from a German MS-DOS 6.22 and patched out the DOS version check first. Then I added "SHELL=E:\COMMAND.COM E:\ /P /K E:\AUTOEXEC.BAT" to E:\CONFIG.SYS. That worked fine and gives me 2K less available memory than with my NOKEYB solution. Of course, you need to have a valid MS-DOS 6.22 license...
So I tried FreeDOS FreeCOM COMMANDW.COM from com084b7-xmsswap.zip. Works with "SHELL=E:\COMMAND.COM E:\ /E:512 /P=E:\AUTOEXEC.BAT" in E:\CONFIG.SYS, but leaves me with ~65K less available memory. 
Without "/E:512" AUTOEXEC.BAT failed to set PROMPT (just the standard '$P$G') or PATH environment vars, because of insufficient space in environment. Wtf... --- Forum admin |
RayeR

CZ, 19.03.2021, 04:49
@ rr
|
NOKEYB Release 1 |
This seems to be good solution. So SHELL in config even supports loading of alternate autoexec, resp. /K E:\AUTOEXEC.BAT is just passed to command.com that supports it. --- DOS gives me freedom to unlimited HW access. |
rr

Berlin, Germany, 30.05.2021, 22:55
@ rr
|
NOKEYB Release 2 |
On 30 May 2021 I released a new version of NOKEYB for the Vobis Highscreen Handy Organizer.
Changes:
With the help of C. Masloch:
- Always report success, when `something' (= DOS) tries to run
`d:\dos\KEYB.COM' for the first time
- Reduced RAM footprint from 96 to 80 bytes
- Reduced file size from 205 to 177 bytes
Own work:
- Made driver `self-disabling'
- Changed driver name to `NOKEYB2$' to reflect driver's release
number and be closer to the DOS specs
- Rewrote most of the documentation
You can find NOKEYB at: https://www.bttr-software.de/products/nokeyb/ --- Forum admin |
rr

Berlin, Germany, 17.06.2021, 23:23
@ rr
|
NOKEYB Release 3 |
On 17 June 2021 I released a new version of NOKEYB for the Vobis Highscreen Handy Organizer.
Changes:
(File size: 206 bytes. RAM footprint: 80 bytes.)
- Improved robustness of `d:\dos\KEYB.COM' detection
- Added license name to driver banner message to be clear
With the help of C. Masloch:
- Fixed a bug overwriting wrong memory location in strategy
routine
Thanks go to Frank Steinberg for testing!
You can find NOKEYB at: https://www.bttr-software.de/products/nokeyb/ --- Forum admin |
rr

Berlin, Germany, 18.06.2021, 18:44
@ rr
|
NOKEYB Release 3 |
> On 17 June 2021 I released a new version of NOKEYB for the Vobis Highscreen
> Handy Organizer.
I uploaded a "refresh" of Release 3, because it had one small error in one of the source code comments. --- Forum admin |
rr

Berlin, Germany, 18.06.2021, 23:29 (edited by rr, 19.06.2021, 16:19)
@ rr
|
NOKEYB Release 3 |
> I uploaded a "refresh" of Release 3, because it had one small error
> in one of the source code comments.
Another tiny refresh. (Two incomplete filenames in the docs.)  --- Forum admin |