|
Atari IWDOS by Paul Lay |
|
This program will work on all 8-bit Atari computers with disk drives and 32k+ of memory. When typed in, the program should be saved as 'IWDOS'; it can then be executed by RUN 'D:IWDOS'. When run, the program displays six options that should be selected via the keys A through F. A roll-down menu will then appear, and an option can be selected from these using the cursor up and down keys but without using the control keys. The RETURN key will select an option. All DOS commands are implemented, except for binary LOAD/ SAVE and some of the duplicating options. Any option that requires a filename to be entered will accept the wildcards * and ?, and drive one will be assumed unless otherwise specified. As IWDOS sits above DOS and accesses DOS functions via the XIO command, it should be compatible with all versions of DOS. Lines 10-330 contain the machine code routines to control the windows; these routines can be used in GRAPHICs mode 0. They are held in 642 bytes of memory located at the 30k boundary, and use the 29k to 30k area to store parts of the screen memory that become overlaid by a window. Three routines are available: 1) Open a window - this routine is located at address 30720 and takes the following form var = USR (30720,X,Y,A) where X and Y are the coordinates of the top left-hand corner of the window. The last parameter, A, is the address of a string containing the list of options to be presented in the window; this string should be in the form OPTION|OPTION|----||. Different options are separated by the vertical bar character (SHIFT =) and the list is terminated by two of these. For example, A=ADR("Up|Down|Left| Right||") I=USR(30720,5,5,A) will open a window at 5,5 with the given options. Note that this routine has no error detection, so make sure that the parameters you use make sense. 2) Select an option - this routine is located at address 31274 and takes the form var = USR(31274). lt allows the user to move the highlighted bar up and down, and make a selection from the previously opened window. The option number selected will be returned in the variable var used to call the routine. 3) Close a window - this routine is located at address 31106 and takes the form var = USR(31106). It removes the open window from the screen and restores it to its previous state, as it was before the window was opened. As the routines stand, only one window may be opened at a time, but the routines could be expanded to allow multiple open windows. |
|