IDEDOS 0.91 beta project page

Welcome to the home of the IDE Disk Operating System 0.91 for the IDE64 cartridge!

The next version of IDEDOS is coming, but it needs some more time to be finished. But this does not mean that there are no interesting features which can be tried out until it's fully finished. Also I'd like to know if the finished parts work as expected, or if there are some old features which do not work anymore. But as always:

This IDEDOS 0.91 beta release is not very well tested and could destroy your data!

Which is of course not the intention, but having good backups is a very good idea if there's something important stored on the disks. The point of the release is to get more testing on diverse hardware and to get feedback.

IDEDOS changes since 0.90 20091029, which are done:

OFS 0.02 support removed
The old filesystem used by IDEDOS 0.89x is not supported anymore, as this is only taking up space and probably everyone has converted by now.
Protected BASIC, serial and PCLink routines.
There was an incompatibility with interrupt routines located in the ROM banking area when the BASIC extension, serial and PCLink routines were running, which caused crashes for some software. This should be no problem anymore on C64. (but this problem still exists on SuperCPU due to hardware limitation)
F-keys work with interrupts
Setting up a custom interrupt routine automatically disabled the hotkey support. This should not happen anymore, as this was a workaround.
Read ($DEF4) works under I/O
This allows faster disk operations in the monitor when loading under the I/O area, but can be used by user software as well. Probably some of the picture plugins will be updated to use this.
PCLink load below I/O works now
Loading huge programs over PCLink should be no problem now. This was already a standard feature for IEC and normal IDEDOS drives.
SilverSurfer PCLink support, PCLink optional
In theory this should be possible now, but it was not tested on real hardware yet. Also now it's possible to completely disable PCLink support.
FAT filesystem read ($DEF4) and load
Now copying is much faster from a FAT volume, and loading files also works now. Probably this will increase the confusion of new people who forget to format a drive to native CFS and want to write to it, as everything seems to work except writing.
Combined CFS and FAT partitions, per partition filesystem support
Now if there are FAT partitions on a disk which has a CFS partition table then the FAT partitions are not hidden anymore, but are filling up the unused CFS partition entries in the CFS partition table as foreign partitions. To make this useful the limit of one filesystem type per drive is removed now and the filesystem type belongs to the partitions, like it should be normally. FAT partitions take up twice the space so there can be at most 8 if there are no CFS partitions.
Partition list for FAT and ISO9660
The partition list is automatically generated for FAT and ISO9660 volumes, so it's not an error anymore when there's no CFS partition table on disk.
Dynamic drive enumeration, PCLink detection
The drive numbers are not hardcoded now (e.g. drive 1→primary slave), but are assigned in the order of detection. Also PCLink drives disappear when there's no hardware connected (e.g. no network card connected, but support is compiled in). 5 drives are supported, but only 4 of them can be a normal drive, the 5th can only be PCLink.
Read ($DEF4) and write ($DEF1) support on modifiable files
IDEDOS 0.90 only allowed character I/O on modifiable files, but this limitation was fixed now. This opens up possibilities to create high performance database software, read/write image file support (D64) or IFFL system with fast read/write support.
Timestamp update only if modified
The timestamp is only updated if the modifiable file was really modified, a simple open and reading is no reason for a timestamp update.
Seeking, modifiable and appendable files on PCLink
The PCLink drive gained standard features of normal IDEDOS drives. So now it should be possible to enter D64 files on PCLink too, or play Maniac Mansion over the network.
PCLink protocol changes
This was necessary due to seeking, and performance reasons. With the new protocol USB PCLink is ~55 KB/s for both read and write, and the Ethernet PCLink is at ~60 KB/s in both directions (with SuperCPU it's 200 KB/s!). Unfortunately an updated ideserv is necessary, but Rush can be played over EPCLink now with proper frame rate.
Drive types
The internal architecture was reworked to understand drive types beyond ATA and ATAPI, for example PCLink is one of the new drive types now. This is an important change, but I guess it's not very interesting for users yet.
PCLink activity LED
The extra LED on the V4.1 cartridge is now used as PCLink activity LED. Before it was the error led, but it had a lot of quirks. (there was no way to tell which device was in fault, and if more than one was in fault, then sometimes it was not shown)
Additional editor function keys
In 0.90 the only function key was CONTROL+D. Now there are some more to move the cursor around, clear parts of line or toggle repeat/insert mode.
Floppy speeder cleanup
Now 1581 has fastsave support, and 1571 native mode is supported as well. Also fastsave is not limited to the manager anymore, it's also used by the SAVE KERNAL call.

IDEDOS changes since 0.90 20090702, which are to do:

Relative files
Due to internal changes the relative file support is broken temporary.
Executable flag on files
It's ignored for now due to internal changes, future is uncertain.
SuperCPU support
Could be broken at some places, as not much testing was done yet.
Regressions
Some things could be broken, which already worked on IDEDOS 0.90 and are not on this list. Please help to find them.

Contact:

Please send your experiences to the IDE64 mailing list, which is now at: http://groups.google.com/group/ide64

Changelog:

22.36.58
Initial upload
22.37.00
PCLink could delay the boot quite a lot in some cases, fixed now.
22.37.01
PC64 frame error fixes, and PCLink+CRC compile failure fix.
22.37.02
All PCLinks except Ethernet corrupted a byte in RAM around ~$b300 during read because of a typing mistake.
22.37.03
If only write were used with special size to write a file then it could happen that the file was not marked as modified which prevented proper close.
22.37.04
The SuperCPU version does not crash on boot anymore and is now testable.
22.37.05
Error LED on V4.1 is now PCLink LED.
22.37.06
KERNAL file table emulation
22.37.07
KERNAL file table use for normal operation. No double channel use anymore, 10 open files only, but ACE works now ;)
22.37.08
Load allows to load to $2a7-$2ff now from IDEDOS devices.
22.37.09
Directory load below I/O is supported now, verify failing works over pclink.
22.37.10
Wrong data was written if the buffer had to be flushed first in blockwrite.
22.37.11
Blockread after last byte of sector position increment bug
22.37.12
Load hang/load error on directory load with JD support but without JD KERNAL
22.37.13
Only allow floppy autostart for BASIC load
22.37.14
Dual ROM support for IDE64 V4.1 (Automatically boot C64 or SuperCPU version based on hardware configuration)
22.37.15
Do full reboot after SuperCPU/C64 mode switch to prevent possible corruption.
22.37.16
Fix ETH64 compile problem
22.37.17
Vector table restore hack added, RR freeze hack added, CR corruption and bypass fix, multiple readers for the same file allowed, DolphinDOS fixes, 1541/1571 fastload freeze fix
22.37.18
Transfer test fixes (hwerror)
22.37.19
SCPU compile fix, device not present hang fixes for "@" and monitor
22.37.20
Manager updates (mkdir, pattern selection) Device number change with @# in monitor. Chkin/out y fix.
22.37.21
Extended editor keystrokes, insert mode
2010-07-11 13.14.50
Link handling works again, more function keys
13.14.51
Experimental IEEE488 support for modified CBM adapter.
13.14.53
Function key fixes, monitor function keys
13.14.54
Function key fixes, manager input function keys
13.14.55
Broken file hole handling fixed, recursive link copy fixed, monitor supports decimal, binary and octal numbers, pattern fill for monitor
13.14.56
Broken verify fixed, KERNAL v2 setup fix, insert mode and line skip in monitor, insert mode in manager
2010-08-05 21.39.41
Virtual drive read and write, scratch speedup
2010-08-09 22.33.03
Virtual drive interface update, pclink fixes
22.33.04
SCPU chkout hang and load under I/O crash fix
22.33.05
JiffyDOS/DolphinDOS tksa bugfix, c128keyb ddr fix
2010-09-06 18.55.34
Move in manager, virtual filesystem update for close, write fixes
2010-09-20 09.08.51
1581 fastsave, fastsave on floppy for SAVE (before it was only for manager), 1571 native mode fastsave fixed, manager 1571/1581 native mode fixes, dolphindos verify crash fix, 1571 device not present bug on open
2010-09-21 09.43.27
Less seeking when fast saving to 1581, ident string fix for hardware error, more hwtest update
2010-09-22 21.25.19
CHANGE device not present error fix, CHANGE now works on 1570/1571/1581, only use special commands if supported (otherwise some drives hang for a while at boot)
2010-09-25 10.48.18
1581 fastload can be stopped now properly, 1581 fastsave fixes, slight load/save speedup
2010-09-28 09.51.33
PCLink blockwrite/read fix
2010-09-29 09.16.31
Load error handling fix
2010-10-04 09.33.04
Blockread end bugfix, partition end bugfix. Big floppy speeder update (not disabled so often)
2010-10-06 10.01.15
DolphinDOS write speedup, ETH64 allocation fix
2010-10-06 18.29.22
Put back accidentally removed virtual filesystem read/write
2010-10-11 09.38.25
CP0 and CD/ compatibility fixes, faster save on 1541/71 JD drives, file size estimate when copying in manager from CMD devices was wrong, problem to stop loading on 1541/71 fastload fixed, floppy blockread size bug fixed, hang when copying to CMD HD fixed.
2010-10-11 22.46.43
Floppy speeder init more reliable now, SCPU load/write fixes.
2010-10-14 14.47.58
Validate rename window input
2010-10-15 08.37.15
Land in same directory as other panel, when same drive is selected
2010-10-16 10.39.35
Quick moving now works in manager, handle deletion while moving intelligently without questions.
2010-10-23 19.42.20
Odd frame ignore bug fixed with ETH64.
2010-10-23 21.33.38
PC64 PClink bug fixed, anything older than 20101023 is broken now ;(
2010-10-24 10.02.56
Drive not ready if no cable is connected on EPCLink and UPCLink
2010-10-28 08.36.59
Use of uninitialized pointer fixed in CHRIN/CHROUT. Update recommended.
2010-12-28 20.33.19
Restore vectors in case of hardware failure on boot, allow the use of commas as parameter separator in the monitor
2011-02-16 08.01.57
Del function key added, display only end of path in manager, fix second SID handling in manager it at $d600, monitor SID muting fix, fix broken <- in monitor, serial bus timing tolerance improved for 1541/71
2011-03-05 11.50.40
Fixed cursor beyond filelist bug and memory corruption in manager, monitor accepts indirect addresses as numeric parameters and accepts comma as a separator in a few more commands
2011-03-19 16.57.59
Workaround for 1541U unsupported illegal opcodes in floppy speeder
2011-03-25 16.47.01
Some fixes for operating without KERNAL
2011-06-28 15.41.28
Close hang fix, fat files seekable now (suboptimal but works)
2011-06-28 18.43.09
Fix floppy speeder problems with virtual filesystems in manager
2011-08-05 00.21.07
Smarter handling of invalid geometry in boot sector
2011-11-04 10.45.12
Support for burst modification (CIA2), CLRCHN UNTALK/UNLISTEN loop fix, detection fixes (incompatible with old VICE for second bus as the emulation was wrong), do not unnecessarily spin up harddisk for standby timeout change, reset drive on interrupted transfer, compile fix for certain configurations.
2011-11-06 10.50.25
The basic IRQ protection had a hole, this is fixed now.
2011-12-28 23.37.25
Reuse command channel if reopened.
2012-01-30 15.14.33
Manager workaround for command channel reuse. Really I should get rid of the separate buffer soon...
2012-02-03 07.08.33
No more command channel buffer allocation, DOS wedge does not disturb open files on floppy. Remove some JD workarounds, it's not needed anymore. Invalid serial bus access sometimes when using virtual drive in manager fixed now.
2012-02-19 02.56.40
Less seeking when copying on same partition in manager. Wrong progress bar length in long directories fixed. Update ideserv to 0.27b 20120218, earlier versions couldn't parse cd:←, and the manager is using it now instead of cd←.
2012-02-21 02.41.38
Compile fixes
2012-03-04 12.25.06
Silly EOF bug in manager for short files.
2012-03-14 23.42.10
Fix for SCPU crash on CHRIN
2013-12-18 19.02.13
Fix for the NTSC JiffyDOS timing
2013-12-23 18.40.24
Add ShortBus I/O 2 enable/disable option
2014-07-24 07:42:28
More conservative JD timing
2014-09-18 00:01:13
Fix SCPU pattern match in manager
2014-12-28 10:01:06
More compatible JD f-key init
2015-01-29 16:00:37
Support V4.2 cartridge
2015-10-12 13:15:10
Dos wedge can load autostarting programs from floppy now
2016-04-15 07:35:27
Fix "man!" config reload
2017-02-16 12:27:54
Use actual drive on active panel when entering manager
2017-02-24 22:51:50
Restore last device after reset. Use/change last device in monitor.
2017-08-15 21:43:50
Improve handling of CMD device's emulation partitions in manager.
2017-09-16 13.33.39
Fix the 16 character image file name jump when exiting an image file the manager. Starting a file from an image file now jumps to the image file when the manager is re-entered.
2018-03-31 12.33.57
Display files left when copying, moving or deleting
2018-11-08 19.21.27
Revert DolphinDOS KERNAL wedge breaking change
2019-02-19 19.16.17
Single byte (+load address) drive code fix
2019-07-19 19.43.28
Simplify CS8900 handling. Improve load/save zero page compatibility.
2019-07-19 21.44.16
Fix CTRL+D regression.
2019-07-20 08.09.03
Longer and consistent PCLink timeouts. Wait for link on CS8900 as it's lost on reset.
2019-07-28 13.19.01
Fix junk Ethernet telegrams for long paths
2019-07-28 19.16.47
Improve aborted USB PClink transfer recovery
2019-07-29 22.44.08
Fixed Swiftlink/Turbo232 detection. Revert short timeouts for Turbo232.
2019-10-30 05.04.13
Update destination filename window in manager just in case it changed
2020-02-25 20.29.28
Fix stack corruption on save/write when stack space is low.
2020-08-15 20.03.09
Less confusing file unlocking behaviour if only one of delete/write bits are set
2020-11-20 23.11.12
Fix monitor Q command to perform the same as stop + restore
2020-11-29 12.03.57
Improve manager too many files handling
2020-12-11 21.37.18
With JD/DD acceleration enabled directory read error resulted in empty list but no message
2020-12-11 23.10.22
Display error channel message instead of file not found on manager directory load
2020-12-12 06.26.29
Do not allow plugins on virtual drives in manager (otherwise it gets confused)
2020-12-12 07.19.00
Display error channel message if basic directory list fails
2020-12-15 01.27.16
Optimize USB PCLink transfers
2020-12-15 20.58.04
Fix timeout after interrupted PC64 PCLink transfer
2020-12-18 12.36.54
Further small USB pclink tuning (4% faster)
2020-12-19 08.34.45
Make USB blockwrite/chrout reliable with the optimized code.
Ideservd must be updated to at least 0.32 or else USB PClink will not work!
2020-12-21 11.11.48
Do not hang until PCLink timeout in some obscure case where no request was sent in the first place
2021-01-17 17.28.36
Corrected an edge case in blockread which could cause a file pointer to be miscalculated when used together with character reads in certain situations. It seems it was there from the early days of 0.91 beta. Please update if using 1090 or earlier.
2021-01-17 18.10.06
Two bytes in RAM under I/O could not be edited in monitor due to a mistake.
2021-01-30 16.55.45
Allow exclamation mark after INIT to force power up
2021-01-30 18.46.04
SuperCPU compile fix...
2021-03-07 21.49.53
Only allow fn key definition if it's complete
2021-03-29 22.03.49
Pressing stop on error now asks for abort in manager
2021-04-17 20.51.41
Remember last started file in manager
2021-06-12 15.28.25
Opcodes 96 and 97 were swapped in monitor (STX/SAX)
2021-08-11 21.28.45
Shorten autostart sequence
2021-09-04 22.46.43
W in monitor could hang in some cases
2021-10-02 14.20.03
Comma command in monitor now accepts more bytes than opcode needs. Number parsing got corrected.
2021-10-09 00.20.04
Rearrange vectors for compatibility
2021-12-19 09.08.24
Fix wrong status after EOF for serial drives
2021-12-21 20.38.57
Multicast Ethernet PCLink changes (requires ideservd 0.33 and above)
2022-01-05 16.38.38
Fix typo breaking CS8900 setup
2022-04-03 05:48:48
Insufficent msgmode check in HDINIT for PCLink
2022-04-03 08.53.50
Handle write after chrout buffer full edge case
2022-05-20 06.16.13
Update manager zeropage use to avoid BASIC interference
2022-06-18 13.48.40
Manager control code PETSCII display was wrong
2022-06-21 00.47.36
Fix ctrl-a and ctrl-e double line editor bugs
2022-09-26 21.05.02
Floppy autostart load only restricted for boot
2022-10-16 13.59.43
Previous error could be redisplayed in manager for parent directory
2022-11-27 22.18.27
Fix illegal partition selected error on manager startup
2022-12-05 00.38.55
Make CD in manager safer
2023-01-14 12.57.09
Do it so that it doesn't break copy between partitions
2023-01-16 21.50.10
Fix monitor TOD compatibility problem
2023-02-06 07.53.26
Faster cold boot
2023-02-11 18.32.18
Correct vectors for IV monitor command
2023-02-20 21.58.40
Fix monitor number parsing for lda (12),y
2023-02-21 07.47.42
Revert wrong optimization in previous patch
2023-06-04 21.27.03
Fix manager exit screen colours
2023-09-24 09.37.45
Monitor was incompatible with my +256K VCS
2024-03-13 22.31.23
Use wildcards for illegal characters on manager load

Files:

Custom IDEDOS 0.91 beta download web page (2024.Mar.13)
Custom download page for all cases, use this!
IDEserv 0.35e (source+win32 binary, 2023.Feb.16)
Universal PCLink server for 0.90 and 0.91. Windows binaries included, for other systems it needs to be self compiled.
Sample ide.hdd for VICE (2020.Dec.27)
Can be used to test IDEDOS 0.91 beta on VICE

Documents:

IDE64 interface cartridge user's guide beta (pdf, 2023.Feb.20, ca. 1 MB, A5 paper)
Work in progress user's guide for IDEDOS 0.91 beta.
– Soci/Singular –