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

July 1989

README

Welcome to the third issue of 9640 News. This issue has been in the making for several months now. Some parts of this issue have changed in the past week. I have had Version 3.0 of XHi ready for some time, however within the past week, Barry Boone uploaded the same version to Genie. I apologize to those that may not benefit from this file, however I am going to go on and include it because I think the majority will not be exposed to this release otherwise. I also have some news just slightly updating that about the Horizon Ramdisk by Bud Mills expanding the memory. We can now upgrade memory our memory up to 504K with the HRD 3000 series ramdisk. You can see the information in the ad section for details. Also, I can report that the 32K mod for expanding the fast memory of the Geneve is easy and functional. It only required 30 minutes to make the changes to the 9640.

As I hope will always be the case, this issue of 9640NEWS requires ARCHIVER (from Vol 1 #1) to unarchive all the files on this disk. It should expand to nearly 1325 sectors so I hope you feel you are getting your money’s worth. I am also beginning several projects that should be available next issue independent of whatever else is sent in, making the next issue even more exciting.

Look for the next issue in September or possibly earlier.

Beery Miller

NEWS

9640 News

Vol 1 #3

(c) Beery Miller 5455 Marina Cove #1 Memphis, TN 38115

Well, it looks like we are back to another full issue again this time. In this issue, everyone will see a program that I have been working on called MT9640 that permits multitasking on the Geneve while also providing a MENU of programs that can be loaded and run from a single prompt with some other disk I/O features too. This program has been by far the most challenging as while writing this program, I had to debug inconsistencies in the Geneve operating system and work around a couple of sections of code that wanted to destroy itself. As it is now, it is complete and bug free as far as I can tell with my testing. Further updates to this program will likely occur, however they are now pending upon the imminent release of the Programmers Developer’s Package by Paul Charlton. Having reviewed some programmer’s comments he has made, there are many things this operating system can do that have not been touched that exist. It is just a matter of seeing his manual of notes, etc. when they are available.

Several new things have happened since the last issue of 9640 News. First, and most important to me, is that my wife and I had a baby girl, Teresa (9 lbs. 2 ozs.) on March 22. She is a very beautiful girl and so far, pretty quiet, although she does like to eat quite a bit.

Software wise, Advanced Basic has seen some beta releases. Currently, April 4, 1989 is the latest beta version (available in Software section). As always, if later software becomes available before I mail your order, you will obtain the latest version possible. Many people requested the Myarc Disk Manager 5 for the HFDCC and received a much newer version than what I am sure they anticipated.

(Editor’s note: Adv Basic 06-05-89 has now been released that requires MDOS 0.95H that is ‘supposed’ to be bug free as far as Myarc knows. MDOS 0.95H will require a 720 sector drive system as it is a hard drive version of MDOS that can still operate with normal floppy controller cards, but can not format floppies with the HFDCC or use MDM5. If you do not have the HFDCC, you may want to advance to using this version of MDOS, although myself, I have a HFDCC and require the use of MDOS V1.14. Both of these files are available in the software section).

Other software that has been released is the 9640 Fortran package which will be reviewed elsewhere in this issue along with a review of Clint Pulley’s c99/MDOS latest release providing graphics/floating point/mouse/ and sprite support. Look for their reviews elsewhere in this issue.

Their have been several rumors going around regarding the Geneve and it’s improvement. The modification for converting the 512K Myarc Ramdisk and the modification for adding 32K zero wait state memory to the Geneve have been made public and are available in the Software section. Hopefully, I will report some good results with the 32K mod as I will be attempting that before this issue is released and you can find that elsewhere.(Editor’s Note: 32K chip has not arrived yet when I mailed this. One other note: Myarc claims that the 512K mod will not be 100 % compatible for all people as there are various 512K cards (versions). Myarc claims they will be releasing their own modification shortly. I have not heard of anyone having problems with their mods yet, so proceed at your own risk).

Their have also been two other separate groups working on developing memory expansion systems for the Geneve. One group is trying to add (I think he just needs to write it up) 512K to the Geneve card itself (the reason he is slow is he is debating on it’s usefulness as only a minority of the Geneves shipped had their memory chips socketed) while the other group has ALREADY developed the board and has 448 K of 512 functional and working. They are just now trying to figure out why they can’t address the remaining memory and once they do/ or if they can’t, they will release their advertisement (Look for prices exceeding $500 for a full 512K for this card due to memory chip prices). In both cases, the added memory could be used as actual RAM and not be devoted to only Ramdisk space. As of today, I have learned that specs for adding an additional 512K to the Geneve thru a memory board has been made available to Bud Mills Services. This looks like another project that some people may be able to build. Having questioned Paul Charlton about the 448K problem, he advised that MDOS will only support 448 K of PEBox memory if the Horizon Ramdisk or a Cor Comp card is used. He goes on to say the problem is a result that Cor Comp and Horizon developers did not fully decode three address lines required for that additional 64K. If you have only TI or Myarc cards, there will be no problem as I am advised. He also says that in reality, with the 512K card, you will only have 504K available. From previous conversation, I believe this is probably the DSR page/memory location that has been paged out so we could use our peripheral cards. You will still require purchasing the full 512K of memory if you want full expansion even if you have a Cor Comp card as apparently the addressing scheme does not mean you can leave one or two chips off as they are still required for other areas of memory. And to finally wrap this topic up, yes the Geneve is capable of a 2 meg memory expansion, HOWEVER, additional memory expansion is going to require solder connections directly to the Geneve to handle the additional address lines.

Another note I have located coming from Paul Charlton is that he is working on an Editor from MDOS. This is still far away if he finishes it as he currently has several other projects pending. As of May 10, Paul Charlton has released another program to the public domain. He has written an Infocom Interpreter from MDOS that provides the abiltity to run those games such as Zork I, Zork II, etc (Myself, I am not big in those games, yet…..)

Additional support for the Geneve seems to be flourishing from our friends in Europe. They have provided me for inclusion in this issue upgrades to XHI (Now Version 3), Editor/Assembler (Version 6.1 with English docs even), and X80 (Version 1.0).

As sent to me, XHI had several of the same programs that was released in the second issue, so I have removed them from this release in this issue to provide additional space for other programs. If you would like the complete disk unmodified and with German docs too, you can find it in the Software section.

Also released by the same author of XHI is X80 that provides 80 column support from Extended basic with inverse video, blinking, the ability to tab within an INPUT statement, and many other features. This guy is just terrific at his programming accomplishments. This package has it’s docs in only German, however, the commands for their usage should be fairly easy to see, plus he provides some demo programs of it’s features. Please send this guy a fairware donation for his work. His work is fantastic.

Coming from Austria, is the new version of the Editor/Assembler with some 80 column features. His file loads in as a GPL module and shows what can be done with some work. Please provide this guy with a fairware donation for his contributions if you like his work.

If subscribers do not wish to trouble themselves to sending them their Fairware donation due to obtaining an International Money order, etc, send me a check (payable to me with a note to who the benefactor is) and I will forward the funds to them myself. I hope that is o.k. guys???

J. Peter Hoddie has been up to some work lately. The past couple of week has brought us the knowledge of adding external files to My-Word to perform additioanal tasks on the document. One external he created as a demo, was to convert all lower case to upper case and vice versa. He commented that an external may be up to 16K in size and could even be a terminal emulator program running with My-Word using it’s text buffer if you wished. Will wonders never cease. Also, someone has uncovered another hidden feature of My-Word. Go to the Help section and select one of the options such as EK. Then press Ctrl 1 thru Ctrl 7 (any of them are active) and you will be rewarded with some music (BACH). This is valid for Version 1.21 and Version 1.22 (not official Myarc release and I have not been using it although it is available to me). Peter has also commented that additional enhancements will be coming to My-Word ‘most likely’ in the summer months. Peter doesn’t describe what they will be. This may/may not be a commercial release as no other details were available.

Mike Dodd has slowed up as of recently. In a recent conversation, I learned his Monitor crashed and also he has had other commitments preventing him from programming. He did say that he had some things on the back burner but gave no details. I did try to pick his brains as I have been trying to work on another project that required disassembling Hyper-Copy. As the file comes encrypted on disk, I do not know how to unencrypt it, as disassembling it provides garbage for my needs. However, I did disassemble it using some tricks with MDOS and located something hidden that I had not seen so far. At his menu of 7 options, press CTRL T and you will see something new. I, myself, like these kind of features as they are something special to the programmer. (Editor’s note: after having disassembled Hyper-Copy as I mentioned above, John Johnson released an unencrypt/encrypt program for MDOS that ‘now’ simplifies things even more).

Myself, my next project(s) are going to include the attempts of running MDOS from MDOS. You might wonder why this is of any benefit. Myself, I believe it may very well be possible to bank into memory the command line processor that runs the Geneve for additional MDOS command support within a program. This means you could essentially “appear” to be in MDOS, and at the press of a key, drop back into your program that you were running and continue on like nothing happened. Discussions with this possibility are continuing with Paul Charlton as I have had some limited success so far. This feature was prompted by a subscriber wishing to write a DOS Shell program. Perhaps these comments will awaken him again as it has been a while since I last heard from him. Another program I am starting to get a handle on is a data keeper for MDOS. My MT9640 file has almost all of the necessary ingredients required for a simple data base program from MDOS. I am trying to get a feel for what is needed (if anything?) that people would like to see. Now it is up to you if you want to see something you have in mind. Here are my following specs for a program that I perhaps will write if I get enough response.

1) Search Capability 2) Sort Capability 3) Append Capability 4) Edit Capability 5) Some type of print capability 6) 80 Column use

Limitations:

A) Max Rec Length of 254 characters B) Don’t expect any mathematical functions in the near future as I am staying far away from them at present. C) Don’t expect any mouse support as I don’t own a mouse. Nobody has provided anything yet that would be easier or nicer with a mouse (except perhaps TI-Artist) that I could use it.

Questions I need answers to are:

1) What kind of screen layout? Suggestions….. 2) Would you prefer all data to be stored within the program itself, or stored to disk separately. I am talking about having a save feature that saves the program out with the data included as this is what is done in MT9640.

If you have any suggestions, make them and I will see what I can do. This is not intended to be any program to rival TI-Base or other major pieces of work, but to be a useful program none-the-less.

One other program I have already modified has been the AFTERHOURS BBS. This program was written in Assembly Language and has now been modified to run in 80 columns on the Geneve in GPL mode. The source code for this modification can be found in the Software section. Please note you will still need to contact the original author to obtain the remaining files necessary to run the program for a BBS. They are not included and I can not include them per the author’s fairware request. You can still compile the program and boot it from Editor/Assembler (only EA module works) and see the initial screen before it locks up.

I have also received reports now of a bug in My-Art. Details of this bug are found elsewhere on this disk.

Many people are wondering about the HFDCC. As it stands now, V1.15 and V1.15 H are nearing completion. Their final release will coincide with that of Advance Basic as I am told. Basically (sorry the pun), MDOS V1.14 provides everything we have been promised with some added features. MDOS V1.15 is going to be required for Advance Basic to solve some of the Video Library problems that have been found. V1.15H is being held up for the same reason, plus the fact it needed floppy support that initially had a CRITICAL bug. Initially, their was going to be a problem formatting single density and using the disk on another system due to some timing problems with the Floppy controller chip. Paul Charlton says he has solved it through software and that it is no longer a problem. The only reason I will keep my Cor Comp Controller is called Hyper-Copy. Try copying as many disks as I must to keep up with the mail and I can not afford to use a slower copier as the HFDCC will take us back to the time of using DM1000 and it being the quickest copier. Reason being: the Disk Controller chip on the HFDCC is not made by Yamaha and will have different addressing to activate Track reads/writes. Hopefully, Mike Dodd will come out with a version for it.

While I have been at it, some comments should be made regarding Picture Transfer. It is an extremely nice piece of software by Paul Charlton. If you have purchased the program, you will notice that your registered copy will display your name. Did you also know that unregistered copies had a serial number associated with them? So far, upon disassembly has been the only way I have seen to locate it, however I am pretty sure Paul has written some small routine to display the serial number and track down the originator of the pirated copy. Keep this in mind if you decide your friend should also have a copy of the program……….

Well, it seems like the contest that was mentioned in the first and second issue of 9640 News is still open. I have yet to receive any response on the disk labeler program or anything else. Do we not have any C Language programmers out there? Surely, someone would want to tackle using those small CSGD graphics and putting them on a label such has been done with the label on this disk from extended basic??? If I am wrong, just let me know.

While I am at it, is anyone using GBASE? I have yet to hear anyone using the program or anything else. If anyone has found it useful, a few comments would be welcome to know whether or not to even continue with it. I have made some small changes to it myself for some better disk label support as it was with that program I initially was storing my data base file of 9640 News subscribers. Since the release of V2.01 of TI-Base, I did decide to switch because it had more features I immediately needed. Again, are there any comments????

In the Software section, you will also find a TI-NET section. This section is essentially a message base dump from TI-NET from over a year with questions and answers raised from programmers towards Paul Charlton, Peter Hoddie, Mike Dodd, and Al Beard. I have found myself some useful information in the messages that have helped me out in programming. If you want to just trace the history of the Geneve, this is a good place to begin.

Also in the Software section, you will find several new disks of modules that was never released by TI or anyone else, but have since appeared on Genie, CIS, etc. Unfortunately, no documentation is available for these files, but they are available. One or two of the programs will require the use of the Geneve and it’s GramKracker capabilites as a lot of memory is required to run it.

Another file that may interest some people is Version 0.94H (now 0.95H) of a hard drive operating system. Full support for the hard drive and MDOS commands are available such as TREE, MKDIR, RMDIR, etc., however, the update video routines and some other features have not been incorporated into the file. It should be noted that this file is 462 sectors unarchived as SYSTEM/SYS, so you will definitely need to support at least 720 sectors on a disk to handle that file. Unfortunatley, floppy support for formatting is not provided yet for the file with the use of the HFDCC. I will say that at least it looks like Myarc will be able to deliver what it promised from what I have seen. That comment is in regards to Adv. Basic and MDOS. We can wait and see about the Pascal system.

MDOS Forth

Yes, it looks like someone has finally modified the original version of TI-Forth and made it MDOS compatible. MCCANN SOFTWARE, P.O. Box 34160, Omaha, NE 68134 has listed in Micropendium a version for $15.00. This sounds like we may see many more new programs in the near future as the advertisement also goes on to say they are including the source code. What more can you ask? For those people that are not familiar with Forth, it is a very powerful language that can be extremely popular for the Geneve. All of MCCAN’s Software is written in Forth and represents what can be done with Graphics as they are now offering some 3D-Cad type software that can utilize the Geneve video chip. Having had an opportunity to see a demo of Forth running from MDOS, I do have a few comments for those interested.

It is definitely forth with some enhancements and some pitfalls (so to speak). Enhancements include the ability to work on files instead of a disk as a whole unit if you wish. This means you may have a file consisting of 8 screens only and it being 32 sectors in length. MDOS-Forth also comes with the 64 column editor modified to run in 80 columns. The major pitfall (so to speak again), is that TI-Forth screens (running from GPL mode) will most likely not run. Every Forth program I tried to run locked MDOS-Forth up on the Geneve and required a warm reboot. This is due to the fact that MDOS Forth is moving away from the dependency of the 4A and has had the GPLLNK, DSRLNK, and other 4A utilities removed (it was necessary due to MDOS mapping). What it does mean though, is that MDOS-Forth easily supports the MDOS calls (XOP’s) quite easily and all graphics capabilities can be easily attained. Full documentation on use of MDOS XOP’s and Forth is explained on the documentation that comes on disk (4 pages). What MDOS-Forth by McCann software needs, is for others to write some utilities (libraries) and perhaps a manual that could be sold under separate cover describing the use of MDOS-Forth and it’s differences from TI-Forth. If someone wants to tackle the project, please contact me as I may be in a position to market any such manual.

Myarc Hotline

If you plan on trying to get hold of Myarc, you should be directed to call Jack Riley. Jack appears to be in charge of handling customer problems, return authorization numbers, software complaints, etc. I have tried calling Lou’s number (201) 805-0006 for nearly 30 days without obtaining an answer (most of the time, it was busy). One should not really complain as how many companies can you call and reach the president of that company without being transferred. Lou should not be an exception. If you think about it, Lou is doing quite a bit of the programming himself with Advanced Basic and MDOS and the other programs and if he is continually interrupted with phone calls, it slows down his programming time. One can not program 24 hrs a day as I am sure he must try to keep his business away from his home and personal life.

As a final note, I shall wrap this news up here today. News wise, there has not been a surge of information lately. It is my pleasure though, to say that response from individuals for submission of programs is on the rise and will be increasing as the newsletter has been growing. For those interested, I would expect the next issue to be released in about 3 months in the neighborhood of September at the latest. I would expect a later version of MDOS to have been released along with Advanced Basic which will provide us with another wealth of information to pass on. Unless something goes wrong at the last moment, I will be attending the Chicago Fair this November 4th with a booth offering 9640News plus some software such as GIF, and any other programs I have developed by then, along with taking suggestions from individuals. Until then, ‘Happy Computing!’

AD

9640 Fortran by LGMA Products

The Ultimate Language for the MYARC GENEVE

9640 FORTRAN is the “ULTIMATE” programming language for the MYARC GENEVE computer. It runs under the native MDOS (MYARC-DOS) mode of your GENEVE, which means you tap into the extended memory and features not available in the “GPL” or the TI-99/4A mode.

9640 FORTRAN has the following exclusive features:

o a full screen editor,
o an optimizing FORTRAN compiler (with some FORTRAN 77 extensions),
o a linker which will link FORTRAN and Assembly modules,
o a symbolic/source level debugger,
o a FORTRAN/Assembly librarian,
o over 160 library routines interfacing with MDOS,
o and four demonstration programs

9640 FORTRAN comes with a 230 page manual packed with information concerning FORTRAN and MDOS. Also included are two DS/SD diskettes and a ninety-day limited warranty.

Make the most of your MYARC GENEVE and join the steadily increasing 99/9640 FORTRAN user community! 9640 FORTRAN is shipping NOW from the following dealers:

      Disk Only Software
      Quality 99 Software

Additional dealers to be announced. Suggested retail is $69.96

(Note: 9640 FORTRAN requires MDOS 1.14 or better)

Editor Note: I know that Disk Only Software is currently carrying the program for $54.95


NOT JUST ANOTHER RAMDISK… THE HORIZON 3000 RAMDISK

THE BEST BATTERY-BACKED RAMDISK for the TI-994A. The on-card batteries recharge when you operate your computer. The batteries will last for years.The entire STATIC RAM memory is battery-backed including the DSR RAMDISK Operating System. The RAMDISK size can be 90k to 3 meg.

THE ONLY FULLY OPEN PE-BOX CARD. The Horizon RAMDISK contains no EPROM or ROM. The DSR Operating System is in RAM and is loaded from a floppy disk.

THE ONLY PERIPHERAL WITH DSR RAM which allows the assembler language programmer to write Device Service Routines. The Horizon RAMDISK memory is decoded entirely within address space >4000 to>5FFF. A special loader enables AORG Editor/Assembler object files to be placed in the RAM on the card. You can write all new CALL subprograms for TI BASIC, power-up and interrupt service, and DSR routines making use of the STATIC battery-backed RAM. >4000 to >57FF is always enabled, and the remaining memory is paged in 2K at a time in >5800 to >5FFF with the LDCR instruction.

THE ONLY RAM CARD YOU CAN BUILD yourself at substantial savings over fully constructed models. You can buy the printed circuit board, Operating System software and an ILLUSTRATED step-by-step construction manual with schematic and parts list and get the parts wherever you can find the best deals. Hundreds of TI Enthusiasts have built the Horizon RAMDISK. If you’ve had any experience building electronic kits you can too–at SIGNIFICANT SAVINGS! (If you want a fully constructed, tested and warranted unit, we sell those too.)

EASY TO USE…

  • Functions just like a TI floppy drive, only FASTER! Load the operating system with a single key press, then access the RAMDISK as you would a floppy disk.
  • Compatible with software using standard DSRLNK including sector copy. Disk Manager II, MG Explorer, TI Writer, TI Multiplan, and Editor Assembler. Compatible with TI BASIC, TI Extended BASIC, TI and Wycove FORTH, TI LOGO, and Assembly Language. > Comes with the DM-1000 Disk Manager, loads from BASIC or EXT. BASIC in 1 second with call DM or a keypress. > Compatible with existing hardware including MAXIMEM, GramKracker, the P-GRAM Card and the GENEVE 9640.
  • Accepts drive names from DSK1 to DSK9.
  • DIP switch sets CRU BAse from>1000 to 1700.
  • Adds CALL Subprograms to BASIC to: 1) set the drive number, 2) set write protect, 3) set maximum sectors, 4) enable DSR for direct access, 5) execute M/L code from BASIC.

TWO OTHER VERSIONS OF THE CARD ARE AVAILABLE NOW.

  1. A VERSION TO ALLOW 8K BANKS TO ACCESSED at the programmers wish to >4000 - 5FFF AND/OR >6000 - 7FFF memory locations. You have the ability to turn-on 8k blocks of memory and use them as part of a running program. An ERA of “POWER PROGRAMMING” has begun for the “TI 99/4A”

  2. For the GENEVE, a HORIZON card set up as Contiguious CPU RAM… This card can be sized from 90k up to the FULL 512k of equivelent “ON BOARD CPU MEMORY”. A “MUST” for MDOS 1.14 and the latest programs that use a lot of Memory. A little note of CLARIFICATION on the available MEMORY,,,,We can address the full 512k, however MDOS requires that we limit the size to 504k to avoid DATA BUSS conflicts. An ingenious detector circuit is included to check for devices that do not decode the 3 high address lines specified in the T.I. Specs. If such a device (unmodified HORIZON card or a CorComp card ) exists then a total of 64k is blocked from use to prevent any BUS conflicts that could damage other cards or devices in the “P-Box”. We have re-arranged the memory addressing on the 3000 card to allow the card to operate without the blocked 64k chips. All the Memory that you pay for can be used. YOU tell us what equipment you have, and We can BUILD up the Expansion Memory you need. If you are short on the green stuff, but still need expansion memory, you can start small (90k) and just plug-in more as you need more. Pricing of the Expansion 3000 card is from $130 zero k(no memory, you find the chips), 96k=$215 , 192k=$300 , 384k=$465 , 448k=$525 , 504k=$580….( These prices subject to change without notice.) CALL for a FIRM QUOTE.

NOTE: A modification IS available for all HORIZON cards to allow use of the 64k that will otherwise be blocked. This MOD should be applied to all HORIZON cards that will be used with any Expansion Memory on a GENEVE.

OF JUNE 12 1989 !!!!!

MEMORY CHIP PRICES ARE STILL UP ,, AND ARE HARD TO FIND. See AD below!!!

ANNOUNCING

The P-GRAM Card By John Guion and Robert Jones

The P-GRAM Card is a GROM Emulation Card for use with the TI 99/4A Requires Periphial Expansion Box, 32k and Disk Drive. The P-GRAM will save and run MODULES and is compatible with files saved by the GRAM-KRACKER or Cart-Save. A fully documented Source Code on disk and USER Manual allow you to SAVE Modules, EDIT as you wish, LOAD to card and RUN. The P-GRAM card contains 72k of battery backed RAM memory ( lp CMOS ) 40k GRAM for GROM emulating, 16k for Module RAM bank-switched, and 16k of DSR RAM also bank switched. The Optional CLOCK is not required for proper operation of the P-GRAM, but the price is right.

P-GRAM KIT=$150.00 +Clock +$20.00

FULLY ASSEMBLED,TESTED and READY TO RUN, P-GRAM=$180.00 WARRENTED 6 Mo. with Clock=$200.00

Please allow 2 to 4 weeks for delivery

The bare Horizon Card may still be purchased as before, but your orders should be sent to:

   BUD MILLS SERVICES
   166 Dartmouth Drive
   Toledo Ohio 43614

ANNOUNCING THE HRD 3000 RAMDISK

This Ramdisk is constructed on a NEW HORIZON Ramdisk Board and uses the same HRD+ circuit with the Hitachi 62256LP12 (32K) CMOS Memory chips ( or the equivalent NEC 43256LP12) OR THE LATEST 128x8 HM628128 chips….or 66204 chips.

THE NEW CARD IS NOW AVAILABLE !! With this new HORIZON 3000 card you dont have to stack the control chips or add the extra wires or extra resistors ! MUCH EASIER TO BUILD !! without stacking ANY chips up to 1.536 MEG…(using the new chips)

The new card can be built using the existing 32x8 memory chips, BUT Card sizes above 384k will still require piggyback soldering of the memory chips plus the control leads OR using a small PIGGY-BACK Board that is available only for the 3000 card…already built, ready to plug in and add chips. The OLD Card is still available in several memory sizes- ONE+MEG, 800K (GENEVE), 512K, 384K (DSDD), 192K (DSSD), and 96K (SSSD). See attached Order Form for Prices.

The Operating System (Thanks to John Johnson and Mike Ballman of the Miami Users Group) allows the Ramdisk to be divided into TEN logical drives or less. Only two DSK_(numbers) are used, the remaining drives will respond to DSK(name). The Menu program (Ver. 7.38) allows for 9 calls plus TWENTY-FOUR selections that you can edit on screen to customize the way you want it to appear - no more sector editing. XB programs can now be loaded from a call, or directly from the MENU. The HORZON 3000 Kits include:

The HORIZONS RAMDISK BOARD Assembly instructions Op System and MENU Software User Documentation and ALL required parts.

Note: This Menu Ver. 7.38 works on ANY 190K or bigger Horizon Ramdisk and allows BOOTING the Geneve. The Pheonix Software package does a better job and is easy to install…

A special note to GENEVE users. Any HORIZON Ramdisk IS compatable with Your GENEVE…BUT the GENEVE will only allow the use of up to 1140 sectors (260k) without patching your SYS file. At the present time you can use any HORIZON Ramdisk to BOOT your SYStem files. We have a SYS patch available to allow you to format and use a 384-800k HRD+RAMDISK as an 80 track Disk with your GENEVE.

We also have a PHEONIX mod that ADDS a 90, 180, or 256k BOOT drive on top of any 384 to 800k Ramdisk on the same card and same CRU. This is only for the GENEVE.

Credit Card orders may be placed thru DISK ONLY SOFTWARE at 1-800-456-9272 Visa MC AmEx ADD 10% for credit card orders.

Money Orders or Certified Checks are preferred on direct orders.

+++************************************
         Revised 6-12-89
PRICES Subject to CHANGE Due to present
 Economic conditions and MEMORY SUPPLY
Please call for a CURRENT Quote
_______________________________________
   Prices are only good TO JUL 15,1989

To BUD MILLS SERVICES     CALL
   166 Dartmouth Dr.    (419) 385-5946
   Toledo Ohio 43614    DATE___________

From name _____________________________

   address_____________________________

   city______________________state_____

   zip_________ phone (____)____-______

   Please "RUSH" my HORIZON  kit(s)
   ___PRE-PAID by Check or Money Order
---------------------------------------
Quan| HORIZON 3000 KITS  |cost/ea |amt
----+--------------------+--------+----
    |          ONE MEG   |$990.00 |
----+--------------------+--------+----
    |         800k/GENEVE|$795.00 |
----+--------------------+--------+----
    |            512k    |$550.00 |
----+--------------------+--------+----
    |          384k DSDD |$435.00 |
----+--------------------+--------+----
    |          192k DSSD |$270.00 |
----+--------------------+--------+----
    |           96k SSSD |$185.00 |
----+--------------------+--------+----
    |         Zero k     |$100.00 |
----+-----------------------------+----
 Pre-Built READY TO RUN ADD $30.00|
----------------------------------+----
 Deduct 5% IF you are purchasing  |
  5 or More of the above Kits---> |____

The above Kits include the HORIZON Card
  Instructions,MENU ROS and ALL parts
---------------------------------------
   | Upgrade old 180k to |        |
   | 256k w/instructions | $85.00 |
---+---------------------+--------+----
   | 6264LP15 Chips      | $10.00 |
---+---------------------+--------+----
   |32/16 Console Mem Mod| $60.00 |
   |with Super cart      |        |
---+---------------------+--------+----
   | 62256LP12 Chips     | $28.00 |
---+---------------------+--------+----
   | HORIZON 3000 card   |        |
   |  + MANUAL + MENU7.3 | $40.00 |
---+---------------------+--------+----
   | PHOENIX MOD to add  |        |
   | a 90k BOOT Drive to |$125.00 |
   | 384 - 800k/GENEVE   |        |
---+---------------------+--------+----
   | We will BUILD any of|        |
   | the above Kits..Add | $30.00 |
---********************************----
   |NEW EXPANSION   ZeroK|$130.00 |
   |MEMORY FOR THE    96k|$215.00 |
   |GENEVE           192k|$300.00 |
   |READY TO RUN     384k|$465.00 |
   | 90 day warrenty 448k|$525.00 |
   |  Sorry no KITS  504k|$580.00 |
---********************************----
   | P-GRAM CARD KIT     | $150.00|
   |   with clock        | $170.00|
---------------------------------------
   | P-GRAM CARD  BUILT  | $180.00|
   |   with clock        | $200.00|
---------------------------------------
       Item total  |$
      -------------+----
  Ohio Residents add 6% sales tax |
      -------------+----
Shipping OverSeas ADD $12 Surface |
   or  $20 AirMail |
  ( Small packages $5.00 by air)  +----
                   |
   AMOUNT ENCLOSED |$
   =====================

   your signature X____________________
***************************************

 Call TI-COMM BBS on 419 385 7484
 for current prices or information
 300 Baud,7bit,even / 1200,8bit,no


   Shipping and handling included
       within U.S. and Canada

         +++++++++++++++++++
 Your 90k Horizon Card is CONVERTABLE
 to the 32x8k memory chips.....
      CALL FOR conversion instructions..

   If you already have a built-up
         HORIZON RAMDISK
We DO NOT recommend converting your 180k
card to the one Meg circuit.

You CAN add 64k to your 180k HORIZON
 RAMDISK to have a total 256k

   This upgrade kit contains:
     8  6264 lp 15 memory chips
     1  74ls02
     1  74ls154
     hookup wire and instructions
     Latest version of MENU programs
   Please do NOT use any KOREA Memory
      Chips.... They just don't work

 IF you have only a 96k HORIZON RAMDISK
   PLEASE CONTACT ME for possible
    conversion to the BIG CARD format.

Just a personal note

I have recieved comments from many that did not buy my kit that wished they had. I know that you will be pleased to recieve QUALITY parts promptly that I personally guarantee. Over 1200 KITS have been sent to satisfied customers.

2000 HORIZON CARDS have been shipped since NOV.1985

P.S. The 32/16 Console Mem Mod by Mike Ballman of The Miami Users Group has successfully added 2 of the 62256lp12 memory chips to the CONSOLE 16 bit BUSS resulting in a 45 to 50% increase in speed. We have added acces to a super cart in the unused memory space…. CAUTION … This modification may not be compatible for some programs (like FAST-COPY). Game speed will be a real CHALLENGE. Ideal uses are for BBS or Multiplan recalcs. Two 32k chips are required, but only 32k is used. MEMORY SPEED IS SWITHABLE. This kit requires piggyback soldering in YOUR CONSOLE!!! Instructions are provided. BLACK & SILVER CONSOLES ONLY ! ! !

ADV-BASIC

Advanced Basic

Myarc has now released what they call a ‘final version’ of Advanced Basic. It is bug free as far as Myarc has determined in testing each of it’s features. While Myarc has not tested Adv. Basic in any large programs, and/or may have forgotten to test for specific bugs, etc., it could be possible that additional bugs will appear. In order to run this latest version of Adv. Basic, it is a requirement to use version 0.95H of MDOS (I have both MDOS 0.94H and 0.95H in the software section). MDOS 0.95H will require a disk that can handle 720 sectors as it is over 450 sectors in length and provides the full MDOS support of the hard drive, but you can not use MDM5 with Version 0.95H of MDOS. It should be noted that hard drive users should now call the hard drive HDS1 instead of WDS1 or hdS1 as with version of MDOS lower than 1.14 (excluding 0.94H and 0.95H). Myarc has directed anyone locating bugs in Adv Basic, to please send them a short file listing of the error in it’s simplest form. The only thing at the moment that you can not use with Adv. Basic is the command BYE. You can use CTRL-ALD-DEL to escape back to MDOS. You should not have a RAMDISK enabled or TIMODE enabled when using Adv-Basic due to memory restrictions. And finally one last thing regarding version of MDOS (this is for 0.94H and 0.95H), do not attempt to format floppies with the hard drive controller as those bugs still exist as they have only been corrected in version 1.15 of MDOS. Happy computing.

BLINK-S


       DXOP SYSC,0
       B    @MAIN
*
MDOS   EQU  >0000
USERWS EQU  >F000
BLWPWS EQU  >F020
*
VLIB   DATA 6
MMG    DATA 7
KEYB   DATA 5
*
* MEMORY REQUEST
*
MAIN   NOP
       LWPI USERWS
       LI   R0,1
       LI   R1,1
       LI   R2,1
       CLR  R3
       SYSC @MMG
       MOV  R0,R0
       JEQ  DOWN
       B    @ERROR
DOWN   LI   R0,3
       LI   R1,1
       LI   R2,7
       SYSC @MMG
       MOV  R0,R0
       JEQ  BEGIN
       B    @ERROR
*
* CLEAR SCREEN
*
BEGIN  BL   @CLS
*
       LI   R0,>37
       LI   R1,TABLE
       SYSC @VLIB
*
* STRING WRITING
*
*  R1: ROW
*  R2: COLUMN
*
       LI   R0,>2E
       LI   R1,>0B
       LI   R2,>20
       MOV  R2,R7
       LI   R4,1
       LI   R5,STR
       MOVB *R5+,R6
       SRL  R6,8
SHOW   MOVB *R5+,R3
       SRL  R3,8
       SYSC @VLIB
       INC  R2
       DEC  R6
       JNE  SHOW
*
       MPY  @COL,R1
       A    R2,R7
       SRL  R7,3
*
       LI   R0,>36
       LI   R1,>0007
       SYSC @VLIB
*
       MOV  R0,R5
       ANDI R0,>000F
       SLA  R0,4
       SRL  R5,4
       A    R0,R5
*
* COLOR ALTERNATE REGISTER
* SETTING R12
*
*   R1 : VDP REGISTER # TO SET
*   R2l: ALTERNATE COLOR SETTING
*        LSN: TEXT
*        MSN: FOREGROUND
*
       LI   R0,>35
       LI   R1,12
       MOV  R5,R2
       SYSC @VLIB
*
*  BLINKING REGISTER R13
*
*   R1 : VDP REGISTER # TO SET
*   R2l: BLINKING PERIOD
*        LSN: OFF TIME
*        MSN: ON  TIME
*
       LI   R1,13
       LI   R2,>0036
       SYSC @VLIB
*
* COLOR TABLE CLEARING
*
       LIMI 0
       MOV  @TABLE,R0
       CLR  R1
AGAIN  BLWP @VSBW
       INC  R0
       CI   R0,>0B0F
       JNE  AGAIN
       LIMI 2
*
* SCREEN LOCATIONS TO BLINK
*
       A    @TABLE,R7
       LI   R3,STR
       MOVB *R3,R3
       SRL  R3,8
       CLR  R2
       DIV  @EIGHT,R2
       CI   R2,1
       JL   FRACT
*
       LIMI 0
       MOV  R7,R0
       LI   R1,>FF00
LOOP   BLWP @VSBW
       INC  R0
       DEC  R2
       JNE  LOOP
       LIMI 2
       MOV  R0,R7
       MOV  R3,R3
       JEQ  TASTO
*
FRACT  LIMI 0
       MOV  R7,R0
       DEC  R3
       SLA  R3,1
       MOV  @MASK(R3),R1
       BLWP @VSBW
       LIMI 2
*
TASTO  LI   R0,>2E
       LI   R1,>16
       LI   R2,>1E
       LI   R4,1
       LI   R5,PRESS
       MOVB *R5+,R6
       SRL  R6,8
SHOW1  MOVB *R5+,R3
       SRL  R3,8
       SYSC @VLIB
       INC  R2
       DEC  R6
       JNE  SHOW1
*
UP     LI   R0,4
       SYSC @KEYB
       JNE  UP
*
       LI   R0,>35
       LI   R1,13
       CLR  R2
       SYSC @VLIB
       BL   @CLS
*
ERROR  BLWP @MDOS
*
* VMBW, VSBW
*
VMBW   DATA BLWPWS,BVMBW
VSBW   DATA BLWPWS,BVSBW
BVSBW  MOV  R13,R1
       INCT R1
       LI   R2,1
       JMP  DVMBW
BVMBW  MOV  @>0002(R13),R1
       MOV  @>0004(R13),R2
       JEQ  EVMBW
DVMBW  MOVB @>0001(R13),@>F102
       MOV  *R13,R0
       ORI  R0,>4000
       MOVB R0,@>F102
       SWPB R0
UVMBW  MOVB *R1+,@>F100
       DEC  R2
       JNE  UVMBW
EVMBW  RTWP
*
* CLEAR SCREEN
*
CLS    LI   R0,>27
       LI   R1,BLANK
       MOVB *R1+,R2
       SRL  R2,8
       SYSC @VLIB
       B    *R11
*
COL    DATA >50
EIGHT  DATA >0008
*
MASK   DATA >8000,>C000,>E000,>F000
       DATA >F800,>FC00,>FE00
*
PRESS  BYTE >15
       TEXT 'Press any key to exit'
*
BLANK  BYTE >01,>1A
*
STR    BYTE >0F
       TEXT 'HI! GENEVE USER'
       EVEN
*
TABLE  BSS  >18
*
       END

EA6DOC/1E

 





    EDITOR ASSEMBLER   Release 6.1c
    ===============================


                 for  GENEVE 9640
        tested with MDOS 1.14 and GPL 1.04
     
     
        
          T H I S    P R O G R A M    I S    P R O V I D E D    A S
              
           F A I R W A R E    ! ! ! 
        


      Usermanual  for


        a) EA    - Extension

        b) BASIC - Autoloading

        c) BASIC - Extension  







              C Copyright February 1989

              Idea, Programming and Adaption ( 80 characters .....)
                         Steininger Reinhold,
                         Kleinwoert 39, 4030 Linz
                         Austria


              Editor, Assembler, Editor-Assembler cartridge-program
                         TEXAS INSTRUMENTS (c) 1981


              Hexmonitor, I/O-Operations and Gramloader for the  TI99/4A
                         Mag. Karl Hagenbuchner, 4050 Traun
                         Austria

              Design - support and Distributing
                         Schwalm Josef,
                         Smolagasse 4/8/3, 1220 Vienna
                         Austria
       
       **ATTENTION**: The Editor and Assembler are copyrighted by

        TEXAS INSTRUMENTS (c)1981. It is not allowed to use the program

        without the original EDITOR/ASSEMBLER-PACKAGE of

        TEXAS INSTRUMENTS.



       IF YOU LIKE THIS PROGRAM AND LIKE TO USE IT, PLEASE SEND 10 U$ or
       120 Oes or 15 DM to STEININGER Reinhold, Kleinwoert 39, 4030 Linz,
       Austria or to SCHWALM JOSEF, Smolagasse 4/8/3, 1220 Wien. In
       Germany you can also pay to STEININGER Reinhold, Deutsche Bank,
       Sparbuch Kto.Nr. 3354032 60.
       
       Everbody, who sent the DONATION, will be registrated in a
       user-list, to get - for paying the outlays - updates of this useful
       program. 

       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^Thanks a lot,




       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^Steininger Reinhold - Schwalm Josef

       EDITOR-ASSEMBLER V6.1c USER-MANUAL 
       
       Table of contents
       =================
       
       
       Main menu ...........................................2
       
       New E/A-menu-options ................................4
       
       New support for the inputroutine ....................5
       
       New page of the E/A-menu ............................5
       
       New menu-options of the second page .................7
       
       Information about the assembler .....................8
       
       New basic-subroutines ...............................9
       
       Troubles with other programs ........................12
       
       Tips for the GENEVE-GPL-Interpreter .................12
       
       MAIN MENU : 
       ===========
       
       1: TI BASIC
     
       For extension to the standard E/A-basic, you can use 25 new
       subprogram-calls in TI-basic.  
     
       2: LOAD AND RUN BASIC
     
       If you select LOAD AND RUN BASIC, your GENEVE is looking for a
       basicprogram, named LOADER. It has the same effect as the
       subprogram LOADER. If the computer found such a program, it will
       try to load and to start it. ( Same as the EXTENED-BASIC LOAD
       program). If TI-Basic won't be found at G>2000, there is a reset to
       the main title screen.
       
       3: MYWORD
     
       The loader is looking for a program named 'MW' on DSK1.  If there
       is no 'MW' , an 'I/O-ERROR 07' will occur and after pressing ENTER
       a reset to the main-title screen is executed.  The RAM on >6000 and
       >7000 will be automatically unprotected.  
      
       4: EDITOR / ASSEMBLER
     
       The E/A - Menu is extended with '6 List Directory', '7^TI-BASIC'
       (normaly situated at G>2000) and a new page.  
          
       5: GRAMLOADER
     
       The gramloader-files (GL1 and ev. GL2) are attempt to load from
       the selected diskdrive ( DSK1 - DSK6 )after entering this option.
       With the gramloader, you are able to load the files of Mag.
       Hagenbuchners I/O-Operations out of a menu. For further
       information, please write to Mr. Schwalm Josef, Smolagasse 4/8/3,
       1220 Vienna, Austria.
       
       6: DISKMANAGER 1000
       
       The Diskmanager 1000 ( (c) BRUCE CARON OTTAWA TI99-USERS GROUP),
       with the filenames MGR1 and MGR2, is attempt to load from the
       selected diskdrive ( DSK1 - DSK6 )after entering this option.
       
       7: I/O-Operations

       With the I/O-Operations you are able to load or save
       program-image-files of maximal 8 kByte with a header, that is
       identical to the Mini Memory EASY BUG header, from DSK1 to DSK6. To
       load or save GRAM-Files, you have to press 'G' after selecting the
       diskdrive. Valid filenames are all hexdezimal values from '0000' to
       'FFFF'. All files, you create in this way, you can load with the
       GRAMLOADER.

       8: HEXMONITOR
       
       The HEXMONITOR supports on the GENEVE 80 characters and displays
       >BF bytes on one page. Depending on the selected ram
       (G...Gram/Grom, V...Vram, ram), the right ram-type in the last line
       on the screen is blinking. You are able to hardcopy the displayed
       page by pressing 'alt P'. To move a displayed memorypage press
       instead of F9 'alt T', then select the target memory an press
       ENTER. It is possible to transfer from GRAM, RAM or VRAM to GRAM,
       RAM or VRAM.  
       The HEXMONITOR has only two restrictions. The registers for the
       HEXMONITOR are at >8250. Selecting this portion of ram can cause a
       crash of your GENEVE. The second problem occours at changing the
       ram-banks of the TMS 9938. At this point you cant leave the
       displayed page anymore. Only with 'Ctrl Ctrl Shift', you are able
       to leave this page to the main title screen of the
       GPL-Interpreter.
       
       
       NEW SUPPORT :
       ============= 
     
       New E/A-menu-options
       --------------------

         Option 2 : 
        
         This option allows you to select between the TMS9900 - Assembler
         and the WEIAND - GPL - Assembler (named ASSM3, ASSM4 and ASSM5).

         1...TMS - Assembler : The assembler is loading out of GRAM4 and
         GRAM5. The rest is the same as assembling with the
         TI-Editor-Assembler modul. 
                 
         2...GPL - Assembler : Here occurs a question 'FLOPPY/HARD-
         DISK?'.  Selecting an 'F' or 'H' you are asked about the number
         of the drive, where you will load your GPL-Assmebler. You are
         able to select between DSK0 to DSK6 and WDS1 to WDS4. The
         selected drive is displayed in the right corner of the screen.
         From this point, assembling is the same as with the
         TI-Assembler.

         I was not able to test the loading of the GPL-Assembler from a
         harddisk, because I don't possess one. Testing it under MDOS 1.14
         and GPL 1.04 without one, a crash occurs.
        
         Option 3,4: 
         
         The name, saved at the adress stored at >202A (startaddress of
         the REF-DEF-table), is offered to you as the startname of the
         actually loaded program. At 98 of 100 cases it is the right name,
         because mostly assembler-programers use the first DEF-statement
         for the programname.  
         
         Option 6:
       
         With this option, you can list a directory of DSK0 to DSK6 using
         a display of 80 characters per line.
         An option for selecting a path will be supported in a higher
         version of EDITOR^-^ASSEMBLER^6.  
         When an error occurs, a message is displayed on the bottom of the
         screen. An exit to the E/A-menu is possible at the diskprompt by
         pressing F9 and at the end of displaying a directory at the
         prompt ' Another Diskette Y/N ' by pressing 'Y' or F9.

         
         Option 7:
       
         Selecting this option, you enter the GPL-program at G>2000.
         Your GENEVE is looking for the startadress and the name of the
         program. If there is no pointer to a GPL- program, option 7 is not
         displayed on the screen.
       
         New support for the inputroutine 
         -------------------------------- 
         The inputroutine now supports some new functionkeys:

         a.) F8.... With F8 you are able to recall the last nine inputs
             terminated with the ENTER-key.
             The cursor appears on the fourth inputposition, because
             corrections are often only changing the number of the
             diskdrive (fourth position at the inputprompt).

         b.) F3 corresponds to the F3 (ERASE) from BASIC, EXTENDED BASIC
             and many other programs.

         c.) CTRL F1 - CTRL F10: These ten keys you can define at the new
             page of the E/A-menu.
       
         d.) By pressing 'Home' the cursor appeares at the first position
             of the inpuline.
       
         e.) Pressing 'End' the cursor appears at the first position after
             the last displayed character of the inputline.  
        
        
         New page of the E/A-menu:
         -------------------------

         At this page - you reach it with 'Pg Up' or Pg Dn' - you see find
         information of the system-status and you can change some of them. 
        
         You see the occupancy of the HIGH- and LOW-memory of your
         TI-emulation, the status of protection of RAM on >6000 and >7000
         and the status of the clock (ON or OFF).
     
         Information about the memory-occupancy of the TI99/4A, you find
         in your E/A-manual. The values , showed on this page, are only
         correct after using LOAD AND RUN or RUN PROGRAM FILE, because the
         editor and the assembler don't use pointers to show the occupancy
         of the ram.

         The memorybanks at >6000 and >7000 are automatically unprotected
         after each entry to the EA, because some programs use these
         parts of the memory. By pressing F1 for >6000 or F2 for >7000 you
         can change the protectionstatus.  
         
         The clock, normaly switched off, is displayed in the upper right
         corner of the screen. You can switch it off or on by pressing F3.
         
         If the clock is switched on, it is displayed in each program,
         which does not use the user-defined interrupt and is started by
         option 3 or option 5. The display-position depends on the
         VDP-registers (mostly in the middle in the first or second line
         of the screen or at 80-character-screens in the right corner of
         the first line of the screen).  The only one program causing
         problems with the clock, is MYARC BASIC V2.11. Running this
         program, the clock should be switched off.
          
         The clock starts at >8250 to >82B3. Each program, using this
         locations at the GENEVE, has to be started without the clock or a
         crash of the computer occurs.
       
         Menu-functions of the second page:
         ----------------------------------
       
       
         1...SET CLOCK
     
         You can set the clock by the input of hours, minutes and seconds.
   
         ^^^^^21:24:00     .....To seperate the numbers you are allowed to
         ^^^^^^^^^^^^^^^^^^^^^^^use each ASCII-character. The input of
         ^^^^^^^^^^^^^^^^^^^^^^^the seconds is not necessary.

         2...DEFINE FUNCTION-KEYS 
     
         The keys CTRL F1 - CTRL F10 you can define with any text you
         like. Selecting this option, the request 'PRESS KEY TO DEFINE :
         CTRL F' apperars. After pressing the corresponding key, the
         number of the key is displayed after CTRL Fxx and the input of
         the text is requested. You are allowed to use each functionkey
         for input or to edit the input.  With ENTER you terminate and
         save the inputline. Each input with a length up to 32 characters
         is saved.  If it is longer. an error 'STRING TRUNCATED' occurs
         and only the first 32 characters are saved.
         
         The ten keys are predefined with:
        
         CTRL F1 - CTRL F4 : DSK1. to DSK4.
         CTRL F5 - CTRL F8 : WDS1. to WDS4.
         CTRL F9^^^^^^^^^^^: PIO
         CTRL F10^^^^^^^^^^: DSK5.SO*
        
         If you want to erase a defined key, select it and press enter at
         the empty inputline.
       
         3...MYWORD 
      
         The loader is looking for a program named 'MW' on DSK1. If there
         is no 'MW' , an 'I/O-ERROR 07' will occur and after pressing
         ENTER you will return to the second page of the EA 6.1c. The
         RAM on >6000 and >7000 will be automatically unprotected.  
      
       
        Information about the assembler:
        --------------------------------
       
         With the release of the EDITOR-ASSEMBLERV V6.1c the assembler is
         not able to support the new four commands of the TMS9995. if you
         want to use them, you have to use DATA-statements. 
       
       a.) DIVS (DIVide Signed), MPYS (MultiPlY Signed) 

           [<label>] DIVS <gas> [<comment>] 
           [<label>] MPYS <gas> [<comment>]  

           A destination-operand is not used, becase it has always to be
           R0 and R1 of the userworkspace.
        
           opcodes:  DIVS = > 0180, format VI
      MPYS = > 01C0, format VI

           Examples:
      DIVS @ADDR   DIVS @VALUE(R10)   DIVS *R4+   DIVS R2
      MPYS @LABEL  MPYS @INDEX(R8)    MPYS *R7+   MPYS R3
      
       b.) LWP (Load Workspace-Pointer from a register),
           LST (Load STatus-register) 

           [<label>] LWP <wa> [<comment>]  
           [<label>] LST <wa> [<comment>]  
         
           Opcodes:  LWP = > 0090, format VIII
      LST = > 0080, format VIII 
       
           Examples: LWP R5    LWP R12 
      LST R13   LST R0  
                     
       To get further information please ask for the TMS 9995-manual.

        NEW BASIC - SUBROUTINES
        =======================
     
     
        CALL ALLSET 
     
         Using ALLSET resets the charactersets from ASCII^32 to ASCII^128.
         It is the same as CALL ALLSET in EXTENDED BASIC II plus of
         MECHATRONIC.  
     
        CALL BAD
     
         You hear a BAD-tone.
              Example:        100 CALL CLEAR
         ^^^^^^^^^^^^^^^^^^^^^110 CALL KEY(0,K,S)
         ^^^^^^^^^^^^^^^^^^^^^120 IF S=0 THEN 110
         ^^^^^^^^^^^^^^^^^^^^^130 IF K=89 THEN 200   ('KEY Y')
         ^^^^^^^^^^^^^^^^^^^^^140 IF K=78 THEN 250   ('KEY N')
         ^^^^^^^^^^^^^^^^^^^^^150 CALL BAD 
         ^^^^^^^^^^^^^^^^^^^^^160 GOTO 110

        CALL BIG
     
         CALL BIG loads the big characterset. You know it from the
         main-titlescreen of the TI. They use ASCII-characters 33 to 96.
         The small characterset is not affected.
         It is only usefull to call this subprogram in a BASIC-program,
         because the interpreter always reloads standard-charactersets
         entering direct-mode.
     
        CALL BYE
     
         It is the same as entering 'BYE' in direct-mode.
         All files are closed and an exit to the main-title-screen is
         executed.
     
        CALL CHARSET
     
         The standard characterset is loaded. The small charcterset is not
         affected. This command has the same effect as in
         TI-EXTENDED-BASIC.
     
        CALL CLKON
     
         The clock is switched on and displayed in the upper right corner.
     
        CALL CLKOFF
     
         The clock is switched off and the screen is cleared. Switching
         off is clearing the USER-DEFINED interrupt at >83C4.

        CALL CLOALL
     
         CLOALL closes oll open BASIC-files:
             
         ^^^^Example:^^^^^^510 CALL CLOALL       'Close all files'
            520 CALL QUIT         'Exit to title-screen'
                                                      
       ^^^^^^^^^^^^^^^^^^^This example is the same as 'CALL BYE'.  
       
        CALL COFFSET
     
         COFFSET simulates the E/A-VDP-RAM.
         All programs, started with LOAD AND RUN from the E/A, because
         of the BASIC-offset you can not see something on the screen, now
         you can run from TI-BASIC.
         It is only usefull to call this subprogram in a BASIC-program,
         because the interpreter always reloads standard VDP-tables
         entering direct-mode.
         ^^^^^^Example:        200 CALL LOAD("DSK1.MYPROG")
                210 CALL COFFSET
                220 CALL LINK("START")

        CALL EA
     
         CALL EA supports entering EDITOR-ASSEMBLER from TI-BASIC. All
         open files are closed and the USER-DEFINED-interrupt at >83C4 is
         cleared.

        CALL GOOD
     
         You hear an ACCEPT-tone.
              Example:        200 CALL GOOD
               210 .....
                   .....
               250 CALL GOOD
               260 .....
                   .....
     
        CALL LOADA
        CALL LOADB
    
         These two programs move memory-images from HIGH-memory
         >F000 and >F800 to VDP-RAM >0000.
         They are the opposite of SAVEA and SAVEB.
     
        CALL LOADER
       
         You call the loader-program (see LOAD AND RUN BASIC). 

        CALL MULCOL
      
         With MULCOL you are able to switch from graphicmode 1 (basic -
         standard mode) to multicolor- mode. 

        CALL MULOF 

         MULOF is for switching from multicolor-mode back to graphicmode 1.
         Instead of MULOF you can use VIDON. These two subprograms have
         the same result. 
     
        CALL NEW 
     
         CALL NEW has the same effect as "NEW" in directmode, but you are
         allowed to use "CALL NEW" in a BASIC-programm.
        CALL PHOLD
      
         PHOLD stops the program-execution. After pressing any key
         program-execution continues.
         ^^^^^^Example: 300 CALL PHOLD (Waits for pressing a key)
         ^^^^^^^^^^^^^^^310 CALL GOOD     (accept-tone)
     
        CALL QUIT
     
         An exit to the main-titlescreen of the TI99/4A is executed.
         ATTENTION: No files are closed. DATA-ERRORS may occur.

        CALL QUITOF
     
         QUITOF disables the Ctrl-Alt-Del-function (QUIT for TI99/4A).
         CALL QUIT is not affected.

        CALL QUITON
     
         QUITON is the opposite of QUITOF. After calling QUITON, you are
         able to use Ctrl-Alt-Del to exit to the main-title-screen.
     
        CALL SAVEA
        CALL SAVEB
     
         You are able to save two screenimages including character- and
         colordefinitions to HIGH-Memory starting at >F000 and >F800.
         These subprograms are the opposites of LOADA and LOADB.
     
        CALL VIDOF
        
         VIDOF disables the screen. Only th backgroundcolor is visible.
     
        CALL VIDON
     
         VIDON set VDP-register 1 to make the the screen visible.
         MULOF has the same effect. Using MULCOL, effects switching the
         screen on and changing to multicolor-mode.
        
       
       PROBLEMS with other programs:
       =============================
        
       The EDITOR-ASSEMBLER V6.1c is fully compatible to the
       EDITOR-ASSEMBLER cartridge of Texas Instruments. It is also
       compatible to EDITOR-ASSEMBLER 5 for the TI99/4A, by the
       restrictions of the GENEVE 9640. This means, that E/A 6.1c does not
       support the commands CS1ON, CS2ON, CS1OF, CS2OF. The DIR-command is
       supported by the DSR-RAM of the GENEVE.

       Any GPL-program (or assemblerprogram with GPLLNK) using subprograms
       of GRAM6 and GRAM7 of the EA5, EA6.0 and EA6.1 will cause a crash.  
                                          
       MYWORD V1.2C changes the RAM at >6000 and >7000 and GRAM starting
       at >C000. So the main-menu-entry-points 2 to 8 are destroyed.
       Selecting option 2 to 8 cause a crash. Only reloading EA6.1c or
       clearing the cartridge-space out of the MYARC-GPL-INTERPRETER solve
       this problem. 
       
       You find the used versionnumber after selecting EA6.1c from the
       main menu. Here you find contact-adresses and short notes about the
       copyrights.
        
      TIPS FOR THE GENEVE-GPL-Interpreter:
        
       The interpreter supports some useful subprograms for TI-BASIC out
       of the DSR-RAM. Some users may know them, if they own the
       MILLER-GRAPHICS-EPROMS for the CORCOMP-DISKCONTROLLER.       
        
          a.) CALL DIR(X)....X = Number of the diskdrive (1 to 5)
              CALL DIR shows the directory of the drivenumber declared
              between the brackets.
              Using this subprogram the first time, you have to select a
              drivenumber, otherwise the last declared drive, is known as
              the default drive.                            
        
          b.) CALL ILR
              CALL ILR loads the standard E/A-utilities in the LOW-memory.
              The HIGH-memory will be cleared and prepared to load an
              assembler-program (compressed or uncompressed
              DIS/FIX^80^-^code).
        
          c.) CALL LR("DSKX.PROGRAM")
              CALL LR load the same assembler-programs as supported by
              LOAD & RUN (option 3 of the E/A).
        
          d.) CALL LLR("NAME")
              CALL LLR start assembler-programs loaded by CALL LR into
              memory and which have no default autostart.  This subprogram
              has the same result as RUN (option 4 of the E/A-menu).

FORTRAN

9640 FORTRAN

Review by: Beery W. Miller

First Impressions:

Well, when I first received my copy of 9640 FORTRAN, I was truly AMAZED. Al Beard had the finest manual and documentation for any software I have ever seen to date. The quality of the manual, the details and examples he provides, and the care he put into his work is almost worth the price of the product excluding the software. I was that impressed.

To begn with, I will admit up front right now, I have never written a Fortran program. My areas of interest have been with c99/MDOS and Assembly Language/MDOS. At the end of this review, you will find a demo Fortran program that I am going to write (I don’t know what it will be yet) where I will include the source code and the MDOS Program image file. Please understand that this will be only looking at the manual, a reference book I purchased, and about 20 hours maximum of looking over source code and manuals, reference book, etc.

Before I get started, I need to point several things out. Fortran will most likely be the language we see any program written in that requires any amount of number crunching. I doubt very seriously any programmer outside of Paul Charlton, Al Beard, and maybe Charles Earl, Chris and Dennis Fayerty, and Peter Hoddie, are capable of developing any type DBase program that could handle the number crunching necessary (and size) outside of Assembly language. 9640 Fortran should be the easiest route for most programmers wishing to develop such a program in any short length of time.

When I went out to purchase a reference manual to at least get me started to see what is required for initial setup, I did encounter some problems. Fortran in the IBM world is diminishing and obtaining manuals on the subject may be difficult. I went to 2 Computer store, and two Book Stores before I found the ONLY book on Fortran that was in the largest Mall here in town. I know that the University Book store does have a large collection, it’s just that I did not have the time to drive their to get a book. So if you need a reference book, your best bet will be to look at a higher institution of learning where the language is still taught if you want to locate reference books. I did get my book for $8.95, which is much cheaper than most C-Language books or A/L books I have bought.

The manual that comes with 9640 Fortran is fantastic. Support for the video library of MDOS is superb. Almost all video library options are available providing support for mouse, joystick, sprite, bit map graphics, text modes, and also a special 32 column screen mode where TI-Basic programs can be converted with little difficulty. Support for nearly all of MDOS features have been activated. Even the ability to Multi-task within Fortran (this was the first program to enable Multi-tasking) has been developed.

With the initial release of 9640 FORTRAN, four programs written in Fortran were available. Fractals and Filezap have both been around for some time displaying the graphics capabilities and the support for mouse and Disk I/O capability. Also included as one of the 4 programs is a sinewave display plotter and a simple menu driven spreadsheet program.

All four programs represent the wide range of applications that can be developed with 9640 Fortran. With individual sector I/O capability as permitted by 9640 Fortran, nearly anything can be created with 9640 Fortran. Disk Managers, File Copiers, etc. can be easily created with knowledge of the disk layout. Additional MDOS supported, but not 9640 Fortran features, can be added as the Linker provides support for external routines to be added. This means that the MDOS Format routine could be implemented in short A/L - Fortran Link sequence if that feature was desired. Other MDOS routines (XOP’s) can just as easily be implemented, although nearly all are already incorporated.

One feature that I have been impressed with on 9640 Fortran has been the utilization of additional memory outside of the 64K directly accessible to most applications. Al Beard has provided a couple of routines to permit expanding that memory up to what the system has available. In essence, this means if you have a program that is 256K in size, you do not need to worry about banking memory in and out as this is done automatically. From a recent tutorial by Al, he suggests that data tables, etc. would be better placed in memory higher above 64K, such as >100000, whereas we would normally see >FFFF as the highest available memory address. This could provide us the space to hold that spreadsheet data that is 80 columns wide and 250 rows deep (as an example), without eating some of the faster memory. I am not sure from the documentation, or tutorials, that actual programming code can exist above >FFFF, but hopefully Al will answer this question for the next issue (Al is receiving several complimentary issues) and perhaps provide a tutorial of sorts in Fortran in the very near future after he repairs his system (Ask Al and he will tell you not to pull a HFDCC from a system while it is on or else….).

The one thing that to me appears to lack in the use of Fortran (not 9640 Fortran in particular), is the use of character strings. Fortran appears not to be a language to develop a word processor or a a sorting program. C-Language is the area for those applications as C-Language in turn lacks the mathematical capabilties of Fortran. My demo revolves around the creation of random numbers to draw lines on the screen and then clearing itself when CTRL-ALT-DEL is pressed. Source code is provided with the file. If you notice, to accomplish that bit of graphics required fewer than 20 lines of code Fortran. This is due to the support from Fortran and the libraries that Al has provided. The actual file created requires almost 8K of memory space as the majority of the code contains the support routines for the video library such as drawing lines, random number generator, etc. The work you are required to do is very small.

If you are considering attempting to learn a programming language, I would highly consider looking at 9640 Fortran. It is probably the cheapest and certainly one of easiest programming languages to start off. The tutorials and online help that Al provide are certainly to your advantage. It is also probably the only language available that will permit you to program beyond 64K without worrying the CPU requirements. If you do decide to purchase 9640 Fortran, please mention that you read about it in 9640 News. The more other people hear about 9640 News, the more support I will receive and be able to expand it even more to benefit everyone else.

Hopefully, next issue, Al will have a tutorial on string handling/manipulation with the capabilities of converting DIS/FIX 128 files to DIS/VAR 80 files. This was a suggestion I tossed at him and I am sitting back waiting for a response now. Until next issue, ……….

GENKEY-S

* MDOS KEYBOARD SCAN
* This version (MDKEY) works
* at >0400 (no relocation)
*
* Paolo Bagnaresi, 30 Dec. 1988
* San Donato Milanese, Italy
*
       DXOP SYSC,0
       B    @KEY
*
MYWORK EQU  >F000
UTILWS EQU  >F020
MAPPER EQU  >F110
MDOS   EQU  >0000
*
MMG    DATA 7
KEYB   DATA 5
VLIB   DATA 6
*
KEY    LWPI MYWORK
       LI   R0,1
       LI   R1,7
       LI   R2,1
       CLR  R3
       SYSC @MMG
       MOV  R0,R0
       JEQ  GO
       B    @ERROR
*
GO     LI   R0,4
       LI   R1,MAP
       LI   R2,8
       SYSC @MMG
       CLR  R3
MAPMOV MOVB @MAP+1(R3),@MAPPER+1(R3)
       INC  R3
       CI   R3,7
       JNE  MAPMOV
       MOV  R0,R0
       JEQ  STARTX
       B    @ERROR
*
STARTX CLR  R9
*
START  BL   @BLANK1
       BL   @FROW
START2 BL   @SHOW
       DATA ROWO,COLO,OPT
START1 MOV  R8,R0
       SYSC @KEYB
       JNE  START1
       CI   R0,2
       JNE  A
B      CB   R1,@A01
       JEQ  OTHER
       JNE  AHEAD1
A      CI   R0,1
       JNE  OTHER1
       JMP  B
*
OTHER1 CB   R1,@SPACE
       JNE  AHEAD1
OTHER  INC  R9
       CI   R9,2
       JL   AHEAD
       JEQ  START
       B    @FINE
AHEAD1 CLR  R9
AHEAD  BL   @BUFF
       BL   @SHOW
       DATA ROW,COL,STR
       INC  @ROW
       C    @ROW,@MAX
       JNE  START1
       CLR  @ROW
       INCT @ROW
       A    @TEN,@COL
       C    @COL,@MAXCOL
       JNE  START1
       CLR  @COL
       BL   @BLANK
       DATA 2,0
       JMP  START2
*
* BL @FROW
*
FROW   MOV  R11,@SAVRTN
       LI   R0,>2E
       CLR  R1
       LI   R2,1
       LI   R4,1
       LI   R5,ROWL
       MOVB *R5+,R6
       SRL  R6,8
CONT   MOVB *R5+,R3
       SRL  R3,8
       SYSC @VLIB
       INC  R2
       DEC  R6
       JNE  CONT
WAIT   LI   R0,4
       SYSC @KEYB
       JNE  WAIT
       CI   R9,2
       JNE  WAIT1
       CB   R1,@SPACE
       JNE  WAIT1
       BL   @BLANK1
       BLWP @MDOS
WAIT1  CLR  R9
       CB   R1,@ZERO
       JL   WAIT
       CB   R1,@ZERO+1
       JH   WAIT
       MOV  R1,R8
       SRL  R8,8
       ANDI R8,>000F
       CLR  @ROW
       INCT @ROW
       CLR  @COL
*
       SRL  R1,8
       MOV  R1,R3
       LI   R0,>2E
       CLR  R1
       LI   R2,>11
       SYSC @VLIB
       MOV  @SAVRTN,R11
       B    *R11
*
* BL @BUFF
*
BUFF   MOVB R1,@STR+1
       MOVB R1,R5
       LI   R2,2
       SRL  R1,8
ALL    ANDI R1,>000F
       CI   R1,9
       JH   GIU
       AI   R1,>0030
       JMP  NEXT
GIU    AI   R1,>0037
NEXT   SWPB R1
       MOVB R1,@STR+4(R2)
       DEC  R2
       JEQ  NEXTO
       MOVB R5,R1
       SRL  R1,12
       JMP  ALL
NEXTO  B    *R11
*
* BL @SHOW
*
SHOW   LI   R0,>2E
       LI   R4,1
       MOV  *R11+,R1
       MOV  *R1,R1
       MOV  *R11+,R2
       MOV  *R2,R2
       MOV  *R11+,R5
       MOVB *R5+,R6
       SRL  R6,8
SHOW1  MOVB *R5+,R3
       SRL  R3,8
       SYSC @VLIB
       INC  R2
       DEC  R6
       JNE  SHOW1
       B    *R11
*
* BL @DISP
*
DISP   MOV  *R11+,R1
       MOVB *R1+,R2
       SRL  R2,8
       LI   R0,>27
       SYSC @VLIB
       B    *R11
*
* BL @BLANK
*
BLANK  LI   R0,1
       SYSC @VLIB
       MOV  R2,R5
       MOV  R1,R4
       LI   R0,>2E
       MOV  *R11+,R1
       MOV  *R11+,R2
       S    R1,R5
       LI   R3,>0020
BLK    SYSC @VLIB
       INC  R1
       DEC  R5
       JNE  BLK
       B    *R11
*
* BL @BLANK1
*
BLANK1 LI   R1,BLNK
       MOVB *R1+,R2
       SRL  R2,8
       LI   R0,>27
       SYSC @VLIB
       B    *R11
*
ERROR  BL   @DISP
       DATA ERRMSG
*
FINE   BL   @BLANK1
       BLWP @MDOS
*
MAP    BSS  >0008
*
ZERO   DATA >3035
ROW    DATA >0002
COL    DATA >0000
ROWO   DATA >0016
COLO   DATA >0000
MAX    DATA >0014
MAXCOL DATA >0050
TEN    DATA >000A
K      DATA >0000
SAVRTN DATA >0000
*
SPACE  BYTE >20
A01    BYTE >01
*
ERRMSG BYTE >19
       TEXT 'MEMORY MANAGEMENT ERROR'
       BYTE >0D,>0A
*
ROWL   BYTE >0F
       TEXT 'KEYBOARD (0/5)?'
*
STR    BYTE >06
       TEXT '  =>  '
*
OPT    BYTE >60
       TEXT 'Press twice SPACE or A or H to change'
       TEXT ' KEYBOARD option. To return to MDOS p'
       TEXT 'ress  SPACE once again'
*
BLNK   BYTE >01,>1A
*
       EVEN
*
       END

LIFE-S


       DXOP SYSC,0
       B    @LIFE
*
MDOS   EQU  >0000
PATT   EQU  >E000
USERWS EQU  >F000
BLWPWS EQU  >F020
MAPPER EQU  >F110
*
VLIB   DATA 6
MMG    DATA 7
KEYB   DATA 5
*
* MEMORY REQUEST TO SYSTEM
*
LIFE   NOP
       LWPI USERWS
       LI   R0,1
       LI   R1,7
       LI   R2,1
       CLR  R3
       SYSC @MMG
       MOV  R0,R0
       JEQ  GO
       B    @ERROR
*
GO     LI   R0,4
       LI   R1,MAP
       LI   R2,8
       SYSC @MMG
       CLR  R3
MAPMOV MOVB @MAP+1(R3),@MAPPER+1(R3)
       INC  R3
       CI   R3,7
       JNE  MAPMOV
       MOV  R0,R0
       JEQ  RGB
       B    @ERROR
*
* SCREEN COLORS
*
RGB    LI   R0,>29
       LI   R1,>0301
       SYSC @VLIB
*
       LI   R0,>0D
       LI   R1,>03
       CLR  R2
       SYSC @VLIB
*
       BL   @CLEAR
*
*
* TITLE SCREEN
*
GO1    BL   @MODE
       DATA 0
*
       BL   @PATRN
       DATA POINT,12,>80
*
       BL   @WRITVD
       DATA 1,11,AUTHOR
*
       MOVB @SOL,R3
       SRL  R3,8
       LI   R0,>2E
       LI   R5,2
       LI   R1,7
FIRST  LI   R2,7
       LI   R4,2
       SYSC @VLIB
       AI   R2,7
       INCT R4
       SYSC @VLIB
       AI   R2,6
       INC  R4
       SYSC @VLIB
       AI   R2,7
       SYSC @VLIB
       INC  R1
       DEC  R5
       JNE  FIRST
*
       LI   R5,2
SEC    LI   R2,7
       LI   R4,2
       SYSC @VLIB
       AI   R2,8
       SYSC @VLIB
       AI   R2,5
       SYSC @VLIB
       AI   R2,7
       SYSC @VLIB
       INC  R1
       DEC  R5
       JNE  SEC
*
       LI   R5,2
THIRD  LI   R2,7
       LI   R4,2
       SYSC @VLIB
       AI   R2,8
       SYSC @VLIB
       INCT R4
       AI   R2,5
       SYSC @VLIB
       AI   R2,7
       SYSC @VLIB
       INC  R1
       DEC  R5
       JNE  THIRD
*
       LI   R5,2
       DECT R4
FOURTH LI   R2,7
       SYSC @VLIB
       AI   R2,8
       SYSC @VLIB
       AI   R2,5
       SYSC @VLIB
       AI   R2,7
       SYSC @VLIB
       INC  R1
       DEC  R5
       JNE  FOURTH
*
       LI   R5,2
FIFTH  LI   R4,5
       LI   R2,7
       SYSC @VLIB
       AI   R2,7
       DEC  R4
       SYSC @VLIB
       DECT R4
       AI   R2,6
       SYSC @VLIB
       AI   R2,7
       INCT R4
       INC  R4
       SYSC @VLIB
       INC  R1
       DEC  R5
       JNE  FIFTH
*
       BL   @WRITVD
       DATA 23,9,BEGIN
*
       LI   R0,>0D
       LI   R1,>03
       LI   R2,>0733
       SYSC @VLIB
       BLWP @GSOUND
*
* FIRST PAGE
*
UP     LI   R0,4
       SYSC @KEYB
       JNE  UP
       CB   R1,@CTRLC
       JEQ  EXIT1
       JMP  INIT
EXIT1  B    @FINE
*
INIT   BL   @BLANK
       BL   @MODE
       DATA 1
*
       BL   @PATRN
       DATA VT,32,>83
*
       LI   R0,>2E
       LI   R5,PRES
       LI   R4,1
       CLR  R1
SCR1   CLR  R2
SCR    MOVB *R5+,R3
       SRL  R3,8
       SYSC @VLIB
       INC  R2
       CI   R2,40
       JNE  SCR
       INC  R1
       CI   R1,23
       JNE  SCR1
*
       LI   R0,>2F
       CLR  R1
       LI   R2,45
       MOVB @VERT,R3
       SRL  R3,8
       LI   R4,23
       SYSC @VLIB
*
HALF   BLWP @GSOUND
       BL   @WRITVD
       DATA 0,50,DEF
*
UP2    LI   R0,4
       SYSC @KEYB
       JNE  UP2
       CB   R1,@CTRLC
       JNE  DW
       B    @FINE
DW     CB   R1,@Y
       JEQ  YES
       CB   R1,@N
       JEQ  NO
       BLWP @BSOUND
       JMP  UP2
*
* DEFAULT CONFIGURATION
*
YES    CLR  @FLAG
       BL   @YN
       DATA 0,79
       MOV  @FIRSTG,@FSTGEN
*
       BL   @GRID
       DATA 10,51
*
YES2   BLWP @GSOUND
       BL   @WRITVD
       DATA 23,50,SURE
       JMP  UP3
*
* USER DEFINED CONFIGURATION
*
NO     SETO @FLAG
       BL   @YN
       DATA 0,79
*
* # OF CELLS
*
       BL   @WRITVD
       DATA 2,50,CELLS
       JMP  UP4
UP4X   BLWP @BSOUND
UP4    LI   R0,4
       SYSC @KEYB
       JNE  UP4
       CB   R1,@CTRLC
       JNE  DW2
       B    @FINE
DW2    CB   R1,@THREE
       JLT  UP4X
       CB   R1,@SEVEN
       JGT  UP4X
       MOVB R1,R3
       SRL  R3,8
       ANDI R3,>000F
       MOV  R3,@FSTGEN
       A    R3,R3
       MOV  R3,@LIM1
       BL   @YN
       DATA 2,71
*
       LI   R5,3
       LI   R0,>2E
       CLR  R1
       LI   R2,50
       LI   R3,>0020
       LI   R4,30
CLROW  SYSC @VLIB
       INC  R1
       DEC  R5
       JNE  CLROW
*
       BL   @GRID
       DATA 10,51
       BL   @GFORM
*
       CLR  R12
*
AGAIN  BL   @CELOC
       DATA TWO,R80,C80
*
       BL   @GRIDX
*
DOWN1  INC  @TWO
       INCT R12
       C    R12,@LIM1
       JNE  AGAIN
*
       SRL  R12,1
       S    R12,@TWO
*
       JMP  YES2
*
* ARE YOU SURE?
*
UP3    LI   R0,4
       SYSC @KEYB
       JNE  UP3
       CB   R1,@CTRLC
       JNE  DW1
       B    @FINE
DW1    CB   R1,@Y
       JEQ  YES1
       CB   R1,@N
       JEQ  DW3
       BLWP @BSOUND
       JMP  UP3
*
DW3    LI   R0,>2E
       CLR  R1
       LI   R2,50
       LI   R3,>0020
       LI   R4,30
HALFSC SYSC @VLIB
       INC  R1
       CI   R1,24
       JNE  HALFSC
*
       B    @HALF
*
* YES. BEGIN PLAY
*
YES1   BL   @YN
       DATA 23,70
*
INIT1  BL   @BLANK
       BL   @MODE
       DATA 0
*
       MOV  @FSTGEN,R3
       A    R3,R3
INITLP MOV  @FSTGEN(R3),R4
       MOVB @H01,@SCRN(R4)
       DECT R3
       JNE  INITLP
       BL   @SHOWIT
KEY    LI   R0,4
       SYSC @KEYB
       JNE  KEY
       CB   R1,@CTRLC
       JNE  BACKT
       B    @FINE
BACKT  CB   R1,@ESC
       JNE  CLCGE
       BL   @CLEAR
       B    @INIT
*
* NEXT GENERATIONS
*
CLCGE  CLR  @COUNTR
CLCGEN INC  @COUNTR
       BLWP @COUNT
       LI   R1,33
       LI   R3,22
CLCLP  LI   R4,30
CLCNBR CLR  R5
       CLR  R6
NBRS   MOV  R1,R7
       A    @OFFSET(R6),R7
       CB   @SCRN(R7),@H00
       JEQ  NXTNBR
       CB   @SCRN(R7),@H02
       JEQ  NXTNBR
       INC  R5
NXTNBR INCT R6
       CI   R6,16
       JLT  NBRS
       CB   @SCRN(R1),@H01
       JEQ  CELLON
       CI   R5,3
       JEQ  CHANGE
       JMP  NOCHG
CELLON CI   R5,2
       JEQ  NOCHG
       CI   R5,3
       JEQ  NOCHG
CHANGE AB   @H02,@SCRN(R1)
NOCHG  INC  R1
       DEC  R4
       JNE  CLCNBR
       INCT R1
       DEC  R3
       JNE  CLCLP
*
       LI   R5,33
       LI   R3,22
LOOP   LI   R4,30
LOOP1  MOVB @SCRN(R5),R6
       SRL  R6,8
       MOVB @AFTER(R6),@SCRN(R5)
       INC  R5
       DEC  R4
       JNE  LOOP1
       INCT R5
       DEC  R3
       JNE  LOOP
       BL   @SHOWIT
*
KEYN   LI   R0,4
       SYSC @KEYB
       JNE  KEYN
       CB   R1,@CTRLC
       JEQ  FINE
       CB   R1,@ESC
       JNE  CLCGEN
       BL   @CLEAR
       B    @INIT
*
* ERROR MANAGEMENT
*
ERROR  BL   @DISP
       DATA ERRMSG
*
FINE   BL   @BLANK
       BL   @MODE
       DATA 1
       BLWP @MDOS
*
* BLWP @COUNT - SCREEN COUNTER
*
COUNT  DATA BLWPWS,$+2
       MOV  @COUNTR,R6
       CI   R6,>7FFF
       JNE  GOH
       LI   R6,1
*
GOH    LI   R7,TABLE
       LI   R0,>2E
       LI   R1,1
       LI   R2,1
       LI   R4,1
       LI   R8,4
NUMB   CLR  R5
       DIV  *R7+,R5
       AI   R5,>0030
       MOV  R5,R3
       SYSC @VLIB
       INC  R2
       DEC  R8
       JNE  NUMB
       AI   R6,>0030
       MOV  R6,R3
       SYSC @VLIB
       RTWP
*
* BL @CLEAR - CLEAR CELLS BUFFER
*
CLEAR  LI   R1,>02FE
CLR    CLR  @SCRN(R1)
       CLR  @GENSCR(R1)
       DECT R1
       JLT  COME
       JMP  CLR
COME   B    *R11
*
* BL @DISP - DISPLAY ERROR
*
DISP   MOV  *R11+,R1
       MOVB *R1,R2
       SRL  R2,8
       INC  R1
       LI   R0,>27
       SYSC @VLIB
       B    *R11
*
* BL @SHOWIT DISPLAY GENERATION ON SCREEN
*
SHOWIT LI   R5,767
BLDSCR CB   @H00,@SCRN(R5)
       JEQ  BLK
       MOVB @STAR,@GENSCR(R5)
       JMP  NXTPOS
BLK    MOVB @BLNK,@GENSCR(R5)
NXTPOS DEC  R5
       JLT  OUTSCR
       JMP  BLDSCR
*
OUTSCR LI   R0,>2E
       LI   R4,1
       LI   R6,GENSCR
       MOV  @TROW,R1
ONE1   MOV  @LCOL,R2
ONE0   MOVB *R6+,R3
       SRL  R3,8
       SYSC @VLIB
       INC  R2
       C    R2,@RCOL
       JLE  ONE0
       INC  R1
       C    R1,@BROW
       JLE  ONE1
       B    *R11
*
* BL @BLANK - CLEAR SCREEN
*
BLANK  LI   R0,>27
       LI   R1,CLS
       MOVB *R1,R2
       SRL  R2,8
       INC  R1
       SYSC @VLIB
       B    *R11
*
* BL @GFORM -
*
GFORM  LI   R0,>2E
       CLR  R1
       LI   R2,57
       LI   R4,1
       LI   R5,ROWCOL
       MOVB *R5+,R6
       SRL  R6,8
UPS    MOVB *R5+,R3
       SRL  R3,8
       SYSC @VLIB
       INC  R2
       DEC  R6
       JNE  UPS
       LI   R2,50
       INC  R1
       LI   R3,>85
       LI   R4,15
       SYSC @VLIB
       AI   R2,6
       INC  R3
       LI   R4,1
       SYSC @VLIB
       MOV  *R2+,*R2+
       SYSC @VLIB
       MOV  *R2+,*R2+
       SYSC @VLIB
       MOV  @FSTGEN,R7
       INC  R1
       MOV  R1,R8
ALL    MOVB @CELL+6,R5
       AI   R5,>0100
       MOVB R5,@CELL+6
       LI   R5,CELL
       LI   R2,50
       MOVB *R5+,R6
       SRL  R6,8
CLK    MOVB *R5+,R3
       SRL  R3,8
       SYSC @VLIB
       INC  R2
       DEC  R6
       JNE  CLK
       LI   R3,>0083
       SYSC @VLIB
       MOV  *R2+,*R2+
       SYSC @VLIB
       MOV  *R2+,*R2+
       SYSC @VLIB
       INC  R8
       MOV  R8,R1
       DEC  R7
       JNE  ALL
*
       LI   R5,>3000
       MOVB R5,@CELL+6
*
       B    *R11
*
* BL @GRID - GRID BUILDING
* DATA X,Y   X-->R1: ROW
*            Y-->R2: COL
*
GRID   MOV  *R11+,R1
       MOV  *R11+,R2
       MOV  R1,@RC
       MOV  R2,@RC+2
       LI   R0,>2E
       MOVB @PNT,R3
       SRL  R3,8
       LI   R4,16
GRD    SYSC @VLIB
       INC  R1
       CI   R1,22
       JNE  GRD
*
       LI   R4,1
       MOV  @RC,R1
       DEC  R1
       MOV  @RC+2,R2
       MOVB @FIXC,R3
       SRL  R3,8
       INC  R3
       SYSC @VLIB
       INCT R2
       SYSC @VLIB
       INCT R2
       INC  R2
       DEC  R3
       SYSC @VLIB
       INC  R3
       INCT R2
       SYSC @VLIB
       DEC  R3
       INCT R2
       INC  R2
       SYSC @VLIB
       INCT R2
       INC  R3
       SYSC @VLIB
       DEC  R3
       INCT R2
       INC  R2
       SYSC @VLIB
*
       INC  R1
       MOV  @RC+2,R2
       DEC  R2
       MOVB @FIXR,R3
       SRL  R3,8
       INC  R3
       SYSC @VLIB
       INCT R1
       SYSC @VLIB
       DEC  R3
       INCT R1
       INC  R1
       SYSC @VLIB
       INCT R1
       INC  R3
       SYSC @VLIB
       INCT R1
       INC  R1
       DEC  R3
       SYSC @VLIB
*
       MOV  @FLAG,@FLAG
       JNE  RET1
*
GRIDX  MOV  @FLAG,@FLAG
       JNE  BOTTOM
       LI   R7,16
       MOV  R7,@LIM
*
       LI   R7,2
MOVCEL MOV  @FIRSTG(R7),@FSTGEN(R7)
       INCT R7
       C    R7,@LIM
       JNE  MOVCEL
*
       LI   R7,2
CAR    MOV  @FSTGEN(R7),R6
CARX   CLR  R5
       CLR  R8
       CLR  R13
       DIV  @DV,R5
       SRL  R5,1
       JOC  A2
       SRL  R6,1
       JOC  A1
*
CAR1   MOV  @RC,R1
       MOV  @RC+2,R2
       A    R5,R1
       A    R6,R2
       MOV  R1,R9
       MOV  R2,R10
       LI   R0,>0B
       SYSC @VLIB
       MOV  R0,R3
       LI   R0,>24
       LI   R1,PATT
       LI   R2,1
       SETO R4
       SYSC @VLIB
       MOV  @PATT(R13),R3
       SZC  @AND(R8),R3
       MOV  R3,@PATT(R13)
       INC  @PNT1
       MOV  @PNT1,R3
       CLR  R4
       SYSC @VLIB
       MOV  R9,R1
       MOV  R10,R2
       INC  R4
       LI   R0,>2E
       SYSC @VLIB
*
       INCT R7
       C    R7,@LIM
       JNE  CAR
       JMP  RET1
*
A1     INCT R8
       JMP  CAR1
*
A2     INCT R13
       INCT R13
       SRL  R6,1
       JOC  A3
       JMP  CAR1
*
A3     INCT R8
       JMP  CAR1
*
BOTTOM MOV  @FSTGEN+2(R12),R6
       LI   R7,4
       MOV  R7,@LIM
       DECT R7
       JMP  CARX
*
RET1   B    *R11
*
* BL @MODE - X=0  40 COLUMNS
* DATA X     X=1  80 COLUMNS
*
MODE   MOV  *R11+,R1
       CLR  R0
       LI   R2,1
       SYSC @VLIB
       B    *R11
*
* BL @WRITVD - WRITE ON SCREEN
* DATA X,Y,Z - X-->R1: ROW
*              Y-->R2: COL
*              Z-->R5: POINTER TO STRING LENGTH
*
WRITVD MOV  *R11+,R1
       MOV  *R11+,R2
       MOV  *R11+,R5
       LI   R0,>2E
       LI   R4,1
       MOVB *R5+,R6
       SRL  R6,8
MOVA   MOVB *R5+,R3
       SRL  R3,8
       SYSC @VLIB
       INC  R2
       DEC  R6
       JNE  MOVA
       B    *R11
*
* BL @PATRN - DEFINE PATTERNS AND ASCII CODE
* DATA X,Y,Z  X-->R0: PATTERN DEF
*             Y-->R2: # OF WORDS TO MOVE
*             Z-->R3: STARTING ASCII CODE
*
PATRN  MOV  *R11+,R0
       MOV  *R11+,R2
       MOV  *R11+,R3
       MOV  R2,R5
       LI   R1,PATT
MOVP   MOV  *R0+,*R1+
       DEC  R2
       JNE  MOVP
       LI   R0,>24
       LI   R1,PATT
       MOV  R5,R2
       SRL  R2,2
       CLR  R4
       SYSC @VLIB
       B    *R11
*
* BL @YN
* DATA X,Y    X-->R1: ROW
*             Y-->R2: COL
*
YN     MOVB R1,R3
       MOV  *R11+,R1
       MOV  *R11+,R2
       SRL  R3,8
       LI   R0,>2E
       LI   R4,1
       SYSC @VLIB
       B    *R11
*
* BL @CELOC - CELLS LOCATE
* DATA X,Y,Z  X-->R1: ROW
*             Y-->R2: COL1
*             Z-->R2: COL2
*
CELOC  MOV  *R11+,R1
       MOV  *R11+,R2
*
       BLWP @GSOUND
       CLR  R9
       MOV  *R1,R5
       MOV  *R2,@RCPLC
       MOV  @RCPLC,R10
       JMP  NOC
*
NOC1   BLWP @BSOUND
NOC1X  MOV  @RCPLC,R10
*
NOC    MOV  R5,R1
       MOV  @RCPLC,R2
       LI   R3,>0020
       LI   R4,2
       LI   R0,>2E
       SYSC @VLIB
       MOV  @EMPTY,@RW
*
       CLR  R6
KK     LI   R0,4
       SYSC @KEYB
       JNE  KK
       CB   R1,@ENTER
       JEQ  DONE3
       CB   R1,@CTRLC
       JNE  KK1
       MOV  R11,R10
       BL   @BLANK
       BL   @MODE
       DATA 1
       BLWP @MDOS
       MOV  R11,R10
       B    *R11
*
KK1    INC  R6
       CI   R6,3
       JEQ  DONE4
       MOVB R1,@RW-1(R6)
       MOVB R1,R3
       SRL  R3,8
       LI   R0,>2E
       MOV  R5,R1
       MOV  R10,R2
       LI   R4,1
       SYSC @VLIB
       INC  R10
       JMP  KK
*
DONE3  C    @RW,@EMPTY
       JLE  NOC1
       C    @RW,@DNINE
       JHE  NOC1
       CI   R6,2
       JEQ  DONE2
       SWPB @RW
       JMP  DONEX
*
DONE4  CB   R1,@ENTER
       JEQ  DONE2
       JMP  NOC1
*
DONE2  C    @RW,@EMPTY
       JLE  NOC1
       C    @RW,@DNINE
       JHE  NOC1
*
DONEX  MOV  @RW,R7
       ANDI R7,>0F0F
       MOV  R7,R4
       SRL  R7,8
       MPY  @MP,R7
       ANDI R4,>000F
       A    R8,R4
       C    R4,@MAXMIN(R9)
       JL   NOC1
*
       INCT R9
       C    R4,@MAXMIN(R9)
       JLE  GIU
       DECT R9
       JMP  NOC1
*
GIU    INCT R9
       CI   R9,8
       JEQ  RET
       MOV  R4,@LOCATE
       MOV  *R11+,R2
       MOV  *R2,@RCPLC
       BLWP @GSOUND
       JMP  NOC1X
*
RET    MOV  @LOCATE,R5
       MPY  @DV,R5
       A    R6,R4
       MOV  R4,@FSTGEN+2(R12)
*
       B    *R11
*
* BAD SOUND RESPONSE TONE
*
BSOUND DATA BLWPWS,$+2
       LI   R0,>33
       LI   R1,>00E0
       CLR  R2
       CLR  R3
       CLR  R4
       LI   R6,>070F
       LI   R7,>0A
       SYSC @VLIB
*      INC  R0
*BS     SYSC @VLIB
*      JNE  BS
       RTWP
*
* GOOD SOUND RESPONSE TONE
*
GSOUND DATA BLWPWS,$+2
       LI   R0,>33
       LI   R1,>0580
       CLR  R2
       CLR  R3
       LI   R4,>0002
       LI   R6,>070F
       LI   R7,>0A
       SYSC @VLIB
*      INC  R0
*GS     SYSC @VLIB
*      JNE  GS
       RTWP
*
*
*
FIRSTG DATA 7,335,366,368
       DATA 397,401,429,433
OFFSET DATA -33,-32,-31,-1
       DATA 1,31,32,33
POINT  DATA >0000,>0018,>1800,>0000
       DATA >FFFF,>FFFF,>FFFF,>FFFF
       DATA >0030,>4884,>B448,>3000
VT     DATA >0404,>0404,>0404,>0404
       DATA >0090,>0000,>0090,>0000
       DATA >0000,>00FF,>0000,>0000
       DATA >0000,>00FF,>0404,>0404
       DATA >0000,>0000,>8080,>8000
       DATA >0000,>0000,>1010,>1000
       DATA >0070,>0000,>0000,>0000
       DATA >0000,>0000,>0070,>0000
*
Y      BYTE >59
N      BYTE >4E
H00    BYTE >00
H01    BYTE >01
H02    BYTE >02
ENTER  BYTE >0D
ESC    BYTE >1B
ONE    BYTE >31
THREE  BYTE >33
SEVEN  BYTE >37
NINE   BYTE >39
BLNK   BYTE >80
SOL    BYTE >81
STAR   BYTE >82
VERT   BYTE >83
PNT    BYTE >84
FIXC   BYTE >87
FIXR   BYTE >89
CTRLC  BYTE >03
AFTER  BYTE 0,1,1,0
*
AUTHOR BYTE >12
       TEXT 'M. CARIBONI - 1989'
*
BEGIN  BYTE >16
       TEXT 'PRESS ANY KEY TO BEGIN'
*
*            x   x    1    x    2    x    3    x    4
*
PRES   TEXT 'LIFE was originally published by BEST OF'
       TEXT ' 99 er vol.1. Please, refer  to  the    '
       TEXT 'original article for rules.             '
       TEXT 'Main differences with that version are: '
       TEXT '1) You may choose between default setup '
       TEXT '   and your own setup. A maximum of 7   '
       TEXT '   cells is allowed.                    '
       TEXT '2) Pressing any key on the keyboard, a  '
       TEXT '   new screen is displayed.             '
       TEXT '3) Pressing CTRL-C you may return to    '
       TEXT '   MDOS. Pressing ESC, when in last     '
       TEXT '   screen, you may return to previous   '
       TEXT '   screen.                              '
       TEXT '-----------                             '
       TEXT 'Video Routines are based on VIDEO XOPs  '
       TEXT 'released by Paul CHARLTON. LIFE has been'
       TEXT ' tested with MDOS 1.14. Older versions  '
       TEXT 'of MDOS could not be compatible.        '
       TEXT '-----------                             '
       TEXT 'Massimo Cariboni                        '
       TEXT 'V. Agadir, 2B                           '
       TEXT '20097 S. DONATO MIL. (MI)               '
       TEXT 'ITALY                                   '
*
*            x   x    1    x    2    x    3
*
CLS    BYTE >01,>1A
*
DEF    BYTE >1C
       TEXT 'Default configuration (Y/N)?'
*
SURE   BYTE >13
       TEXT 'Are you sure (Y/N)?'
*
CELL   BYTE >06
       TEXT 'Cell 0'
*
ROWCOL BYTE >07
       TEXT 'ROW COL'
*
SETUP  BYTE >19
       TEXT 'Press any key to continue'
*
CELLS  BYTE >15
       TEXT 'How many cells (3/7)?'
*
       EVEN
*
TROW   DATA 0
LCOL   DATA 8
BROW   DATA 23
RCOL   DATA 39
MAXMIN DATA 1,22,1,30
R80    DATA 57
C80    DATA 61
*
DNINE  DATA >3939
TWO    DATA 2
CL     DATA 0
FLAG   DATA 0
DV     DATA 32
MP     DATA 10
LIM    DATA 16
LIM1   DATA 0
EMPTY  DATA >3030
PNT1   DATA >008B
AND    DATA >0080,>0010
H2000  DATA >2000
TABLE  DATA 10000,1000,100,10
*
COUNTR BSS  >0002
RCPLC  BSS  >0002
FSTGEN BSS  >0010
RW     BSS  >0002
RC     BSS  >0004
MAP    BSS  >0008
LOCATE BSS  >0002
SCRN   BSS  >0300
GENSCR BSS  >0300
*
ERRMSG BYTE >19
       TEXT 'Memory Management Error'
       BYTE >0D,>0A
*
       END

LINE_S

C       This demo program prepared for "9640 News" by Beery Miller
C


      program LINES
C     program name
      implicit integer(a-z)
C     let's define all variables a thru z as integers
      call setmod(9)
C     set graphics mode 9
      call clear
C     clear screen
      x2=irand ( 256 )
      y2=irand ( 212 )
C     set x2 and y2 to random numbers
100   do 1000 i=1,100
C     do thru line 1000 from 1 to 100 (i=1 to 100::next i)
       x1=irand ( 256 )
       y1=irand ( 212 )
C     generate random numbers for x1 to 256 and for y1 to 212
       green = irand(7)
       red  = irand(7)
       blue = irand(3)
C     generate rand number combinations for a total random color
       color = green * 32 + red * 8 + blue
C     adds up those colors for the composite color
         call setvec(x1,y1,x2,y2,color)
C     draws a line with cordinates of (x1,y1) to (x2,y2) with color spec
1000  continue
       x2=irand ( 256 )
       y2=irand ( 212 )
      call clear
C     lets generate some more random numbers for another location and repeat it
C     again
       goto 100
      end

MENUMD

Using J.Johnson’s MENU program with the 9640 and the HFDC

Several programs do not work well with the EA5 loader in JJ’s 9640 Menu program. (Some of the programs that don’t load are most early c99 programs,Loadermaker, PC Transfer’s EA5 version, and ROM only cartridges.)

I found it too inconvenient to have to reload GPL to run EA with the original GPL files each time I ran into a file that wouldn’t load except in the E/A environment. So I changed the Menu program into a cartridge style program by the following steps:

  1. I copied original GPL files to subdirectory \GPL.

  2. I loaded GPL with modified GPx Menu files. I use Jim Scroeder’s version as I like the 3 column layout best.

  3. After loading the MENU, load in and select Editor/Assembler.

  4. Run Cartridge Saver (this is the CSAVE program that came with the 9640 for converting cartridges to disk) from EA and save to a new filename. I use JSM (for J.Schroeder’s Menu - no real reason!) Save Groms 1 & 2 only! This creates two files JSM and JSM1. This saves your menu as a cartridge that replaces BASIC.

  5. I placed JSM & JSM1 in a subdirectory. I use \CARTS.

  6. I use a batch file to call GPL and any cartridge I want loaded. It is as follows:

            \GPL\GPL WDS1.CARTS.%1

This says to run the original GPL (I use v1.04) and then load whatever cartridge I select (The cartridge must be in CARTS subdirectory or a subdirectory of carts.)

For example, TI JSM will load my newly modified Menu, TI EA will load the Editor/Assembler module, TI GAME.PARSEC will load Parsec (Parsec is in the subdirectory /CARTS/GAME.)

This means that the original GROMS 1 & 2 are always available for use. I normally load TI JSM. When I need to use the E/A cart for EA5 programs that will not load with MENU, I go to the cartridge loader screen and press F3 to clear the cartridge space (dumps the Menu and reloads TI Basic) and load in the E/A cartridge.

The only drawback to this system is that the load time is slightly longer to load the original GPP/GPQ files and then overlay with JSM. However, with a hard drive using an interlace of 22, this is nearly insignificant.

To change the Menu (adding or revising menu options), I save the new menu to a nonexistent drive (I use DSK6 since I don’t have a Horizon) and then CSAVE the new cartridge to the CART subdirectory. I have several different Menu CARTs saved with different names. In addition to JSM, I have GAME which is a loader with a lot of EA5/module games, and EDU which loads Education carts & EA5 education pgms. In fact, these menus can be installed as options on the original menu to give a continuing menu system.

Michael Dorman

MOUSE80-S

*
* MOUSE80-S
*
* DEMO FILE FOR USING MOUSE
* WITH TEXT MODE 80 COL
*
       DXOP SYSC,0
       B    @MAIN
*
MDOS   EQU  >0000
USERWS EQU  >F000
BLWPWS EQU  >F020
MAPPER EQU  >F110
*
* MEMORY REQUEST
*
MAIN   NOP
       LWPI USERWS
       LI   R0,1
       LI   R1,7
       LI   R2,1
       CLR  R3
       SYSC @MMG
       MOV  R0,R0
       JEQ  MAIN1
       B    @ERROR
MAIN1  LI   R0,4
       LI   R1,MAP
       LI   R2,8
       SYSC @MMG
       CLR  R3
MAPMOV MOVB @MAP+1(R3),@MAPPER+1(R3)
       INC  R3
       CI   R3,7
       JNE  MAPMOV
       MOV  R0,R0
       JEQ  MAIN2
       B    @ERROR
*
* GET VIDEO MODE
*
MAIN2  LI   R0,1
       SYSC @VLIB
*
* TEXT MODE 80 COL?
*
       CI   R0,1
       JEQ  DEF
*
* SET TEXT MODE 80 COL
*
       CLR  R0
       LI   R1,1
       SYSC @VLIB
*
* USER DEFINED CARACHTERS
*
DEF    LI   R0,>24
       LI   R1,WING
       LI   R2,2
       LI   R3,>80
       CLR  R4
       SYSC @VLIB
*
* CLEAR SCREEN
*
       LI   R0,>27
       LI   R1,CLS
       MOVB *R1+,R2
       SRL  R2,8
       SYSC @VLIB
*
* DIRECTIONS FOR USE
*
       LI   R0,>2E
       LI   R1,>15
       CLR  R2
       LI   R4,>50
       LI   R3,>0081
       SYSC @VLIB
       INC  R1
       LI   R2,>06
       LI   R4,1
       LI   R6,MSG
       MOVB *R6+,R5
       SRL  R5,8
GO     MOVB *R6+,R3
       SRL  R3,8
       SYSC @VLIB
       INC  R2
       DEC  R5
       JNE  GO
       SETO @FLAG
*
* SET MOUSE
*
MOVE   LI   R0,>30
       MOV  @MOUSEX,R1
       MOV  @MOUSEY,R2
       LI   R3,2
       SYSC @VLIB
*
* GET MOUSE
*
       LI   R0,>31
       SYSC @VLIB
       MOV  R3,R5
*
* LEFT BUTTON PRESSED?
*
       CI   R3,>8000
       JEQ  OUT
*
* LEFT &MIDDLE BUTTONS PRESSED?
*
       CI   R3,>6000
       JNE  LIMIT
       BL   @BLINK
       JMP  MOVE
*
* SET LIMITS ON MOUSE MOVE
*
LIMIT  C    R1,@MINX
       JGT  ONE
       MOV  @MINX,R1
       JMP  TWO
ONE    C    R1,@MAXX
       JLE  TWO
       MOV  @MAXX,R1
TWO    C    R2,@MINY
       JGT  THREE
       MOV  @MINY,R2
       JMP  FOUR
THREE  C    R2,@MAXY
       JLE  FOUR
       MOV  @MAXY,R2
FOUR   MOV  R1,@MOUSEX
       MOV  R2,@MOUSEY
*
* CONVERT MOUSE POSITION TO ROW & COL
*
       SRL  R2,3
       MOV  R1,R4
       CLR  R3
       DIV  @SEI,R3
       MOV  R2,R4
       MOV  R3,R2
       MOV  R4,R1
       MOV  R4,R8
*
* GET ASCII CARACHTER FROM SCREEN
*
       LI   R0,>0B
       SYSC @VLIB
       MOV  R0,@LOC
       CI   R0,>0020
       JEQ  CHR
       MOV  @LOC,R3
       JMP  CHR1
CHR    LI   R3,>0080
CHR1   MOV  R8,R1
       LI   R0,>2E
       LI   R4,1
       SYSC @VLIB
*
* RIGHT BUTTON PRESSED?
*
       CI   R5,>2000
       JEQ  WRITE
*
* MIDDLE & RIGHT BUTTONS PRESSED?
*
 
       CI   R5,>6000
       JEQ  NEXT
*
* MIDDLE BUTTON PRESSED?
*
       CI   R5,>4000
       JNE  WRITE2
NEXT   LI   R3,>0020
       JMP  WRITE1
*
WRITE  LI   R3,>0040
WRITE1 SYSC @VLIB
       JMP  MOVE
WRITE2 BL   @FLASH
       MOV  @LOC,R3
       JMP  WRITE1
*
* DISABLE BLINKING
*
OUT    LI   R0,>35
       LI   R1,13
       CLR  R2
       SYSC @VLIB
*
* CLEAR SCREEN
*
       LI   R0,>27
       LI   R1,CLS
       MOVB *R1+,R2
       SRL  R2,8
       SYSC @VLIB
*
* RETURN TO MDOS
*
ERROR  BLWP @MDOS
*
* BL @FLASH
*
* IF THERE IS COINCIDENCE OF TWO CARACHTERS
* ON SCREEN, THEY MUST BE ALTERNATIVELY
* DISPLAYED
*
FLASH  MOV  R11,R10
       LI   R0,>2E
       LI   R4,1
       MOV  @LOC,R3
       CI   R3,>0020
       JNE  FLASH1
*
       SYSC @VLIB
       BL   @LATE
       DATA 0
       LI   R3,>0080
       SYSC @VLIB
       BL   @LATE
       DATA 1000
       JMP  FLASH2
*
FLASH1 LI   R3,>0080
       SYSC @VLIB
       BL   @LATE
       DATA >4000
       MOV  @LOC,R3
       SYSC @VLIB
       BL   @LATE
       DATA >1000
*
FLASH2 B    *R10
*
* BL @LATE
*
LATE   MOV  *R11+,R6
       MOV  R6,R6
       JEQ  LATE1
*
ONCE   NOP
       NOP
       DEC  R6
       JNE  ONCE
*
LATE1  B    *R11
*
* BL @BLINK
*
* WAS AUTHOR JUST REQUESTED?
*
BLINK  INC  @FLAG
       MOV  @FLAG,@FLAG
       JNE  BLINKO
*
* WHERE IS COLOR TABLE?
*
       LI   R0,>37
       LI   R1,TABLE
       SYSC @VLIB
*
* CLEAR COLOR TABLE
*
       LIMI 0
       MOV  @TABLE,R0
       LI   R2,>010F
       CLR  R1
AG     BLWP @VSBW
       INC  R0
       DEC  R2
       JNE  AG
       LIMI 2
*
* READ VDP REGISTER #7
*
       LI   R0,>36
       LI   R1,>07
       SYSC @VLIB
*
* SWAP FOREGROUND WITH BACKGROUND COLOR
*
       MOV  R0,R2
       SLA  R2,12
       SLA  R0,4
       ANDI R2,>F000
       ANDI R0,>0F00
       A    R0,R2
       SRL  R2,8
*
* WRITE VDP REGISTER #8
*
       LI   R0,>35
       LI   R1,>0C
       SYSC @VLIB
*
* DISPLAY AUTHOR
*
       LI   R0,>2E
       LI   R1,>17
       LI   R2,>18
       LI   R4,1
       LI   R6,AUT
       MOVB *R6+,R7
       SRL  R7,8
LOOP   MOVB *R6+,R3
       SRL  R3,8
       SYSC @VLIB
       INC  R2
       DEC  R7
       JNE  LOOP
*
* SET BLINKING PERIODS
*
       LI   R0,>35
       LI   R1,13
       LI   R2,>0055
       SYSC @VLIB
*
* WRITE BLINKING ATTRIBUTE IN
* COLOR TABLE
*
       LIMI 0
       MOV  @TABLE,R0
       AI   R0,233
       LI   R1,BL
       LI   R2,4
       BLWP @VMBW
       LIMI 2
*
BLINKO B    *R11
*
* BLWP @VSBW
* BLWP @VMBW
*
VMBW   DATA BLWPWS,BVMBW
VSBW   DATA BLWPWS,BVSBW
BVSBW  MOV  R13,R1
       INCT R1
       LI   R2,1
       JMP  DVMBW
BVMBW  MOV  @>0002(R13),R1
       MOV  @>0004(R13),R2
       JEQ  EVMBW
DVMBW  MOVB @>0001(R13),@>F102
       MOV  *R13,R0
       ORI  R0,>4000
       MOVB R0,@>F102
       SWPB R0
UVMBW  MOVB *R1+,@>F100
       DEC  R2
       JNE  UVMBW
EVMBW  RTWP
*
MOUSEX DATA 0
MOUSEY DATA 0
MINX   DATA 0
MAXX   DATA 479
MINY   DATA 0
MAXY   DATA 167
SEI    DATA 6
LOC    DATA 0
*
VLIB   DATA 6
MMG    DATA 7
IOL    DATA 8
*
*
MAP    BSS  >0008
TABLE  BSS  >18
FLAG   BSS  >02
*
WING   DATA >FF84,>8484,>8484,>84FF
ROW    DATA >0000,>0000,>FC00,>0000
*
MSG    BYTE >43
       TEXT 'LEFT: EXIT - MIDDLE: DELETE - RIGHT: WRITE'
       TEXT ' - MIDDLE & RIGHT: AUTHOR'
AUT    BYTE >1F
       TEXT 'MASSIMO CARIBONI - ITALY - 1989'
*
BL     BYTE >FF,>FF,>FF,>FE
*
CLS    BYTE >01,>1A
*
       EVEN
*
       END

MT9640DOC

MT9640

With the recent discovery of how to implement multi-tasking, I have developed a very useful utility. The program that I am maintaining copyrights too, should not be distributed without this documentation file. This program is complete at the present moment. Further updates from this program may be commercial. It is up to you to decide if it will be commercial with a price range comparable to that of some of the finer pieces of software available or if future release remain Freeware. Usage of this program on a frequent basis, will require a Fee of $15.00 and will cover any other future updates to the program if you send a mailer/disk/postage. If there is not enough response or feedback from this program, those that sent in their Freeware payment will receive the commercial version at the cost of mailer/disk/postage GUARANTEED and any others have to pay the higher price for the program.

Multi-Tasking

Multi-tasking is the ability to run more than one program at the same time. Before the release of this program, there were very few programs that could handle this feature in any responsible method. Why? Because nobody set any parameters or requirements for programs if they were to Multi-Task. Really, the only programs representing the fact that Multi-tasking exists are demo programs that draw lines, display a clock, play music, and some other small things. Nothing major as a word processor and terminal emulator working side by side. This program is designed to build upon the requirements that will be set forth for multi-tasking when some of the other major software developers/promoters join together. If you have ideas for program design/concepts, please feel free to drop me a note so that everyone will know in what direction we should go.

As the design of the current operating system V1.14 of MDOS, the time slice for each program appears to be about 1/10 of a second per task (program). One suggestion has been to make that slice smaller so that there will be less notice of any delays in one program for another. My feelings (unsupported) are that with the smaller the slice, the more time the operatins system is going to waste making the changes needed to bounce from one program to another (just my thoughts).

My current suggestions for program design for a program should be perhaps a default screen mode (more than likely the 80 column text mode versus a graphics screen), the removal of command line arguments being necessary for a program as these will not run, a smaller window of 18 rows * 80 columns with the remaining lines as a status line where information can be passed to the user and various programs, and also a particular page in memory declared or used to handle passing information between running programs. These are my current thoughs and will depend upon those of others in the very near future.

USING THIS PROGRAM

This program is quite versatile. Utilizing the multitasking feature, I have now made it possible to have a menu program similar in concept to that of John Johnson’s Menu program where with the EDIT [1] key, you can edit an option and enter it’s filename.

NOTE: As currently written, only prefixes with the original filename will work. This means A:MYART1 will not work, but DSK1.MYART1 will work. This program will support hard drive filenames that use either the hdS1 or WDS1 prefix depending upon their modification to their operating system. If a filename is entered and the option selected defaults back to MT9640, then one of 5 things has happened. One, you mispelled the filename (check lower or upper case), Two, you did not have the correct pathname, Three, the file does not exist, Four, not enough memory, or Five, it is not a legal MDOS file. Due to trying to hold memory requirements down, display of the original filename once entered is not possible. If it is later desired, this may be an added option.

When entering the description for the option that you will see displayed on the screen, if your description is shorter than what is displayed on the screen, space over to the end of the 18 character line to fill it with spaces. This prevents some of your old option text from being displayed.

SAVING YOUR OPTIONS

When you have made your changes, you may then save your options out to your internal RAMDISK as DSK5.MT9640. You will need to have preferably a 30K ramdisk minimum when this program reaches it’s final stages. Currently, as long as you have 60 sectors, that is enough space.

UTILIZING MULTI-TASKING

With this third option, you may run up to 5 programs (anything more and the computer is too slow) at the same time. The same restrictions for filename requirements are valid in this case too. If you only want to run 1, 2, 3, or 4 programs, just hit the enter key on whatever remains to bypass each one. If you enter all bad filenames, or no filenames at all, the program will exit at this point as it turns itself off after it has started running the other programs. If you want this program to continue running, just select it’s filename as one of the options and it will run itself. Anothe feature has been added if you make one of those common mistakes. If you enter the Multi-Tasking section by accident, providing a NULL (Just hit the enter key) response for the first option will permit you to return to MT9640 after bypassing the other options. Anything else, and you will drop back to MDOS.

To exit a multi-tasking operation, you can either hit the CTRL-ALT-DEL key sequence, or you can quit each program independently by however they are required under normal operation.

DISK OPTIONS

Format

This area is designed to permit a slightly faster formatting time than what can be obtained from MDOS. MDOS verifies all sectors greatly increasing the time to format. Selecting the Format option from this program will prompt you to insert your disk in the drive and ask for drive number. Valid drive numbers are 1 thru 9, while only 1 thru 7 are currently only accessible. I would not recommend attempting to format any RAMDISK from this option. The ESC key is active in this area and pressing the ESC at any prompt, will return you to the main menu.

Clone

This area permits you to clone disks in either of three disk formats. You must make the choice. Selecting more sectors to copy than what is available will result in MDOS attempting to read unavailable sectors that will eventually quit, but will take a while.

NOTICE

Selecting to format a disk without a disk being present, will lock the computer. This is a result of MDOS and perhaps will be corrected in future versions. (This happens on my Cor Comp card so it may not happen on all controllers).

VIEW

This option permits the viewing of DV80 files while running MT9640. If the file can not be located, it will display an error message regarding the problem and continue back at the main menu.

Comment:

This is an important one so you better read it. If you have TIMODE implemented and a RAMDISK partitioned at 120K, this program will not provide much benefit. Due to memory requirements set for by this program and the use of the Multi-Tasking enviroment, a small RAMDISK size is highly suggested. This program requires 64 K and with a 120K RAMDISK and TIMODE, you only have 90K to use. I have found that nearly any program will not work and run due to some type of memory requested to Mult-Task. It is suggested a ramdisk of 32 K be used if you need a ramdisk.

NOTICE:

Subscribers to 9640 News will not require a Fairware payment, although I will not reject anything you may send. This is a benefit for subscribing to 9640 News.

Now, I hope you enjoy this program as much as I have had in writing it to it’s current stages.

ACKNOWLEDGEMENTS

This program has to sections of code that I have borrowed from the public domain. The first section is that written by Clint Pulley for the Directory Option. This section is the one that has caused the greatest headache in implementation as Clint chose to use non-standard MDOS screen I/O that resulted in many Mysterious things happening. After assembling the code with this portion at the end of the file, the problems disappeared as I began to suspect his code was writing over some of the program. The other section of code is that written by Dave Ramsey from his MORE program that has been incorporated into many programs. This section of code had several modifications to fit within the scope of this program. I thank both Dave Ramsey and Clint Pulley for providing their source code to the public domain. If anyone is interested, my source code may be obtained by writing to the address given in the program at $3.50 if you are a 9640 News Subscriber, or $15.00 if you are not a subscriber.

MYART-BUG

Martin Zeddies Hauptstrasse 26 3180 Wolfsburg 22

Ferderal republic of Germany

Reislingen the,10th of April 89

WARNING FOR ALL MYART V1.21 USER !

The greatest wide-spred graphic program for the MYARC GENEVE 9640 copmuter system ist the MYART-program by MYARC,Inc. Now we (the germans) have found an hard error on the save routine in the version 1.21 of this program.

Make the following test: Load an picture from your disk.After loading you can save ist whith the same name of an onther disk by change the disk in the loading drive.You must not type a new name to save the file of the new disk,because you can go through the prompt line with the cursor key and the old name appeared on screen (like you work in MDOS). Be careful !! BECAUSE WHEN YOU GO ONE STEP ABOUT THE OLD ENTRY TO THE RIGHT THE PROGRAM WILL HANG UP YOUR SYSTEM. You will have no problems when you type in the save name via the key board.

ORDERFORM


Mail Order Form to: Beery W. Miller
                    5455 Marina Cove #1
                    Memphis, TN 38115
                    USA

Ship to:            _____________________
                    _____________________
                    _____________________
                    _____________________
                    _____________________

Quant  Format   Title      Quant  Format    Title    Quant  Format   Title
_____  ______  _________   _____  ______  _________  _____  ______  _________

_____  DS/SD   GIFNUDE01   _____  DS/SD   GIFTUNE01  _____  DS/SD  *MACFLIX01
_____  DS/SD   GIFNUDE02   _____  DS/SD   GIFTUNE02  _____  DS/SD  *MACFLIX02
_____  DS/SD   GIFNUDE03   _____  DS/SD   GIFTUNE03  _____  DS/SD  *MACFLIX03
_____  DS/SD  *GIFNUDE04   _____  DS/SD   GIFTUNE04  _____  DS/SD  *MACFLIX04
_____  DS/SD   GIFNUDE05   _____  DS/SD   GIFTUNE05  _____  DS/SD  *MACFLIX05
_____  DS/SD   GIFNDUE06   _____  DS/SD  *GIFTUNE06  _____  DS/SD  *MACFLIX06
_____  DS/SD  *GIFNUDE07   _____  DS/SD  *GIFTUNE07  _____  DS/SD  *MACFLIX07
_____  DS/SD  *GIFNUDE08   _____  DS/SD  *GIFTUNE08  _____  DS/SD  *MACFLIX08
_____  DS/SD  *GIFNUDE09   _____  DS/SD  *GIFTUNE09  _____  DS/SD  *MACFLIX09
_____  DS/SD  *GIFNUDE10   _____  DS/SD  *GIFTUNE10  _____  DS/SD  *MACFLIX10
_____  DS/SD  *GIFNUDE11   _____  DS/SD  *GIFTUNE11  _____  DS/SD  *MACFLIX11
_____  DS/SD  *GIFNUDE12   _____  SS/SD  *SPECS9640  _____  DS/SD  *MACFLIX12
_____  DS/SD   C99-MDOS    _____  SS/SD  *AFHR-SRC   _____  DS/SD  *MACFLIX13
_____  SS/SD   GPLV1-04    _____  DS/SD  *MDOS0-94H  _____  DS/SD  *MACFLIX14
_____  SS/SD   ASSEMBLY    _____  DS/SD  *MDOS0-95H  _____  DS/SD  *MACFLIX15
_____  DS/SD  *DISNEY01    _____  DS/SD  *MDMV1-29   _____  SS/SD  *ADVBAS0605
_____  DS/SD  *DISNEY02    _____  DS/SD  *C99MR1     _____  SS/SD  *MT9640-SRC
_____  SS/SD   GIF-PGM     _____  DS/SD  *XHI (V3)   _____  SS/SD  *PHOENIX114
______________________________________________________________________________
* New files since Vol 1 #2 of 9640 News



Total #:     _______ Disks
                     @ $2.50 each (US/Canada)
                     @ $4.00 each (Foreign delivery)

Amount Paid $_______ (Check or money order)


Note:     The following statement must be signed before I
          will ship any of the above software.

          Some or part of the programs I order may be
classified as Fairware, Shareware, or Pay-Me-Ware programs.
I understand that if I order and use any programs on a
regular basis, that the author of such program has required
me to pay him his fee for the program besides any fees that
"9640 News" has collected for shipping and handling costs.
Copywrighted programs by Myarc, Inc have been placed onto
public domain services and do not require any fees.  Public
domain programs require no additional fees unless you wish
to display your generosity for that person's work.


         _________________________ (your signature and date)


QUESTIONS

QUESTIONS

Question (Bob Sherburne): I am trashing MDOS V1.14. The reason being that it has a tendancy to lunch my 256K Horizon almost any time I try a file copy from MDOS from any drive to any other drive. Do you have any idea what is happening here?

Answer: While I have not experienced the exact same problems you have, I have had problems with my own 256K Horizon. It seems the Horizon should be formatted to 992 sectors and not 1000 sectors as the system is doing. When sectors 993 thru 1000 are written too, I have noticed the operating system becoming trashed. I have fixed this manually with a sector editor by changing sector zero. The easies way to describe how to do this, is to set up a Geneve RAMDISK of 248K, view sector zero with a sector editor, and then edit sector zero of the Horizon Ramdisk to match (Make sure your Horizon has no files on it or you will lose the contents). This should effectively make your system look like it has 992 sectors (990 sectors free/ 2 used) and hopefully, solve your problems. Please do this after you have loaded a fresh operating system.

Question (Bob Sherburne): Have you heard of any way to make the 384+K ram disk work correctly with the HFDC?

Answer: Since you have both the 384+K and a 256K, I have heard comments regarding using the 256K at the higher CRU base address and the 384+K at >1400. I think this might also solve the problems you mentioned with regards to initializing the Phoenix past 1024 sectors that you comment about in your letter.

Question (Matt Juppo): I received Vol1 #1 and Vol1 #2 of 9640 News and I am writing in regard to a problem I had with them. First of all. I have 2 drives: Drive one is a new DS/DD and drive two is a DS/DD drive that I recently had realigned. My problem is that both of your disks will work fine in my new drive, but some of the files will not work in my second drive: ARC1 and NEWS-ARK for an example. I took my second drive back in and had it checked out with no problem being found. I then copied your disks from my new drive onto DSK2 and the copy disks work fine on both drives which brings me to ask if you are experiencing any problems with your copy drive or the program you are using to copy these disks? I thought I would let you know in case other subscribers might be experiencing the same problems I did.

Answer: Matt, so far, I have not experienced the problems you mention with anyone else. I have had some disks returned due to a copy problem or a mail damage problem that when I attempted to read it, the problem was there too. We have one user here in town that has had continuous problems with some drives he aligned on his own. He uses the Cor Comp Controller card and as long as he keeps his disks on his system, they are fine, but if he uses his disks on another system, or your own on his, PROBLEMS IMMEDIATELY occur. Trying on the most simplest of terms of diagnosing the problem, here it is (at least my opinion):

When a disk is formatted, it is done a track at a time, not sector by sector. You write all 18 sectors out at one time if you are formatting double density. There is more information written and required to write out a track than just the sector information. What is required is some timing bytes and ID bytes that is written between the sectors and at the beginning of the each track. I am then assuming you are having problems writing out out that in-between information at the start of each track that can cause problems. This was part of the problem with the HFDCC in formatting to floppies. IF NOT ENOUGH bytes are written initially, trying to read that track will cause an error and almost make it impossible to read that track. I believe somehow, your disk drive is improperly writing and/or reading each track’s information due to the alignment problem. I have been copying with Hyper-Copy using some suggested settings to optimize reading and writing. These settings could possibly be a hair too fast for your drive to read them properly as your drive was probably tested on some type of IBM workstation that would not be using some alternate settings and may not catch the problem. Part of the problem lies in the Cor Comp DSR code too, so the drive may not be totally at fault. My question to you. Are you using Hyper-Copy? If so, have you had any problems? Do you have any problems reading anyone else’s disk, especially if they are formatted DS/DD on an Cor Comp system? Please write back and I will try to answer if you have any more questions.

Question (Martin Zeddies): In the recent Asgard News, there were comments regarding a M-DOS developer’s kit by Ron Warfield, FORMAT-PRINTER, and VIDEO XOP Manual? Where can I get these programs?

Answer: The M-DOS developer’s kit is a collection of MDOS programming utilities by various users and is not a true programming kit that Paul Charlton will have available when MDOS V1.15 is made public (he is not releasing his Programmers Kit until 1.15 is stable in the Video-Library as changes were being made. I am told everything else was complete with it). The FORMAT-PRINTER, I would imagine is the c99 Formatter by Clint Pulley that comes with c99/MDOS. The Video XOP Manual is Paul Charltons comments about MDOS usage of the VIDEO XOP’s and is located on the A/L-MDOS disk I had available last issue. I will be sending both of these disks to you with your issue of 9640 News since you have mailed to me much of what is appearing in this issue along with some additional software from the software section.

Question (Martin Zeddies): I read in Asgard News about a plan to create a new TI 99/4A compatible computer system with a very new CPU called the TMS 99000. What do you know about this project?

Answer: This contest to build a new computer has it’s merits, but I think would only draw TI Users farther apart. I read the article you mention and everything that the author of the article wants (even the price) is available with the Geneve. There is one other person advanced far enough that I am told that essentially has an equivalent of a Geneve built by himself. This person is Barry Boone author of Archiver and Rapid Copy. Recent messages on Genie indicate he has reprogrammed the EPROMS on the 4A, added additional memory (512K if I am not mistaken), built in GramKracker and 80 column capability and an MDOS/MSDOS style interface (NOT MSDOS OR MDOS COMPATIBLE) available on boot up of the computer. It is also capable of running Adv Basic 2.12 or equivalent and I have heard rumor My-Art had been recompiled to run on his system (My-Art is more 4A code than it is true MDOS code….. think about it, MDOS was not even truly running and My-Art was already available). Do not hold your breath for Barry Boone to release very much information on his system as it has been mostly hardware hacking he has done and I don’t think he going to enter the contest, but I am sure he would sweep it if he did. I doubt anyone else has the knowledge to develop a system as such that are not already under the direction of Myarc.

Questions:

Last issue I promised to have questions answered on 1.14 MDOS and the Phoenix Ramdisk issue. I have contacted Bud Mills by phone in the past two weeks and he has assured me that he will send the latest release of the operating system with all files. It is not currently in the SOFTWARE section, but if you enclose a payment and make a note that you would like a copy, I will send it to you as soon as I receive it.

From Paul Charlton, he says that MDOS 1.15 will have nearly full support for the HRD and the HRD 384K+. We will also have the ability to format from command line of MDOS whatever size of ramdisk we want within it’s limitations. What we won’t have (at least yet and perhaps never from MYARC), is support for the Phoenix mod as Paul hasn’t worked around the problem of having two drives at the same CRU. This problem will probably have to resolve itself from the author of the Phoenix Mod. MDOS 1.15 will support both the 8 bit and 16 bit HRD’s and know when to use different DSR’s for each. I have been told that MDOS 0.94H (available in software section) has that support already, but I don’t have a HRD+ to test it out on to know for sure.

SOFTWARE

Software List for Distribution by “9640 New”

The following software will currently be distributed by “9640 News” to all subscribers at the cost of disks, mailers and postage. I decided to begin distributing this software after I realized that there were so many people still using MDOS V1.01 and GPL V0.99 that were not benefited as much by MDOS V1.14 when I mailed it out in December 1988. Now, it will be your fault if you do not decide to update to existing releases of the operating system, GPL interpreter, and My-Word as released by Myarc on various Networks. I have also been asked to include other utilites such as GIF Picture files, MacFlix pictures (these have no fees for fairware costs, etc) and by demand, I have also included additional disks of the existing c99-MDOS programming enviroment with all of it’s utilities that I know of and I have also compiled the current use of MDOS-Assembly language XOP’s as released by Paul Charlton. In addition, I have included the latest releases of MDOS V0.94H and V0.95H along with c99 Version 4.1 as I received it from Clint Pulley

I am not trying to make a profit from other people’s work as some people do that advertise in Micropendium as that is why I have the costs as low as it can possibly be. My purpose is to maintain a high degree of interest in the computer before we lose those people that are with older, buggier versions of software that either did not have the contacts or resources to obtain the following software. If any author has a program that I make available wishes it to be removed, it will be removed instantly and I will refund any amount back to you if the program becomes no longer available.

Due to various program sizes and usages, the majority of the software will be in DS/SD format. GIF pictures were much too difficult to place on SS/SD disks as it was creating just to much blank space on the disk due to various program lengths. Myarc, Inc. Software will always be available as SS/SD software unless 1.1Xh (for HFDCC users) is larger than 360 sectors. So to begin with, here is the current software that I have had time to compile and make available. Use the order form provided on the disk and sign the statment at the end of the order blank if you wish to order any diskettes.

I should note that this list will be expanded in about two weeks and will be uploaded onto Genie and Delphi with additional MACFLIX pictures. Current plans are to include an additional 20 to 25 disks worth of DS/SD pictures. They will be most nude pictures as for some strange reason that appears to be the majorities interest. I try to make availble all of the ‘cartoon’ or ‘scenic’ type pictures I come across, however, in the IBM world and MacIntosh world of picture creation, access or locating these files are difficult. In order to use the MACFLIX pictures, you are required to use MacFlix as written by J. Peter Hoddie. I believe the program is available thru Genial Computerware. The program permits each picture to easily print to printer so that you may obtain a printout.

I hope nobody takes offense at these programs as it is my intention to save some people some money. The cost of downloading these files from pay systems can be quite substantial. Enjoy whatever your selection may be…..

Diskname: GIFNUDE01  Total= 720  Used= 689 Free=  31  [Gif NUDE pictures]
RUTH       273 D128 STELLA     197 D128 TERIW      217 D128


Diskname: GIFNUDE02  Total= 720  Used= 720 Free=   0  [Gif NUDE pictures]
CLING      157 D128 DIXIE       88 D128 FLORIDA     75 D128 NICOLA     129 D128
WET        269 D128


Diskname: GIFNUDE03  Total= 720  Used= 706 Free=  14  [Gif NUDE pictures]
KRISTINA    40 D128 MINDY1      72 D128 NIOMI      317 D128 NUDE1       90 D128
RACHEL2     58 D128 RED         49 D128 SFOX        78 D128


Diskname: GIFNUDE04  Total= 720  Used= 697 Free=  23  [Gif NUDE pictures]
AUSSIE     165 D128 CHER       240 D128 PAULINA2    85 D128 STIFF      205 D128


Diskname: GIFNUDE05  Total= 720  Used= 705 Free=  15  [Gif NUDE pictures]
48         141 D128 BEACH       57 D128 BOATGIRL   228 D128 CALL        37 D128
CATES       77 D128 CINDYW      53 D128 HAREM       24 D128 KRIS4       66 D128
MODEST      20 D128


Diskname: GIFNUDE06  Total= 720  Used= 347 Free= 373  [Gif NUDE pictures]
LYNNA2     309 D128 MADONNA     36 D128


Diskname: GIFNUDE07  Total= 720  Used= 707 Free=  13  [Gif NUDE pictures]
ATHOME     109 D128 DARLENE2   121 D128 SHARRY     184 D128 SUSIE      215*D128
TRACY       76*D128


Diskname: GIFNUDE08  Total= 720  Used= 681 Free=  39  [Gif NUDE pictures]
COWGIRL     86 D128 GRACE2     197 D128 MITZI      205 D128 SPRITE     191*D128


Diskname: GIFNUDE09  Total= 720  Used= 681 Free=  39  [Gif NUDE pictures]
KYMBERLY   203 D128 MILK4      229 D128 NYMPH3     165 D128 RGIRL1      82 D128


Diskname: GIFNUDE10  Total= 720  Used= 671 Free=  49  [Gif NUDE pictures]
ANGRYMAN    28 D128 ZOE2       641 D128


Diskname: GIFNUDE11  Total= 720  Used= 672 Free=  48  [Gif NUDE pictures]
TANYA      405 D128 VANNA      265 D128


Diskname: GIFNUDE12  Total= 720  Used= 687 Free=  33  [Gif NUDE pictures]
DEMI       246 D128 LISAWELC   178 D128 MADONNA     72 D128 MARIAN     189 D128


Diskname: GIFTUNE01  Total= 720  Used= 649 Free=  71  [Gif CARTOON pictures]
BATCH        2 d 80 BILLCAT     24 D128 BUGS        30 D128 CLIPART1    18 D128
CLIPART2    17 D128 ELEPHANT    36 D128 GARFIELD    16 D128 HWEEN       77 D128
MICE        28 D128 RAT         26 D128 ROGER1     257 D128 SMURFETT    22 D128
SNAKEHUNT   41 D128 TIGGER      53 D128


Diskname: GIFTUNE02  Total= 720  Used= 672 Free=  48  [Gif CARTOON pictures]
BATCH        2 d 80 CAPPOWER   149 D128 HOUSE      101 D128 SPRING     116 D128
TULIPS     216 D128 WINTRAIN    86 D128


Diskname: GIFTUNE03  Total= 720  Used= 506 Free= 214  [Gif CARTOON pictures]
BATCH        2 d 80 BENGAL      79 D128 CGABLE      59 D128 CURRIER    182 D128
DOS4        65 D128 EARRINGS    81 D128 HULK        13 D128 TREK        23 D128


Diskname: GIFTUNE04  Total= 720  Used= 708 Free=  12  [Gif CARTOON pictures]
BATCH        2 d 80 GLASS      263 D128 LAKE       196 D128 MOONLITE    42 D128
MOUNTAIN    61 D128 PENGUIN     83 D128 RUSHMORE    59 D128


Diskname: GIFTUNE05  Total= 720  Used= 717 Free=   3  [Gif CARTOON pictures]
BATCH        2 d 80 MONARCH    297 D128 PARROT     227 D128 RROSE      189 D128


Diskname: GIFTUNE06  Total= 720  Used= 719 Free=   1  [Gif CARTOON pictures]
55CHEVY     17 D128 ANGEL       29 D128 APPLE       77 D128 AQUARIUM    37 D128
BEE         53 D128 BEETLE      53 D128 BLAST      192 D128 CALVIN1     21 D128
CALVIN2     33 D128 CAT        112 D128 CTYLGHT     53 D128 MEMPHIS     40 D128


Diskname: GIFTUNE07  Total= 720  Used= 715 Free=   5  [Gif CARTOON pictures]
ATAT       105 D128 AZTEC      181 D128 E-OPTIC     85 D128 PPANTHER    41 D128
TECH        68*D128 TRIANGLE    12*D128 USMAP       40 D128 VOYAGER     13 D128
WILEY       30 D128 WIZARD      34 D128 WOODBOAT    13 D128 WORLDMAP    33 D128
XMAS        50 D128 ZONE         8 D128


Diskname: GIFTUNE08  Total= 720  Used= 696 Free=  24  [Gif CARTOON pictures]
DEER       229 D128 HATTER      16 D128 MTHOOD      48 D128 PORSCHE     25 D128
ROBOTGOL    25 D128 SHADE      351 D128


Diskname: GIFTUNE09  Total= 720  Used= 683 Free=  37  [Gif CARTOON pictures]
ANDROMDA   277 D128 FERRARI    117 D128 FRUIT       65 D128 HOTAIR     149 D128
PIEDMONT    73 D128


Diskname: GIFTUNE10  Total= 720  Used= 693 Free=  27  [Gif CARTOON pictures]
8AM        129 D128 CDRAGON    165 D128 CLOWN      201 D128 MIKKI2     196 D128


Diskname: GIFTUNE11  Total= 720  Used= 689 Free=  31  [Gif CARTOON pictures]
DEBBIE     273 D128 IBMMASH    189 D128 TIGER      225 D128


Diskname: MACFLIX01  Total= 720  Used= 705 Free=  15  [MacFLix NUDE pictures]
PLAY01      89 D128 PLAY02      80 D128 PLAY03      89 D128 PLAY04      84 D128
PLAY05      77 D128 PLAY06      69 D128 PLAY08      73 D128 PLAY09      82 D128
PLAY10      60 D128


Diskname: MAXFLIX02  Total= 720  Used= 696 Free=  24  [MacFLix NUDE pictures]
PG1         71 D128 PG10        49 D128 PG2         49 D128 PG3         49 D128
PG4         61 D128 PG5         54 D128 PG6         52 D128 PG7         51 D128
PG8         50 D128 PG9         75 D128 PHONEY1     75 D128 PHOTO-J     58 D128


Diskname: MACFLIX03  Total= 720  Used= 676 Free=  44  [MacFLix NUDE pictures]
ONTOP       76 D128 OOOH!       54 D128 ORGY        84 D128 PARKING     77 D128
PATSY1      88 D128 PAULINA     68 D128 PIANO       66 D128 PINCH       85 D128
PINUP       76 D128


Diskname: MACFLIX04  Total= 720  Used= 643 Free=  77  [MacFLix NUDE pictures]
PENNY5      71 D128 PENNY6      74 D128 PREGNANT    76 D128 PROFILE     75 D128
RACY        84 D128 RACY3       66 D128 RANDI1      74 D128 RANDI2      86 D128
RECIPE      35 D128


Diskname: MACFLIX05  Total= 720  Used= 676 Free=  44  [MacFLix NUDE pictures]
DVGIRL01    81 D128 DVGIRL02    81 D128 DVGIRL03    83 D128 DVGIRL04    84 D128
DVGIRL05    91 D128 DVGIRL06    83 D128 DVGIRL07    79 D128 DVGIRL08    92 D128


Diskname: MACFLIX06  Total= 720  Used= 697 Free=  23  [MacFLix NUDE pictures]
DVGIRL09    87 D128 DVGIRL10    91 D128 DVGIRL11    89 D128 DVGIRL12    84 D128
DVGIRL13    78 D128 DVGIRL14    82 D128 DVGIRL15    93 D128 DVGIRL16    91 D128


Diskname: MACFLIX07  Total= 720  Used= 695 Free=  25  [MacFLix NUDE pictures]
DVGIRL17    83 D128 DVGIRL18    90 D128 DVGIRL19    91 D128 DVGIRL20    88 D128
DVGIRL21    85 D128 DVGIRL22    87 D128 DVGIRL23    86 D128 DVGIRL24    83 D128


Diskname: MACFLIX08  Total= 720  Used= 698 Free=  22  [MacFLix NUDE pictures]
DVGIRL25    76 D128 DVGIRL26    61 D128 DVGIRL27    52 D128 DVGIRL28    79 D128
DVGIRL29    92 D128 DVGIRL30    95 D128 DVGIRL31    87 D128 DVGIRL32    72 D128
DVGIRL33    82 D128


Diskname: MACFLIX09  Total= 720  Used= 651 Free=  69  [MacFLix NUDE pictures]
DVGIRL34    86 D128 DVGIRL35    85 D128 DVGIRL36    82 D128 DVGIRL37    87 D128
DVGIRL38    77 D128 DVGIRL39    76 D128 DVGIRL40    88 D128 DVGIRL41    68 D128


Diskname: MACFLIX10  Total= 720  Used= 707 Free=  13  [MacFLix NUDE pictures]
DVGIRL42    78 D128 DVGIRL43    77 D128 DVGIRL44    67 D128 DVGIRL45    77 D128
DVGIRL46    90 D128 DVGIRL47    68 D128 DVGIRL48    82 D128 DVGIRL49    80 D128
DVGIRL50    86 D128


Diskname: MACFLIX11  Total= 720  Used= 676 Free=  44  [MacFLix NUDE pictures]
DVGIRL51    92 D128 DVGIRL52    82 D128 DVGIRL53    91 D128 DVGIRL54    89 D128
DVGIRL55    76 D128 DVGIRL56    70 D128 DVGIRL57    86 D128 DVGIRL58    88 D128


Diskname: MACFLIX12  Total= 720  Used= 684 Free=  36  [MacFLix NUDE pictures]
DVGIRL59    83 D128 DVGIRL60    83 D128 DVGIRL61    86 D128 DVGIRL62    90 D128
DVGIRL63    85 D128 DVGIRL64    80 D128 DVGIRL65    89 D128 DVGIRL66    86 D128


Diskname: MACFLIX13  Total= 720  Used= 681 Free=  39  [MacFLix NUDE pictures]
BABYONM     88 D128 CHRIS       48 D128 COVERGI2    81 D128 DVGIRL67    90 D128
DVGIRL68    43 D128 RELAX       90 D128 REPMAN1     39 D128 REPMAN2     38 D128
REPMAN3     37 D128 REPMAN4     32 D128 RIDING      93 D128


Diskname: MACFLIX14  Total= 720  Used= 704 Free=  16  [MacFLix NUDE pictures]
ELLY1       90 D128 ENUFF       86 D128 EXPIRED     44 D128 FARM1       31 D128
FARM2       33 D128 FIRSTLISS   42 D128 FLOGGING    82 D128 FLOOR       78 D128
FLOWER      57 D128 FLYME       69 D128 FONDLE      24 D128 FURY        66 D128


Diskname: MACFLIX15  Total= 720  Used= 708 Free=  12  [MacFLix NUDE pictures]
BABYGRND    37 D128 CHEETAH     68 D128 COSMIC      42 D128 FARSIDE     38 D128
FERRARI     36 D128 KTURNER     91 D128 OLDLOUIS    56 D128 OLDTRAIN    40 D128
ONMYSIX     58 D128 ONSIX       64 D128 ORIGMOUS    42 D128 P-NAGEL1    52 D128
RESTS       34 D128 RIGHT       48 D128


Diskname: SPECS9640  Total= 360  Used= 235 Free= 125  [Modifications to 9640]
ADD32K      42 d 80 RAM512KFIX 178 d 80 THOMSON     13 d 80


Diskname: AFHR-SRC   Total= 360  Used= 296 Free=  64  [After Hours BBS source]
AFHR9640   294 I128


Diskname: MDOS0-94H  Total= 720  Used= 483 Free= 237  [MDOS V0.94H]
SYSTEM/SYS 481 Prog


Diskname: MD0S0-95H  Total= 720  Used= 483 Free= 237  [MDOS V0.95H]
SYSTEM/SYS 481*Prog


Diskname: DISNEY01   Total= 720  Used= 686 Free=  34  [Disney Modules GK]
ET          34*Prog ET1         34*Prog ET2         34*Prog ETSEA       34*Prog
ETSEA1      34*Prog ETSEA2      34*Prog ETSEA3      34*Prog ETSEA4      34*Prog
ETSEA5      34*Prog FYI-DOC      4 d 80 MANCALA     34*Prog MANCALA1    34*Prog
MANCALA2    34*Prog MANCALA3    34*Prog MANCALA4    34*Prog MANCALA5    34*Prog
MOUSEATCK   34*Prog MOUSEATCK1  34*Prog MOUSEATCK2  34*Prog MOUSEATCK3  34*Prog
MOUSEATCK4  34*Prog


Diskname: DISNEY02   Total= 720  Used= 576 Free= 1442 [Disney Modules GK]
FYI-DOC      4 d 80 PETERPAN1    4*Prog PETERPAN2   25*Prog PETERPAN3   25*Prog
PETERPAN4   25*Prog PETERPAN5   25*Prog PETERPAN6   25*Prog PETERPAN7   33*Prog
VONDRAKE    34*Prog VONDRAKE1   34*Prog VONDRAKE2   34*Prog VONDRAKE3   34*Prog
VONDRAKE4   34*Prog VONDRAKE5   34*Prog WINGWAR     34*Prog WINGWAR1    34*Prog
WINGWAR2    34*Prog WINGWAR3    34*Prog WINGWAR4    34*Prog WINGWAR5    34*Prog


Diskname: ADVBAS0605 Total= 360  Used= 236 Free= 124  [Adv Basic rel. 06/05/89]
BASIC1      30 Prog BASIC2      34 Prog BASIC3      34 Prog BASIC4      34 Prog
BASIC5      34 Prog BASIC6      34 Prog BASIC7      34 Prog


Diskname: C99MR1     Total= 720  Used= 654 Free=  66  [c99/MDOS V4.1]
-README      9 d 80 -RELNOTES   22 d 80 ARC1        33 Prog BOOT_ARK   170 I128
DOC1_ARK   172 I128 DOC2_ARK    74 I128 TOOLS_ARK  172 I128


Diskname: XHi        Total= 720  Used= 707 Free=  13  [XHI Version 3.0]
ARTLES      14*D 80 BRIAN        5*Prog BUNT         3*Prog COLDEF       9*Prog
FIXSTERNE   18*Prog HIDEM        6*Prog KNETSCH      4*Prog KUGEL       22*Prog
KUGEL;PAR    5*d 80 KUGEL;PIC   29*D128 LOAD        13*Prog MISCH        3*Prog
PLANE        5*Prog READ*ME      6*d 80 TIINFO      10*d 80 TOMYART     12*D 80
UHR          5*Prog XHI         64*D 80 XHI/T      128*d 80 XHIDEU     173*d 80
XHIDOC     171*d 80


Diskname: GIF-PGM    Total= 360  Used=  39 Free= 321  [Gif viewer]
GIF2        25*Prog GIFDOC      12 d 80


Diskname: MDMV1-29   Total= 360  Used= 285 Free=  75  [MDM5 for HFDCC V1.29]
LOAD         2*Prog LOAD/SYS     8*Prog MDM          7*D 80 MDM-DELETE   9*Prog
MDM296      33*Prog MDM297      33*Prog MDM298      25*Prog MDM299      25*Prog
MDM4         2*Prog MDM5        10 Prog MDMCB29     26*Prog MDMCR29     20*Prog
MDMDB29     26*Prog MDMDR29     19*Prog MDMFV29     15*Prog MDMV        10 Prog
MDMXB       13*D 80


Diskname: ASSEMBLY   Total= 360  Used= 321 Free=  39  [Assembly info on 9640]
ASM          9 Prog ASSM1       33 Prog ASSM2       18 Prog DSR/DOC    101 d 80
KEY/DOC      4 d 80 LDR         12 Prog MANAGE/DOC  22 d 80 MATH/DOC    35 d 80
NOTES/DOC    8 d 80 UTIL/DOC    14 d 80 VIDEO/DOC   63 d 80


Diskname: GPLV1-04   Total= 360  Used= 339 Free=  21  [GPL V1.04 / MyWord V1.21]
CHARA1       5 Prog CONTROL     17 Prog EDITOR      49 Prog FORMAT      47 Prog
GPL         27 Prog GPM         34 Prog GPN         26 Prog GPO         26 Prog
GPP         26 Prog HELP        31 d 80 MW          14 Prog MWG         14 Prog
MYCAT       21 Prog


Diskname: C99-MDOS   Total= 720  Used= 710 Free=  10  [c99/MDOS V4.0 with code]
-C99LIBDOC   5 d 80 -C99MDOS    16 d 80 -LDR3DOC     9 d 80 C99C        58 Prog
C99D        44 Prog C99LIB      61 d 80 C99MAN1     45 d 80 C99MAN2     48 d 80
C99MAN3     36 d 80 C99SPECS    39 d 80 CONIO_H      3 d 80 CSUP        12 D 80
LDR         12 Prog LDR_A      120 d 80 MDOS_C      13 d 80 MDOS_DOC    30 d 80
MDOS_O       5 D 80 OBJLIB_DOC  13 d 80 OLU         55 Prog OLU_C       49 d 80
OLU_DOC     17 d 80 STDIO_H      4 d 80 STDLIB_H     2 d 80 STRING_H     2 d 80
T$MDOS_C     6 d 80 T$MDOS_L     2 d 80 TIME_H       2 d 80


Diskname: PHOENIX114 Total= 360  Used= 117 Free= 243  [Complete Phoenix 114 pgm]
+TYPEME     11 d 80 AUTO         2 d 80 AUTOEXEC     2 d 80 CFG         14 Prog
HDROS       33 Prog INSTALL     10 d 80 LHDROS       8 Prog PHOENIX     31 d 80
RAMDOS       4 Prog


Diskname: MT9640-SRC Total= 360  Used= 308 Free=  52  [Source code to MT9640]
DISKMGR100 112*d 80 GEMES100   168*d 80 MORE100     26*d 80


SPRITE-S


*
* SPRITES IN GRAPHIC MODE 1
* 24 ROWS, 32 COLUMNS
*
       DXOP SYSC,0
       B    @MAIN
*
MDOS   EQU  >0000
USERWS EQU  >F000
BLWPWS EQU  >F020
MAPPER EQU  >F110
*
* MEMORY REQUEST
*
MAIN   NOP
       LWPI USERWS
       LI   R0,1
       LI   R1,7
       LI   R2,1
       CLR  R3
       SYSC @MMG
       MOV  R0,R0
       JEQ  MAIN1
       B    @ERROR
MAIN1  LI   R0,4
       LI   R1,MAP
       LI   R2,8
       SYSC @MMG
       CLR  R3
MAPMOV MOVB @MAP+1(R3),@MAPPER+1(R3)
       INC  R3
       CI   R3,7
       JNE  MAPMOV
       MOV  R0,R0
       JEQ  MAIN2
       B    @ERROR
*
* CLEAR SCREEN
*
MAIN2  LI   R0,>27
       LI   R1,CLS
       MOVB *R1+,R2
       SRL  R2,8
       SYSC @VLIB
*
* SET VIDEO MODE: GRAPHIC1
*
       CLR  R0
       LI   R1,3
       SYSC @VLIB
*
* CALL SCREEN
* BACKGROUND: B (LIGHT YELLOW)
* FOREGROUND: 1 (BLACK
*
       LI   R0,>0A
       LI   R1,>010B
       CLR  R3
       SYSC @VLIB
*
* SPRITES #0, #1
*
       LI   R0,>23
       LI   R1,BALL
       LI   R2,2
       LI   R3,>0010
       CLR  R4
       SYSC @VLIB
*
* SPRITE PARAMETERS
*
       LI   R0,>1A
       LI   R1,SPDA
       LI   R2,2
       SYSC @VLIB
*
       BL   @WRIT
       DATA WRITE
*
GO     LI   R0,>0004
       SYSC @KEYB
       JNE  GO
*
       LI   R0,>1D
       LI   R1,MOTION
       LI   R2,2
       SYSC @VLIB
*
       BL   @WRIT
       DATA WRITE1
*
STAY   LI   R0,>0004
       SYSC @KEYB
       JNE  STAY
*
* TEXT MODE 80
*
       CLR  R0
       LI   R1,1
       SYSC @VLIB
*
* CLEAR SCREEN
*
       LI   R0,>27
       LI   R1,CLS
       MOVB *R1+,R2
       SRL  R2,8
       SYSC @VLIB
*
ERROR  BLWP @MDOS
*
* WRITE LAST ROW
*
WRIT   MOV  *R11+,R5
       LI   R0,>2E
       MOVB *R5+,R6
       SRL  R6,8
       LI   R1,>17
       LI   R2,>05
       LI   R4,1
WR     MOVB *R5+,R3
       SRL  R3,8
       SYSC @VLIB
       INC  R2
       DEC  R6
       JNE  WR
       B    *R11
*
* VMBW, VSBW
*
VMBW   DATA BLWPWS,BVMBW
VSBW   DATA BLWPWS,BVSBW
BVSBW  MOV  R13,R1
       INCT R1
       LI   R2,1
       JMP  DVMBW
BVMBW  MOV  @>0002(R13),R1
       MOV  @>0004(R13),R2
       JEQ  EVMBW
DVMBW  MOVB @>0001(R13),@>F102
       MOV  *R13,R0
       ORI  R0,>4000
       MOVB R0,@>F102
       SWPB R0
UVMBW  MOVB *R1+,@>F100
       DEC  R2
       JNE  UVMBW
EVMBW  RTWP
*
VLIB   DATA 6
MMG    DATA 7
KEYB   DATA 5
*
MAP    BSS  >0008
SP     BSS  >0008
*
SPDA   DATA >0000        SPRITE #0
       DATA >0010        PATTERN #16
       DATA >005A        X POSITION
       DATA >0080        Y POSITION
       DATA >0000        X SPEED
       DATA >0000        Y SPEED
       DATA >000C        COLOR
*
       DATA >0001        SPRITE #1
       DATA >0011        PATTERN #17
       DATA >005A        X POSITION
       DATA >0080        Y POSITION
       DATA >0000        X SPEED
       DATA >0000        Y SPEED
       DATA >0006        COLOR
*
MOTION DATA >0001,>FFF7,>FFFC
       DATA >0000,>000A,>0005
BALL   DATA >3C7E,>FFFF,>FFFF,>7E3C
       DATA >3C7E,>FFFF,>FFFF,>7E3C
*
WRITE  BYTE >16
       TEXT 'PRESS ANY KEY TO START'
WRITE1 BYTE >16
       TEXT 'PRESS ANY KEY TO EXIT '
 
*
CLS    BYTE >01,>1A
*
       EVEN
*
       END
 

TIDBITS

Programmer’s Tidbits

This area is being developed to pass information along concerning what various people have learned regarding MDOS and it’s current versions. When possible, credit to the originator will be given.

From Massimo Cariboni of Italy

(This is the original author of the Q-Bert modification found in both Micropendium and 9640 News)

Now some tips about MDOS 1.14

1) XOP six,0 (low level video), opcode >0E (set pixel color) There is a mistake in Paul Charlton’s docs. Logical operation must be set in register R6 instead of R4

2) XOP six,0 (low level video), opcode >10 (set vector color) For logic operation must be used the least significant byte of R6, instead of the most significant.

3) XOP six,0 (low level vide), opcode >0D (set color pallette) Register R2 must be loaded with RED, GREEN, and BLUE colors. The right format is: R2: XXXX XGGG XBBB XRRR, MDOS doesn’t care for values placed in X

4) XOP six,0 (low level video), opcode >1A (sprite def): R1 is a pointer to sprite data table. The table must have the following format: Sprite #, Pattern #, X position, Y position, X speed, Y speed, color

Each data is one word long, while color is one word long if you use Sprite type 1 (as in TI 99/4A) , or 16 word long for Sprite type 2. In the last mode, you can have a different color every row. If you need to define more than one sprite, you must create a table in which first block of data is first sprite, following block for second sprite and so on.

BLINKING

MDOS does not have direct access to blinking, therefore you have to access VDP registers R10, R12, and R13 (perform XOP six,0 opcode >35): as result, you obtain garbage on your screen. This is due to a bug in MDOS, because programmer forgot to clear Color Table. If you want use blinking under MDOS, you must clear at first color table and then set values in VDP registers. To clear color table, you can use a VSBW modified for Geneve. Don’t use VWTR to write into VDP registers because MDOS keeps track of values written into VDP registers.

(Editor’s Note: Massimo has elsewhere on this disk, several demo’s with source code for access and implementation of these routines).

From your Editor, Beery Miller

1) Usage of XOP eight,0 Opcode >0E. When formatting with the MDOS XOP, the skew and interlace bytes of the Pab are non functional and are reserved. Doubtful if we will ever see an implementation. Also, this XOP will format the disk, however, you still need to do a bwrite >0B and write sector 0 and 1 out to the newly formatted disk under your desired settings.

2) (Al Beard figured this out before myself, but I did not read his note until after I had figured it out myself too.) Usage of XOP nine,0 Opcode >09. When loading another task (for multitasking), MDOS 1.14 requires that the data be located in area of >0000 to >1FFF. MDOS 1.15 will supposedly permit >0000 to >EFFF range.

3) SYSTEM/SYS loads in as consecutive pages in memory beginning with page 0. The CLI (Command Line Interpreter) uses copies of Page >06, >02, >0B, >11 in that order from >0000 to >7FFF for it’s address space. (This information courtesy of Paul Charlton)

4) (This information also from Paul Charlton) The user interface of MDOS and GPL mode allow only DSK1..DSK9 for devices with a floppy-disk directory structure. MDOS has internal drive numbers from >01 to >17 which represent the default drive assignments in MDOS 1.15. (not valid for MDOS 0.95H) They are :

1,2,3,4                  Myarc, TI, Cor Comp drives 1-4
5                        Internal Ramdisk
6                        Horizons at >1400
7                        Horizons at >1600
8                        Rave Memory board
9                        HFDC emulate drive
10,11,12,13              HFDC card drives 1-4
14.....23                Reserved for external DSRs

1...4:<drive 1...4 at cru >1100>
5:5  6:6  7:7  8:10  9:9

This brings us to the end of this section for this issue of “9640 News”. If you have learned or discovered something unique about the Geneve, feel free to write to me and pass the information along for everyone to learn from.

X80DOC


Befehle von X80, preliminary beta test, 22.2.89 :

Alle Befehle werden mit Call LINK aufgerufen. Wenn Parameter fehlen wird
der Standardwert eingesetzt :HPos 26,VPos 1, Size 80-VPos, Alle Zeichen
erlaubt, Eingabebeginn bei 1 usw.

MODE80 schaltet in 80Z Mode ohne Schirm zu l|schen
CLS80  dito, aber mit l|schen
MODE32 schaltet zur}ck
SCREEN,Schrift,Hintergrund   w{hlt Farbe
FLASH,Schrift, Farbe  w{hlt Blinkfarbe
FLTIME,Invtime,Normtime gibt die jeweilige Zeitdauer (0-15) der jeweiligen
Darsetllung im Blinkmodus an
BLINK[,Up,Left,Down,Right[,An]] setzt wenn An<>0 Blinken im definierten
Rechteck
CLEAR l|scht Bildschirm und Blinken
DSPLAY[,HPos[,VPos[,Size]]],String   gibt den String aus. Ohne Size wird
die gesamte Zeile bis zum Ende gel|scht. Mit Size wird nur der angegebene
Bereicxh gel|scht. Size 0 ersetzt automatisch die Stringl{nge
ACCEPT[,HPos[,VPos[,Size[,Validate$[,Startpos]]]]],A$) erlaubt Eingabe des
Strings A$. Validate$ ist ein String, der alle erlaubten Zeichen enthalten
mu~. Ist er leer, so wird alles erlaubt. Startpos setzte den Cursor zu
Beginn auf das spezifizierte Feld der Eingabemaske. Ohne Size nur Eingabe
bis Zeilenende. Bei negativer Size bleibt die Bildschirmdarstellung
erhalten.
Folgende Tastenfunktionen existieren: F1 DEL, F2 INS, F3 Erase, F5 Beginn/
F6 Ender der Maske, TAB +8 Pos, SHFT-TAB -8 Pos, Cursortasten
rechts/links. Eingabe wird beendet mit F4, F7,F9,Enter, Cursor Up/Down.
Die Dabei verwendete Taste wird im TeRMCHaR Byte der Patch-Area
abgespeichert.  Siehe auch Geneve-Basic Manual zu TERMCHAR.
PAT1AR,A  belegt A mit dem Wert f}r PAT1AR , der Patch-Area:

MPTYCH EQU ' '           Fuellzeichen
PAT1AR B    @PATGET      (intern)
BANKAD BYTE 0            (intern)
TRMCHR BYTE 0            TERMCHAR
MODEAZ DATA 0            Mode FFFF=80Z
DELTIM DATA LONGDL       Delay-Dauer (intern)
SCOL   BYTE >F4          Bildschirm Farben
BCOL   BYTE >4F          Blink-       "
BLITI  BYTE >F0          Blinkdauer
FILCHR BYTE MPTYCH
VERSIO BYTE >09          Versionsnummer: 0.9
       EVEN

Durch ab{ndern des FILCHR Bytes, kann ein anderes Zeichen als Eingabemaske
verwandt werden.
SCROLL[,Anzahl] Scrollt nach oben
DWNSCR[,Anzahl] dito nach unten
HCHAR und VCHAR wie bei TI


Als Beispiel siehe den File DEMO.

Alexander Hulpke