home *** CD-ROM | disk | FTP | other *** search
/ The Best of Windows 95.com 1996 September / WIN95_09964.iso / shelmisc / r133flex.zip / README.TXT < prev    next >
Text File  |  1996-05-31  |  35KB  |  763 lines

  1.                         Win95 FLEX Emulation System
  2.                Written by Ben Williams, ars:AA7AS, ex-N4EJI
  3. ---------------------------------------------------------------------
  4. EMAIL: bwilliams@blackbelt.com
  5.   WEB: http://www.blackbelt.com/blackbelt/bx_top.html
  6.   FTP: ftp.blackbelt.com/corporate/blackbelt/
  7. ---------------------------------------------------------------------
  8.            Revision:    1.33 - May 31st, 1996 (Win95)
  9.        (See changes list at end of document for more history)
  10. ---------------------------------------------------------------------
  11.   Many, many Thanks To:    Pete Gerardi - ars:KE4TP, ex-WB4YQK
  12.                            Tim Heffield - ars:N4IFP
  13.                            Bob Phillips @ GIMIX Corporation, Chicago
  14.                            Frank Hogg   @ Frank Hogg Laboratories
  15. ---------------------------------------------------------------------
  16.  
  17.                                Overview
  18.                              ============
  19.  
  20. What is this?
  21. -------------
  22. The package is a complete emulation of a 6809 processor based system,
  23. running the TSC Flex operating system over the Percom PSYMON monitor "ROM"
  24. with a useful command extension set. It runs under Win95. On a modern PC
  25. (Pentium, 60 mhz or better) the emulator is faster than the original
  26. computer system was.
  27.  
  28. The 6809 is a 64k memory capable microprocessor with a decent register set
  29. and a very strong instruction set for an 8-bit microprocessor of its day.
  30. Motorola was the source of the design of the 6809; it was derived,
  31. somewhat loosely, from the 6800 and offered source code compatibility for
  32. the most part. The next step beyond the 6809 was the 68000 series.
  33.  
  34. Flex is a small (4k!) disk operating system (DOS) which, along with CP/M and
  35. a few others, truly pioneered small "personal" computers. These were the
  36. systems that were in place when Apple Computer started in a garage.
  37.  
  38. PSYMON is a "system monitor" that nominally is 1k; in this emulator, there
  39. is an additional 1k rom extension which I create that provides some additional
  40. capabilities to the monitor.
  41.  
  42. By "complete", I mean that I've provided...
  43.  
  44.   * A very comprehensive emulation of the original computer system.
  45.   * All the commands and utilities you'd need to do real work.
  46.   * Extremely high accuracy of emulation.
  47.   * Usable speed
  48.  
  49. If you ran Flex in the past, you'll likely experience a strong sense of
  50. nostalgia within seconds after starting the software. Welcome to the club!
  51.  
  52. Feature List
  53. ------------
  54.     + Extremely stable and reliable
  55.     + Includes useful set of Flex commands and utiltiies
  56.     + Supports up to four virtual disks, fully cached
  57.     + Virtual disk sizes from 85k to 16 megabytes supported
  58.     + Complete set of Host-based virtual disk maintainance utilities
  59.     + Printer support via Flex "P" command via Host printer
  60.     + Flex system time, date set from Host clock on startup & once/minute
  61.     + 2 editors, BASIC, assembler, disassembler, utilities, much more
  62.     + Host-based startup script automates logging virtual disks on
  63.     + Host environment is custom terminal look-alike - deja vu!
  64.     + Abortable so system problems cannot harm virtual disks
  65.     + "Quit" and "Abort" Flex commands for exit from keyboard to Host
  66.     + "Flush" Flex command to write out virtual disks immediately
  67.     + 6809 "RESET" menu command to recover control if you have an "oops".
  68.     + Well documented (assuming you know how to use Flex, that is)
  69.     + Memory efficient operation (but watch those disk sizes!)
  70.     + Full-boat 63k RAM 6809 virtual machine, plus 2k virtual ROM
  71.     + ACIA Serial port emulation @ $E004/$E005 & "mirror" @ $E008/$E009
  72.     + Complete 6809 instruction set emulation (except "HALT")
  73.     + Emulates SOROC IQ-120 terminal (so screen editor can work)
  74.     + Runs at about 3.4 mhz 6809 equivalent on a 133 mhz Micron Pentium
  75.     + Traps on ALL illegal opcodes (they convert to SWI, $3F).
  76.     + PSYMON  monitor runs on "Mon" command or menu RESET command
  77.     + PSYMON source code included on virtual disk
  78.     + Completely isolated from host, totally safe for experimenting
  79.  
  80. Distribution
  81. ------------
  82. You'll find these files in the emulator archive:
  83.  
  84.     flex.exe - The emulator itself
  85.     flex.bin - 6809 Flex DOS, PSYMON low level machine code monitor
  86.  
  87.      mad.exe - "Make A Disk" virtual disk creator & formatter in Win95 shell
  88.     fdir.exe - Displays directories of Flex virtual disks in Win95 shell
  89.   inject.exe - Transfers files Host->Flex, in Win95 shell
  90.  distill.exe - Transfers files Flex->Host, in Win95 shell
  91.  
  92.        disk0 - Virtual system disk for Flex
  93.        disk1 - Virtual work disk for Flex
  94.  
  95.  startup.txt - Flex startup commands (NOTE: resides under Host OS!)
  96.   readme.txt - This file
  97.   readme.doc - Microsoft Word 6 format manual - ready to print
  98.  
  99. This software provides emulation of all 6809 official* instructions with the
  100. exception of "HALT".  The virtual computer which the emulator creates has
  101. 64k of memory, 2k of which is "ROM", or read-only.  There is also a
  102. low-level "monitor"; this is called "PSYMON". It originally came from Percom
  103. corporation.
  104.  
  105.     * There are some undocumented instructions that work, or
  106.       partially work, within some versions of the 6809 chips.
  107.       These are NOT supported in the emulator; Motorola, the
  108.       architects of the 6809, never supported or admitted to
  109.       these various operations. Software that depends on these
  110.       features will not function as intended. Also, Hitachi
  111.       created a chip called the "6309" which had some additional
  112.       functionality. This is not emulated at this time.
  113.  
  114. The software provides character I/O via emulation of a Motorola 6850 ACIA
  115. chip located at addresses $E008 and $E009, and aliased at $E004 & $E005. It
  116. provides Disk I/O via emulation of a powerful DMA disk controller that lets
  117. the Host do 99% of the work using the Host processor directly, which means
  118. that disk I/O is considerably faster under the emulation than it was for any
  119. conceivable 6809 system. Unfortunately, this is pretty well hidden by the
  120. enormous amount of work that the emulation itself must do unless you have a
  121. very fast processor. Printer support is likewise handled by the Host
  122. processor directly as a DMA operation. Under Flex, you just use the "P"
  123. command as you usually would.
  124.  
  125. Where are they now?
  126. -------------------
  127. TSC is out of business, its principals scattered, and the source code for
  128. the operating system appears to be lost.  I was also unable to locate Percom;
  129. perhaps they too have gone out of business - but I've not been able to confirm
  130. this. The number of Flex systems in use today may be none, or certainly a very
  131. small number.  Other companies that were involved in Flex-based computers are
  132. still around (such as GIMIX & Frank Hogg Laboratories) but they
  133. understandably have moved on to other projects.  I contacted both companies
  134. I just mentioned, and while the principals were very helpful, no commercial
  135. activity takes place with regard to Flex any longer.
  136.  
  137. So why do this?
  138. ---------------
  139. There are several reasons.
  140.  
  141. First, I personally have a great deal of interesting 6809 source code around
  142. from the early 1980's when I was designing 6809 based arcade games, and I
  143. wanted to be able to experiment with that code.
  144.  
  145. Second, although I was able to get an SS-50 based machine up and running
  146. Flex, I had a serious concern that if the hardware fails, I might be unable
  147. to get it running again due to a lack of available parts. With this
  148. emulation, Flex has a new lease on life.
  149.  
  150. Third, the emulation itself makes available a very powerful "small" computer
  151. system inside the Host which is actually a very nice, very safe environment
  152. for playing around with assembly language programming. You can't hurt the
  153. Host at all no matter how bad a mistake you make within the emulation, and
  154. as a computer, the 6809 sports extremely powerful addressing modes, a decent
  155. register set, and a solid instruction set which makes experimenting with it
  156. very enjoyable. Since the disks are cached in the Host's memory, even if you
  157. foul up the disks, you can still abort the emulator and you're 100% safe.
  158.  
  159. Finally, it was a challenge to write, and then to port, the emulation and
  160. get it all working. Overall, it's been a task which provided me with a great
  161. deal of personal satisfaction.
  162.  
  163. The results - the complete emulation - appear to me to clearly have
  164. absolutely no commercial value, and although all the companies that produced
  165. the software which run within the emulation are long gone, I am extremely
  166. uncomfortable with the idea of selling something that contains, and depends
  167. upon, commercial work that they did long ago. The alternative is to have
  168. Flex fade away into the past, forgotten, which would be a shame - Flex was
  169. an important part of the computer revolution.  For these reasons the entire
  170. project is freeware. I hope that this project will bring some enjoyment to
  171. someone, somewhere. It certainly has done so for me!
  172.  
  173.                              How it works
  174.                          ===================
  175.  
  176. Startup
  177. -------
  178. 1 - After extraction, copy all files to a subdirectory, or extract them
  179.     there in the first place. I suggest you make a directory for this
  180.     application... there are enough files in here that it's probably
  181.     best if you don't mix them up with other applications.
  182.  
  183. 2 - Use Win95 to add the program "FLEX.EXE" to the Start button or
  184.     to a drawer, depending on how you prefer to use Win95. The Flex
  185.     emulator has its own distictive icon; it also has a small "+++"
  186.     icon which is visible in the title bar and when it is minimized.
  187.     When Win95 starts the emulator, either from a shortcut or from
  188.     the "real" icon, it passes the directory where the emulator is
  189.     located *to* the emulator, and that is where it will look for the
  190.     virtual disk files and the startup.txt file.
  191.  
  192. When the emulation starts, PSYMON and Flex are loaded into emulator memory
  193. from the current directory and initialized. An external text startup file is
  194. used (startup.txt, from the same directory as the emulator and its other
  195. files) to supply an initial set of commands to Flex in order to get things
  196. the rest of the way up and running. You'll see the following when the
  197. emulator starts:
  198.  
  199.     +++LOGIN DISK0 0                    (new built-in command)
  200.     +++LOGIN DISK1 1                    ("                  ")
  201.     +++DATE                             (command from DISK0  )
  202.     <current date is printed>
  203.  
  204. These commands are coming from the "startup.txt" file which is a Host OS
  205. file. Do not change this file until you completely understand what is going
  206. on with the LOGIN commands. These are new to Flex! See the next section for
  207. details.
  208.  
  209. Virtual Disks & Virtual Disk Drives
  210. -----------------------------------
  211. Because the emulation uses virtual disks (these are the "disk0" and
  212. "disk1" files) you need a way inside Flex to "change" disks. There are two
  213. new built in commands within this version of Flex to do this: "LOGIN" and
  214. "LOGOUT". To put a disk in a virtual drive, you use "LOGIN". To remove a
  215. disk from a drive you use "LOGOUT". The syntax for these commands is as
  216. follows:
  217.  
  218.     LOGIN <HostDiskFileName> <FlexDriveNumber>
  219.     LOGOUT <FlexDriveNumber>
  220.  
  221. When logging in a new disk, any disk that was previously in that drive is
  222. logged out automatically.
  223.  
  224. To save current changes to the virtual disks without exiting the emulator,
  225. execute the FLUSH command or the Flush menu selection.
  226.  
  227. When you exit the emulator via the QUIT command or Exit menu selection, all
  228. virtual disks are logged out automatically. When you exit the emulator via
  229. the ABORT command or the Abort menu selection, the changes you have made to
  230. the virtual disks during this emulator session, or since the last use of the
  231. FLUSH command or menu selection, are lost.
  232.  
  233. Creating Virtual Disks
  234. ----------------------
  235. You may notice that there is no "FORMAT" or "NEWDISK" command on the Flex
  236. disks. This is because the disks are created outside of Flex, under the Host
  237. OS. This is natural because the Host OS is the home of the virtual disk
  238. files, not Flex.  The Disk formatting utility command MAD (Make A Disk) is
  239. provided and has the following parameters:
  240.  
  241.     <required> [optional]
  242.     ---------------------
  243.     MAD <HostFileName> <FlexDiskName> <FlexDiskNumber> <Tracks> <Sectors>
  244.  
  245. HostFileName is the name that will be given to the virtual disk under the
  246. Host OS. FlexDiskName is the name that will be given to the virtual disk
  247. under Flex. FlexDiskNumber is the volume number under Flex. Tracks is the
  248. number of tracks that the disk will have; sectors is the number of sectors
  249. per track the disk will have. These two parameters together determine the
  250. size of the disk in the following manner:
  251.  
  252.     (TRACKS - 1) x SECTORS x 252 = User Data Bytes On Disk
  253.  
  254. Standard disk sizes under Flex were 35, 40 or 80 tracks, with 10, 20 or 40
  255. sectors per track. This table shows you how much room these standard sizes
  256. provided:
  257.  
  258.     Tracks  Sectors  Bytes        Drive Type
  259.     ----------------------------------------------------------
  260.     35      10        85,680      Single Sided, Single Density
  261.     35      20       171,360      Single Sided, Double Density
  262.     35      20       171,360      Double Sided, Single Density
  263.     35      40       342,720      Double Sided, Double Density
  264.  
  265.     40      10        98,280      Single Sided, Single Density
  266.     40      20       196,560      Single Sided, Double Density
  267.     40      20       196,560      Double Sided, Single Density
  268.     40      40       393,120      Double Sided, Double Density
  269.  
  270.     80      10       199,080      Single Sided, Single Density
  271.     80      20       398,160      Single Sided, Double Density
  272.     80      20       398,160      Double Sided, Single Density
  273.     80      40       796,320      Double Sided, Double Density
  274.  
  275. If you're paying attention, you may have noticed that the calculations shown
  276. here are "short" by one track.
  277.  
  278. The track that is not counted in these calcuations is used in all formats to
  279. hold the directory of files for the disk. In unusual cases, there may be
  280. enough files on a disk to require more directory space than the first
  281. reserved track; in that case, Flex will automatically add sectors to the
  282. directory from the currently unused data sectors. Alternatively, there is a
  283. utility provided called "extend" which will reserve a block of sectors if
  284. you know ahead of time that you will be placing an unusually large number of
  285. files on a disk. Extending a directory this way makes the directory searches
  286. run faster on a floppy system; within this emulated system, the file I/o is
  287. not noticably affected by fragmentation.
  288.  
  289. "Normal" Disks
  290. --------------
  291. The MAD utility can create disks with any reasonable format; and the
  292. emulator's disk drivers for Flex can read any disk MAD is willing to create
  293. regardless of the format. For the reason that more simplistic Flex utilities
  294. may expect certain sizes, unless you have a particular need for an unusual
  295. size, we suggest that you stick with one of the standard sizes from the
  296. table above.
  297.  
  298. Large Virtual Disks
  299. -------------------
  300. Using the MAD utility, you can create disks with up to 255 tracks and 255
  301. sectors. This is about 16 megabytes. Remember that the disk files actually
  302. take up that much space (unless the Host OS has disk compression) - so don't
  303. do this just for fun. But if you're doing something that needs lots of disk
  304. space, you can meet the challenge.
  305.  
  306. Multiple Virtual Disks
  307. ----------------------
  308. Flex was pretty much designed for systems with a minimum of two floppy
  309. drives. There are no well thought out facilities for copying files using
  310. only one drive, for example. That's why the emulator is configured to start
  311. with two drives. If you like, you can add up to two more drives (drives 2
  312. and 3) using the LOGIN command. Drive sizes may be mixed and matched in any
  313. way, keeping in mind of course that when you're copying from one disk to
  314. another, the target disk needs to have enough room to hold everything you're
  315. copying. Also, each disk that you log in takes up as much of your ram as
  316. it has bytes; so unless you have scads of memory (hey, I do... doesn't
  317. everyone?) you'll want to be thoughtful about how many disk you keep on line
  318. at once.
  319.  
  320. Exiting the Emulator and Backing up the VDisks
  321. ----------------------------------------------
  322.  
  323. Exit Gracefully:
  324. ================
  325. At the Flex command prompt, type "QUIT" (without the quotes) and press
  326. return; or select Exit from the File menu; or press the close button at the
  327. top right of the emulator window; or select Close from the System menu. Any
  328. of these actions result in a graceful exit.
  329.  
  330. Exit, Not so Gracefully:
  331. ========================
  332. At the Flex command prompt, type "ABORT" (without the quotes) and press
  333. return; or select Abort from the File menu. Either of these actions will
  334. exit the emulator and discard any changes made during this session, or since
  335. the last use of the FLUSH command or menu selection.
  336.  
  337. Backup the contents of the VDisks without exiting:
  338. ==================================================
  339. Type FLUSH at the Flex command line; or select Flush from the File menu.
  340. This will rewrite the virtual disks back to the Host OS immediately, if the
  341. disks have been changed. This is a very good thing to do when you're about
  342. to test something you don't have complete faith in.
  343.  
  344. Multitasking Issues
  345. -------------------
  346. Because of the way that Flex was written, there is no effective way to put
  347. the emulator to "sleep" while it is waiting for a character and guarantee
  348. that this is not debilitating a process.
  349.  
  350. Several issues prevent this; for instance, when the screen editor runs, it
  351. constantly checks the ACIA for input while redrawing the display. Putting
  352. the task to "sleep" until a character is input would stop the editor from
  353. functioning.
  354.  
  355. The Win95 version of the emulator does obey the Win95 "bible" for
  356. multitasking as a busy process; that means other software will share time
  357. equally with the emulator.
  358.  
  359. There is an option in the Execute menu called Suspend which tells the
  360. emulator to stop execution until the next time Win95 gives it a time slice,
  361. each time it checks to see if a character is ready, unless there actually is
  362. a character ready, in which case the emulator continues to process. This
  363. appears to be the best compromise between full-time execution and "sleep on
  364. wait for input" for the emulator. Using the Suspend option will not, in most
  365. cases, significantly affect the emulator. The default is on - the emulator
  366. will give up the thread when checking for a character and no character is
  367. input.
  368.  
  369. The way the Suspend mechanism is built ensures that each time Win95 gives the
  370. emulator a time slice, enough 6809 code will run to re-check for a character,
  371. ensuring immediate an response to the user.
  372.  
  373. Printer Support
  374. ---------------
  375. Flex supports printing via the "P" command prefix. For instance, if
  376. you type:
  377.  
  378.     LIST FILENAME
  379.  
  380. The file is listed to the monitor. If you type:
  381.  
  382.     P LIST FILENAME
  383.  
  384. Then the file is sent to the printer. This version of Flex drives the
  385. printer (via LPT1: and the emulation software).
  386.  
  387.     Postscript users PLEASE NOTE:
  388.     -----------------------------
  389.     Because of the limitations of the LPT1: output model
  390.     provided by Microsoft, Postscript printers will NOT work
  391.     with this emulation - the output to LPT1 goes DIRECTLY to
  392.     the printer, which proceeds to ignore it or misunderstand
  393.     it completely. You need a character-mode printer such as
  394.     an HP Laser or compatible in non-PS mode.
  395.  
  396. Obtaining Listings of Files inside Virtual Flex Disks
  397. -----------------------------------------------------
  398. When you are working under the Host OS's command shell, the command "FDIR"
  399. will provide you with a listing of the files contained in a virtual Flex
  400. disk. Syntax is as follows:
  401.  
  402.     <required> [optional]
  403.     ---------------------
  404.     FDIR <DiskName>
  405.  
  406. Copying files into Flex Virtual Disks from the Host OS
  407. ------------------------------------------------------
  408. We have supplied the utility command "INJECT". INJECT has the following
  409. parameters:
  410.  
  411.     <required> [optional]
  412.     ---------------------
  413.     INJECT <SourceName> <DiskName> <DestName> [T]
  414.  
  415. SourceName is the filename of the file to be injected under Host OS,
  416. DiskName is the name of the Virtual Disk file under the Host OS, and
  417. DestName is the filename of the file to be created in the virtual disk under
  418. Flex. The optional T parameter deals with text translation, discussed next.
  419.  
  420. Note that text files under Flex use the Carriage Return character as an end
  421. of line marker. If you supply the "T" parameter to the INJECT command, Line
  422. Feeds in incoming files are discarded as the file is transferred to the
  423. virtual Flex disk.  Otherwise, you will have to change the characters
  424. yourself. If you're transferring a binary file, you should never use the T
  425. parameter, or the file will be corrupted.
  426.  
  427. The INJECT command will not allow you to copy a file into a Flex virtual
  428. disk if that filename already exists within the directory of the virtual
  429. disk. You have two choices of remedy when this occurs: use INJECT with a
  430. different target filename, or execute the emulator and delete the previously
  431. existing file.
  432.  
  433. Obtaining files from a "real" Flex System
  434. -----------------------------------------
  435. This is difficult because it requires some kind of command over on the Flex
  436. system itself.
  437.  
  438. We provide a Flex command called "PUSH" (which you will find on the disk0
  439. virtual disk as PUSH.CMD and on the disk1 virtual disk as PUSH.TXT, which
  440. is the 6809 assembly source code). PUSH takes any Flex file and sends it to
  441. the console terminal as a series of well formatted HEX numbers. The correct
  442. procedure is to:
  443.  
  444.     1 - Use the Host as a serial terminal on the Flex system;
  445.     2 - "Capture" the output of the PUSH command as it's filename;
  446.     3 - Edit the Capture file to remove any extraneous information
  447.         such as the +++ prompt, unrelated commands, blank lines, and so on;
  448.     4 - Turn the captured data back into binary. Somehow.
  449.  
  450. The problem here is that the PUSH.CMD file must exist over on the flex
  451. system. So you will need to copy the PUSH.TXT file into your Flex machine
  452. and assemble it in order to transfer files. That's fairly easy to do as long
  453. as you have a 6809 assembler over there... it's short and sweet.
  454.  
  455. Copying files from Flex Virtual Disks to the Host OS
  456. ----------------------------------------------------
  457. We have supplied the utility command "DISTILL". DISTILL has the following
  458. parameters:
  459.  
  460.     <required> [optional]
  461.     ---------------------
  462.     DISTILL <SourceName> <DiskName> <DestName> [T]
  463.  
  464. Where SourceName is the filename of the file to be distilled under Flex,
  465. DiskName is the name of the Virtual Disk file under the Host OS, and
  466. DestName is the filename of the file to be created in the Host filesystem.
  467. The optional "T" parameter deals with text translation, as described above
  468. for the INJECT command.
  469.  
  470. Note: Flex compresses text files in a special way; the TAB character
  471.       (0x09) is used as a signal that the next byte in the file is a
  472.       count of compressed spaces. So, 0x09,0x04 means four spaces -
  473.       not the ASCII sequence, "TAB", "EOT". DISTILL will automatically
  474.       decompress files with a .TXT extension. The only time this could
  475.       cause problems is if a binary file had a .TXT extension, which
  476.       you should of course avoid.  This would also cause problems
  477.       within Flex. Text files also can contain NULL characters at the end;
  478.       the decompressor in DISTILL will automatically remove these if you
  479.       use the T option. Otherwise, you have to deal with the space
  480.       compression and the final nulls.
  481.  
  482.  
  483. Questions or Ideas?
  484. -------------------
  485. Please write to me if you feel have something to contribute to this project.
  486.  
  487. Here's how to contact me:
  488.  
  489. By Post:
  490.     Ben Williams
  491.     Black Belt Systems, Inc.
  492.     398 Johnson Road
  493.     Glasgow, MT
  494.     59230
  495.  
  496. BY EMAIL:
  497.     bwilliams@blackbelt.com
  498.  
  499. Bugs
  500. ----
  501. Bugs? There are no bugs in this software, whatever can you be thinking?
  502. Seriously, if you find anything (like an unusual 6809 instruction that isn't
  503. emulated properly), let me know and I'll fix it ASAP. I have a very strong
  504. interest in seeing the emulation run flawlessly.
  505.  
  506. Terminal I/O
  507. ------------
  508. The serial terminal output emulation simply uses a minimal emulation of a
  509. SOROC IQ-140 terminal. The SOROC emulation is provided specifically so that
  510. the STYLUS editor will work.  Another change made to the emulator for STYLUS
  511. was the address "mirroring" of the ACIA to address $E004 & $E005, since
  512. STYLUS hits the ACIA directly in order to obtain max speed; although this is
  513. very bad coding practice, it was more or less understandable in the day this
  514. was written.
  515.  
  516. Here are the controls available in the terminal emulation:
  517.  
  518.     $07         - Bell
  519.     $08         - Backspace
  520.     $0A         - Line Feed
  521.     $0D         - Carriage Return
  522.     $1E         - Home Up
  523.     $1B,E       - Insert Line
  524.     $1B,R       - Delete Line
  525.     $1B,T       - Erase EOL
  526.     $1B,t       - Erase EOL
  527.     $1B,*       - Home Up & Erase EOF
  528.     $1B,Y       - Erase EOF
  529.     $1B,y       - Erase EOF
  530.     $1B,(       - Set Write MAGENTA ("low"  intensity)
  531.     $1B,)       - Set Write GREEN   ("high" intensity)
  532.     $1B,=,yy,xx - Write Cursor Position ("xx" & "yy" are 0x20 + cursorvalue)
  533.  
  534. Documentation for Flex DOS
  535. --------------------------
  536. Here are some very basic docs for the Flex commands:
  537.  
  538. <> = REQUIRED    [] = OPTIONAL
  539.  
  540. H = HEXADECIMAL NUMBER DIGIT
  541. D = DECIMAL NUMBER DIGIT
  542. T = ASCII TEXT
  543.  
  544. FILESPEC = [drivenumber]<filename>[extension]
  545. examples:  0.COPY.CMD
  546.            COPY
  547.            COPY.CMD
  548.            0.COPY
  549.  
  550. DRIVESPEC = [DRIVENUMBER]
  551. examples:   0
  552.             1
  553.             2
  554.  
  555. MATCHLIST = [PARTIAL FILENAME][EXTENSION]
  556. examples:   C
  557.             C.CMD
  558.             CO
  559.             CO.CMD
  560.             COPY.CMD
  561.  
  562. DRIVELIST = <DRIVENUMBER> [DRIVENUMBER] [DRIVENUMBER]...
  563. examples:   0
  564.             0 2
  565.             0 1 3
  566.             0 1 2 3
  567.  
  568. Flex Command List
  569. -----------------
  570.    ABORT (aborts emulator - LOSES all changes to virtual disks)
  571.   APPEND <FILESPEC> <FILELIST> <FILESPEC>
  572.     ASMB <FILESPEC> [FILESPEC] [options] (you need to know 6809 Assembly Language)
  573.      ASN [W=DRIVENUMBER] [S=DRIVENUMBER]
  574.    BASIC (complete basic interpreter, with external online help via HELP command)
  575.    BUILD <FILESPEC>
  576.      CAT <DRIVELIST> <MATCHLIST>
  577.    CHECK <DRIVE>
  578.     COPY <FILESPEC> <FILESPEC> or COPY <FILESPEC> <DRIVE> or COPY <DRIVE> <DRIVE> [MATCHLIST]
  579.    DASMB (help is available inside the dissasembler... press ?)
  580.     DATE [MM-DD-YY]
  581.    DEBUG (no help available... good luck - I can't remember how this works!)
  582.   DELETE <FILESPEC> [FILELIST]
  583.      DIR [+P] [DRIVELIST] [MATCHLIST]
  584.   DISKEX (no parameters... commands are:
  585.             ^ - Scroll forward through current sector
  586.             A - New track & sector to process
  587.             C [HH]- Change data in sector
  588.             D - New disk to process
  589.             F - Forward link to next sector (using link in sector)
  590.             N - Next Sector
  591.             P - Previous Sector
  592.             S - Scroll Value
  593.             W - Write sector back to disk (BE CAREFUL!!!!)
  594.             X - Exit to Flex)
  595.     DUMP <FILESPEC>
  596.     ECHO <TEXTSTRING>
  597.     EDIT [FILENAME] (fully WYSIWYG text editor... an amazing tool)
  598.               - Menu driven; press control-A for help in edit mode.
  599.       EX <FILESPEC>
  600.   EXTEND <DRIVESPEC> <SECTORS>
  601.    FCASE (flips state of upper case control, which defaults to on)
  602.    FILES <DRIVESPEC> [MATCHLIST]
  603. FILESORT (file cataloging utility by Brian Bailey)
  604.    FLUSH (Write VDisks out to Host OS NOW)
  605.     FREE <DRIVESPEC>
  606.  FREEMAP <DRIVESPEC>
  607.    HECHO <HH> [HH] [HH] [HH]...
  608.     HELP [COMMAND] (online help system uses .DIR files)
  609.        I <FILESPEC> <flex command...> (takes input from file, not console)
  610.     JUMP <HHHH>
  611.  
  612.    LEDIT <FILESPEC> (line based text editor... basic commands include:
  613.         [DD]       - New current line number
  614.             B      - Goto Bottom of file
  615.         [DD]C"T"T" - change text in line (any delimiter works)
  616.         [DD]D[DD]  - Delete line(s)
  617.             H      - Display Horizontal Ruler
  618.         [DD]I[DD]  - Insert at line DD (#<return> to exit insert mode)
  619.         [DD]O      - Overlay text on current line
  620.         [DD]P[DD]  - Display from current line, DD lines
  621.         [DD]P!     - Display from current line to end
  622.         [DD]P[dd]  - Display from DD, dd lines
  623.         [DD]R      - Replace Line
  624.             REN    - Renumber all lines
  625.             S      - Save file and exit
  626.             T      - Goto Top of file
  627.         [DD]=[T]   - current line becomes replacement text
  628.  
  629.     LIST <FILESPEC>
  630.      MAP <FILESPEC>
  631.    MEMEX (no parameters... commands are:
  632.             A <HHHH> - New address
  633.             C <HHHH> - Change data at address
  634.             S <HH> - Set new scroll value
  635.             X - Exit to Flex)
  636.        N <flex command> (answers all questions with N)
  637.     NAME <DISKNAME>
  638.        O <flex command> (directs output to Flex file)
  639.        P <flex command> (directs output to Host printer)
  640.    PCOPY <DRIVESPEC> <DRIVESPEC>
  641.     PDEL <DRIVESPEC>
  642.  PROTECT <FILESPEC> [D][W][C][X]
  643.     PUSH <FILESPEC>
  644.     QUIT (terminates emulator session via hardwired key, saves vdisks)
  645.   RENAME <FILESPEC> <FILESPEC>
  646.  REORDER <DRIVESPEC>
  647.      RUN <FILESPEC>
  648.     SAVE <HHHH 0000-BFFF> <HHHH 0000-BFFF>
  649. SAVE.LOW <HHHH C000-FFFF> <HHHH C000-FFFF>
  650.    SPLIT <FILESPEC>
  651.   TTYSET [BS=HH] [BE=HH] [DL=HH] [EL=HH] [DP=DD]
  652.   TTYSET [WD=DD] [NL=DD] [TB=HH] [EJ=DD] [PS=Y|N]
  653.   TTYSET [ES=HH]
  654.   UPDATE <FILESPEC>
  655.   VERIFY [ON] [OFF]
  656.  WIDECAT <DRIVESPEC>
  657.     XOUT <DRIVESPEC>
  658.        Y <flex command> (answers all questions with Y)
  659.     YEAR <YY>
  660.  
  661.  STYHLP1 (help file for STYLUS/EDIT)
  662.  STYHLP2 (help file for STYLUS/EDIT)
  663.  STYHLP3 (help file for STYLUS/EDIT)
  664.  STYHLP4 (help file for STYLUS/EDIT)
  665.  STYHLP5 (help file for STYLUS/EDIT)
  666.  STYHLP6 (help file for STYLUS/EDIT)
  667.  PRINT.SYS (for printer driver)
  668.  HELPFILE.DIR (help for Flex commands, via HELP command)
  669.  BASIC.DIR    (help for BASIC, via HELP command)
  670.  EXAMPLE.DIR  (shows you how to write your own help databases)
  671.  
  672. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  673.  
  674. Changes from Version 1.0
  675. ------------------------
  676. v1r33, May 31st, 1996 (Win95 version)
  677.     - Potential initialization bug found & fixed. Could have resulted in
  678.       screen display beginning with unrefeshed desktop region(s).
  679.       Would only have been a cosmetic problem, but ugly. Chalk it
  680.       up to my being new to Win95 programming. :-(
  681.     - Month calculation in "About" dialog was wrong.
  682.  
  683. v1r32, May 27th, 1996 (Win95 version)
  684.     - Menu switch for auto-setting of flex date added (so you can set any date;
  685.       otherwise, the system date will constantly override yours, and if you're
  686.       trying to "fool" some software, you'll fail). When checked, flex date is
  687.       set once a minute. When not checked, flex date is set on boot only.
  688.     - Formatted Microsoft Word 6 document now included in distribution, ready
  689.       to print.
  690.     - Changed names of DRIVE0 and DRIVE1 to DISK0 and DISK1 for consistency
  691.     - Close box ( [X] ) on "About" dialog now will close the dialog.
  692.  
  693. v1r31, May 21st, 1996 (Win95 version)
  694.     - Menu switch for capital letter inversion feature added
  695.  
  696. v1r30, May 21st, 1996 (Win95 version)
  697.     - Rebuilt emulator as Win32 application, instead of console. Subsequent changes:
  698.         * Windows Menu added:
  699.             + Exit Emulator  (exit to Win95, saves VDISK changes)
  700.             + Abort Emulator (exit to Win95, does NOT save VDISK changes!)
  701.             + RESET 6809 (enters PSYMON monitor)
  702.             + Flush virtual disks
  703.             + Switchable thread release on check ACIA for input character
  704.         * Display is more consistant now, as I wrote new terminal emulator
  705.         * ASCII code 7 (BELL) in emulator now generates Win95 "beep".
  706.         * More friendly for multitasking, shares as per Win95 guidelines
  707.         * ANSI color control is no longer available. Only SOROC intensity supported.
  708.         * COLORS.BAS changed to show switch of intensity only
  709.         * ANSI.SYS no longer required in CONFIG.SYS file
  710.         * Updated README.TXT documentation considerably
  711.  
  712. v1r23, May 18th, 1996 (All versions)
  713.     - Added "FILETEST.CMD" to drive0 file; from original FLEX disk on 6809 system
  714.  
  715. v1r22, May 16th, 1996 (Win95 version)
  716.     - Enhanced SOROC emulator to accept IBM ANSI color control strings
  717.     - Added "COLORS.BAS" to DRIVE1 to demonstrate use of ANSI COLORS
  718.     - Defaulted Flex to 0 NULLS, which fixes cosmetic issue on startup
  719.     - Added version identification to the software
  720.  
  721. v1r21, May 14th, 1996 (Win95 version)
  722.     - Enhanced INJECT to strip line feeds
  723.     - Enhanced DISTILL to add line feeds on output
  724.     - Fixed problem with padding end of file to zeros in INJECT
  725.  
  726. v1r20, May 12th, 1996 (Win95 version)
  727.     - Ported Flex Emulator code Win95 using Visual C++ version 4.0
  728.     - Ported FDIR to win95
  729.     - Ported INJECT to win95
  730.     - Ported DISTILL to win95
  731.     - Ported MAD to win95
  732.     - "Flipped" upper & lower case, as Flex is mainly an upper case OS
  733.     - Added command to re-flip the case defaults: FCASE.CMD
  734.     - No menu controls available in Microsoft's "QuickWin" 4 Environment
  735.     - FCASE.CMD added to flip state of upper case inversion
  736.     - FLUSH.CMD added to rewrite vdisks immediately without exit
  737.     - QUIT.CMD added for controlled exit from Flex emulation (replaces menu)
  738.     - ABORT.CMD added for exit without rewrite of vdisks (replaces menu)
  739.     - Soroc IQ-140 emulation rebuilt to compensate for weak ANSI.SYS on PC
  740.     
  741. v1r20, April 28th, 1996 (Amiga version)
  742.     - RESET command available from Amiga Menu
  743.     - All illegal opcodes now translate to $3F (SWI)
  744.  
  745. v1r10, March 26th, 1994 (Amiga version)
  746.     - Emulation runs about 2x as fast as v1r0
  747.     - Disks are now kept in memory, rewritten ONLY if you change them
  748.     - Critical (for Stylus) Soroc IQ140 terminal emulation operating
  749.     - Distribution includes Stylus ("EDIT") and help files
  750.     - Distribution includes RENAME command (left out by mistake in 1.0)
  751.     - Distribution includes Excellent "SLEUTH" dissasember
  752.     - Distribution includes HELP.CMD and helpfiles (.DIR files)
  753.     - Distribution includes FILESORT command by Brian Bailey
  754.     - Distribution includes PUSH command (left out by mistake in 1.0)
  755.     - Distribution includes UPDATE command
  756.     - Distribution includes BASIC command (helpfile, too!)
  757.     - Distribution includes FREEMAP command
  758.     - EDIT command (line editor) renamed to LEDIT
  759.  
  760. v1r00, March 25th, 1994 (Amiga version)
  761.     - Original Release
  762.   ---------------------------- End of Document ---------------------
  763.