home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 17 / amigaformatcd17.iso / -in_the_mag- / emulation / flex / readme < prev    next >
Text File  |  1997-07-01  |  26KB  |  601 lines

  1.               ReadMe for the Amiga FLEX Emulation System
  2. ---------------------------------------------------------------------
  3.                      Revision: 1.0 - March 25th, 1994
  4.                      Revision: 1.1 - March 26th, 1994
  5.                        Author: Ben Williams
  6. ---------------------------------------------------------------------
  7.         Many Thanks To:    Pete Gerardi - KE4TP
  8.                            Tim Heffield - N4IFP
  9.                            Bob Phillips @ GIMIX Corporation, Chicago
  10.                            Frank Hogg   @ Frank Hogg Laboratories
  11. ---------------------------------------------------------------------
  12.  
  13.                                Overview
  14.                              ============
  15.  
  16. What is it?
  17. -----------
  18. This is a complete emulation of a 6809 processor based FLEX system.
  19. Flex is a disk operating system (DOS) which, along with CP/M and a few
  20. others, truly pioneered small "personal" computers.
  21.  
  22.  
  23. Feature List
  24. ------------
  25.     + Extremely stable - no known problems or bugs whatsoever
  26.     + Supports up to four virtual disks, fully cached
  27.     + Virtual disks from 85k to 16 megabytes
  28.     + Amiga-based disk maintainance utilities
  29.     + Printer support via Flex "P" command via Amiga prefs printer
  30.     + Flex system time, date set from Amiga clock on startup
  31.     + 2 editors, BASIC, assembler, disassembler, utiltiies, much more
  32.     + Amiga-based startup script automates logging virtual disks on
  33.     + Amiga environment is custom screen - terminal look-alike - deja vu!
  34.     + Abortable so system problems cannot harm virtual disks
  35.     + Well documented (assuming you know how to use flex, that is)
  36.     + Memory efficient operation (but watch those disk sizes!)
  37.     + Full-boat 63k RAM 6809 virtual machine, plus 2k virtual ROM
  38.     + ACIA Serial port emulation @ $E004/$E005 & $E002/$E003
  39.     + Complete 6809 instruction set emulation (except "HALT")
  40.     + Emulates SOROC IQ-120 terminal (so screen editor can work)
  41.     + Runs at about 1 mhz 6809 equivalent on 25 mhz 68040 Amiga a4000
  42.     + PSYMON machine code monitor runs on "Mon" command
  43.     + PSYMON source code included on virtual disk
  44.     + Completely isolated from Amiga, totally safe for experimenting
  45.  
  46. Distribution
  47. ------------
  48. You'll find these files in the emulator archive:
  49.  
  50.         flex - The emulator itself
  51.     flex.bin - 6809 Flex DOS, PSYMON low level machine code monitor
  52.  
  53.          mad - "Make A Disk" virtual disk creator & formatter
  54.         fdir - Displays directories of Flex virtual disks from AmigaDOS
  55.       inject - Transfers files AmigaDOS->Flex, under AmigaDOS
  56.      distill - Transfers files Flex->AmigaDOS, under AmigaDOS
  57.  unpush.rexx - Utility for transferring files from "real" flex systems
  58.  
  59.       drive0 - Virtual system disk for Flex
  60.       drive1 - Virtual work disk for Flex
  61.  
  62.  startup.txt - Flex startup commands (NOTE: resides under AmigaDOS!)
  63.       readme - This file
  64.  
  65. This software provides emulation of all instructions with the
  66. exception of "HALT".  The virtual computer which the emulator creates
  67. has 64k of memory, 2k of which is "ROM", or read-only.  There is also
  68. a low-level "monitor"; this is called "PSYMON". It originally came
  69. from Percom corporation.
  70.  
  71. The software provides character I/O via emulation of a Motorola 6850
  72. ACIA chip located at addresses $E008 and $E009, and aliased at $E004 &
  73. $E005. It provides Disk I/O via emulation of a powerful DMA disk
  74. controller that lets the Amiga do 99% of the work using the 68xxx
  75. processor directly, which means that disk I/O is considerably faster
  76. under the emulation than it was for any concievable 6809 system.
  77. Unfortunately, this is pretty well hidden by the enormous amount of
  78. work that the emulation itself must do unless you have a very fast
  79. processor such as a 68040.  Printer support is likewise handled by the
  80. Amiga's processor directly as a DMA operation. Under Flex, you just
  81. use the "P" command as you usually would.
  82.  
  83. Where are they now?
  84. -------------------
  85. TSC is out of business, its principals scattered, and the source code
  86. for the operating system lost.  I was also unable to locate Percom;
  87. perhaps they too have gone out of business - but I've not been able to
  88. confirm this. The number of Flex systems in use today is probably
  89. none, or certainly a very small number.  Other companies that were
  90. involved in Flex-based computers are still around (such as GIMIX &
  91. Frank Hogg Laboratories) but they understandably have moved on to
  92. other projects.  I contacted both companies I just mentioned, and
  93. while the principals were very helpful, no commercial activity takes
  94. place with regard to Flex any longer.
  95.  
  96. So why do this?
  97. ---------------
  98. There are several reasons.
  99.  
  100. First, I personally have a great deal of interesting 6809 source code
  101. around from the time of my life when I was designing 6809 based arcade
  102. games, and I wanted to be able to experiment with that code.
  103.  
  104. Second, although I was able to get an SS-50 based machine up and
  105. running Flex, I have a serious concern that if the hardware fails, I
  106. might be unable to get it running again due to a lack of available
  107. parts. The Amiga has a longer likely lifespan. I think. Somewhat.
  108. My next task in this project is to port the whole thing to Windows,
  109. but that's quite a ways out in the future at this point.
  110.  
  111. Third, the emulation itself makes available a very powerful "small"
  112. computer system inside the Amiga which is actually a very nice, very
  113. safe environment for playing around with assembly language
  114. programming. You can't hurt the Amiga at all no matter how bad a
  115. mistake you make within the emulation, and as a computer, the 6809
  116. sports extremely powerful addressing modes, a decent register set, and
  117. a solid instruction set which make experimenting with it very
  118. enjoyable. Since the disks are cached in the Amiga's memory, even if
  119. you foul up the disks, you can still abort the emulator and you're
  120. 100% safe.
  121.  
  122. Finally, it was a challenge to write the emulation and get it all
  123. working, one which provided me with a great deal of personal
  124. satisfaction.
  125.  
  126. The results - the complete emulation - appear to me to clearly have
  127. absolutely no commercial value, and although all the companies that
  128. produced the software which run within the emulation are long gone, I
  129. am extremely uncomfortable with the idea of selling something that
  130. contains, and depends upon, commercial work that they did long ago.
  131. The alternative is to have Flex fade away into the past, forgotten,
  132. which would be a damn shame - Flex was an important part of the
  133. computer revolution!  For these reasons the entire project is
  134. freeware. I hope that this project will bring some enjoyment to
  135. someone, somewhere. It certainly has done so for me!
  136.  
  137. Documentation for Flex DOS
  138. --------------------------
  139. Here are some very basic docs for the Flex commands:
  140.  
  141. <> = REQUIRED    [] = OPTIONAL
  142.  
  143. H = HEXADECIMAL NUMBER DIGIT
  144. D = DECIMAL NUMBER DIGIT
  145.  
  146. FILESPEC = [drivenumber]<filename>[extension]
  147. examples:  0.COPY.CMD
  148.            COPY
  149.            COPY.CMD
  150.            0.COPY
  151.  
  152. DRIVESPEC = [DRIVENUMBER]
  153. examples:   0
  154.             1
  155.             2
  156.  
  157. MATCHLIST = [PARTIAL FILENAME][EXTENSION]
  158. examples:   C
  159.             C.CMD
  160.             CO
  161.             CO.CMD
  162.             COPY.CMD
  163.  
  164. DRIVELIST = <DRIVENUMBER> [DRIVENUMBER] [DRIVENUMBER]...
  165. examples:   0
  166.             0 2
  167.             0 1 3
  168.             0 1 2 3
  169.  
  170. Flex Command List
  171. -----------------
  172.   APPEND <FILESPEC> <FILELIST> <FILESPEC>
  173.     ASMB <FILESPEC> [FILESPEC] (you need to know 6809 Assembly Language)
  174.      ASN [W=DRIVENUMBER] [S=DRIVENUMBER]
  175.    BASIC (complete extended basic interpreter, with online help via HELP)
  176.    BUILD <FILESPEC>
  177.      CAT <DRIVELIST> <MATCHLIST>
  178.    CHECK <DRIVE>
  179.     COPY <FILESPEC> <FILESPEC>
  180.     COPY <FILESPEC> <DRIVE>
  181.     COPY <DRIVE> <DRIVE> [MATCHLIST]
  182.    DASMB (help is available inside the dissasembler... press ?)
  183.     DATE [MM-DD-YY]
  184.    DEBUG (no help available... good luck - I have NO idea how this works!)
  185.   DELETE <FILESPEC> [FILELIST]
  186.      DIR [+P] [DRIVELIST] [MATCHLIST]
  187.   DISKEX (no parameters... commands are:
  188.             ^ - Scroll forward through current sector
  189.             A - New track & sector to process
  190.             C [HH]- Change data in sector
  191.             D - New disk to process
  192.             F - Forward link to next sector (using link in sector)
  193.             N - Next Sector
  194.             P - Previous Sector
  195.             S - Scroll Value
  196.             W - Write sector back to disk (BE CAREFUL!!!!)
  197.             X - Exit to Flex)
  198.     DUMP <FILESPEC>
  199.     ECHO <TEXTSTRING>
  200.     EDIT [FILENAME] (fully WYSIWYG text editor... an amazing tool)
  201.               - Menu driven; press control-A for help in edit mode.
  202.       EX <FILESPEC>
  203.   EXTEND <DRIVESPEC> <SECTORS>
  204.    FILES <DRIVESPEC> [MATCHLIST]
  205. FILESORT (file cataloging utility by Brian Bailey)
  206.     FREE <DRIVESPEC>
  207.  FREEMAP <DRIVESPEC>
  208.    HECHO <HH> [HH] [HH] [HH]...
  209.     HELP [COMMAND] (online help system uses .DIR files)
  210.        I <FILESPEC> <flex command...> (takes input from file, not console)
  211.     JUMP <HHHH>
  212.    LEDIT <FILESPEC> (line based text editor... basic commands include:
  213.             [dd]  - New current line number
  214.             C"ORIGTEXT"NEWTEXT" - change text in line (any delimiter works)
  215.             P[DD] - Display from current line, DD lines
  216.             P!    - Display from current line to end
  217.         [DD]P[dd] - Display from DD, dd lines
  218.             I[DD] - Insert at line DD (#<return> to exit insert mode)
  219.             REN   - Renumber all lines
  220.             S     - Save file and exit)
  221.     LIST <FILESPEC>
  222.      MAP <FILESPEC>
  223.    MEMEX (no parameters... commands are:
  224.             A <HHHH> - New address
  225.             C <HHHH> - Change data at address
  226.             S <HH> - Set new scroll value
  227.             X - Exit to Flex)
  228.        N <flex command> (answers all questions with N)
  229.     NAME <DISKNAME>
  230.        P <flex command> (directs output to AmigaDOS printer)
  231.    PCOPY <DRIVESPEC> <DRIVESPEC>
  232.     PDEL <DRIVESPEC>
  233.  PROTECT <FILESPEC> [D][W][C][X]
  234.     PUSH <FILESPEC>
  235.   RENAME <FILESPEC> <FILESPEC>
  236.  REORDER <DRIVESPEC>
  237.      RUN <FILESPEC>
  238.     SAVE <HHHH 0000-BFFF> <HHHH 0000-BFFF>
  239. SAVE.LOW <HHHH C000-FFFF> <HHHH C000-FFFF>
  240.   SLEUTH (help is available inside the dissasembler... press ?)
  241.    SPLIT <FILESPEC>
  242.   TTYSET [BS=HH] [BE=HH] [DL=HH] [EL=HH] [DP=DD]
  243.   TTYSET [WD=DD] [NL=DD] [TB=HH] [EJ=DD] [PS=Y|N]
  244.   TTYSET [ES=HH]
  245.   UPDATE <FILESPEC>
  246.   VERIFY [ON] [OFF]
  247.  WIDECAT <DRIVESPEC>
  248.     XOUT <DRIVESPEC>
  249.        Y <flex command> (answers all questions with Y)
  250.     YEAR <YY>
  251.  
  252.  STYHLP1 (help file for STYLUS/EDIT)
  253.  STYHLP2 (help file for STYLUS/EDIT)
  254.  STYHLP3 (help file for STYLUS/EDIT)
  255.  STYHLP4 (help file for STYLUS/EDIT)
  256.  STYHLP5 (help file for STYLUS/EDIT)
  257.  STYHLP6 (help file for STYLUS/EDIT)
  258.  PRINT.SYS (for printer driver)
  259.  HELPFILE.DIR (help for Flex commands, via HELP command)
  260.  BASIC.DIR    (help for BASIC, via HELP command)
  261.  EXAMPLE.DIR  (shows you how to write your own help databases)
  262.  
  263. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  264.  
  265.                              How it works
  266.                          ===================
  267.  
  268. Startup
  269. -------
  270. 1 - After extraction, copy all files to a subdirectory, extract them
  271.     there in the first place. I suggest you make a directory for this
  272.     application... there are enough files in here that it's probably
  273.     best if you don't mix them up with other applications.
  274.  
  275. 2 - Open a NEW shell (Really! Don't use your usual shell!)
  276.  
  277. 3 - In that shell, CD to the location where the files now reside
  278.  
  279. 4 - type:              ChangeTaskPri -1<return>
  280.  
  281. 5 - type:              run flex<return>
  282.  
  283. When the emulation starts, PSYMON and Flex are loaded into emulator
  284. memory and initialized. An external text startup file is used
  285. (startup.txt, from the same directory as the emulator and its other
  286. files) to supply an initial set of commands to Flex in order to get
  287. things the rest of the way up and running.  You'll see the following
  288. when the emulator starts:
  289.  
  290.     +++LOGIN DRIVE0 0
  291.     +++LOGIN DRIVE1 1
  292.     +++DATE
  293.     <current date is printed>
  294.  
  295. These commands come from the "startup.txt" file which is an AmigaDOS
  296. file. Do not change this file until you completely understand what's
  297. going on with the LOGIN commands. These are new to Flex! See the next
  298. section for details.
  299.  
  300. Virtual Disks & Virtual Disk Drives
  301. -----------------------------------
  302. Because the emulation uses virtual disks (these are the "drive0" and
  303. "drive1" files) you need a way inside Flex to "change" disks. There
  304. are two new built in commands within this version of Flex to do this:
  305. "login" and "logout". To put a disk in a virtual drive, you use
  306. "login". To remove a disk from a drive you use logout. The syntax for
  307. these commands is as follows:
  308.  
  309.     login <AmigaDOSFileName> <FlexDriveNumber>
  310.     logout <FlexDriveNumber>
  311.  
  312. When logging in a new disk, any disk that was previously in that drive
  313. is logged out automatically.
  314.  
  315. When you exit the emulator, all virtual disks are logged out
  316. automatically.
  317.  
  318. Creating Virtual Disks
  319. ----------------------
  320. You may notice that there is no "format" or "newdisk" command on the
  321. Flex disks. This is because the disks are created outside of Flex,
  322. under AmigaDOS. This is natural because AmigaDOS is the home of the
  323. virtual disk files, not Flex.  The Disk formatting utility command MAD
  324. (Make A Disk) is provided and has the following parameters:
  325.  
  326.     <required> [optional]
  327.     ---------------------
  328.     MAD <AmigaFileName> <FlexDiskName> <FlexDiskNumber> <Tracks> <Sectors>
  329.  
  330. AmigaFileName is the name that will be given to the virtual disk under
  331. AmigaDOS. FlexDiskName is the name that will be given to the virtual
  332. disk under Flex. FlexDiskNumber is the volume number under Flex.
  333. Tracks is the number of tracks that the disk will have; sectors is the
  334. number of sectors per track the disk will have. These two parameters
  335. together determine the size of the disk in the following manner:
  336.  
  337.     (tracks - 1) X sectors X 252 = User Data Bytes On Disk
  338.  
  339. Standard disk sizes under Flex were 35, 40 or 80 tracks, with 10, 20
  340. or 40 sectors per track. This table shows you how much room these
  341. standard sizes provided:
  342.  
  343.     Tracks  Sectors  Bytes        Drive Type
  344.     ----------------------------------------------------------
  345.     35      10        85,680      Single Sided, Single Density
  346.     35      20       171,360      Single Sided, Double Density
  347.     35      20       171,360      Double Sided, Single Density
  348.     35      40       342,720      Double Sided, Double Density
  349.  
  350.     40      10        98,280      Single Sided, Single Density
  351.     40      20       196,560      Single Sided, Double Density
  352.     40      20       196,560      Double Sided, Single Density
  353.     40      40       393,120      Double Sided, Double Density
  354.  
  355.     80      10       199,080      Single Sided, Single Density
  356.     80      20       398,160      Single Sided, Double Density
  357.     80      20       398,160      Double Sided, Single Density
  358.     80      40       796,320      Double Sided, Double Density
  359.  
  360. The track that is not counted in these calcuations is used in all
  361. formats to hold the directory of files for the disk. In unusual cases,
  362. there may be enough files on a disk to require more directory space
  363. than the first reserved track; in that case, Flex will automatically
  364. add sectors to the directory from the currently unused data sectors.
  365. Alternatively, there is a utility provided called "extend" which will
  366. reserve a block of sectors if you know ahead of time that you will be
  367. placing an unusually large number of files on a disk. Extending a
  368. directory this way makes the directory searches run faster on a floppy
  369. system; within this emulated system, the file I/o is not noticably
  370. affected by fragmentation.
  371.  
  372. "Normal" Disks
  373. --------------
  374. The MAD utility can create disks with any reasonable format; and the
  375. emulator's disk drivers for Flex can read any disk MAD is willing to
  376. create regardless of the format. For the reason that more simplistic
  377. Flex utilities may expect certain sizes, unless you have a particular
  378. need for an unusual size, we suggest that you stick with one of the
  379. standard sizes from the table above.
  380.  
  381. Large Disks
  382. -----------
  383. Using the MAD utility, you can create disks with up to 255 tracks and
  384. 255 sectors. This is about 16 megabytes. Remember that the disk files
  385. actually take up that much space - so don't do this just for fun. But
  386. if you're doing something that needs lots of disk space, you can do it.
  387.  
  388. Multiple Virtual Disks
  389. ----------------------
  390. Flex was pretty much designed for systems with a minimum of two floppy
  391. drives. There are no well thought out facilities for copying files
  392. using only one drive, for example. That's why the emulator is
  393. configured to start with two drives. If you like, you can add up to
  394. two more drives (drives 2 and 3) using the LOGIN command. Drive sizes
  395. may be mixed and matched in any way, keeping in mind of course that
  396. when you're copying from one disk to another, the target disk needs to
  397. have enough room to hold everything you're copying... Also, each disk
  398. that you log in takes up as much of your ram as it has bytes; so
  399. unless you have scads of memory (hey, I do... doesn't everyone?)
  400. you'll want to be thoughtful about how many disk you keep on line at
  401. once.
  402.  
  403. Exiting the Emulator
  404. --------------------
  405. Using the right mouse button, menu options are available to either
  406. abort, or to exit gracefully, which saves all changes made to the
  407. disks. WARNING: If you abort, any changes made to the disks since
  408. you started the emulator are LOST.
  409.  
  410. The Emulator Runs all the time
  411. ------------------------------
  412. Because of the way that Flex was written, there is no effective way to
  413. put the emulator to "sleep" while it is waiting for a character.
  414. Several issues prevent this; for instance, Flex has print spooling,
  415. and in order for that to work, the emulated CPU needs to run while
  416. polling the ACIA so it can handle interrupts and so forth.  This poses
  417. a problem for Amiga users, in that the emulator task slows everything
  418. else down quite a bit if it is run at normal Amiga priority (0).
  419.  
  420. To get around this, when starting the program open a new shell just
  421. for the emulator, and type the following command into that new shell
  422. before you run the emulator itself:
  423.  
  424.     ChangeTaskPri -1
  425.  
  426. When you run the emulator after this command, it will stop processing
  427. whenever any other program in the Amiga needs the Amiga's processor.
  428. As long as no other program runs all the time, this will work very
  429. well.
  430.  
  431. Printer Support
  432. ---------------
  433. Flex supports printing via the "P" command prefix. For instance, if
  434. you type:
  435.  
  436.     LIST FILENAME
  437.  
  438. The file is listed to the monitor. If you type:
  439.  
  440.     P LIST FILENAME
  441.  
  442. Then the file is sent to the printer. This version of Flex drives the
  443. Amiga's printer (via PRT: and the emulation software) and so you can
  444. make use of the Amiga printer control codes if you need to.
  445.  
  446. Obtaining Listings of Files inside Virtual Flex Disks
  447. -----------------------------------------------------
  448. When you are working under AmigaDOS, the command "fdir" will provide
  449. you with a listing of the files contained in a virtual Flex disk.
  450. Syntax is as follows:
  451.  
  452.     <required> [optional]
  453.     ---------------------
  454.     fdir <DiskName>
  455.  
  456. Copying files into Flex Virtual Disks from AmigaDOS
  457. ---------------------------------------------------
  458. We have supplied the utility command "inject". Inject has the
  459. following parameters:
  460.  
  461.     <required> [optional]
  462.     ---------------------
  463.     inject <SourceName> <DiskName> <DestName> [T]
  464.  
  465. SourceName is the filename of the file to be injected under AmigaDOS,
  466. DiskName is the name of the Virtual Disk file under AmigaDOS, and
  467. DestName is the filename of the file to be created in the virtual disk
  468. under Flex. The optional T parameter deals with text translation,
  469. discussed next.
  470.  
  471. Note that text files under Flex use the Carriage Return character as
  472. an end of line marker, while text files under AmigaDOS use the Line
  473. Feed as an end of line marker. If you supply the "T" parameter to the
  474. inject command, Line Feeds are translated into Carriage Returns
  475. automatically as the file is transferred to the virtual Flex disk.
  476. Otherwise, you will have to change the characters yourself. If you're
  477. transferring a binary file, you should never use the T parameter.
  478.  
  479. The inject command will not allow you to copy a file into a Flex
  480. virtual disk if that filename already exists within the directory of
  481. the virtual disk. You have two choices of remedy when this occurs: use
  482. inject with a different target filename, or execute the emulator and
  483. delete the previously existing file.
  484.  
  485. Obtaining files from a "real" Flex System
  486. -----------------------------------------
  487. This is difficult because it requires some kind of command over on the
  488. Flex system itself. We provide an ARexx script called "UnPush.rexx"
  489. which is designed to deal with the output of a Flex command called
  490. "PUSH" (which you will find on the drive0 virtual disk as PUSH.CMD and
  491. on the drive1 virtual disk as PUSH.TXT, which is the 6809 assembly
  492. source code). PUSH takes any Flex file and send it to the console
  493. terminal as a series of well formatted HEX numbers. The correct
  494. procedure is to:
  495.  
  496.     1 - Use the Amiga as a serial terminal on the Flex system;
  497.     2 - "Capture" the output of the PUSH command as it's filename;
  498.     3 - Edit the Capture file to remove any extraneous information
  499.         such as the +++ prompt, unrelated commands, blank lines, and so on;
  500.     4 - Use the UnPush script to turn the captured data back into binary as:
  501.                 rx unpush filename drivename
  502.         * (note that unpush uses the inject utility we supply)
  503.  
  504. The problem here is that the PUSH.CMD file must exist over on the flex
  505. system. So you will need to copy the PUSH.TXT file into your Flex
  506. machine and assemble it in order to transfer files. That's fairly easy
  507. to do as long as you have a 6809 assembler over there... open an
  508. editor and use a terminal program to send the text over.
  509.  
  510. Copying files from Flex Virtual Disks to AmigaDOS
  511. -------------------------------------------------
  512. We have supplied the utility command "distill". Distill has the
  513. following parameters:
  514.  
  515.     <required> [optional]
  516.     ---------------------
  517.     distill <SourceName> <DiskName> <DestName> [T]
  518.  
  519. Where SourceName is the filename of the file to be distilled under
  520. Flex, DiskName is the name of the Virtual Disk file under AmigaDOS,
  521. and DestName is the filename of the file to be created in the Amiga
  522. filesystem. The optional "T" parameter deals with text translation, as
  523. described above for the inject command.
  524.  
  525. Note: Flex compresses text files in a special way; the TAB character
  526.       (0x09) is used as a signal that the next byte in the file is a
  527.       count of compressed spaces. So, 0x09,0x04 means four spaces -
  528.       not the ASCII sequence, "TAB", "EOT". Distill will automatically
  529.       decompress files with a .TXT extension. The only time this could
  530.       cause problems is if a binary file had a .TXT extension, which
  531.       you should of course avoid.  This would also cause problems
  532.       within Flex. Text files also can contain NULL characters at the end;
  533.       the decompressor in distill will automatically remove these if you
  534.       use the T option. Otherwise, you have to deal with the space
  535.       compression and the final nulls.
  536.  
  537.  
  538. Questions or Ideas?
  539. -------------------
  540. Please write to me at Black Belt Systems if you have something to
  541. contribute to this project.
  542.  
  543. Bugs
  544. ----
  545. Bugs? There are no bugs in this software, whatever can you be thinking?
  546. Seriously, if you find anything (like an unusual 6809 instruction that
  547. isn't emulated properly), let me know and I'll fix it ASAP. I have a
  548. very strong interest in seeing the emulation run flawlessly.
  549.  
  550. Terminal I/O
  551. ------------
  552. The serial terminal output emulation simply uses the Amiga ANSI
  553. control codes, along with a minimal emulation of a SOROC IQ-140
  554. terminal. If you start any console sequences with 0x9B, they'll work
  555. fine; whereas the SOROC sequences all start with 0x1B. The SOROC
  556. emulation is provided specifically so that the STYLUS editor will work.
  557. Another change made to the emulator for STYLUS was the address
  558. "mirroring" of the ACIA to address $E004 & $E005, since STYLUS hits
  559. the ACIA directly in order to obtain max speed; although this is very
  560. bad coding practice, it was more or less understandable in the
  561. day this was written.
  562.  
  563. Here are the controls common to the SOROC and the Amiga Console:
  564.  
  565.     $08         - Backspace
  566.     $0A         - Line Feed
  567.     $0D         - Carrriage Return
  568.  
  569. Here are the controls unique to the SOROC I've implemented:
  570.  
  571.     $1E         - Home Up
  572.     $1B,E       - Insert Line
  573.     $1B,R       - Delete Line
  574.     $1B,T       - Erase EOL
  575.     $1B,t       - Erase EOL
  576.     $1B,*       - Home Up & Erase EOF
  577.     $1B,Y       - Erase EOF
  578.     $1B,y       - Erase EOF
  579.     $1B,(       - Set Write BLUE
  580.     $1B,)       - Set Write GREEN
  581.     $1B,=,yy,xx - Write Cursor Position ("xx" & "yy" are 0x20 + cursorvalue)
  582.  
  583. Changes from Version 1.0
  584. ------------------------
  585. v1r1, March 26th, 1994
  586.     - Emulation runs about 2x as fast as v1r0
  587.     - Disks are now kept in memory, rewritten ONLY if you change them
  588.     - Critical (for Stylus) Soroc IQ140 terminal emulation operating
  589.     - Distribution includes Stylus ("EDIT") and help files
  590.     - Distribution includes RENAME command (left out by mistake in 1.0)
  591.     - Distribution includes Excellent "SLEUTH" dissasember
  592.     - Distribution includes HELP.CMD and helpfiles (.DIR files)
  593.     - Distribution includes FILESORT command by Brian Bailey
  594.     - Distribution includes PUSH command (left out by mistake in 1.0)
  595.     - Distribution includes UPDATE command
  596.     - Distribution includes BASIC command (helpfile, too!)
  597.     - Distribution includes FREEMAP command
  598.     - EDIT command (line editor) renamed to LEDIT
  599.  
  600.   ---------------------------- End of Document ---------------------
  601.