VOGONS


First post, by Predator99

User metadata
Rank l33t
Rank
l33t

This was my challenge for today. I liked to get the IBM Basic ROM to run in a PC clone. Was not that easy because the IBM ROM is not designed to run stand alone as an option ROM.
Therefore I added a "loader" to add the option ROM "55 AA" header and to connect the INT 18 to it. Very helpful to get this running were Ya-Gui Wei's tools here
http://www.cnd.org/HYPLAN/yawei/freesoft.html

I only tested in a 286 so far and seems to run fine. If no disk is connected the PC loads the IBM Basic 😀

The image is currently 64 kb. Will be easy to shrink to 34 kb or so. Less than 32 kb is difficult as the original ROM has this size and there seems to be no room left to add any code...

Also compatible with XT-IDE - press F8.

I included the full image and the HI/LO files. Put the the ROM in an empty socket on the Mainboard or a network card like you do with XT-IDE. Runs also in a single EPROM together with XT-IDE.

Happy if you like and test it 😉

Filename
IBM Basic for Clones.rar
File size
53.37 KiB
Downloads
299 downloads
File license
Fair use/fair dealing exception

Reply 3 of 14, by bsgd

User metadata
Rank Newbie
Rank
Newbie
Predator99 wrote on 2019-05-31, 17:01:
This was my challenge for today. I liked to get the IBM Basic ROM to run in a PC clone. Was not that easy because the IBM ROM is […]
Show full quote

This was my challenge for today. I liked to get the IBM Basic ROM to run in a PC clone. Was not that easy because the IBM ROM is not designed to run stand alone as an option ROM.
Therefore I added a "loader" to add the option ROM "55 AA" header and to connect the INT 18 to it. Very helpful to get this running were Ya-Gui Wei's tools here
http://www.cnd.org/HYPLAN/yawei/freesoft.html

I only tested in a 286 so far and seems to run fine. If no disk is connected the PC loads the IBM Basic 😀

The image is currently 64 kb. Will be easy to shrink to 34 kb or so. Less than 32 kb is difficult as the original ROM has this size and there seems to be no room left to add any code...

Also compatible with XT-IDE - press F8.

I included the full image and the HI/LO files. Put the the ROM in an empty socket on the Mainboard or a network card like you do with XT-IDE. Runs also in a single EPROM together with XT-IDE.

Happy if you like and test it 😉

IBM Basic for Clones.rar

Thank you so much for sharing this! I have a quick question:

I tried using this on a modern XT clone (HOMEBREW8088), but the issue is that BASIC loads before checking if there is a HDD or floppy, so it always loads BASIC and never boots from floppy...
How to address that?

Reply 4 of 14, by Predator99

User metadata
Rank l33t
Rank
l33t

Hi, intersting, thanks for your feedback!

And when removing the ROM you can boot from HDD/floppy without a problem? I think in this case its an issue with your main-BIOS. Can you try another one?

EDIT:
After thinking about it again...the behaviour described by you is correct. Option ROMs are processed before the BIOS tries to boot from HDD/Floppy. The BASIC-ROM has no check if a HDD/Floppy is present. Therefore: If the BASIC-ROM is started there is no return. If you like to switch you need to include i.e. XT-IDE.

EDIT2:
Also not correct what I wrote above. The BASICS-ROM loader only hooks INT18 and returns execution to the main BIOS. This should be the way I implemented it...but I dont remember exactly after this long time.

Therefore: The Basics-ROM is stated by calling INT 18. This is done by the main BIOS. It 1st checks if there is a bootable device (HDD/floppy). If there is none, INT 18 is called and Basics is started.
So, please check if the problem persists with another BIOS.

Reply 5 of 14, by bsgd

User metadata
Rank Newbie
Rank
Newbie
Predator99 wrote on 2023-12-13, 08:20:
Hi, intersting, thanks for your feedback! […]
Show full quote

Hi, intersting, thanks for your feedback!

And when removing the ROM you can boot from HDD/floppy without a problem? I think in this case its an issue with your main-BIOS. Can you try another one?

EDIT:
After thinking about it again...the behaviour described by you is correct. Option ROMs are processed before the BIOS tries to boot from HDD/Floppy. The BASIC-ROM has no check if a HDD/Floppy is present. Therefore: If the BASIC-ROM is started there is no return. If you like to switch you need to include i.e. XT-IDE.

EDIT2:
Also not correct what I wrote above. The BASICS-ROM loader only hooks INT18 and returns execution to the main BIOS. This should be the way I implemented it...but I dont remember exactly after this long time.

Therefore: The Basics-ROM is stated by calling INT 18. This is done by the main BIOS. It 1st checks if there is a bootable device (HDD/floppy). If there is none, INT 18 is called and Basics is started.
So, please check if the problem persists with another BIOS.

Hey, thanks for replying! I also made a mistake: I DID NOT use the file on this thread, cause my MB accepts only 32K max, so instead I used the 32K BASIC from this thread that you also tested:
Re: CGA game on option ROM

I dont know if it should behave the same or not, but thats my only option since I cant use a 64K EPROM.

Answering your questions: yes, if I remove the BASIC EPROM I can boot normally from Floppy or HDD. I have few bios options for this 8088, but I did try both official versions and it behaves the same. I would LOVE to have a BASIC ROM on this setup (since I dont have BASIC anywhere else, I wasnt even born when Basic was all the hype), but only if I can somehow get the PC to also boot from floppy or HDD. Isnt there a way to modify somehow the way this ROM extension is called so it would print "Press spacebar to run BASIC ROM "that times out after like 5s and then proceeds to normal boot?
Or maybe I am doing something wrong preventing this from first checking FDD and HDD and going straight to BASIC....

That is way beyond my knowledge, but the main reason Im building my first XT ever is to try to learn something from this 😀

Thank you.

Reply 6 of 14, by Predator99

User metadata
Rank l33t
Rank
l33t

I dont know at the moment and would need to try out.

You can test i.e. this BIOS, should work in almost every XT
https://www.phatcode.net/downloads.php?id=101

If you only like to play with Basic...why dont you try GWBASIC which is inlcuded in MS-DOS, its almost the same and you can save your files 😉

Reply 7 of 14, by Jo22

User metadata
Rank l33t++
Rank
l33t++

BASIC(A) and GW-BASIC are lite versions in the grand picture.
MBASIC and the BASCOM that builds on it are the more, uhm, business-oriented versions.

Quick Basic, Microsoft BASIC Professional Development System (PDS) and Visual Basic for DOS are from same lineage.
The castrated declawed Quick Basic spin-off "QBasic", too.

Edit: That being said, there are Public Domain (PD) programs from the early mid-80s (say, 1982 to 1987) that may depend on GW-BASIC.

Some higher-end PCs like the Mindset PC or Spectravideo SVI-838 (aka as X'press 16) do also ship with a custom GW-BASIC that's enhanced.

Then there's also HBASIC, for Hercules Graphics Cards, which builds upon BASICA.

Edit: PC Jr. also had Cassette BASIC built-in, but got an optional Cartridge BASIC that was related to BASICA. Edited.

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 8 of 14, by bsgd

User metadata
Rank Newbie
Rank
Newbie
Predator99 wrote on 2023-12-13, 14:24:
I dont know at the moment and would need to try out. […]
Show full quote

I dont know at the moment and would need to try out.

You can test i.e. this BIOS, should work in almost every XT
https://www.phatcode.net/downloads.php?id=101

If you only like to play with Basic...why dont you try GWBASIC which is inlcuded in MS-DOS, its almost the same and you can save your files 😉

I just tried with this BIOS and it does the same. The PC turns on with BASIC immediately starting 🙁

I just felt like it would be nice to have BASIC in ROM, like having a PC that can actually do something even without any media. But if in the end I cant get this working I may just go for DOS Basic instead 😀

Reply 9 of 14, by bsgd

User metadata
Rank Newbie
Rank
Newbie
Jo22 wrote on 2023-12-13, 14:52:
BASIC(A) and GW-BASIC are lite versions in the grand picture. MBASIC and the BASCOM that builds on it are the more, uhm, busines […]
Show full quote

BASIC(A) and GW-BASIC are lite versions in the grand picture.
MBASIC and the BASCOM that builds on it are the more, uhm, business-oriented versions.

Quick Basic, Microsoft BASIC Professional Development System (PDS) and Visual Basic for DOS are from same lineage.
The castrated declawed Quick Basic spin-off "QBasic", too.

Edit: That being said, there are Public Domain (PD) programs from the early mid-80s (say, 1982 to 1987) that may depend on GW-BASIC.

Some higher-end PCs like the Mindset PC or Spectravideo SVI-838 (aka as X'press 16) do also ship with a custom GW-BASIC that's enhanced.

Then there's also HBASIC, for Hercules Graphics Cards, which builds upon BASICA.

Edit: PC Jr. also had Cassette BASIC built-in, but got an optional Cartridge BASIC that was related to BASICA. Edited.

Wow, thanks for the BASIC lessons. As I said BASIC is 'new' for me haha.... I can code in C/C++ but not BASIC...

Reply 10 of 14, by Jo22

User metadata
Rank l33t++
Rank
l33t++
bsgd wrote on 2023-12-13, 15:33:

Wow, thanks for the BASIC lessons. As I said BASIC is 'new' for me haha.... I can code in C/C++ but not BASIC...

You're welcome. ^^

I'm no Basic expert, either, but I do sort of have fond childhood memories of GW-BASIC..
It was a step up from 5510 BASIC on my dad's Sharp computer.

I seemingly tinkered with it so often that he took heart and gave me his latest copy of Quick Basic (I skipped QBasic so to say).

That's when I started interfacing electronics with my PC's gameport.
The STICK and STRIG variables of QB made it easy to use.

Still, I kept using GW-BASIC for writing small programs, also because I was still used to use line numbers.
When done, I saved it with the ,A comment to make the source code plain ASCII (otherwise, it's tokenized).

That way, I could it import into Quick Basic 4 and compile it into an EXE.
- So I really don't look down on GW-BASIC, even though I find it to be limited at times.

Back in the day (mid to late 80s), there were two big products being shipped with PC Clones: GW-BASIC and MS-DOS/PC-DOS.
And Works for DOS, too, maybe. Turbo Pascal also was popular, but not included in the package.

That explains why there were weird things in existence like MS-DOS simulators,
GW-BASIC simulators and Turbo Pascal simulators* for C64, for example. 😁

Edit: I forgot. MS Flight Simulator was also defining for the PC platform, maybe.
It was used as a compatibility tester for PC compatibility, too.
And Chuck Yeager's Advanced Flight Trainer was also sort of popular, I suppose.

(*Turbo Pascal Compiler v1.2)

Edit: Edited. 2x. Attachment moved to here.

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 11 of 14, by Predator99

User metadata
Rank l33t
Rank
l33t

I was curious how the ROM behaves. I put it on a Adaptec 2940 PCI-Controller and inserted in a SLOT-1 Mainboard.

It does as expected: The ROM-Loader message appears. If the CF-card is connected the PC boots from it. When disabling the IDE-controller, BASIC is started.

I also was intrested if this works in my modern 4790k-based system. Interestingly, it doesent even start with the 2940 inserted. When removing the BIOS from the 2940, the PC starts.

Anybody knows the reason?

20231214_212808.jpg
Filename
20231214_212808.jpg
File size
104.43 KiB
Views
771 views
File license
Fair use/fair dealing exception
20231214_212942.jpg
Filename
20231214_212942.jpg
File size
47.53 KiB
Views
771 views
File license
Fair use/fair dealing exception

Reply 12 of 14, by Predator99

User metadata
Rank l33t
Rank
l33t

...and with the ibasic.bin from the other thread: Exactly as you described. BASIC starts also when the CF-card is installed. So your BIOS is OK but you habe to use my BASIC-ROM from this thread here 😁

Reply 13 of 14, by Yrouel

User metadata
Rank Newbie
Rank
Newbie

Would it be possible to squeeze in this BASIC (or *a* BASIC) into Sergey's Book8088 BIOS ROM alongside the BIOS proper and XT-IDE?

It would be nice if the Book8088 booted into BASIC if no CF card was inserted (or manually with F8)

Reply 14 of 14, by Jo22

User metadata
Rank l33t++
Rank
l33t++

Hi again and a happy new year! 🥳

Just want to let you know that there's a nice little tool for BASIC that highlights the syntax.

https://bisqwit.iki.fi/source/synhili.html

It's being written by Bisqwit, who also has an interesting YT channel.

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//