Hi, I am pleased to announce two new uploads:
http://www.coli.uni-sb.de/~eric/stuff/soft/by-others/ aitor-nls-spanish.zip Spanish localization for choice, tree, diskcopy, fc, find, help, more, sort, by Aitor (if you do not want to download all new choice, tree, ... zips!). http://www.coli.uni-sb.de/~eric/stuff/soft/by-others/ deskwork-unit-pcmcia.pas Pascal source code from the (usually closed source) DeskWork.de project (which is a shell for DOS / Windows 3 in StarTrekNG design, with some nifty features like hotplugging filesystems). Konstantin released the file into public domain and I translated things into English language and added lots of extra comments with his help (e.g. about how PCMCIA.pas interfaces with the rest of DeskWork). Summary: Use AddPort to set the I/O base of the PCMCIA bridge. Then run DetectPCMCIA to scan for devices. Run HotPlugPCMCIA as often as you want to detect and process plug/unplug events. Run DonePCMCIA to shut down all devices. HotPlugPCMCIA(true) will also automatically call other DeskWork parts to register / unregister devices as appropriate. DetectPCMCIA will also call BootText to write logs to the boot log. You get the idea. Interface: procedure AddPort(_BasePort: Word); { ISA-PnP } function HotplugPCMCIA(Mount: Boolean): Boolean; procedure DetectPCMCIA; procedure DonePCMCIA; ... and a CPort record (base plus 4 slot records, each with type, status, irq, voltage, vendor/device-words, iobase, name-string, init-time). The bridge would allow max 4 slots, but nobody seems to have more than 1. By the way, SMM would allow max 7 bridges, but nobody has more than 1 PCMCIA or CardBus bridge, it seems!? Implementation: InCard, OutCard, CardPresent, EnableINT, DisableINT, DisableIOWindow, EnableIOWindow, DisableMemoryWindow, EnableMemoryWindow, (those were the lowlevel ones) EnableModem, EnableNE2000, Enable*EIDE (several variants), EnableMemstick (Sony?), EnableClik (PCMCIA sized Iomega drive with changeable disks), (those all do basic init/config and then call other DeskWork "mount" funcs) and of course the Interface function/procedures. Used DeskWork parts apart from mount/umount style ones: BootText(string,color), FillChar(string,count,char), LTrim, RTrim, RegionFree(iobase,size) (to avoid I/O port range clashes), plus "what is BLASTER IRQ?" and some data structures which list the present serial ports / connected devices, IDE controllers / connected devices, ... and probably several things which I have overlooked. Still it would be quite interesting to port this to a FreeDOS driver! You could limit the driver to storage, and allocate some drive letters in advance. Call the hotplugging thing only when the user tries to access a drive. Note that you will have to program the IDE controller manually, no int 13 support UNLESS you cheat the BIOS by fiddling with 40:[xx] values to "mount" the detected PCMCIA-connected IDE controllers. For example Lucho/...'s UDMA driver programs the IDE directly, too. Bonus problem might be: FreeDOS FAT drivers can only be used with int 13 devices. Maybe the solution would be to connect the PCMCIA driver-to-be as simulated int 13 floppy (or harddisk) drives? Would simplify things a lot but you will have to force FreeDOS to re-read the partition table of the PCMCIA device after a disk change. THAT would be an argument contra int 13 style access and pro MSCDEX style access. Your votes please. Eric PS: License is public domain. Quote Konstantin: "Macht damit was ihr wollt." ... Enjoy! ------------------------------------------------------- This SF.Net email sponsored by Black Hat Briefings & Training. Attend Black Hat Briefings & Training, Las Vegas July 24-29 - digital self defense, top technical experts, no vendor pitches, unmatched networking opportunities. Visit www.blackhat.com _______________________________________________ Freedos-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freedos-devel