Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| software:firmwareos:romwbw:apps [2022/11/28 21:47] – Revision from 2022-11-28 | software:firmwareos:romwbw:apps [2026/06/15 13:26] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | /* Imported from Wayback Machine | ||
| + | | ||
| + | | ||
| + | | ||
| + | */ | ||
| + | |||
| + | ====== Summary ====== | ||
| + | |||
| + | RomWBW includes a small suite of custom applications to maximize the features available. In general, these applications are operating system agnostic – they run under any of the included operating systems. However, they all require RomWBW – they are not generic CP/M applications. | ||
| + | |||
| + | Most of the applications are custom written for RomWBW. However, some are standard CP/M applications that have been adapted to run under RomWBW (e.g., XModem). The applications are generally matched to the version of RomWBW they are distributed with. So, if you upgrade the version of RomWBW in your system ROM, you will want to copy the corresponding applications to any storage devices you are using. | ||
| + | |||
| + | Most of the applications are included on the RomWBW ROM disk, so they are easy to access. | ||
| + | |||
| + | The applications are also included with all of the operating system disk images provided with RomWBW. So, a simple way to ensure you have matching applications is to write the disk images onto your disk media when upgrading your ROM. Of course, this will destroy any existing data on your disk media, so don’t do this if you are saving any data on the media. | ||
| + | |||
| + | Most of the applications are included as source code in the RomWBW distribution and are built in the normal build process. The source code is found in the Source\Apps directory of the distribution. The binary executable applications are found in the Binary\Apps directory. | ||
| + | |||
| + | The following table clarifies where each of the applications can be found: | ||
| + | |||
| + | ^Application^ROM Disk^Boot Disks^Apps Dir^ | ||
| + | |ASSIGN | ||
| + | |SYSCOPY | ||
| + | |MODE | ||
| + | |FDU |Yes | ||
| + | |FORMAT | ||
| + | |XM | ||
| + | |FLASH | ||
| + | |FDISK80 | ||
| + | |TALK | ||
| + | |RTC |Yes | ||
| + | |TIMER | ||
| + | |INTTEST | ||
| + | |FAT |No |Yes | ||
| + | |TUNE | ||
| + | |||
| + | ====== ASSIGN ====== | ||
| + | |||
| + | RomWBW includes a flexible mechanism for associating the operating system drive letters (A: - P:) to the physical devices in the system. Drive letter assignments can be changed on a running operating system without rebooting. The ASSIGN command facilitates this by allowing you to display, assign, reassign, or remove the drive letter assignments. | ||
| + | |||
| + | ===== Syntax ===== | ||
| + | |||
| + | '' | ||
| + | '' | ||
| + | '' | ||
| + | '' | ||
| + | '' | ||
| + | |||
| + | ===== Usage ===== | ||
| + | |||
| + | '' | ||
| + | |||
| + | '' | ||
| + | |||
| + | '' | ||
| + | |||
| + | '' | ||
| + | |||
| + | '' | ||
| + | |||
| + | '' | ||
| + | |||
| + | '' | ||
| + | |||
| + | The '' | ||
| + | |||
| + | When the command runs it will echo the resultant assignments to the console to confirm it’s actions. It will also display the remaining space available in disk buffers. | ||
| + | |||
| + | ===== Notes ===== | ||
| + | |||
| + | If the '' | ||
| + | |||
| + | All assigned drives utilize disk buffer space from a limited pool. The ASSIGN command will display the amount of buffer space remaining after an assign command is executed. Buffer space is freed if a drive is unassigned. If the total assignments exceed the available disk buffer space available, the command will abort with an error message. | ||
| + | |||
| + | The '' | ||
| + | |||
| + | The '' | ||
| + | |||
| + | The '' | ||
| + | |||
| + | Additionally, | ||
| + | |||
| + | You will not be allowed to assign multiple drive letters to a single device and slice. In other words, only one drive letter may refer to a single filesystem at a time. | ||
| + | |||
| + | Drive letter A: must always be assigned to a device and slice. The '' | ||
| + | |||
| + | The changes made by this command are not permanent. The assignments will persist through a warm start, but when you reboot your system, all drive letters will return to their default assignments. A SUBMIT batch file can be used to setup desired drive assignments automatically at boot. | ||
| + | |||
| + | Floppy disk drives and RAM/ROM drives do not have slices. A slice should only be specified for hard disk devices (SD, IDE, PPIDE). | ||
| + | |||
| + | Only one drive letter may be assigned to a specific device/ | ||
| + | |||
| + | Be aware that this command will allow you to reassign or remove the assignment of your system drive letter. This can cause your operating system to fail and force you to reboot. | ||
| + | |||
| + | This command is particularly sensitive to being matched to the appropriate version of the RomWBW ROM you are using. Be very careful to keep all copies of '' | ||
| + | |||
| + | ===== Etymology ===== | ||
| + | |||
| + | The '' | ||
| + | |||
| + | ====== SYSCOPY ====== | ||
| + | |||
| + | To make disk media bootable, you must write a system boot image onto the system tracks of the of the media. The '' | ||
| + | |||
| + | ===== Syntax ===== | ||
| + | |||
| + | '' | ||
| + | |||
| + | //'' | ||
| + | |||
| + | //'' | ||
| + | |||
| + | ===== Usage ===== | ||
| + | |||
| + | Both //'' | ||
| + | |||
| + | '' | ||
| + | |||
| + | '' | ||
| + | |||
| + | '' | ||
| + | |||
| + | ===== Notes ===== | ||
| + | |||
| + | The RomWBW ROM disk contains files with the system boot image for Z-System and CP/M 2.2. These files are called CPM.SYS and ZSYS.SYS respectively. These files can be used as the source of a '' | ||
| + | |||
| + | CP/M 3 uses a two phase boot process. To make a CP/M 3 drive bootable, you need to put “CPMLDR.SYS” on the boot tracks of the disk and be sure that the drive also contains the “CPM.SYS” file. The “CPMLDR.SYS” file is not included on the ROM disk, but is found on the CP/M 3 disk image. | ||
| + | |||
| + | ZPM3 is similar to CP/M 3. You also put “CPMLDR.SYS” on the system tracks of the drive to make it bootable. The ZPM3 operating system is in the file called “CPM3.SYS” on the ZPM3 disk image. It may seem confusing that ZPM3 is in the file called CPM3.SYS, but it is normal for ZPM3. | ||
| + | |||
| + | For the purposes of booting an operating system, each disk slice is considered it’s own operating system. Each slice can be made bootable with it’s own system tracks. | ||
| + | |||
| + | '' | ||
| + | |||
| + | If you want to put a a boot system image on a device and slice that is not currently assigned to a drive letter, you will need to assign a drive letter first. | ||
| + | |||
| + | Not all disk formats include space for system tracks. Such disk formats cannot contains a system boot image and, therefore, cannot be made bootable. The best example of such disk formats are the ROM and RAM disks. To maximize usable file space on these drives, they do not have system tracks. Obviously, ROM operating system is supported by choosing a ROM operating system at the boot loader prompt. Any attempt to write a system boot image to disk media with no system tracks will cause SYSCOPY to fail with an error message. | ||
| + | |||
| + | The system boot images are paired with the ROM version in your system. So, you must take care to update the system tracks of any bootable disk when you upgrade your ROM firmware. | ||
| + | |||
| + | The system boot images are **not** tied to specific hardware configurations. System boot images and operating systems provided with RomWBW will work with any supported RomWBW platform or hardware as long as they are the same version as the RomWBW firmware. | ||
| + | |||
| + | ===== Etymology ===== | ||
| + | |||
| + | The '' | ||
| + | |||
| + | ====== MODE ====== | ||
| + | |||
| + | The MODE command allows you to adjust the operating characteristics such as baud rate, data bits, stop bits, and parity bits of serial ports dynamically. | ||
| + | |||
| + | ===== Syntax ===== | ||
| + | |||
| + | '' | ||
| + | |||
| + | '' | ||
| + | |||
| + | //'' | ||
| + | |||
| + | //'' | ||
| + | |||
| + | //'' | ||
| + | |||
| + | //'' | ||
| + | |||
| + | //'' | ||
| + | |||
| + | '' | ||
| + | |||
| + | ===== Usage ===== | ||
| + | |||
| + | '' | ||
| + | |||
| + | '' | ||
| + | |||
| + | '' | ||
| + | |||
| + | '' | ||
| + | |||
| + | Appending '' | ||
| + | |||
| + | ===== Notes ===== | ||
| + | |||
| + | Specified baud rate and line characteristics must be supported by the serial unit. Any parameters not specified will remain unchanged. | ||
| + | |||
| + | Changes are not persisted and will revert to system defaults at next system boot. | ||
| + | |||
| + | Not all character devices support all '' | ||
| + | |||
| + | ===== Etymology ===== | ||
| + | |||
| + | The '' | ||
| + | |||
| + | ====== FDU ====== | ||
| + | |||
| + | The FDU application is a Floppy Disk Utility that provides functions to format and test floppy disk media. | ||
| + | |||
| + | ===== Syntax ===== | ||
| + | |||
| + | '' | ||
| + | |||
| + | ===== Usage ===== | ||
| + | |||
| + | This application has an interactive user interface. At startup, you will be prompted to select the floppy interface hardware in your system. Following this, you will see the main menu of the program with many functions to manage floppy disk drives. | ||
| + | |||
| + | The primary documentation for this application is in a file called “FDU.txt” in the Doc directory of the RomWBW distribution. Please consult this file for usage information. | ||
| + | |||
| + | ===== Notes ===== | ||
| + | |||
| + | This application interfaces directly to the floppy hardware in your system. It does not use the RomWBW HBIOS. This means that even if your system is not configured for floppy drives, you can still use '' | ||
| + | |||
| + | ===== Etymology ===== | ||
| + | |||
| + | The '' | ||
| + | |||
| + | ====== FORMAT ====== | ||
| + | |||
| + | This application is just a placeholder for a future version that will make it simpler to format media including floppy disks. | ||
| + | |||
| + | ===== Syntax ===== | ||
| + | |||
| + | '' | ||
| + | |||
| + | ===== Notes ===== | ||
| + | |||
| + | This application currently just displays a few lines of information briefly instructing a user how to format media. It performs no actual function beyond this display currently. | ||
| + | |||
| + | ===== Etymology ===== | ||
| + | |||
| + | The '' | ||
| + | |||
| + | ====== XM ====== | ||
| + | |||
| + | An adaptation of Ward Christensen’s X-Modem protocol for transferring files between systems using a serial port. | ||
| + | |||
| + | ===== Syntax ===== | ||
| + | |||
| + | '' | ||
| + | '' | ||
| + | '' | ||
| + | '' | ||
| + | '' | ||
| + | |||
| + | '' | ||
| + | |||
| + | //'' | ||
| + | |||
| + | //'' | ||
| + | |||
| + | ===== Usage ===== | ||
| + | |||
| + | To transfer a file from your host computer to your RomWBW computer, do the following: | ||
| + | |||
| + | Enter one of the '' | ||
| + | |||
| + | On your host computer select a file to send and initiate the XModem send operation. | ||
| + | |||
| + | To transfer a file from your RomWBW computer to your host computer, do the following: | ||
| + | |||
| + | Enter one of the '' | ||
| + | |||
| + | On your host computer, specify the name to assign to the received file and initiate and XModem receive operation. | ||
| + | |||
| + | Please refer to the documentation of your host computer’s terminal emulation software for specific instructions on how to use XModem. | ||
| + | |||
| + | ===== Notes ===== | ||
| + | |||
| + | The XModem adaptation that comes with RomWBW will automatically use the primary character device unit (character device unit 0) for the file transfer. | ||
| + | |||
| + | '' | ||
| + | |||
| + | '' | ||
| + | |||
| + | ===== Etymology ===== | ||
| + | |||
| + | The '' | ||
| + | |||
| + | The original source of the application was found in the Walnut Creek CD-ROM and is called XMDM125.ARK dated 7/15/86. | ||
| + | |||
| + | The actual application is virtually untouched in the RomWBW adaptation. The majority of the work was in the modem driver which was enhanced to detect the hardware being used and dynamically choose the appropriate driver. | ||
| + | |||
| + | The source code is provided in the RomWBW distribution. | ||
| + | |||
| + | ====== FLASH ====== | ||
| + | |||
| + | Most of the hardware platforms that run RomWBW support the use of EEPROMs – Electronically Erasable Programmable ROMs. The '' | ||
| + | |||
| + | This application is provided by Will Sowerbutts. | ||
| + | |||
| + | ===== Syntax ===== | ||
| + | |||
| + | '' | ||
| + | '' | ||
| + | '' | ||
| + | |||
| + | //'' | ||
| + | |||
| + | Options: (access method is auto-detected by default) | ||
| + | |||
| + | '' | ||
| + | '' | ||
| + | '' | ||
| + | '' | ||
| + | '' | ||
| + | '' | ||
| + | '' | ||
| + | |||
| + | ===== Usage ===== | ||
| + | |||
| + | To program your EEPROM ROM chip, first transfer the file to your RomWBW system. Then use the command '' | ||
| + | |||
| + | You can use the '' | ||
| + | |||
| + | Although '' | ||
| + | |||
| + | The author’s documentation for the application is found in the RomWBW distribution in the Doc\Contrib directory. | ||
| + | |||
| + | ===== Notes ===== | ||
| + | |||
| + | The application supports a significant number of EEPROM parts. It should automatically detect your part. If it does not recognize your chip, make sure that you do not have a write protect jumper set – this jumper will cause the ROM chip type to be unrecognized. | ||
| + | |||
| + | Reprogramming a ROM chip in-place is inherently dangerous. If anything goes wrong, you will be left with a non-functional system and no ability to run the '' | ||
| + | |||
| + | ===== Etymology ===== | ||
| + | |||
| + | This application was written and provided by Will Sowerbutts. He provides it in binary format and is included in the RomWBW distribution as a binary file. | ||
| + | |||
| + | The source code for this application can be found at the [[https:// | ||
| + | |||
| + | ====== FDISK80 ====== | ||
| + | |||
| + | RomWBW supports disk media with MS-DOS FAT filesystems (see FAT application). If you wish to put a FAT filesystem on your media, the FDISK80 application can be used to partition your media which is required in order to add a FAT filesystem. | ||
| + | |||
| + | This application is provided by John Coffman. | ||
| + | |||
| + | ===== Usage ===== | ||
| + | |||
| + | '' | ||
| + | |||
| + | '' | ||
| + | |||
| + | There is also more information on using FAT partitions with RomWBW in the “RomWBW Getting Started.pdf” document in the Doc directory of the distribution. | ||
| + | |||
| + | ===== Notes ===== | ||
| + | |||
| + | Partitioning of RomWBW media is **only** required if you want to add a FAT filesystem to your media. Do not partition your media if you are simply using it for RomWBW. To be clear, RomWBW slices do not require partitioning. | ||
| + | |||
| + | As described in “RomWBW Getting Started.pdf”, | ||
| + | |||
| + | ===== Etymology ===== | ||
| + | |||
| + | The source for this application was provided directly by John Coffman. It is a C program and requires a build environment that includes the SDCC compiler. As such, it is not included in the RomWBW build process, only the binary executable is included. | ||
| + | |||
| + | Please contact John Coffman if you would like a copy of the source. | ||
| + | |||
| + | ====== TALK ====== | ||
| + | |||
| + | It is sometimes useful to direct your console input/ | ||
| + | |||
| + | ===== Syntax ===== | ||
| + | |||
| + | '' | ||
| + | |||
| + | ===== Usage ===== | ||
| + | |||
| + | '' | ||
| + | |||
| + | The parameter to '' | ||
| + | |||
| + | Press Control+Z on the console to terminate the application. | ||
| + | |||
| + | ===== Notes ===== | ||
| + | |||
| + | This application is designed for CP/M 2.2 or Z-System. Use on later operating systems such as CP/M 3 is not supported. | ||
| + | |||
| + | ===== Etymology ===== | ||
| + | |||
| + | The '' | ||
| + | |||
| + | ====== RTC ====== | ||
| + | |||
| + | Many RomWBW systems provide real time clock hardware. The RTC application is a simple, interactive program allowing you to display and set the time and registers of the RTC. | ||
| + | |||
| + | ===== Syntax ===== | ||
| + | |||
| + | '' | ||
| + | |||
| + | ===== Usage ===== | ||
| + | |||
| + | After startup, the application provides the following options: | ||
| + | |||
| + | ^Option | ||
| + | |'' | ||
| + | |'' | ||
| + | |'' | ||
| + | |'' | ||
| + | |'' | ||
| + | |'' | ||
| + | |'' | ||
| + | |'' | ||
| + | |'' | ||
| + | |'' | ||
| + | |'' | ||
| + | |'' | ||
| + | |'' | ||
| + | |'' | ||
| + | |||
| + | ===== Notes ===== | ||
| + | |||
| + | When using Get and Put options, the register number to read/write is entered in hex. The non-volatile ram register numbers are 0x20-0x3F. | ||
| + | |||
| + | When entering values, you must enter exactly two hex characters. The backspace key is not supported. You do not use enter after entering the two hex characters. Yes, this should be improved. | ||
| + | |||
| + | The '' | ||
| + | |||
| + | ===== Etymology ===== | ||
| + | |||
| + | The '' | ||
| + | |||
| + | ====== TIMER ====== | ||
| + | |||
| + | Most RomWBW systems have a 50Hz periodic system timer. A counter is incremented every time a timer tick occurs. The '' | ||
| + | |||
| + | ===== Syntax ===== | ||
| + | |||
| + | '' | ||
| + | |||
| + | ===== Usage ===== | ||
| + | |||
| + | Use '' | ||
| + | |||
| + | Use '' | ||
| + | |||
| + | The display of the counter will be something like this: | ||
| + | |||
| + | '' | ||
| + | |||
| + | The first number is the total number of ticks since system startup. The second number is the total number of seconds since system startup. | ||
| + | |||
| + | ===== Notes ===== | ||
| + | |||
| + | The seconds value is displayed with a fractional value which is not a an actual fraction, but rather the number of ticks past the seconds rollover. All values are in hex. | ||
| + | |||
| + | The primary use of the '' | ||
| + | |||
| + | In theory, you could capture the value before and after some process you want to time. | ||
| + | |||
| + | ===== Etymology ===== | ||
| + | |||
| + | The '' | ||
| + | |||
| + | ====== INTTEST ====== | ||
| + | |||
| + | RomWBW includes an API allowing applications to “hook” interrupts. The '' | ||
| + | |||
| + | ===== Syntax ===== | ||
| + | |||
| + | '' | ||
| + | |||
| + | ===== Usage ===== | ||
| + | |||
| + | '' | ||
| + | |||
| + | It then prompts you to enter the slot number (in hex) of a vector to hook. After entering this, the application will watch the hooked vector and countdown from 0xFF to 0x00 as interrupts are noted. | ||
| + | |||
| + | When the counter reaches 0x00, the interrupt is unhooked and the application terminates. The application can also be terminated by pressing '' | ||
| + | |||
| + | ===== Notes ===== | ||
| + | |||
| + | If your system is running without interrupts active, the application will terminate immediately. | ||
| + | |||
| + | All slots have vectors even if the corresponding interrupt is not doing anything. In this case, the vector is pointing to the “bad interrupt” handler. | ||
| + | |||
| + | If you hook a vector that is not receiving any interrupts, the downcounter will not do anything. | ||
| + | |||
| + | ===== Etymology ===== | ||
| + | |||
| + | The '' | ||
| + | |||
| + | ====== FAT ====== | ||
| + | |||
| + | The operating systems included with RomWBW do not have any native ability to access MS-DOS FAT filesystems. The FAT application can be used overcome this. It will allow you to transfer files between CP/M and FAT filesystems (wildcards supported). It can also erase files, format, and list directories of FAT filesystems. | ||
| + | |||
| + | ===== Syntax ===== | ||
| + | |||
| + | '' | ||
| + | '' | ||
| + | '' | ||
| + | '' | ||
| + | '' | ||
| + | '' | ||
| + | |||
| + | //'' | ||
| + | //'' | ||
| + | //'' | ||
| + | //'' | ||
| + | //'' | ||
| + | //'' | ||
| + | |||
| + | CP/M filespec: //'' | ||
| + | FAT filespec: //'' | ||
| + | |||
| + | ===== Usage ===== | ||
| + | |||
| + | The '' | ||
| + | |||
| + | If you wanted to list the directory of the FAT filesystem on RomWBW disk unit 2, you would use '' | ||
| + | |||
| + | If you wanted to copy all of the files on CP/M drive B: to the FAT filesystem on RomWBW disk unit 4, you would use the command '' | ||
| + | |||
| + | To rename the file “XXX.DAT” to “YYY.DAT” on a FAT filesystem, you could use a command like “FAT REN 2:XXX.DAT 2: | ||
| + | |||
| + | To delete a file “XXX.DAT” on a FAT filesystem in directory “FOO”, you would use a command like '' | ||
| + | |||
| + | To make a directory called “FOO2” on a FAT filesystem, you would use a command line '' | ||
| + | |||
| + | To format the filesystem on a FAT partition, you would use a command like '' | ||
| + | |||
| + | ===== Notes ===== | ||
| + | |||
| + | Partitioned or non-partitioned media is handled automatically. A floppy drive is a good example of a non-partitioned FAT filesystem and will be recognized. Larger media will typically have a partition table which will be recognized by the application to find the FAT filesystem. | ||
| + | |||
| + | Although RomWBW-style CP/M media does not know anything about partition tables, it is entirely possible to have media that has both CP/M and FAT file systems on it. This is accomplished by creating a FAT filesystem on the media that starts on a track beyond the last track used by CP/M. Each CP/M slice on a media will occupy 8,320K (16,640 sectors). So, make sure to start your FAT partition beyond (< slice count> * 8,320K) or (<slice count * 16,640 sectors). | ||
| + | |||
| + | The application infers whether you are attempting to reference a FAT or CP/M filesystem via the drive specifier (char before ‘:’). A numeric drive character specifies the HBIOS disk unit number for FAT access. An alpha (A-P) character indicates a CP/M file system access targeting the specified drive letter. If there is no drive character specified, the current CP/M filesystem and current CP/M drive is assumed. For example: | ||
| + | |||
| + | '' | ||
| + | '' | ||
| + | '' | ||
| + | |||
| + | drive | ||
| + | |||
| + | Files with SYS, HIDDEN, or R/O only attributes are not given any special treatment. Such files are found and processed like any other file. However, any attempt to write to a read-only file will fail and the application will abort. | ||
| + | |||
| + | It is not currently possible to reference CP/M user areas other than the current user. To copy files to alternate user areas, you must switch to the desired user number first or use an additional step to copy the file to the desired user area. | ||
| + | |||
| + | Accessing FAT filesystems on a floppy requires the use of RomWBW HBIOS v2.9.1-pre.13 or greater. | ||
| + | |||
| + | Files written are not verified. | ||
| + | |||
| + | Wildcard matching in FAT filesystems is a bit unusual as implemented by FatFs. See FatFs documentation. | ||
| + | |||
| + | ===== Etymology ===== | ||
| + | |||
| + | The '' | ||
| + | |||
| + | ====== TUNE ====== | ||
| + | |||
| + | If your RomWBW system has a sound card based on either an AY-3-8190 or YM2149F sound chip, you can use the '' | ||
| + | |||
| + | ===== Syntax ===== | ||
| + | |||
| + | '' | ||
| + | |||
| + | //'' | ||
| + | |||
| + | ===== Usage ===== | ||
| + | |||
| + | The TUNE application supports PT and YM sound file formats. It determines the format of the file from the extension of the file, so your tune filenames should end in .PT2, .PT3, or .MYM. | ||
| + | |||
| + | To play a sound file, just use the command and specify the file to play after the command. So, for example, '' | ||
| + | |||
| + | ===== Notes ===== | ||
| + | |||
| + | The '' | ||
| + | |||
| + | On Z180 systems, I/O wait states are added when writing to the sound chip to avoid exceeding it’s speed limitations. On Z80 systems, you will need to ensure that the CPU clock speed of your system does not exceed the timing limitations of your sound chip. | ||
| + | |||
| + | The application probes for an active system timer and uses it to accurately pace the sound file output. If no system timer is available, a delay loop is calculated instead. The delay loop will not be as accurate as the system timer. | ||
| + | |||
| + | All RomWBW operating system boot disks include a selection of sound files in user area 3. | ||
| + | |||
| + | ===== Etymology ===== | ||
| + | |||
| + | The '' | ||
| + | |||
| + | The source code is provided in the RomWBW distribution. | ||
