Image Map Image Map
Page 1 of 3 123 LastLast
Results 1 to 10 of 25

Thread: „Below the root” hangs on IBM portable 5155

  1. #1

    Default „Below the root” hangs on IBM portable 5155

    Hi. I have a problem with the game "Below the root".
    Works on all dos computers I have except IBM 5155.
    The game hangs right after the control selection screen (keyboard, joystick)
    I checked both versions - pc booter and DOS.
    My IBM has 256kB Ram, but I also checked with an additional RAM card (640 in total). Same.
    what is going on? what would somebody check on their Ibm?
    I will be grateful for your help.

  2. #2
    Join Date
    Aug 2006
    Location
    Chicagoland, Illinois, USA
    Posts
    6,884
    Blog Entries
    1

    Default

    Works on 5160, fails on 5155 for me too. Interesting... Probably a bug in the "determine what this machine is" code, which reads the Model ID byte in ROM.
    Offering a bounty for:
    - A working Sanyo MBC-775 or Logabax 1600
    - Music Construction Set, IBM Music Feature edition (has red sticker on front stating IBM Music Feature)

  3. #3

    Default

    Thanks for the test. It makes sense. I'll check it.

  4. #4
    Join Date
    Aug 2006
    Location
    Chicagoland, Illinois, USA
    Posts
    6,884
    Blog Entries
    1

    Default

    Here's the code for the test:

    Code:
    seg000:0341 B8 00 F0                       mov     ax, 0F000h
    seg000:0344 8E C0                          mov     es, ax
    seg000:0346                                assume es:nothing
    seg000:0346 26 8A 26 FE FF                 mov     ah, es:0FFFEh
    seg000:034B 80 FC FD                       cmp     ah, 0FDh ; FDh = PCjr
    seg000:034E B0 00                          mov     al, 0
    seg000:0350 75 02                          jnz     short loc_10354 ; jmp if not a PCjr
    seg000:0352 B0 04                          mov     al, 4
    seg000:0354
    seg000:0354                loc_10354:
    seg000:0354 A2 30 89                       mov     machineType, al
    This seems fairly straightforward (JNZ = JNE), so I don't know what else could be the problem.
    Offering a bounty for:
    - A working Sanyo MBC-775 or Logabax 1600
    - Music Construction Set, IBM Music Feature edition (has red sticker on front stating IBM Music Feature)

  5. #5

    Default

    I know the 5155's motherboard is identical to the first-gen 5160 XT board... but does it have a different ROM? If not, how would any program know the difference between a Portable PC and an early XT?

  6. #6
    Join Date
    Aug 2006
    Location
    Chicagoland, Illinois, USA
    Posts
    6,884
    Blog Entries
    1

    Default

    Aha, according to http://www.minuszerodegrees.net/5155...155_basics.htm "The 5155 motherboard does not have a keyboard controller chip. Instead, it uses discrete components" with schematic at http://www.minuszerodegrees.net/5160..._interface.png .

    Since the nature of the error is keyboard-related, I think this might be it. So the keyboard handler must be doing something that only works on a true 8042 keyboard controller.

    Edit: More disassembly shows that the game only makes INT 16h calls, so I'm back to being puzzled. I'll check the boot sector to see if that does anything odd.

    Edit2: Nothing odd in the boot sector.

    I'm not motivated enough to install my periscope board in a 5155 to debug this, so continued troubleshooting will have to go to someone else. Or, just play it on a PCjr so you can get the (infrequent) 3-voice music.
    Last edited by Trixter; October 16th, 2020 at 12:49 PM.
    Offering a bounty for:
    - A working Sanyo MBC-775 or Logabax 1600
    - Music Construction Set, IBM Music Feature edition (has red sticker on front stating IBM Music Feature)

  7. #7

    Default

    Quote Originally Posted by Trixter View Post
    This seems fairly straightforward (JNZ = JNE), so I don't know what else could be the problem.
    Might the freeze be related to the keyboard (unhandled keystrokes filling up the buffer so the 5155 ends up beeping at you)?

    See, I just remembered this age-old question: http://www.vcfed.org/forum/showthrea...-5155-and-5160. I don't really recall if that ever got satisfactorily resolved, but if keyboard handling is the culprit here too, maybe there's a clue?

    [EDIT]: hah -- didn't catch your last reply before I wrote this. There we go then!
    int10h.org :: :: :: blog

  8. #8
    Join Date
    Aug 2006
    Location
    Chicagoland, Illinois, USA
    Posts
    6,884
    Blog Entries
    1

    Default

    I'd forgotten about that. :-)

    Back in 1995, a friend clued me in to the best way to handle key-down scancodes: Don't try to replace the keyboard interrupt at all, but instead let it run and just grab what it produces, then clear out the keyboard queue so that you don't get "buffer full" beeping. While this isn't the fastest way to handle the keyboard, it is the most compatible way, and has worked on PCjrs, laptops, and yes, even the 5155 (just tested it). Some ancient pascal code for you:

    Code:
    Procedure New9handler; interrupt;
    var
      port60h:byte;
    begin
      port60h:=port[$60];
      kbd[port60h and $7f] := (port60h < 128);     { record current status }
      asm pushf; end;                              { must precede call to old int }
      old9;                                        { call old interrupt }
      asm cli; end;                                { disable hardware interrupts }
      memw[$0040:$001a] := memw[$0040:$001c];      { clear the keyboard buffer }
      asm sti; end;                                { enable hardware interrupts }
    end;
    This works great for if you want to test if a key is being held down or not; perfect for games.
    Offering a bounty for:
    - A working Sanyo MBC-775 or Logabax 1600
    - Music Construction Set, IBM Music Feature edition (has red sticker on front stating IBM Music Feature)

  9. #9
    Join Date
    Sep 2020
    Location
    Wellington, New Zealand
    Posts
    42

    Default

    If the game works on a 5160 but doesn't work on a 5155, then it can't possibly be the keyboard interface circuitry, as these are absolutely identical on both versions of the XT system board (the 64/256K and the 256/640K) that can be used in a 5155 or 5160. If the ROM and the system board are both identical between the 5155 and 5160, what could possibly account for the game working on a 5160 but not on a 5155?

    It's unfortunate that my 5160 is currently dead, as I'd really like to be able to confirm whether it can or cannot run the game.

    Also I would like to try the booter version of the game, but don't know where to find a copy. Any pointers would be appreciated.

  10. #10

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •