The most frustrating bug when using EXDOS with EP64:
[ Guests cannot view attachments ]
The EXDOS manual talking about it:
If you are using an Enterprise 64 with EXOS version 2.0
- You will not be able to use the 'null' filename to load the file
'START' from disk (see appendix E). If you press Fkey 1 [START]
from BASIC, EXDOS will think that you are trying to load a file
from the RAMDISK.
I debbuged the problem: the bug is in the EXOS 2.0 device handler interface.
The
EXOS string used at channel open have a 4 parts all are optional
- device name
- "-" character
- unit number
- file name
Some valid examples:
"TAPE-2:GAME.BAS"
"DISK1:GAME.BAS"
"2:GAME.BAS"
"B:GAME.BAS"
"TAPE2:"
"GAME.BAS"
""
If no device name definied then the Default Device used. If no unit number definied then 0 unit number used.
When using EXDOS, the Default Device are the DISK: and DISK0: means the current drive. DISK1 to DISK26 the drives from A to Z.
When using just filename for example "GAME.BAS", then DISK device used, and 0 unit number passed by the EXOS to DISK device, then using default drive for load GAME.BAS.
It is a special function of the EXDOS when null filename used for loading then using "START" filename. This is for IS-BASIC, when pressing F1 key as in tape system, it is enter command START. It is use "" filename for loading.
The problem about it in the EXOS 2.0: when using null EXOS string then the Default Device right used, but forgot to use 0 as default unit number. C register contains the unit number passed to device driver, at this situation contain some random data (probably the length of default device name string), it is =5. Then the DISK device think need to use 5. disk drive which are the E: then come the No RAM disk error, because no RAMDISK at startup.
Anyway if you create RAMDISK and put the START file to E: then the START command works
If device name or unit number are definied then the right unit number passed to DISK device, for example:
LOAD "DISK:"
LOAD "DISK0:"
LOAD "0:"
LOAD "DISK-0:"
are load the START file from the default drive.
But these need a many more typing than just pressing F1 key...
The best solution are the upgrade EXOS in the machine... but todays many EP64 machines in the collections don't want to be opened.
So, I thinking add some hack to DISK device for bypassing this problem:
IF filename="" AND unitnumber=5 AND EXOS=2.0 THEN LET unitnumber=0
With this modification the START will be works on unmodified EP64! But this will generate another bug
LOAD "DISK5:" will be load START file from the default drive instead drive E: when using EXOS 2.0.
But I'm really sure nobody typed LOAD "DISK5:" command in the last 30 years
(LOAD "E:" will works corretly, and no problem with LOAD "DISK5:filename" commands.)
Then I think this will be acceptable compromise, the START command (just press F1 key in BASIC) are very often used, need to be working also with EXOS 2.0.
What do you think about add this modifications to EXDOS 1.4?