01 October 1992

The content below is simply a reformatting of text as published decades ago by 9640 NEWS. The opinions and views expressed are not my (Jedimatt42) own. The content is published here to preserve and make accessible the technical data contained within.

Taken from the disk distributions archived at http://ftp.whtech.com/Geneve/9640 News disks v1-3/pc99 disks/


NOTE: The following article wAs released March 14, 1992. A subsequent followup to this article follows immediately after. Additional NEWS concerning the events of the Geneve and 9640 News follows.

Let's Buy MDOS !!!!

          By Beery Miller and 9640 News
             P. O. Box 752465
             Memphis, TN 38175-2465
             (901) 368-1169 Home
             (901) 368-0112 BBS

At the urging of many people, discussion is presently underway with Lou Phillips and Paul Charlton to buy the rights to MDOS source code.

Many people will wonder WHY !!! There are many answers, some of which you are probably already aware. To begin with, it has been over two years since any version of MDOS has been officially released. Those versions that have been released, 1.14F and 0.97H have several if not many bugs that must be programmed around to function properly with other programs. There have been many bugs that have been patched, modified, etc. so that the system will "run". This is not acceptable and we the users and owners of the Geneve must act now to keep our machine alive and growing.

Nearly one year ago, discussion was initiated with Paul Charlton concerning the possibility of buying MDOS. At that time, the cost was ~$10,000. This was too large of a sum for any individual to pursue. It still is too much for any single individual to pursue. As a group (Geneve owners and TI-99/4A enthusiasts), we have in our grasp the potential to buy the rights ourselves and complete the development we desire. This will not be a cheap or easy task to perform.
Currently, many people have voiced support by offering to donate $25, $50, $100, $200, and up to $250 to aid in the purchase of MDOS. Myself, I am "kicking-in" $100 plus my personal time for these acquisitions and negotiations. I want to improve the Geneve and I hope you do to.

On March 12, 1992 Lou Phillips returned my latest phone call regarding the acquisition. He felt things would work out if the money was raised on my end and felt the price tag may be less than originally estimated. How much less, I don't know.

I plan on negotiating for the following from Lou Phillips and Paul Charlton:

      1) Latest fully commented source to 1.14F and 0.97H on floppy diskette and modifications if they are available.

      2) All utilities (assemblers, linkers, debuggers, scripts, etc) required to compile and run the operating system.

      3) Insure that source I receive works with existing applications and versions of MDOS.

      4) Require "hand" delivery.  This will probably require a personal trip to meet with Lou Phillips and Paul Charlton to receive files.  I do not want to depend upon the mail service to handle negotiations.  This will protect me, and it will protect your investment.

      5) Routines (>2x) that need de-bugging for HFDC support.

Where will the source code go??? Good question. There are many programmers that have expressed desire in developing or finishing where Paul Charlton left off. I will coordinate (and program too) the development with several of the talented programmers that exists to finish what should have been finished many years ago. This will be a group and cooperative effort. At this time, I see no reason why contributors shouldn't have access to the source code. For some, the code will be useless. For others, it will aid them in their knowledge of assembly language and creating other new and exciting applications. Not knowing the volume of interests in diskette copies of the source, I will say that once I receive the source, if you send me floppies and return postage or equivalent, I will send you a copy of the source code (this assumes you made an initial contribution for the purchase of MDOS). DON'T SEND DISKETTES NOW!!! Wait until it is in hand.

There are several things that will need to discussed. First and foremost is the release of official MDOS's from those writing the code in the development group. Unofficial releases will probably be released by different people, but we must do our best as a group to identify these copies.

In the next 30 to 60 days, I expect negotiations and a possible contract to be "in-hand". In order for me to pursue an agreement, I need your support now. This will be the last opportunity we have before it's too late. We must make this an open operating system for the Geneve to survive.

As a side issue, and something some people are going to think is why should I pay for something I should already have received from Myarc. Short of suing Myarc AND Paul Charlton, this is the other alternative. Any lawsuit against Myarc will probably crumble and dissolve Myarc leaving nothing for us except for empty pockets. The route of buying the rights to the operating system gives us hope and a longer future.

If I have convinced you, then please do the following:

      1) Write a check out for what you feel is appropiate.

      2) My address is as follows:

                Beery Miller / 9640 News
                P. O. Box 752465
                Memphis, TN 38175-2465

      3) Enclose a stamped self addressed return ENVELOPE.  This will be used to notify you of the acquisition and/or where we stand.

      4) Once your check is received, it will be deposited into a special account separate from any other personal or business account so that I will receive no "surprises" once acqusition takes place.  Any interest that is made from here will support some of the necessary phone calls and travel expenses that are expected to take place in acquisition.

Once MDOS has been purchased, numbers will be crunched tallying people's contributions and returning unspent money if contributions exceed purchase price and expenses.


Please, if you are able to support this, please send your check as soon as possible. A delay could inhibit or cancel these plans and forever keep us with our current operating system.


9640 News
Beery Miller
P.O. Box 752465
Memphis, TN 38175

Dear Sir,

As a result of your generosity, the MDOS Buyout was successful. I have now retained the exclusive rights to the source code for MDOS, ABASIC, and PSYSTEM. Also included by Paul Charlton, was the GPL Interpreter source code. Per my promises the source code is available ONLY to the contributors to the MDOS Buyout. The source code will not be available on any network or BBS, and should not be distributed to anyone without my direct authorization. Final versions of the program image files for MDOS, ABASIC, and the PSYSTEM runtime system will be available on Delphi, Genie, and through other BBS systems. Per contract with Lou Phillips, all registered Geneve owners will receive their final copies of MDOS directly from me (if Lou Phillips provides the names and addresses and does not break that clause of the contract). Paul Charlton was paid $2500 for his portion of the source. Lou Phillips required not immediate cash, but instead required me to handle the estimated 2200 Geneves and the final mailing of MDOS software. As a result of this higher number than my anticipated 800 Geneves figure, I am still short money to handle the final mailing. Your generosity has been appreciated. If you (or others you know), would like to make an additional contribution, it is more than welcome. Other people contributing will also have the option then of also acquiring the source code (minimum $25 contribution before acquiring source code diskettes).

As I mentioned earlier in transcripts and notices, preferred enhancements to MDOS will only be "heard" from contributors. Bug reports will be heard from everyone. Current enhancements have included a 3 fold speed increase for any floppy controller access and a 2 fold increase in hard drive speed.

There are "requirements" to be able to assemble the source code to these systems. It requires a HFDC and hard drive, and also ownership of GenPROG by Paul Charlton. I am currently negotiating a contract with Paul Charlton on the re-distribution of this package. [An article follows on how to purchase GenPROG]

Ordering Packages

Diskettes are available in 5.25" DS/SD (180K) format or 3.5" DS/QD (720K).

               5.25" (DS/SD 180K)            3.5"(DS/QD 720K)
 MDOS/GPL       $10.00 (4 disks)              $5.00 (1 disk)
 ABASIC/GPL     $ 7.50 (3 disks)              $5.00 (1 disk)
 PSYSTEM        $ 5.00 (2 disks)              $5.00 (1 disk)

Name:     ____________________________

Address:  ____________________________




 Products Desired:
 (please circle)

 MDOS/GPL       $10.00    5.25"
 MDOS/GPL       $ 5.00    3.5"
 ABASIC/GPL     $ 7.50    5.25"
 ABASIC/GPL     $ 5.00    3.5"
 PSYSTEM        $ 5.00    5.25"
 PSYSTEM        $ 5.00    3.5"

 Total:         $______

 Bugs with 1.14F or 0.97H MDOS that you would like to report are:






 Wish list (but no absolute promises) of things you feel need to
 be added to MDOS, ABASIC, or possibly PSYSTEM:










This package contains:

1) GENASM macro assembler. Runs in MDOS mode. Ideal for developing code for 99/4a and MDOS applications. Great for C99 programmers!
2) GENLINK linker. Runs in MDOS mode. Full support for code libraries. Ideal for developing 99/4a and MDOS applications.
3) GENLIB librarian. Runs in MDOS mode. Allows easy interactive maintanence of code libraries for the linker.
4) libraries for 99/4a and MDOS programmers, with commonly used routines.
5) GENMAKE make utility. Runs in MDOS mode. Allows an author to easily keep track of file dependencies in programs and large documents. Great for programmers and people who are writing the great american novel. When run, it will update all files which need to be updated, and will (optionally) ignore all files which are already up to date.
6) MDOS programming environment documentation, with programming examples for all MDOS library functions, programming tricks for MDOS.

(Video/Math/Keyboard/Taskheader information will be mailed on MDOS Completion)

All utilities can be invoked from a batch file, for complete development automation.

The suggested retail price is $75.00 for the entire package, which will be available from 9640 NEWS which includes shipping and the subsequent follow-up documentation.

Quick notes on GENASM assembler. (c) Copr. 1989 Paul Charlton

This is a one-pass assembler which generates object code for all 9995 opcodes (and it is FAST).

Symbol table size is only limited by the amount of memory on your system. (over 2,000 fully cross-referenced symbols with TIMODE off) Assembler performance:

            GENASM            99 assembler (GPL speed 5)   speedup
floppy(1)    2,500 line/min      900 line/min              x3
HFDC(2)      7,000 line/min     1900 line/min              x4
ramdisk     12,500 line/min     2600 line/min              x5

1 --- interlace 4 floppy disk
2 --- interlace 22 HFDC disk

In addition to the standard 9900 series assembler directives, the assembler supports nested conditional assembly, nested macros, and local symbols.

The assembler can generate several types of reports:
1) Error log
2) Unreferenced symbols (unused code)
3) Cross reference of programmer specified global symbols.
4) Full cross reference of all global symbols (w/o registers)
5) Full cross reference of all global symbols (including registers)

Error reports are very complete, identifying the file, line number and statement number of the error, as well as a highly detailed description of the cause of the error (good learning aid for people just starting to dabble in assembly.)

Expression evaluation is much more robust than the TI99 assembler, with more numeric operations allowed (+,-,*,/,mod,and,or,shift left). Expressions are also allowed to contain parentheses to override the normal left-to-right evaluation sequence of expressions.

All symbols are allowed to contain up to 31 characters (including REF/DEF !!!) Get rid of those cryptic label names!

Numeric constants can be expressed in Hex,Decimal, -and- Binary.

The assembler also has support for a symbolic debugger for object code.

Quick notes on the GENLINK linker program.

The linker has full support for developers of MDOS and TI99/4a applications programs, including GPL based programs.

The linker accepts command input from the keyboard or a script file.

The linker has full support for a symbolic debugger, and should be robust enough to support symbolic debugging environments for higher level languages such as Fortran, "C", and "PASCAL".

You are able to specify blocks to load, with priorities for each block. You are able to move data from place to place in the object code before you save the program image. (Good for reducing the disk space used by a program which is fragmented in memory.)

You are able to save chained program images for MDOS,TI99, and GPL program images. You can also save large program images similar to SYSTEM/SYS (for complete control of the computer!) You are able to use any DEF symbols in expressions for saving and moving blocks of memory.

You can resolve references from subroutine libraries provided, and libraries of own creation.

You can execute any MDOS internal command from within the linker.

The linker is also -fast-, it is able to link more than 150k bytes/min.

Quick notes on the GENLIB librarian.

The librarian has full interactive support for maintanence of linker subroutine libraries, including insertion and deletion of subroutines.

This comes with libraries for the full E/A programming environment, as well as a library for MDOS programmers.

Quick notes on the GENMAKE utility.

The best way to keep your multi-part programs and documents up to date after making changes to parts of them. In general you only want to update the resulting files which are affected by the changes, GENMAKE does this for you automatically. (You can override this default to update any section you want to.)

GENMAKE files can contain:

1) macros to be used on later lines in the file.
2) rules specifying file dependencies (can be many lines long)
3) actions to be executed if a rule fails to be up to date.

The dependencies can be nested and be shared between different rules.

Quick notes on MDOS documentation.

The most complete documentation available for the MDOS programming environment. All parameters, quirks and calling sequences are documented for each MDOS library routine. The structure of a TASK's header is explained. Programming tips and tricks for MDOS programmers. Programming examples are given for each subroutine call.


9640 NEWS
Beery Miller
P.O. Box 752465
Memphis, TN 38175

$75.00 (includes shipping)


In an effort to help those folks that had their checks cashed but order undelivered from JP Software, you must enclose a copy of your cancelled check and $15.00 (to cover cost of shipping and manual) and you will receive the lastest version. Enclose copy front/back of check.

Also, in an effort to help those that already purchased GenPROG and have the uncompleted documentation, arrangements will be made at the appropriate time when the documentation is complete to resolve this matter. Nobody will be forgotten.

Other Geneve News

Well folks, not that the initial articles have been read, I would like to discuss other events that have transpired since the last issue of 9640 News, Volume 3 #1.

As many folks know by now, I did not relocate to a new job site with my company and stayed right where I am for the near future. The act of relocation resulted in a much delayed release of 9640 News. As a result of this delay, several issues (3) are being enclosed with this mailing. Following this issue, there will be one more disk released and Volume 3 will be completed. At this time, I would prefer that nobody renew for Volume 4 until I have decided I want to continue. To be honest, I am still a deep hearted Geneve user, but time constraints and other priorities are "eating" at my time and a person can only do so much. If I do not carry Volume 4, I will still be here, just a little less vocal, but still here and i'll still be at the same computer shows.

Following the release of 9640 News, Volume 3 #1, several noteworthy pieces of software have been released for the Geneve. One of my favorites was a utility I wrote for Bud Mills / Don O'Neil that allows Geneve users from MDOS mode (with Myarc/TI RS232 cards) to play IBM\MAC\Amiga Digitized sound files out the PIO port to a special cable connected to the audio input of the Geneve monitor. The result is a PERFECT quality reproduction of the sound file in 8 bit format. Bud Mills sells the hardware/software for somewhere between $40 to $50. I don't recall the exact price. A CorComp version has been tested, but not released as the card is a "mess" to program. With MEMEX available memory, it is possible to load over 8000 sectors of sound data from a single data file into memory and play it. It is the only program on the market (TI or IBM) that I am aware that can also play the sound file backwards for those folks that "enjoy" weird sounds. My favorite is a short theme file from Gilligans Island played in reverse. Several sound files exists on Genie and my BBS that can be downloaded.

Having mentioned Genie, I would like at this time to give a plug to Genie. I am the TI and Orphans RoundTable Sysop, replacing Barry Traver's position and I am actively supporting the TI-99/4A and the Geneve. I strongly URGE folks to join Genie where I will be devoting most of my time (and much less on Delphi) over the next year or two. Delphi is fine, it's just that now I have a responsibility to INCREASE Genie's membership in the TI Sigs. Genie is offering a RISK-FREE sign-up offer. There is no sign-up fee, and if you are not satisfied after 30 days, Genie will refund your monthly subscription fee for GEnie*Basic Services ($4.95). The TI and Orphans RoundTable is not a part of GEnie*Basic Services, so your access to the message base area/ file base area will be dependent upon your usage ($6/hr). If your an occasional user and need to infrequently download files and keep abreast of Geneve or 4A topics, this is an excellent and cheap method. GEnie also offers many other gaming areas, educational areas, chat lines, etc for the user. Hey, it doesn't hurt to check it out, you have nothing to lose. To sign-up, Genie has a TOLL FREE number of 1-800-387-8330 at 300/1200/2400 baud. Upon connection, enter HHH. At the U#=prompt, enter XTX99463,GENIE then press ENTER. Have a major credit card or your checking account number handy. For more information in the US or Canada, call 1-800-638-9636. Current personalities include Jeff White, Don O'Neil, Barry Boone, Barry Traver, John Carver, Mike Dorman, Gary Cox, and many others. The TI RoundTable is also the ONLY network supporting both the IMPORT and EXPORT of TI-ECHO messages through FIDO-NET. FIDO-NET provides international contact to those IBM BBS systems that carry the TI-ECHO message base. There are probably 40+ systems in the US alone that are linked allowing just about everyone to contact anyone TI related.

Well folks, what else is new you may ask? Well, there is still new software on the horizon and being released now. Alan Beard has released through LGMA Products (and available through 9640 News) a software package written in C and using GenBENCH SHELL that allows backups/restorations of the Geneve Hard-drive in MDOS mode. It includes file compression to floppies. The program is called Backup Miser. Contact LGMA Products for more information at 1-215-965-6481 (Alan Beard). I highly recommend this program. I believe the price is around $20 to $25.

While on the topic of hard drive backups, I have been working with Mike Maksimik by providing necessary documentation and some code that Mike has taken to allow backup of the hard drive with a Myarc HFDC system and Geneve to a tape drive. Mike is presently working with an Irwin tape drive initially and everything looks promising. Mike has full access to the tape drive and has successfully formatted a tape on the tape drive connected to the Myarc Disk floppy port. More information will follow and Mike has promised to release the software in 9640 News. I don't think it will be in this 3 volume set as I should get these volumes out before he completes the remaining code.

Also, Mike Maksimik should have available for the Chicago Fair 1992 Midi Master 3.0 (MDOS mode) and Midi Album 3.0. On a conference recently, Mike reported that the new version will allow the capability of playing out on all 4 RS232 possible ports simultaneously on 16 tracks by 255 channels. Way to go Mike, something that even the IBM PC finds difficult to do without special hardware.

Mike also seems be making other strong advances. In Volume 3 # 2, you will find a program called LSPIRO that creates some very interesting graphics that can be animated. Printer support (color printer support too) is included so that you can print your graphics out that you create. Mike has also went one step further with this program. Mike is using floating point in Alan Beards Full C Compiler. Mike's floating point routines are in Volume 3 #3.

While graphics are in the line, Volume 3 #3 includes anothe Fractals program V1.3 written in English and a separate German version for our German subscribers to use. A couple of sample pictures are enclosed in the archive.

For the assembly language enthusiast, I am releasing the source code to WINDOWS 9640 and GEME. There is so much to learn about the Geneve that I feel it is time for these files and source to be free to everyone. I want the Geneve user and programmer to learn everything they can so that the wheel does not have to be re-invented each time. Too many programmers eventually disappear and as I said before, wheels have to be reinvented.

For the C programmer, hopefully you will find the floating point support. A file called DBSRC-ARK is also enclosed that does not presently compile. I hope some individual with more C experience than myself will convert this program to run on the Geneve. We need a good data base program and this is a start. Also, another program that many people may recall, GBASE, has been modified by Alan Beard with source included that makes use of the GenBENCH routines in GenBENCH shell to improve the graphics. Thanks Alan.

Our ABASIC programmers are back at it again, this time with an ABASIC release of TETRIS from the same programmer for MDOS TETRIS.

A new release of GPL, V1.09 is being released by myself. Thanks go to Gary Bowser of OPA who reverse engineered the code. I have made modifications that have the following added features. A) Performs a complete reset of the keyboard when intering GPL which also aids some other non-standard keyboards. B) Allows passing "free" memory pages into GPL so that programmers choosing to use GPL for their assembly language programs can access nearly 1.5 MB of memory very easily.

And probably the last thing I would like to mention before closing this article, is that MDOS is being updated and will continue to be updated (along with ABASIC/PSYSTEM if necessary). Version 1.21H and Version 1.21F were released about 4 weeks ago that remove many bugs from the operating system. Several new commands have been added such as VERIFY ON/OFF that turn on/off write verification. A 3x speed increase is observed when writing to floppies. A 2x speed increase in hard drive access is coming around the corner. The only thing that I am aware of that needs to be modified or fixed in 1.20F is code needs to be modified for Myarc 512K memory that has been discovered and the Horizon Ramdisk support completed. Both of these will be available shortly. The 1.20H version has the same problem with the Myarc 512K that will be fixed in the next release along with the Horizon Ramdisk support, and completion of the GPL >2x routines which will allow (hopefully) MDM5 to run without patch utilities.

A note should again be made regarding the Myarc 512K card and use with the Geneve. It is not recommended unless you FULLY decode all your expansion cards (Myarc FDC, CorComp FDC, Horizon Ramdisk, and perhaps Myarc/CC RS232 cards). Any of these cards that have not been modified in a system using the Myarc 512K card with 1.20 (F or H) will have problems. I'm working on a software toggle switch so that you can "flag" memory as bad if you have an undecoded card. I should mention that there will be no more releases beyond 1.21F that will be 358 sectors in length. Following this release, all subsequent releases will be enhancements and will no longer fit in the 90K file size. Many people say there was a lot of duplicate code or "filler" code. At this point in time, the only code that I have found in the floppy version that was "sloppy" or could have been smaller, would have been the video support. All code written by Paul Charlton, Peter Hoddie, Lou Phillips looks pretty good. It could possibly be optimized some, but not enough to free 8K of memory without a LOT of time and trouble.

Many folks have asked me about having "drivers" that could be installed for all the expansion cards. This would have been nice if it could have been done 5 years ago, but due to the direction that MDOS has evolved, it would take an enormous amount of time and I'm not positive it would be smaller. The code required to distinguish between all 3 RS232 controller types that could be "decreased", would be "maybe" 1K (guestimate), something I am not presently interested in doing (but if someone else is, go ahead).

Anyways, this is where the Geneve stands now, it will continue, and c ya in Volume 3 #5. Thanks for your support.

BUT BEFORE I LEAVE, here are my notes regarding the release of MDOS 1.21H. There are distinct differences between 1.21F and 1.21H, so read carefully.


NOTE: If you use a Horizon Ramdisk with your Geneve, make sure you read the following notes. Make a backup with MDOS 0.97H or earlier of your Horizon Ramdisk. After all Horizons have been backed up, you will need to FORMAT the Horizon Ramdisk with the FORMAT command from MDOS 1.21. This will initialize the ramdisk to make FULL use of the memory without "dropping" sectors. To format your Horizon Ramdisk, use the following command:

          these are examples

          REMAP 6F          sets Horizon 6, 8 bit >1400 CRU to DSK6
                            REMAP is available only with 1.21H
                            1.21F defaults to HRD DSK6,DSK7,DSK8,DSK9
                            as Myarc defaults.

          ASSIGN D=DSK6:
          FORMAT D: /Kxxxx  where xxxx represents the size of the Ramdisk
                            conforming to the maximum limits specified below.

The Following drive types are now available at the following character definitions (Rave Ramdisk code has not been tested)

          Drive Alpha.             Device
          A              Floppy #1 (Any floppy only controller)
          B              Floppy #2 (Any floppy only controller)
          C              Floppy #3 (Any floppy only controller)
          D              Floppy #4 (Any floppy only controller)
                                   (that supports 4 floppies)
          E              Internal Geneve  Ramdisk                  800K
          F              Internal Horizon Ramdisk 8 bit CRU >1400  256K
          G              Internal Horizon Ramdisk 8 bit CRU >1600  256K
          H              Internal Rave    Ramdisk
          I              HFDC Emulate File                         800K
          J              HFDC Floppy #1
          K              HFDC Floppy #2
          L              HFDC Floppy #3
          M              HFDC Floppy #4
          N              Internal Horizon Ramdisk 16 bit CRU >1400 800K
          O              Internal Horizon Ramdisk 16 bit CRU >1600 800K
          P              Internal Horizon Ramdisk 16 bit CRU >1500 800K
          Q              Internal Horizon Ramdisk 16 bit CRU >1700 800K
          R              Internal Horizon Ramdisk 16 bit CRU >1800 800K
          S              Internal Horizon Ramdisk 16 bit CRU >1900 800K
          T              Reserved for Future Expansion
          U              Reserved for Future Expansion
          V              Reserved for Future Expansion
          W              Reserved for Future Expansion
          DSK0           GPL Emulate file, any device.  
                         If not assigned, no drives are shifted down by 1
                         If assigned, all drives are shifted by 1 and lose
          DSK1           Floppy "slot" 1, typical  A:
          DSK2           Floppy "slot" 2, typical  B:
          DSK3           Floppy "slot" 3, typical  C:
          DSK4           Floppy "slot" 4, typical  D:
          DSK5           Floppy "slot" 5
          DSK6           Floppy "slot" 6
          DSK7           Floppy "slot" 7
          DSK8           Floppy "slot" 8
          DSK9           Floppy "slot" 9

How to Use new REMAP Command:

Note: This command not available in 1.21F, only 1.21H due to memory restrictions.

          REMAP [slot][drive type]

          [slot]           uses options 0,1,2,3,4,5,6,7,8,9 

          [drive type]     uses options of A to W.

               Note:  There must be NO spaces between the values and only
                      1 space following the REMAP command.

                      Also, a warm boot cancels ALL REMAP options until
                      they are re-entered.
                      REMAP is effective when using GPL unless using code
                      that accesses the device at hardware level
                      [i.e. track copiers, etc., or probably using


          REMAP 9I
               - remaps HFDC Emulate file (if available) to DSK9
          REMAP 8I
               - remaps HFDC Emulate file (if available) to DSK8
          REMAP 4A
               - remaps Floppy #4 to slot 1 to answer as DSK1
          REMAP 0F
               - remaps Horizon Ramdisk 8 bit CRU >1400 to GPL emulate
                 file while using EXEC/GPL


          SETDSK [drive number][head step][tracks]

          Note:  This command not available in 1.21F, only 1.21H due to
                 memory restrictions.
            [drive number] is from 1 to 4 and is valid ONLY for floppy
                           only controllers.
            [head step]    is from 0 to 3.  Vary settings, "usually" 0
                           for optimal performance, but depends upon 
                           floppy type.
            [tracks]       valid numbers are 4 or 8 to indicate 40 or
                           80 tracks respectively.
               SETDSK 104  sets drive 1, head step 0, 40 tracks
               SETDSK 228  sets drive 2, head step 2, 80 tracks
               SETDSK 308  sets drive 3, head step 0, 80 tracks
               Must leave only one space between command and options and
               you must not separate the numbers or error report will


               VIDEO ON  turns video wait to high speed (0 wait states)
               VIDEO OFF turns video wait to normal speed (1 wait state)
               VIDEO     displays current CLI setting.
               Note:  Usage of GPL will reset this value and will require
                      resetting to VIDEO ON, despite the speed it displays
                      as GPL is "external" to MDOS.
                      Also, if using GENMOD and 0 wait MEMEX, some
                      applications will run too fast and will require
                      setting VIDEO OFF to not lose video display data as
                      the 9938 Video Processor can not keep up with our
                      fast CPU.



To whom it may concern:

This is the source for the new GBASE program. It is written in Full-C, and consists of the following programs:

 GBASE_C      :   The main program
 GBASE_H      :   Structures (header file)
 RECORD_C     :   Record Manager
 FILEREQ_C    :   The file requestor
 PICT_S       :   The intro picture

Two batch files are provided:

 COMPALL      :   Compiles & Assembles all source files
 LINKALL      :   Links the program with TICLIB & WINLIB

To recompile the program, you must have the TIC compiler, the TASM assembler, Clint Pulley's TICLIB, and the SHELL WINLIB. To run the program, you must have the latest copy of Beery Miller's standalone windows driver, WIN-DRIVE.

Note if you have the MOUSE, MOUSF (Bruce Hellstrom's mouse driver) and a MYARC mouse, then the program is mouse-drivable.

You will also need the include files distributed by Clint Pulley with his TICLIB, as well as several include files distributed with TIC, for proper compilation. You may need to revise the COMPALL batch file depending on where on your disk you place the include files.

LGMA Products retains the copyright on GBASE II, but allows users to utilize portions of the source code to integrate into their own applications, provided a copy of the revised source code is sent to LGMA Products for personal use only, at no charge.

                                                    Alan Beard
                                                    LGMA Products

(c) 1991 by LGMA Products


GPL Intrepreter

Version 1.09

Release Date 09/30/92
By Beery W. Miller and 9640 News

Version 1.09 of the Myarc GPL Intepreter is being released to solve several keyboard and memory constraints that have plaqued EA programmers on the Geneve.

Source code is being provided for the GPL Interpreter. To properly assemble the file and link with GenPROG, do the following:

(with files on Emulate DSK9)

           ADD GPLO
           PSAVE GPL,2,>A400,SLAST

Next, you must modify the program start address with a sector editor from >A400 to >0400.

This fully commented source code is compliments of Gary Bowser.

The following enhancements have been added to 1.09:

      1) Full keyboard reset when entering GPL, and turns CAPS LOCK off on the system.

      2) Passes "free" memory into GPL for programmers to use to increase GPL usage.


The following programming notes are being supplied where programmers can access additional memory.

First, to begin with, a 4 byte header is placed at offset >1400 in physical page >38 (Grom 0). This header is "9640".

Second, the available physical page list is then supplied following the header (max 252 physical pages) at offset >1404. The table is null terminated to test the end of the string.

Here is an example of code that would work to get memory.

                  AORG >A000
          PAGE38  BYTE >38    grom page 0
          PAGE0   BYTE >0     where we are going to store >8000 page
          HEADER  TEXT '9640' our "header" to determine correct version
          OFFSET  DATA >1400  offset into grom page 0 header
          OFFST2  DATA >1404  offset into grom page 0 page list
          NOMEM   BLWP @0                    EXTRA MEMORY NOT HERE
          PAGLST  BSS  254
          START   MOVB @>8000,@PAGE0         SAVE CURRENT PAGE
                  LIMI 0                     TURN OF INTERRUPTS
                  MOV  @PAGE38,@>8000        MAP GROM 0 TO CPU >0000 TO >2000
                  MOV  @OFFSET,R1            SET UP OUR OFFSET
                  LI   R3,HEADER+0           LOAD OUR HEADER POINTER
                  MOV  *R3,R3                GET FIRST WORD HEADER
                  MOV  *R1+,R2               GET FIRST WORD
                  C    R2,R3                 COMPARE FIRST WORD
                  JNE  NOMEM                 NO MEMORY
                  MOV  *R1,R2                GET SECOND WORD HEADER
                  LI   R3,HEADER+2           GET SECOND POINTER
                  MOV  *R3,R3                GET SECOND WORD
                  C    R2,R3                 COMPARE SECOND WORD
                  JNE  NOMEM                 NO MEMORY
                  MOV  @OFFST2,R1            GET POINTER TO GROM PAGE 0
                  LI   R2,PAGLST             OUR PAGE BUFFER
          START2  MOVB *R1+,*R2+             GET PHYSICAL PAGE
                  JNE  START2                CHECK FOR NULL PAGE END
                  MOVB @PAGE0,@>8000         RESTORE OUR CPU >0000 TO >2000 PAGE
                  LIMI 2                     RESTORE OUR INTERRUPTS



Documentation for Lissajous Spirals. Written by Michael J Maksimik in TIC using the TICLIB graphics library. Copyright (C) 1992 by Michael J Maksimik Liscence is hereby granted to the original recipient of this program to use and copy for personal use. This program is not a public domain program. Permission is NOT granted to place this program in any library or in any commercial fairware/freeware/shareware library. It is illegal to copy this program except for backup purposes to the original liscensee of this program. Any violation of the above rules will result in termination of the liscense to use this program. Once terminated, this program must be returned to the author.

Quick reference:

  Keys active after figure is drawn:

    S = start palette spin
    any other key returns to main screen

  Keys active after figure is in color motion:
    P = pause, any key after pause continues.
    M = Magnified screen dump ( 1 : 4 )
    D = Standard pixel screen dump ( 1 : 1 )
    1..9 = change palette to pre-defined color sets
    R = reverse direction of color shift
    T = terminate spin, return to main menu

At any time, CTRL-C quits. The palette at time of CTRL-C will be in effect thereafter at MDOS return. To return to standard colors, use CTRL-C at the main screen.

Loading and running: Please use DOS 1.14F or .97H. Also, use the WIN-DRIVE windows driver for single tasks. TIMODE may or may not be active. If you use 1.14, there is no guarantee that this program will work properly. The program is loadable from any disk drive, and hard disk. Substitute the "A>" prompt below for the proper pathname from where you plan to load the program.

For the 7-color printout version of Lissajous Spirals:


For the monochrome printout version of Lissajous Spirals:


The SPIRO version of the program supports color printout on a Star NX-1000 Rainbow printer and full compatibles. The MSPIRO supports an alternating-on/off printout, on Epson and Star/Gemini compatible printers.

After pressing enter, a screen of instructions appears. Note that at this screen, all of the standard colors have been loaded into the pallette registers. The first parameter is the SINE frequency. Enter any floating point value, The second parameter is the COSINE frequency. Enter any floating point value. For special polygons and stars, sunbursts, enter the same values for sine and cosine. For Lissajous figures, enter different values. Start with small values and work your way up. At value = 314.15926535, that is a straight line, and is the center of all repeating patterns ( pi times 100 ). Any EXACT multiple of PI, with a variable amplitude, will produce a polygon, or an inverse polygon. For an odd-sided polygon (such as a pentagon) use the formula 200/n * pi = frequency, where n is the number of sides. For even sided polygons, use 400/n * pi. For stars (invert polygons) or odd number of points use the 400/n * pi. For even stars (invert polygons) use 600/n * pi. The invert hexagon (six-pointed star) can't be drawn, because it can't be drawn in one continuous, straight line. Think about it. Try it and you will get a triangle. To flip/rotate, use negative frequencies. To make ellipsoids, make the frequencies different by .1 or .2, or a smaller value. To make Lissajous multi-dimensional figures, choose any random values. Low numbers are smooth curves..High numbers generate chaotic behavior.

After the figure is drawn, any key returns to screen, except 'S'. Press 'S' to Spin the color palettes in motion (don't get dizzy!). When the colors are spinning, choose a number (1..8) to set palette color. Use + and - to speed up, slow down respectively. If you are dizzy, use 'R' to reverse the spin (or go take some Dramamine!). If you start to get really sick..press 'T' to terminate the spin, and return to the main screen. At any time, press Ctrl-C to quit to MDOS (colors are restored to standard palettes ). Pressing ESC after a figure is drawn will also exit, only if it is not in motion.

Don't stay up too late.

note: screen mode is graphic 6 9938. The range of pixels is 480 across by 206 up and down. This graph makes the image appear nearly circular, and it also allows a full-page duoble density screen dump.

Mathematical principles.

The principle behind the Lissajous figures generate in the program is the interesting relationship between the trigonometric finctions Sine and Cosine, and circles. Anyone familiar with analytic geometry will recognize:

                          2    2        
                         X  + Y  = r 

is a special formula describing a circle. Providing a radius r and points X and Y to satisfy the equation, plot the points on a Cartesian graph and you will have a circle. In higher mathematics, this function is related to the trigonometric functions by means of differential calculus. The above equation actually is the root of the sine and cosine functions, because as it is plotted it exactly describes the behavior of the sine and cosine functions. In more general terms, the "circular" sine and cosine functions which many a college student takes for granted as useful tools for working out engineering problems, are pure functions based on the perfect circle! The "hyperbolic" sine and cosine (and tangent) are based on a similar rule, but the formula for a hyperbola is used (similar to above, but the terms are subtracted, not added and a hyperbola is plotted). The above equation can be used instead to generate circles, but it is more time consuming to use the involution routine ( a to the power b) and it is more natural to use angles. The trig functions also exhibit periodic behavior, giving limitless range (over the radix-100 floating point spectrum). The computation involved really ignores the exponent of the number (sine and cosine repeat every 2 * pi radians) which is 6.28, a number which lacks an exponent in radix-100, and is the basis for the repeating behavior of this algorithm. The relation I use to generate Lissajous figures is a generalized relation of the above 2-dimensional equation, and expands to describe circles, ellipses, and all conic sections in uncountable demensions, depending on the viewer's perspective when looking at thier projections on the screen. :

for all x { 0..2pi radians } --> plot ( sin(x), cos(x) )

where plot is an abstract function to plot the values returned by performing the sine and cosine on the same value. Enhancing the dimensioning by placing a coefficient into the equations A and B for sine and cosine:

 For all x { 0..2pi radians } --> plot ( sin(Ax), cos(Bx) )

This will fundamentally generate a small Lissajous figure. To magnify,

 For all x { 0..2pi radians } --> plot ( M sin(Ax), N cos(Bx) )

where M and N are the screen size parameters. M is the maximum width and N is the maximum height. Finally, since this relation generates in all four quadrants of a Cartesian coordinate system, we have to offset it so the upper left corner is (-M/2,-N/2) and the center of the screen is (0,0). By adding exactly M/2 and N/2 to the functions:

                       plot ( M/2 + M sin(Ax), -N/2 cos(Bx) )

we have to negate the (N/2) offset, since the 9938's video screen gets larger as you go DOWN, not as you go up. This is mirror-image Cartesian graphing of Lissajous figures. Simple enough. Now here's the fun part... These figures are of a fixed size, namely M wide and N high. What if we were to start the M and N values at zero, and gradually increase them as x increases from 0 to 2pi radians, by say, the an increment in proportion to the x increment? In this program, I use .01 as the x increment, giving approx. 628 steps in the calculation. If I were to divide M by 628, I would get a proper increment for the width, and N by 628 for the height. That increment would be r and s. So our algorithm is:

r = ( width / (( 2 * pi * 100 ))
s = ( height / (( 2 * pi * 100 ))
M = 0, N = 0

For x = 0 to 2pi step .01
plot( M/2 + M sin( Ax ), -N/2 + N cos(Bx))
M = M + r
N = N + s
Next x

Remember we also need values for A and B. If A = B, then the figure is a circle, and for variable dimensioning (amplitude) , it is an ever-growing spiral.

If A <> B, then the figure drawn depends on several factors. One, if A is much larger than B, or if they are very near. Large differences (greater than 1) will produce awesome spirialing and twisting of circular images, essentially rotating and twisting them in several dimensions. For example, if A = 3 and B = 2, then the images are twisted in 1.5 diemsions, the ratio of the two freqencies. Or, A = 7 and B = 4. Here we see a twisted spirial, extending into at least 3 1/2 discernable dimensions. Depending on your viewing angle and your depth of vision, you will notice incredible effects when trying other values.

In addition to variable or fixed dimensioning, there is also LINING. Instead of plotting each point, what if we were to skip the first point, and then draw a line between every two sets of points generated? At first, the effect is the same...continuous smooth Lissajous figures for small values of A and B. But Sine and Cosine behave radically fast, and though predictable, their behavior forces the line function to draw between rough plots of points, giving dazzling spiral and string displays for large values of A and B. Large values force the function to jump around the edge of apparent, mathematical Lissajous figures, but the line function doesn't care. It will cut right through the edge of the figures, and will try to "connect" the edge of the figure with an opposing edge...with incredibly complex and pleasing shapes as the result.

One more effect is to add alternating colors in each line drawn. In every call to the LINE function, a new color is passed, in the sequence of 14 colors that SPIRO uses. This rainbow palette is the familiar extended BASIC color set. But wait, if the colors form a pattern, isn't that mathematical behavior itself? Yes, it is the interaction of a continuous function (Sin, Cosine) with another continuous, visible function (the set of 14 colors). Combining all three of these, and the mathematics above, is a difficult task.

What, you still want more? Well how about more colors!! Try all of the base color palettes in the 9938 video chip. Each pattern was specially chosen for mysterious, hypnotic effects. Each color seems to evoke a differnt behavior of the spirals, too. How about reversing the pattern?

Finally, the best feature is that there are an infinite number of patterns available..choose your two frequencies at random if you like. choose a positive or negative value, in the normal floating point range of extended BASIC. To do this program in C for the Geneve, it was necessary to use the floating point XOP's in MDOS. Don't try to run it on a 9640 without .97h or 1.14f version of DOS. And don't sit too close to the computer screen!

If you have any questions about this program, don't worry. You are in the majority. I fully understand the complex math behind it, and it took me only a day to write this program. It will take me years to even tap the number of figures and complex displays it has to offer.

Michael J Maksimik
635 Mackinaw Ave
Calumet City, IL 60409-4014





QDEBUG is a Debugger that runs via the RS232/1 line at 9600 baud to a terminal. MDOS supports QDEBUG as it loads physical page >13 to >E000 to >FFFF. Also, pressing SHIFT-ESC once QDEBUG is loaded will "jump" you back into RSBUG. You can also type RSBUG at the CLI prompt once QDEBUG is loaded.


TESTH will load any SYSTEM/SYS file from the MDOS prompt and will search for AUTOEXEC from HDS1.AUTOEXEC. Do not use this if you do not have a hard drive.






TESTM will load any SYSTEM/SYS file from the MDOS prompt and will search for AUTOEXEC from DSK1.AUTOEXEC on floppy DSK1.

Enjoy as these were a couple of the MDOS development utilities that people may enjoy. TESTH should be useful to boot MDOS 1.14 if you want to use MDM 5.