Disk Manager 2000 v3.0 ====================== by ^^^F.G.Kaal ^^^Goudsbloem 68 ^^^3984CP Odijk ^^^The Netherlands ^^^E-mail: fredgkaal@gmail.com This is a Disk manager for the TI99/4a or Myarc 9640 home computer which can be used to manage your files on devices with a directory structure like a harddisk, SCSI-disk or IDE-disk About the programming effort ============================ DM2K (up to v1.9) is written and build on a Myarc 9640 and tested on both a Myarc 9640 and TI99/4a with a Myarc harddisk controller and the american and german version of the SCSI controller and an Iomega Zip-drive. DM2K is written in an optimized form of Clint Pulley's 'C' and assembly. Before version 1.0 was developed I had written a mixed 'C' and assembly library for accessing files at level 2 (sectors) and level 3 (standard file IO) using the library of Tom Bentley as an example. At the same time I've written a C99 optimizer for MDOS to optimize almost every generated 'C' code so that the program will still fit in the TI99/4a's memory. This optimizer can also be used for the TI99/4a with minor changes (source is available). Version 2.0 and newer of Dm2k was completely build and tested on a PC with Windows XP or Windows 7 or Windows 82. Version 2.6 and newer of Dm2k was completely build and tested on a PC with Windows 10, my own written TI99 emulator for windows (TI994w), a 32bits console version of Clint Pulley's 'C' compiler, 32bits console versions of my own written optimizers (C99o, C99x, C99f, C99m), assembler XA99 and linker L99. The final test was done on the real thing. The package =========== This package consists of: DM2K^^^^^^^^The program for the TI99/4A DM2L^^^^^^^^" DM2M^^^^^^^^" DM2N^^^^^^^^" GDM2K^^^^^^^The program for the Geneve (this version is far behind) GDM2L^^^^^^^" GDM2M^^^^^^^" GDM2N^^^^^^^" DM2K_EN^^^^^The manual in english DM2K_NL^^^^^The manual in dutch DM2KREADME^^This file Memory usage of DM2K ==================== cpu ram: ^^^^^^^^^DM2K^^>A000^^-^^>BFFA ^^^^^^^^^DM2L^^>BFFA^^-^^>DFF4 ^^^^^^^^^DM2M^^>DFF4^^-^^>F5EA ^^^^^^^^^DM2N^^>2000^^-^^>2D7C ^^^^^^^^^C99STACK >FFD0 down to >FA00 buffers: ^^file and directory names buffer FILESL >2D7C size >10*242 (127 files + 114 subdir + 1 uprdir = 242) ^^common buffer^^ FILBUF >2C4E size >300 vdp ram: ^^screenimage table^ R2^^ >0000 size >03C0 ^^color table^^^^^^^ R3^^ >0380 size >0020 ^^patern table^^^^^^ R4^^ >0800 size >0800 ^^sprite table^^^^^^ R5^^ >0300 ^^sprite descriptor^ R6^^ >0000 ^^Level 3 pab-1^^^^^ PABRW1 >1380 ^^^^^^^^^ pab-2^^^^^ PABRW2 >1400 ^^^^^^^^^ pab-3^^^^^ PABRW3 >1480 ^^^^^^^^^ pab-4^^^^^ PABRW4 >1500 ^^^^^^^^^ pab-5^^^^^ PABLSD >1580 used for LOAD/SAVE/DELETE ^^read write buffer^ BUFRW^ >1600 256 bytes ^^load save buffer^^ BUFLSD >1700 space for 32 sectors ^^Level 2 pab-1^^^^^ PABL2^ >1580 ^^namebuffer 1^^^^^^ NAME1^ >1590 ^^namebuffer 2^^^^^^ NAME2^ >15A0 ^^read write buffer^ BUFRW^ >1600 256 bytes ^^sector buffer^^^^^ BUFL2^ >1700 space for 32 sectors ^^circulair buffer^^ CBUF^^ >3700 buffer for dir names ^^end of VDP ram^^^^^^^^^^^^>3BE3 after call files(1) The history =========== V1.0 The first version. V1.1 Used the routine that comes with Clint Pulleys 'C' compiler to check if the stanard console routines are loaded instead of my own. V1.2 Solved all the bugs I found. Did some size optimizing. Can always use fctn-9 to escape. Added browsing for all file types (one small bug left, program sometimes skips records when browsing back but this is not distraseous). Added viewing files in a hexadecimal form with browsing also for program files. Added possibility to print the catalog. V1.3 Tried to fix bug to copy files from and to DSKA-Z Added code te execute Program and DIS/FIX files. V1.4 Tried to fix bug to copy files from and to DSKA-Z V1.5 Fixed bug to copy from and to DSKA-Z Always reset archive bit when copying files Don't allow to create a total path length of 34 characters Allow reading of directory from floppy with no volume name Did some more code optimizing Fixed bug in C99O optimizer so that DM2K is even more compressed Continue search to RAM-disk (cru address after >1100) after error 6 from TI-diskcontroller Finally added copy Src path to Dst path, press C V1.6 DM2K doesn't give error twice when it can't read a directory. V1.7 Can browse in short files with short lines when previous page is in same disk-sector. Supporting E/A routines saved in DM2N file. Executing of file commands stops when an error occurs. Added an autorepeat function. Moved autorepeat delay, speed and printer devicename to beginning of file Dm2k. Created a version for Geneve's Mdos. V1.8 Added LWPI >83E0, LI 11,>24 at the begining of Dm2k as suggested by Tony Knerr on eGroups so that Dm2k will exit gracefully. Redesigned DSRLNK for the level 2 routines (those >10 and >20 codes) so that the HDC doesn't intercept the commands for the SCSI. Added a swap (ctrl-s) command to swap the SRC and DST while entering the SRC. To speed things up removed the code to determine the size in bytes of program files if (TI)controller returns 0. V1.9 Added the number of files and directorys and number of sectors to copy or delete in file display. Increased file name buffer size from 128 to 256 entrys. V2.0 Need some CPU-ram, so rewritten more routines in assembly. Added a Ciruclair Buffer for storing path names and added the posibility to Copy, Move, Delete, Protect, Unprotect whole directory structures. Re-arranged the way things work. Used floppy format routine as in Du2k so formatting HD disks is now possible. V2.1 To much VDP-ram used because of the disk-buffers used by the original TI-diskcontroller. Added files() call in L2FIO routines. Circulair buffer is now >3700 to >3BE3. I can still copy my whole harddisk. Still a problem with SCSI when attempting to remove a directory which isn't empty! V2.2 Repaired view file for DIS/FIX 128 file. Only odd numbered records were shown. Added IDE support. V2.3 Noted that when only copy files from one device to another the directory is read again unnecesarry. Fixed this. When entering subdirectories Dm2k now remembers where it was in the previous directory and will not always start at the top of the list again when returning to the upper-directory. V2.4 Set keyboard mode to 5 for John Guidry 64/128K bank switched card project. Added a new execute algorithm for program files. V2.5 Added 80 column mode for type file as text (T or ctrl-T) and type file hexadecimal (B or ctrl-B) for people with an 80 column card, Myarc Geneve or F18A VDP board. v2.6 Bug fix in textm1() and textm2() functions. A 9938/9958 VDP requires that the two least significant bits of R2 (patter name table) are set to 1 when switched to text mode 2 (80 columns mode) So R2=0 for PNT address >0000 in text mode 1 and R2=3 for PNT address >0000 in text mode 2. The F18A VDP board doesn't care. v3.0 Added the possibility to define the CRU address in front of the Src and/or Dst path like so: 1400.DSK1. This is for the people with disk controllers and or RAM-disks witch all have the same device names. If no CRU address is entered then the first device found with the given device name is used. The CRU address of the device(s) used is always displayed in front of the Src and Dst path. Added lower case character set. Added beeps and honks. Added five new direct commands: C(opy), M(ove), D(elete), P(rotect) and U(nprotect). These commands are used directly on the file where the cursor is (and all other selected files). This is a quicker method for handling a single file then the select with fctn-2, fctn-6, select command sequence. If a subdirectory is selected and the P or U command is given then an "Are you sure" question is displayed. If a M or D command is given then an "Are you sure" question is displayed. With special thanks to: Barry Harmsen (Dutch TI group chairman) who lend me his SCSI and Horizon card. Bob Carmany for testing and suplying the routine wich gave me the hint of wat was going wrong with RAM-disk after CRU address >1100. Dan Eicher for some tips about the archive bit and for reminding me for the Src path copy to Dst path. Tony Knerr who found the bug of the disks with no volume name. Matthew Hagerty for creating the F18A VDP board. ̋Հ