modem7
Veteran Member
Every so often we see a person-in-need posting that they have an IBM AT that has lost it's settings (seeing a '161 - System Options not set' error), jumping into BASIC, and the person-in-need is seeking how to remedy the situation.
The remedy involves the person-in-need obtaining a suitable boot disk that has something on it that can appropriately set the CMOS/RTC chip, e.g. IBM Diagnostics Disk for AT, boot disk with GSETUP.
Only recently did I gain the knowledge on how the IBM Diagnostics Disk and the various generic setup utilities (such as GSETUP) program the CMOS/RTC chip, and accordingly I've started to offer the provision of BASIC code to persons-in-need so that they have the option of performing 'system setup' via BASIC.
But, I don't want to be the only one who can offer BASIC code, and so I've developed something to give you other 'helpers' out there the ability to offer BASIC code to persons-in-need. It's a Windows app that can be thought of as a variant of GSETUP, one that runs under Windows 2000/XP (and probably Vista) and generates BASIC code.
You can download it from: http://members.dodo.com.au/~slappanel555/software/GSETUP_BASIC.zip
As you can see in the above screen shot, the person-in-need will have to inform you of the hardware configuration of their IBM AT.
BIOS version, base memory and expansion memory can be difficult for some persons-in-need to determine, but luckily, those three items can be determined by you getting the person-in-need to run some BASIC code:
Determining BIOS version
10 def seg = &hf000
20 for i = 0 to 7
30 print chr$(peek(&hfff5 + i));
40 next
run
Determining Amount of Base Memory
The POST in the AT records the amount of base memory (in KB) that it finds.
def seg = &h40
print peek(20)*256 + peek(19)
NOTE: When run on an IBM PC (5150), I see it only reporting the motherboard component of base memory.
Determining Amount of Expansion Memory
Expansion, not Expanded.
The POST in the AT records the amount of expansion memory (in KB) that it finds.
out 112,48
low = inp(113)
out 112,49
high = inp(113)
print high*256 + low
The remedy involves the person-in-need obtaining a suitable boot disk that has something on it that can appropriately set the CMOS/RTC chip, e.g. IBM Diagnostics Disk for AT, boot disk with GSETUP.
Only recently did I gain the knowledge on how the IBM Diagnostics Disk and the various generic setup utilities (such as GSETUP) program the CMOS/RTC chip, and accordingly I've started to offer the provision of BASIC code to persons-in-need so that they have the option of performing 'system setup' via BASIC.
But, I don't want to be the only one who can offer BASIC code, and so I've developed something to give you other 'helpers' out there the ability to offer BASIC code to persons-in-need. It's a Windows app that can be thought of as a variant of GSETUP, one that runs under Windows 2000/XP (and probably Vista) and generates BASIC code.

You can download it from: http://members.dodo.com.au/~slappanel555/software/GSETUP_BASIC.zip
As you can see in the above screen shot, the person-in-need will have to inform you of the hardware configuration of their IBM AT.
BIOS version, base memory and expansion memory can be difficult for some persons-in-need to determine, but luckily, those three items can be determined by you getting the person-in-need to run some BASIC code:
Determining BIOS version
10 def seg = &hf000
20 for i = 0 to 7
30 print chr$(peek(&hfff5 + i));
40 next
run
Determining Amount of Base Memory
The POST in the AT records the amount of base memory (in KB) that it finds.
def seg = &h40
print peek(20)*256 + peek(19)
NOTE: When run on an IBM PC (5150), I see it only reporting the motherboard component of base memory.
Determining Amount of Expansion Memory
Expansion, not Expanded.
The POST in the AT records the amount of expansion memory (in KB) that it finds.
out 112,48
low = inp(113)
out 112,49
high = inp(113)
print high*256 + low
Last edited: