Developer's weekly reports These documents are converted from the contents of Eric Smith's development hard disk, originally written in AtariWorks STW format.
Progress report: week ending 2/5/93 Eric Smith
MiNT:
Applied patches to make MiNT compile with Lattice and Pure C.
Fixed the memory initialization code to work with boards such as the Overscan board which don't allow the screen address to be changed.
Applied Howard Chu's patch to speed up the /dev/fasttext device.
If less than 1 megabyte is free, turned off memory protection and allowed Mallocs of < 1 page (i.e. <8K), to permit MultiTOS to boot on a small machine.
Fixed a number of bugs:
Pipes opened with the O_APPEND flag couldn't be written to. Symbolic links couldn't be renamed. Processor dump information was not being saved to the BIOS's reserved space if memory protection was enabled.
MULTITOS AES/DESKTOP:
Checked the Desktop & AES into the revision control system
Converted the Desktop to use Allan Pratt's malloc() code instead of doing a GEMDOS Malloc call (this change is much more difficult to make for the AES, unfortunately).
Constructed a "USA only" version of the AES/desktop (i.e. with only 1 language loaded) to test on a 1 megabyte Falcon.
MINIWIN:
Changed the "font selector" box to keep the point size when a new font is selected (but only if the new point size is valid for this font). Also added a small box at the bottom of the dialog that shows the current font selection (in the appropriate size), making it easier to select an aesthetically pleasing font/size combination.
Made the cursor change from a solid block to an underline when the MINIWIN window is not on top.
RCS (Revision Control System):
Packaged RCS; converted manuals from nroff to plain ASCII, and gave copies to other members of the TOS group.
MiNT LIBRARY:
Fixed a bug in the stat() function which was causing it to not function properly under plain TOS (i.e. with no MiNT loaded).
Progress Report: weeks ending 2/20/93 Eric Smith
MultiTOS AES/Desktop:
Fixed the "Open Application" dialog so that it always searches relative to the current directory if no absolute path is entered.
Added an "Insert System Disk" dialog for the critical error handler to all the various language resources. Updated the GEM resources so that the new version of Interface may be used to edit them, and modified the critical error handler to use the new dialog for "insert disk" requests on non-floppy drives (i.e. drive letters other than A: and B:).
Put the "DESKTOP" string which appears as the Desktop's name in the first menu into the desktop resource file, so that (for example) it can say "Bureau GEM" in French. Updated all desktop resources accordingly.
Updated the makefile to build arbitrary single language configurations.
Bug fixes: Changed some Mfree calls that were overlooked in the conversion from Malloc/Mfree to malloc/free. Fixed a memory allocation bug that could cause funny looking file names if files were dragged and dropped within the same window. Changed the name of the desktop's icon from WINICON (which was already being used in a completely different sense!) to SMILEY in all resources.
MiNT:
Added code to turn off memory protection if the program is named MINTNP.PRG instead of MINT.PRG.
Bug fixes: Corrected the setting of the CPU type variable, and made the (still experimental) 68030-only version test this. Fixed several bugs in the kernel-file system interface. Fixed a bad return value from Dgetcwd(). Modified the XBIOS Supexec function to preserve *all* registers; apparently some programs relied on this behaviour :-(. Fixed a problem with media change (shared text programs, such as MINIWIN, did not have their associated open files closed when the media changed).
MINIWIN:
Modified MINIWIN.APP so that it searches for its configuration and resource files in the directory in which MINIWIN.APP resides (this makes working on a floppy only system easier).
Added the ability to change the program's name as it appears in the "Desk" menu (a .MNU file must be present for this to work).
Continued to try to remove obsolete or unnecessary code to reduce the memory requirements of the program.
Bug fixes: Fixed some bugs in the way MINIWIN detects whether or not it is the top application. Fixed the startup code so that the message "MINIWIN requires MultiTOS" will indeed be printed if MultiTOS is not present.
MISC.:
Constructed a boot disk with a gulam shell script for factory installation of programs (i.e. to copy all files from one hard disk to another, to verify the files, and then to flash a red screen if an error occured or a green screen if everything was OK).
With Denis, wrote a small "drive remapping" utility to let us give an "insert system disk" message on floppy-only MultiTOS systems. Several revisions of this were necessary in order to remove various bugs (e.g.: GEMDOS can't handle drives above P:, and the BIOS was giving "Insert disk A: into drive A:" messages at inappropriate times).
With Hans-Martin, began to examine ways to merge the multitasking and single tasking AESes.
Progress Report for Eric Smith Weeks Ending: 3/6/93
MultiTOS Desktop/AES:
With Hans-Martin: began planning the merge of the multi and single tasking AESes, and also strategies for improving AES performance under MiNT.
Made resolution changes happen much faster (the improved user feedback will help; there was no need for such a long delay).
Checked MultiTOS 1.01 into RCS; constructed some shell scripts to make this (and backing up the binary files that RCS can't handle) easier.
Updated the French resource.
Bug fixes: Applied Hans-Martin's bug fixes for menu code and window update code. Fixed a bug in the floppy to floppy copy code (the buffer allocated for the boot sector was too small).
MiNT:
Modified the Psetpgrp call so that using a process group of -1 causes the current process group to be returned.
Changed the number of simultaneous Fsfirst searches from 6 to 10. (This is a per-process limit, but some people were running into it).
Bug fixes: The Flock call wasn't working correctly (the region locked was 1 byte too long). On plain STs, turning off memory protection could occasionally cause problems (there was code that assumed that you could always put a screen at the beginning of any memory region). I fixed the allocation code to always return properly aligned memory. Side benefit: under MultiTOS applications that want to do a Setscreen to a block they've Malloced never have to worry about adjusting the screen boundary.
Checked MiNT 1.03 into RCS.
TOS 4.03:
Added CTRL-ALT-UNDO for startup reset of NVRAM. Assisted in debugging devconnect call in startup code. Moved dev_init() call from VsetMode() to Setscreen, and in the process of debugging this discovered flaky video hardware on Derek's old machine :-(.
Burned ROMs for production.
Checked the changed BIOS files into RCS.
MINIWIN:
Changed it to use a separate DTA (rather than the default DTA in the basepage); this way programs like "top" and "ps" can report the argument(s) given to MINIWIN, so you can see which MINIWIN belongs with which .TTP.
Corrected a bug in the "Paste" dialog box when "Neither CR nor LF" is selected.
Changed MINIWIN.RSC to work in 40 column mode.
Adjusted MINIWIN's menu construction code to move menus so that they never wrap around the screen (this matters in 40 column mode).
Merged French and German translations into MINIWIN.
MISC:
Fixed a bug in VIEWER.APP (characters with bit 8 set, e.g. umlauts, were not displayed correctly).
Compiled a smaller version of CHPROT.APP (more optimization, shorter strings for messages) so that the French MultiTOS distribution disk will fit on a 720K floppy.
Assisted Denis and Cary in tracking down some bugs in the Latticized GEM+AES.
Progress report for: Eric Smith Weeks Ending: 03/20/93 ====================================================
MultiTOS AES+DESKTOP:
Continued working with Hans-Martin on merging the multi- and single- tasking AESes. (Some good progress has been made on this.)
Fixed the Desktop memory initialization bug so that the Desktop can be restarted after being killed.
Checked the Lattice port into RCS.
Changed the code to remove some warnings that Lattice was giving.
Merged Hans-Martins's changes to allow loadable resource files and keyboard maps.
TOS:
REALLY fixed VsetMode. Changed version number to 4.04. Burned ROMs, etc.
MiNT:
Added a work-around for a bug in the Falcon BIOS (BIOS device 7 didn't work as advertised).
Bug fixes: SIGCONT shouldn't have stopped traced processes Dpathconf() was returning the wrong values for U:\PROC When tracing is cancelled for a stopped process, the process should have been restarted. Plugged a memory leak in the semaphore code.
Misc:
Was featured on 2 on-line conferences about MultiTOS (GEnie and Delphi) with Bob Brodie.
Retrieved new versions of gcc, g++, and the MiNT libraries.
Reviewed various documentation (including the MultiTOS Quickstart guide and the programmer's documentation). Re-wrote MiNT programmer's documentation.
Gave Denis a copy of gcc for him to compile the VDI with, and helped him do this (the resulting binary didn't work, though...)
Progress report for: Eric Smith Weeks Ending: April 2, 1993 ====================================================
MultiTOS AES+DESKTOP:
Continued working with Hans-Martin on merging the multi- and single- tasking AESes. On the TT, both applications and accessories work correctly now. More work needs to be done to get applications working on Falcon.
MiNT:
Developed a proposal for implementing shared libraries, sent it to the MiNT users mailing list for comments.
Added PMMU cookie support, and also enhanced the context switching code so that MiNT will be compatible with 3rd party virtual memory products like Outside and VRAM.
Bug fixes: Made Tsettime() and Tsetdate() available only to the super user. Added some enhancements sent by users to the /dev/fasttext driver. Fixed a bug in the media change code for TOS file systems. Fixed some incompatibilities with 3rd party serial port drivers. Fixed a bug in the memory protection code, cleaned the code up a bit.
Misc:
With Mark, went over the AES documentation and corrected it to reflect reality (and the 1993 version of the AES rather than the 1986 one).
Did the usual e-mail answer and bug report fielding.
Progress report for Eric Smith Weeks ending 4/17/93
MultiTOS:
Continued to work with Hans-Martin on the single/multi tasking AES.
Made the multitasking AES do a blocking wait under some conditions, instead of always busy-waiting. This gives about a 10-20% speed improvement; not as much as we'd hoped, but some more optimizations may be possible.
Changed all the resources to read "MultiTOS disk" instead of "system disk".
Built a new version of MultiTOS 1.01 with the "Please insert system disk..." message changed to "Please insert MultiTOS disk...".
Updated the translation disks.
Bug fixes: Fixed color icons in dialog boxes. Made it possible to move alert boxes by grabbing any part of them, not just the background.
MiNT:
Applied patches to make MiNT compile with Pure C and the MiNT library.
Bug fixes: More Falcon BIOS bug workarounds to make Bconmap work properly.
GEMDOS:
Bug fixes: Made Fread of 1 character from a terminal be in RAW mode (as it is in the old GEMDOS). Made Mxalloc ignore the high bits of the 'mode', for compatibility with MultiTOS.
Misc:
Developed a patch program for the Falcon BIOS bug that affects Bconmap().
Checked current work into RCS.
Interviewed Chia-Ling Sung (as did the rest of the TOS group). Attended Painter meeting. Got Jaguar docs.
Progress report for Eric Smith Weeks ending 5/1/93
MultiTOS:
Continued to work with Hans-Martin on the single/multi tasking AES.
Added an iconifier gadget.
Made it possible to "bottom" windows as well as to "top" them.
Bug fixes: Made it possible to select an application from the "Desk" menu even if it is ignoring WM_TOPPED messages. Fixed the wind_set(WF_DCOLOR,...) call so that it updates currently existing windows (this means that even if the WCOLORS.CPX loads after the desktop opens its first window, the window parts will get the colors the user asked for). Fixed objc_find to work the way it did in old TOS. Updated the Help menu in the resources. Made the button placement in critical error alerts consistent with our other alerts (i.e. "Cancel" should be on the right). Various speed improvements.
MiNT:
Bug fixes: Fixed the Fcntl() for setting baud rates on modems other than modem1.
GEMDOS:
Bug fixes: Fixed the "partition overwrite" bug. Finding this bug was somewhat difficult (and several of us worked on that); once it was properly diagnosed, fixing was quite straight forward.
BIOS:
Bug fixes: Fixed the Bconmap bug in TOS 4.0x. Fixed the high-density floppy bug (copying A: to B: would overflow a buffer and corrupt the VDI fonts).
Misc:
Examined feasibility of porting gcc to the Jaguar GPU.
AHDI: added code to guard against overwriting partitions when doing Rwabs in logical mode.
Built a new version of TOS for Falcon, containing our combined single/multi tasking AES and the new VDI, BIOS, and GEMDOS.
Updated the MiNT documentation, and gave a copy to Greg.
Looked at various Painter hardware and software issues.
Progress report for Eric Smith Weeks ending 5/15/93
MultiTOS:
Continued to work with Hans-Martin & Cary on the single/multi tasking AES.
Added support in the desktop for limiting the memory used by applications.
Made the "Desktop info..." dialog box report the TOS or MultiTOS version, as appropriate, and fixed up copyright notices so that the MiNT stuff only appears when MiNT is present.
Added color icons in dialog boxes and critical error handlers.
Changed the desktop copy/format dialog box and the system file selector to use window part colors.
Made the color icon code work with the new VDI in true color mode (vr_trnfm doesn't reverse bits any more). It still works with the old VDI, too, because it tests vr_trnfm at run time.
Added resource file decompression code, and cleaned up the format of "glue" files.
Merged in Hans-Martin's iconification changes and checked everything into RCS.
Extended appl_getinfo, as several developers requested, to return more information about the OS environment.
Bug fixes: Fixed the bottom window bar when there are arrows but no slider. Fixed window blit left code. Used XBIOS keyboard tables instead of hard-coded tables in the desktop when testing for control and alternate keys. Updated the default colors. Made the critical error alerts consistent with other alert boxes in the system (i.e. "Cancel" appears on the right, "OK" or "Retry" on the left).
Misc:
Wrote a resource file compression program, and merged this into the "newglue" program to allow us to compile TOS with compressed resources.
Met with Chris Latham and Bill Rehbock to discuss networking and MiNT.
Progress report for Eric Smith Weeks ending June 12,1993
MICROBOX:
Worked on getting software to boot on the Microbox prototype. Created several RAM tests, an updated TOS, and a TOS+DB combination for testing purposes. Helped to track down hardware bugs in Microbox.
AES:
Added extended drag and drop functionality to the desktop, allowing arbitrary objects to be dragged onto the desktop, and applications to retrieve path information from the desktop. Updated the drag and drop standard.
Fixed the _DDD cookie and wrote some sample applications that use it to replace the desktop background with pictures or with a star field pattern.
Updated the Italian resources.
Bug fixes: Fixed the WF_BOTTOM call to correctly report the new top window. Corrected resolution change code to avoid the "sticking" problem when a resolution change failed. Fixed the bug that made it impossible to write a smaller DESKTOP.INF than the current one. Corrected the slider calculation code (slider calculations done before the window was opened were done incorrectly). Compatibility fix: made BIOS I/O for GEM applications go through the AES. This also fixes the slow desktop response for the UNDO key.
TOS:
Burned new ROMs for testing purposes.
MiNT:
Enhanced the device driver/kernel interface to allow device drivers to set time outs.
Bug fixes: Fixed the Falcon logical screen bug which caused crashes on the new TOS. Made the "Adjust debug level" message more useful for novice users (now it reads "You must reboot your machine").
MINIWIN:
Updated MINIWIN to use the new drag & drop functions.
Fixed the "Select Font" dialog gadgets to work right in low resolution.
MISC:
Sent a new version of VIEWER.APP to subsidiaries.
Created an updated Falcon patch program, FPATCH2, that fixes the Bconmap bug the "right" way (by fixing the Bconmap table directly, rather than TSRing and trying to kludge around as FPATCH1 did).
Progress report for Eric Smith Weeks ending June 26,1993
AES:
Reduced the size of the executable by enabling Lattice's optimizer; found and worked around some optimizer bugs.
Made the buttons in the critical error handler more responsive.
Fixed bugs reported by testers.
Merged Hans-Martin's and Cary's changes, updated resources as necessary, and checked into RCS.
Updated the makefile so that building glue.* files is done automatically.
TOS:
Made a "build disk" containing all necessary tools and source code for building TOS and MiNT. Reviewed TOS build procedures with Hans-Martin and Cary.
MiNT:
Made the FATAL ERROR message multilingual and more informative for novice users.
Made the XBIOS Dosound() function automatically grant supervisor mode access for the affected memory.
Bug fixes: The PRN= line in mint.cnf was redirecting AUX:, not PRN:. Fixed the bug in media change detection code which was requiring two clicks on the "cancel" button for "Drive not ready" critical errors. Fixed Bconout() of a bell under TOS 1.02. Fixed bus errors on 68000 (they used to report illegal instructions instead, because the bus error code used 68030 only instructions).
MINIWIN:
Added support for the iconify gadget.
Updated non-English resources (translations still have to be supplied.)
MISC:
Reviewed and expanded on the TOS 5 Release Notes.
Made a diagnostic cartridge ROM for Microbox.
Met with Hans-Martin and Cary to discuss Painter BIOS.
Built an Italian MultiTOS 1.01.
Progress Report for Eric Smith Weeks Ending 7/24/93
AES:
Merged Hans-Martin's and Cary's changes to the AES into the master source code. Checked everything into RCS. Helped to track down some bugs in objc_edit and a deadlock condition in the CTRL-ALT-TAB handler.
MiNT:
Collected bug reports, applied fixes.
Misc:
Assigned by Leonard to work on cube rotation problem. %*&* thing took much longer than expected. Once the cube was rotating correctly, shading and joystick control was added.
Fixed a bug in the new version of madmac (error reports were giving the wrong file name).
Obtained groff (GNU nroff) and produced ASCII versions of the tcsh and csh manual pages. Started looking at what will be needed for a Jaguar developer's package containing MultiTOS, tcsh, etc.
Progress Report for Eric Smith Weeks Ending 8/7/93
AES:
Expanded the critical error stack to correct problems with Speedo GDOS, the new MiNT, and the AES. Assisted in converting the AES to run with a 68000.
MiNT:
Made the file handling code re-entrant.
Made MINT.PRG capable of booting the ROM AES if GEM.SYS is not specified in the MINT.CNF file.
MINIWIN:
Made it possible to save preferences on a per-application basis.
Fixed iconify code, and made it work with the new AES.
Made windows always be as big as possible (before, when window parts were removed, the window still remained the same size, even though there was more screen for it now).
Misc:
Jaguar: worked on doing blits from rectangles to arbitrary parallelograms.
Continued work on developer tools. Compiled a new version of tcsh, obtained and compiled versions of cp, mv, and rm. Wrote miscellaneous small utilities (e.g. pwd, strings, echo) to replace those whose copyright status was unclear. Set up a MultiTOS based development system in the lab.
Wrote help files for some utility programs.
Progress Report for Eric Smith Weeks Ending 8/21/93
Jaguar:
Finished "blit to arbitrary parallelogram" code.
Helped to integrate "rotating cube" code into the Jaguar ROM code.
Assisted game developers with questions about 3D objects.
Updated the db source code to work a bit better under MultiTOS.
Began work on texture mapping arbitrary polygons.
AES:
Uploaded MultiTOS 1.08 for developers.
MiNT:
Sent MiNT 1.08 and 1.09 source code to the MiNT developers' list.
Tried to reduce memory fragmentation somewhat.
Added file locking to BIOS devices.
Bug fixes: Fixed the Dosound() code (the BIOS Dosound() can return a value, if a -1L is passed to it, and MiNT wasn't coping with this). Fixed a Pexec(200,...) problem in MiNT 1.08.
GEMDOS:
Fixed a bug in the special character handle code (Fwrite(-3,...) wasn't working).
Worked on updating the GEMDOS and BIOS documentation.
Misc:
Downloaded and compiled new versions of GNU utilities, and of the gcc library for MiNT.
Installed and tested a new version of gcc.
Updated the gcc GEM library to reflect AES 4.x extensions.
Reviewed the "Atari Compendium" for Mike Fulton.
Beta release memo These documents are converted from the contents of Eric Smith's development hard disk, originally written in AtariWorks STW format.
File dated 21.1.1993
Craig:
Here's the new distribution disk for MultiTOS. The following files have changed:
auto\multitos.1\mint68k.prg: version number was updated to match mint.prg (see below)
auto\multitos.2\mint.prg: recompiled to fix the Rsconf() bug I mentioned to you. This only showed up with the 68030 version, so I suspect that a compiler bug was at fault.
gem\gem.sys: A couple of changes to the AES: (1) The copy/format dialog is now a real dialog, instead of a combination dialog/window like it was. This was one of the items we passed on to Derek, and it turned out to be very easy to do. (2) The "progress report" bar on copy/format is fixed now (it was wrapping around). This one definitely was a compiler bug; Alcyon messed up on a statement like "if (j = foo % bar) ... " but splitting this into "j = foo % bar; if (j) ..." worked. (3) I put Normen's German translations into the .RSC. (4) The AES no longer keeps directories "locked" against deletion after it executes a program in that directory. (It wasn't supposed to, it was just an accident that this was happening.) A 1 line fix. (5) I put some of the Speedo kludges that were commented out back in (with appropriate if statements so that they never get applied to the default system font). Alternate fonts still aren't working, though; since we don't document this feature, it's not a big problem.
The original of the installation disk is in my top desk drawer. All the files are also on my hard disk, in d:\mint\ship, and a copy of the disk is on John's desk.
---
File dated 17.2.1993
MultiTOS distribution: 1) New gem.sys file. We now put only 1 resource into each gem.sys file, so as to save space; thus a different gem.sys is needed for each language. There have also been some bug fixes: a) The "Copy" and "Delete" dialogs are now really dialogs, (before they were sometimes dialogs, sometimes windows, and this caused redraw problems and user confusion). b) The "Set Video" dialog box no longer gets "stuck" into the old resolution if the resolution change fails. c) Entering a long name into the "Open Application..." dialog on the desktop no longer crashes the system.
2) New mint.prg file. MiNT now tests its name; if it's called MINTNP.PRG then memory protection is turned off. There have also been some bug fixes: a) MiNT will check now to see if the screen can be moved before moving it; this will prevent problems with some third party video cards. b) Some bugs in the kernel/file system interface have been corrected (the kernel did not always release file handles back to external file systems; this doesn't affect any currently existing .XFS's, but could have been a problem for future networking products. c) The Supexec() function now saves all registers. It wasn't documented to do so, but the BIOS always did and some people have come to depend on this. Sigh. d) Frename now functions correctly on symbolic links.
3) New miniwin.app and miniwin.rsc files. Miniwin now looks in the directory it was launched from for its .RSC file, instead of along the PATH. This makes operation on a 1 floppy system much smoother. Miniwin's user interface has also been cleaned up a bit, and a new option (to select which window gadgets will be displayed) was added.
4) New file: fakeflop.prg. This is used in floppy only systems to provide a third "fake" floppy drive, called the "System Disk". The GEM.CNF and MINT.CNF files are set up to use this fake drive (currently drive O:).
5) New file: multitos.cpx. This CPX allows configuration of MultiTOS (whether it is active or not, and whether memory protection is enabled or not).
6) New install programs for France and Germany (to fix translation errors).
Origins Introduced at CeBIT '92 in Hanover, Germany and ACE '92, the Atari Canadian Exposition, at the Skyline Hotel, Toronto
|