The main window provides initial point for extracting ZX81 programs from a sampled cassette and saving or playing ZX81 programs as sound samples.
The main functions of the program are selected from the Menus, which are described below.
The main window displays the one or two samples that are currently loaded, with a graphical depiction of the analysis results. Sample action buttons above each sample display allow for navigation through the errors/warnings encountered when analysing the sample, manual updates to the sample to set bit values, undoing/redoing those updates, and saving the updated sample. When viewing two samples, additional action buttons at the bottom of the window allow synchronization of the views of the two samples to allow comparison and location of differences.
This menu contains the options that allow loading and saving of sample, .P and .TZX files.
Option | Description |
---|---|
Open | Loads a file as the first sample, and analyses it using the corresponding
analysis settings. If the selected file name
ends with .ZIP, the program assumes that the sample is the first entry within the .ZIP file.
This option can be used to load a sample file or a .P or .TZX file. In the latter two cases, a sample is generated from the ZX81 program data (using the "Square Wave" preference) and saved as a temporary file, then loaded in exactly as if a sample file had been loaded. .P files don't contain the ZX81 program name, so the "ZX81 File Name" preference is used to generate the sample. After analysis, the Analysis Results window is shown, unless the "Always show the results dialog after analysis" preference is set to false. |
Save | Saves the first sample file, including any manual updates that have been made, using the name that the sample was loaded with (or last saved with). The file is overwritten with no confirmation. If the sample file name ends with .ZIP the sample is saved as the first entry within the .ZIP file. |
Save as | Saves the first sample file, allowing selection of the file name. If the selected file already exists, confirmation is required to overwrite it. If the sample file name ends with .ZIP, or the "Always save sample as a .ZIP file" preference is selected, then the sample is saved as the first entry within the .ZIP file. |
Open second | Loads a file as the second sample, and analyses it using the corresponding
analysis settings. If the selected file name
ends with .ZIP, the program assumes that the sample is the first entry within the .ZIP file.
This option can be used to load a sample file or a .P or .TZX file. In the latter two cases, a sample is generated from the ZX81 program data and saved as a temporary file, then loaded in exactly as if a sample file had been loaded. After analysis, the Analysis Results window is shown, including results for both samples. |
Save second | Saves the second sample file, including any manual updates that have been made, using the name that the sample was loaded with (or last saved with). The file is overwritten with no confirmation. If the sample file name ends with .ZIP the sample is saved as the first entry within the .ZIP file. |
Save second as | Saves the first sample file, allowing selection of the file name. If the selected file already exists, confirmation is required to overwrite it. If the sample file name ends with .ZIP, or the "Always save sample as a .ZIP file" preference is selected, then the sample is saved as the first entry within the .ZIP file. |
Close second | Closes the second sample file, and updates the various windows to display only information about the first sample. |
Save as .P files | Saves all ZX81 programs that have been identified within the sample as .P files in the selected directory. If there is a single .P file, then it is named the same as the sample file with a .P extension. If there are multiple .P files, then they are saved using names generated from the sample file, using those given in the Analysis Settings window, or the defaults if no values have been given. |
Save as .TZX file | Saves all ZX81 programs that have been identified within the sample as a .TZX file. The .TZX file is named the same as the sample file with a .TZX extension. |
Preferences | Shows the Preferences window. |
Quit | Quits the program. |
The Analysis menu provides access to the Analysis Settings window, and the Analysis Results window.
Option | Description |
---|---|
Analysis Settings | Opens the Analysis Settings window. |
Analysis Results | Opens the Analysis Results window. This is automatically opened when analysis is performed. |
The Play menu allows the currently loaded samples to be played via the computer speakers.
Option | Description |
---|---|
Play | Plays the first sample. The sample is played at full volume.
This option can be used to play the loaded sample directly to a ZX81 executing a LOAD statement. For best results, the ZX81 should be connected to the earphone socket of an amplified speaker rather than directly to the earphone socket of the computer. |
Play second | Plays the second sample. |
The action buttons control and manipulate the current sample(s).
Action | Description |
---|---|
Previous Error/Warning | Changes the current viewed position of the sample to show the previous error or warning
resulting from analysis.
Updates the currently selected error or warning message in the Analysis Results Error/Warning log. |
Next Error/Warning | Changes the current viewed position of the sample to show the next error or warning
resulting from analysis.
Updates the currently selected error or warning message in the Analysis Results Error/Warning log. |
Previous Error | Changes the current viewed position of the sample to show the previous error
resulting from analysis.
Updates the currently selected error or warning message in the Analysis Results Error/Warning log. |
Next Error | Changes the current viewed position of the sample to show the next error
resulting from analysis.
Updates the currently selected error or warning message in the Analysis Results Error/Warning log. |
Set to Zero | Sets the bit at the currently selected position in the sample to represent a zero.
The position in the sample is selected by clicking on the sample display. If the position selected is too close to the previous bit in the sample the zero is inserted at an appropriate distance from it. The sample is re-analysed and the analysis results updated. |
Set to One | Sets the bit at the currently selected position in the sample to represent a one.
The position in the sample is selected by clicking on the sample display. If the position selected is too close to the previous bit in the sample the zero is inserted at an appropriate distance from it. The sample is re-analysed and the analysis results updated. |
Undo Bit Set | Undoes the last bit that was manually set using the Set to Zero or Set to One action button. |
Redo Bit Set | Redoes the last bit that was manually set then undone. |
Save Changes | Saves the updated sample, in the same way as the Save menu option. |
The following action buttons appear when two samples are loaded in the Main Window, and control the display position of the two samples.
Action | Description |
---|---|
Synchronize Bottom With Top | Sets the current viewing position of the bottom (second) sample so that the same byte is shown as in the top (first) sample. |
Synchronize Top with Bottom | Sets the current viewing position of the first (top) sample so that the same byte is shown as in the second (bottom) sample. |
Synchronize On First Error | Locates the position of the first error in either sample, and then sets the current viewing position of each sample so that the same byte is showing in both. |
Synchronize on First Difference | Locates the position of the first difference between the two samples, and then sets the current
viewing position of each sample so that the same byte is showing in both.
Note that ZX81 programs frequently have different values for some of the system variables (especally FRAMES) which appear at the start of the program and so you may need to skip through several differences before you get to those within the program data itself. |
Synchronize on Next Difference | Locates the position of the next difference between the two samples, and then sets the current viewing position of each sample so that the same byte is showing in both. |