VOGONS


First post, by DrMurke

User metadata
Rank Newbie
Rank
Newbie

Hi!

I'm running a Debian Linux system with XOrg 6.8.2 and Kernel 2.6.11 and tried to make dosbox run with good old qbasic. It all went well with using the standard Debian package, but since I'm using Xorg I needed the "userscancodes" option form the CVS version to make all keyboard keys work with dosbox.

Now running the CVS version I have the problem, that after loading the Keyboard driver keyb.exe from FreeDOS, qbasic does not start anymore. When I type "qbasic.exe" on the command line simply nothing happens, but a new prompt appears.

It even looks like no application at all is running, because even "mount" or "config" give no output at all, not even error messages.

I would have really liked to give you some debugger output, but I just don't know, where to start, because I don't see any erros messages or something to start searching.

Does anybody have a clue?
Do you need more data? When yes, which?

Reply 4 of 8, by DrMurke

User metadata
Rank Newbie
Rank
Newbie

I use the normal core. Changing to dynamic does not change anything.

I tried version 1.1 of qbasic and 4.5 of QuickBasic, but the effect is the same. After starting keyb typing the program name just gives me a new prompt without anything happening.

The problem is the same if I try to start keyb.exe for a second time, so I think it is not related to qbasic.

I really need a point to collect more data, but don't know, where to start from. Any idea?

Reply 5 of 8, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Sorry, didn't notice this before:
> It even looks like no application at all is running

Try some older version of keyb (if you're using the newest one,
otherwise the other way round), also see if using loadfix or LH
make it work (start loadfix, then keyb, then some app; or
type "LH keyb ..." then start the app).

If you're handy with the debugger, enter it (pause key) and type
"bpint 21 4b" (break on program exec), keyb already loaded. Then
start the app, the debugger should break in, and trace a few lines
with the F11-key (the next callback should load the executable,
and the IRET give control to that program).

hth

Reply 6 of 8, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Happens with kb2pre3, seems to be a typo in keyb.pas where it reads

    mov     ah, $58          { set alloc strategy }
mov al, 1
xor bx,allocs
int $21

The xor should be a mov. It doesn't bother freedos/msdos
because they remove invalid settings in int21/ax=5801,
but dosbox doesn't. Maybe this will be changed so dosbox
behaves similar (just a few lines).

Attached a patched executable (upx-unpacked, 1 byte changed)
for convenience, will try to contact the keyb author for
more information about this.

Attachments

  • Filename
    KEYB.zip
    File size
    10.96 KiB
    Downloads
    184 downloads
    File license
    Fair use/fair dealing exception

Reply 7 of 8, by DrMurke

User metadata
Rank Newbie
Rank
Newbie

> Try some older version of keyb (if you're using the newest one,
> otherwise the other way round), also see if using loadfix or LH
> make it work (start loadfix, then keyb, then some app; or
> type "LH keyb ..." then start the app).

I tried LH for first and it works well.

> If you're handy with the debugger, enter it (pause key) and
> type "bpint 21 4b" (break on program exec), keyb already
> loaded. Then start the app, the debugger should break in, and
> trace a few lines with the F11-key (the next callback should
> load the executable, and the IRET give control to that
> program).

I also tried this for fun, but I'm not familiar with assembler and interupts too much. ): Perhaps I can contirbute something more another time.

Thanks a lot for helping!