TRS-80 DOS - NEWDOS/80 v2.0 for the Model I - SUPERZAP/CMD Disassembled
Page Customization
Page Index
SUPERZAP/CMD
Other Navigation
SUPERZAP/CMD/CMD - NEWDOS/80 v2.0 Disk Checker Utility
Variable and Memory Map
Self-Modifying Code Locations
Major Routines and Entry Points
Pool File Format
Technical Notes and Implementation Details
Disassembly:
5200H - Conditional Copy of Relative Sector to Current Display Position
This routine checks bit 3 of the mode flags at 5491H (the "memory mode" flag indicating whether we're working with memory rather than disk). If bit 3 is set, the routine exits early without doing anything. Otherwise, it copies the relative sector value from 54B4H to the current display position variable at 5495H. This allows SUPERZAP to track which relative sector is currently being displayed.
520DH - Initialize HL and C from E, Store to 54C3H
This short routine sets Register L, Register H, and Register C all to the value in Register E, then stores HL to address 54C3H. This appears to be used for initializing position or offset values. The address 54C3H holds a 16-bit position value used in various SUPERZAP operations.
5214H - Load H from 54B3H and Store HL to 54C3H
This routine loads a byte from 54B3H into Register H (the high byte of the track/sector indicator), then jumps to 5210H to store HL into 54C3H. This is used to set up position tracking with a specific high byte value.
521AH - Reserved Space (NOP Padding)
This area from 521AH to 52FFH contains NOP instructions (00H bytes). This is reserved space, possibly for future expansion or patch area. The NOPs serve no functional purpose in normal execution.
54C5H - SUPERZAP Main Entry Point and Initialization
This is the main entry point for SUPERZAP (as indicated by "PROGRAM ENTRY = 54C5H" in the disassembly). This routine initializes the stack pointer, clears mode flags, sets up buffer pointers, copies default values from ROM to RAM, and then proceeds to display the main menu and parse command line arguments. The initialization sets up the operating environment for all SUPERZAP functions.
Initialization complete. Now display the main menu banner and process command line.
[LOOP START] - Command parsing loop. Search the keyword table for a matching command.
Keyword didn't match - skip to the next keyword in the table.
550BH - Process Matched Command or Handle Options
This routine is called when a command keyword has been matched (or when handling the command line after the keyword). It checks for the ",P" option (printer mode), validates command flags, and ultimately dispatches to the appropriate command handler. The routine reads the command flags byte and the handler address from the keyword table entry.
Command matched and validated. Now extract and process the command entry from the keyword table.
5545H - "J" Command Handler (Jump to Disk/Track/Sector)
This routine handles the "J" (Jump) command when in disk mode with the jump pending flag set. It prompts for disk/track/sector parameters, validates input, and positions SUPERZAP to display the specified location.
5554H - "K" Command Handler (Track/Sector Jump) Entry
This entry point handles the "K" command when the jump pending flag (bit 4) is set. It prompts for track number input.
5563H - Sector Number Prompt
Prompts for sector number input after disk and track have been specified.
5584H - "J" Command - Physical Disk/Sector Jump
This routine handles the physical disk jump when no special mode flags are set.
5593H - Absolute Sector Prompt
Prompts for absolute sector number in physical disk mode.
55C5H - File Zap Command Handler Entry
This routine handles file-based zap operations. It prompts for a filespec, opens the file, and sets up for file sector editing. The routine validates the file exists and is accessible before proceeding.
Memory mode - load file into memory for editing.
5641H - File Relative Sector Prompt
Prompts for relative sector number when in file mode (not memory mode).
564FH - Alternate Relative Sector Prompt
Alternative entry for relative sector prompting with different initial conditions.
5668H - Printer Output Setup
Sets up for printer output mode, calculating how many sectors to print.
56A9H - Display Error Message (Sector Out of Range)
Displays an error message when the user attempts to access a sector that is out of the valid range.
56BAH - Main Display/Edit Loop Initialization
This is the main entry point for the sector display and editing loop. It initializes the stack pointer and display position, then enters the command processing loop where users can view and modify sector data.
Sector was modified - prompt to write it back to disk.
Process the command key entered by the user.
Check for alternate key mappings: semicolon (;) maps to plus (+), equals (=) maps to minus (-).
J (Jump) command - dispatch based on current mode flags.
5734H - "K" Command Handler (Sector Navigation)
Handles the K command which is used for sector navigation. The behavior varies based on current mode: in alternate mode it prompts for relative sector, in file mode it prompts for file sector, in memory mode it prompts for memory address, and in disk mode it prompts for track/sector.
574FH - Navigation Key Handler (+, -, R)
Handles the navigation keys: + advances to the next sector, - goes to the previous sector, and R re-reads/refreshes the current sector. The behavior varies based on whether we're in alternate mode (bit 5) or memory mode (bit 3), which changes whether we navigate by absolute sector or relative sector.
Normal disk mode - navigate by absolute sector number.
- key pressed - decrement sector number, but check for underflow (going below sector 0).
5774H - Relative Sector Navigation (Alternate/Memory Mode)
Handles navigation when in alternate display mode or memory mode. Instead of navigating by absolute sector number, this uses the relative sector value stored at 54B4H. The high byte of the relative sector (D register) is incremented or decremented.
5795H - "S" Command Handler (Search)
Handles the S (Search) command. This command searches for a byte pattern across sectors. It validates that the command is appropriate for the current mode, then uses inline parameter data to configure the search. The pattern "COPY" at 579EH-57A1H appears to be placeholder data that gets overwritten with the actual search pattern.
The following bytes are inline data, not executable code. They spell "COPY" followed by a NOP (00H) terminator, representing a command signature that 5803H validates.
Execution resumes here after 5803H returns (it adjusts the return address past the inline data).
Pattern was found. Determine which result message to display based on search type.
5803H - Inline Parameter Processor
This utility routine processes inline parameter data that follows a CALL instruction. It reads bytes from the return address, comparing them against user input character by character. When a zero byte (terminator) is found, the routine adjusts the return address to point past the inline data and returns. This allows commands to embed their parameter signatures directly after the CALL instruction.
Terminator found - all parameters matched. Adjust return address and exit.
5814H - "E" Command Handler (Exit to DOS)
This routine handles the E (Exit) command. It uses the inline parameter processor at 5803H to verify the user typed "EXIT", then clears the command line area and jumps to the DOS warm start entry point at 402DH to return to NEWDOS/80 Ready prompt.
The following bytes are inline data spelling "XIT" (the "E" was already matched). The routine at 5803H compares each byte against user input.
Execution continues here after 5803H validates "EXIT" was typed.
5821H - "L" Command Handler (List File Sectors)
This routine handles the L (List) command when a file is open (bit 6 of mode flags is set). It saves the current key code, calls the file sector read routine, and determines whether to continue listing or return to the display loop.
582CH - "F" Command Handler (Find/File Operations)
This routine handles the F (Find) command. It initializes the search parameters and calls the file sector read routine to begin searching. If no match is found immediately, it continues to the search setup at 5834H.
5834H - Find Command Parameter Setup
This section sets up the search parameters for the Find command. It saves various state variables including the search position, mode flags, and relative sector information. The routine handles both memory mode and disk mode searches differently based on the mode flags.
Standard disk mode - set up search using absolute sector number.
586AH - Alternate Search Mode Entry
This section handles the alternate search mode when the carry flag was set on entry. It processes hex input for the search pattern.
5872H - Search Position Calculation
This section calculates and stores the search position within the current sector. It handles the byte offset calculation and adjusts for memory mode if needed.
Memory mode - adjust position relative to file load address.
Position is before load address - adjust to start of file.
58A0H - Multi-Byte Search Pattern Input
This section collects multiple bytes for the search pattern. It allows up to 4 bytes to be entered for the search string.
58BEH - Search Initialization Complete
This section finalizes the search setup by storing the starting position and initiating the search loop. It checks for the BREAK key and handles both disk sector and memory mode searches.
BREAK not pressed - continue with the search.
Standard disk mode - calculate absolute sector from position.
5902H - Update Search State and Continue
This section updates the search state variables and determines whether to continue searching or if a match was found. It handles incrementing through sectors and checking for sector boundaries.
Memory or alternate mode - check for sector boundary crossing.
Byte offset wrapped - advance to next 256-byte page.
5919H - Search Pattern Matching Loop
This is the core pattern matching loop. It compares bytes from the search pattern buffer against the current position in the data being searched. When all pattern bytes match, the search is successful.
More pattern bytes to check - get next data byte.
5931H - Search Match Found
This section executes when a search pattern match is found. It cleans up the stack, sets the "sector modified" flag to indicate a match was found at this location, and returns to the command loop with the 'R' command to re-read and display the found sector.
593CH - Get Next Byte for Search
This routine retrieves the next byte from the data being searched. It handles both alternate display mode (reading from a buffer) and normal mode (reading from disk sectors). The routine advances the position counters and handles sector boundaries.
Alternate display mode - read from memory buffer.
5951H - Normal Mode Sector Read for Search
This routine reads the next sector from disk during a search operation. It calls the DOS sector read routine and handles various conditions including end-of-file, sector boundaries, and file mode operations. The routine manages the search offset counter and handles multi-sector spanning searches.
Non-zero direction flag - this is a file mode search requiring additional handling.
596CH - Handle File Sector Boundary
This routine handles crossing sector boundaries during file searches. It reads the next sector and determines whether to continue the search, skip sectors, or reset based on the file structure.
5982H - Handle Data Address Mark
This routine handles a Data Address Mark (DAM) encountered during file search. It calculates the proper offset for continuing the search past the header bytes.
5989H - Skip Sectors Loop
This routine skips a specified number of sectors during file search. It repeatedly calls the DOS sector read until the counter in D reaches zero.
5990H - DOS Sector Read for Search
This routine performs the actual DOS sector read operation. It calls the NEWDOS/80 file read routine at 444EH with the FCB at 5400H. The routine handles various return conditions including successful read, end of file (error 06H), and break key detection.
Either read error occurred or BREAK was pressed. Check error type.
End of file - return the last byte from the buffer.
59B4H - Reset Search State
This routine resets all search state variables to their initial values. It clears the position counters, offset variables, and prepares for a new search or returning to normal display mode. This is called when the search is aborted or reaches the end of searchable data.
Memory mode - use file load address as base.
59E0H - Copy Command Setup (Source Specification)
This routine handles the setup for the Copy command. It displays prompts for the source disk/sector and collects the parameters needed for the copy operation. The routine saves the source parameters for later use when specifying the destination.
5A09H - Copy Command Setup (Destination Specification)
This section prompts for the destination disk and sector for the copy operation. It validates the input and prepares the parameters for the actual copy.
Reverse copy mode - adjust source and destination positions.
5A57H - Copy Operation Main Loop Setup
This section sets up the buffer addresses and begins the main copy loop. It calculates the source and destination buffer addresses and initiates the byte-by-byte copy process.
5A72H - Copy Operation Byte Transfer Loop
This is the main byte-by-byte copy loop. It transfers data from the source buffer to the destination buffer, handling sector boundaries and direction control.
Copy complete - write the final destination sector.
Forward copy - increment pointers.
5A9AH - Reverse Copy Pointer Adjustment
This section handles pointer adjustment for reverse direction copying. It decrements the buffer pointers instead of incrementing them.
5AACH - Read Source Sector for Copy
This routine reads the source sector for the copy operation into the buffer at 4200H. It saves and restores all working registers, handles the sector position update, and accounts for forward or reverse direction.
5AD2H - Write Destination Sector for Copy
This routine writes the destination sector to disk during copy operations. It saves all working registers, clears the search type flag at 5494H, calls the sector write routine, updates the destination sector number based on the copy direction (forward or reverse), and restores the registers before returning. The routine at 5AD6H contains self-modifying code where the search type flag value is stored.
Reverse copy direction - need to decrement sector number instead of increment.
5AEFH - Write and Read Next Destination Sector
This routine handles destination sector boundary crossing during copy operations. It first writes the current destination sector to disk, then reads the next destination sector into the buffer. This is called when the destination byte offset wraps around (crosses a 256-byte sector boundary).
5AF2H - Read Destination Sector for Copy
This routine reads the destination sector into the buffer at 5300H. It sets up the FCB parameters (sector number, buffer address, disk number), performs the read via 5B42H and 6457H, checks for sector overflow beyond the disk's maximum sector, and handles self-modifying code to track the operation type.
5B16H - Read Sector with Overflow Check
This routine reads a sector from disk after setting up the FCB parameters. It checks for sector overflow (attempting to read beyond the disk's maximum sector) but only in standard disk mode (not in memory or file mode). Used by the copy operation to read source sectors.
Standard disk mode - check for sector overflow before reading.
5B29H - Write Sector with Overflow Check
This routine writes a sector to disk after setting up the FCB parameters. It loads the current sector number, maximum sector, buffer address, and disk number, then checks for overflow before calling the disk write routine at 6474H.
5B42H - Setup FCB Parameters
This utility routine stores the sector number, buffer address, and disk number into the File Control Block (FCB) at 5400H. The FCB is used by NEWDOS/80 for all disk I/O operations. On entry: HL=sector number, BC=buffer address, A=disk number.
5B4DH - Move Command Setup (Source Specification)
This routine handles the setup for the Move command. It displays prompts for specifying the source disk and sector parameters. The Move command differs from Copy in that it operates on sectors within the same file or disk structure. The routine saves the source parameters for later use when specifying the destination.
5B6DH - Move Command Setup (Destination Specification)
This section prompts for the destination disk for the move operation. After validating the input, it calculates the transfer parameters and handles reverse direction if specified.
Reverse direction move - adjust starting positions to end of transfer range.
5B9EH - Zeroize/Fill Command Setup
This routine handles the Zeroize (or Fill) command setup. It displays the appropriate prompt and collects input for specifying the range of sectors to fill with zeros or a specified byte value.
5BA6H - Purge Command Setup
This routine handles the Purge command which securely erases sectors by overwriting them. It checks for a special option flag and sets the purge mode if specified.
5BB3H - Sector Range Input Loop
This routine collects the sector range input for zeroize/purge operations. It loops until valid input is received, then processes the disk parameters.
5BBBH - Zeroize/Purge/Move Main Loop Setup
This is the main setup and dispatch point for the zeroize, purge, and move operations. It determines which disk and sector to operate on based on the mode flags, then reads the sector into the buffer.
Bit 5 was set - use saved source parameters instead of destination.
Printer mode - output the sector to the printer.
5BECH - Check Operation Mode and Execute
This section determines what operation to perform based on the mode flags. It handles verify mode, purge mode, and zeroize mode differently.
Verify mode - check for BREAK key and search for pattern.
Pattern match found - display the result message.
5C1AH - Zeroize/Purge Sector Execution
This section performs the actual zeroize or purge operation on the current sector. For purge mode, it sets bit 5 indicating multiple passes. It fills the sector buffer with zeros and writes it to disk.
Fill the sector buffer with zeros.
5C30H - Advance to Next Sector
This routine advances to the next sector in the sequence (forward or reverse based on mode flags), decrements the remaining count, and loops back until all sectors are processed.
Reverse direction - need to decrement instead of increment.
5C5AH - "MOD" Command Handler (Sector Modification)
This routine handles the MOD (Modify) command which allows direct editing of sector data at the byte/nibble level. It uses inline parameter verification to confirm "OD" was typed after "M", then enters an interactive editing mode where the user can modify individual bytes using hex input. The cursor position tracks location within the sector buffer.
The following bytes are inline data spelling "OD" (the "M" was already matched). A 00H byte terminates the keyword.
Execution continues here after 5803H validates "MOD" was typed. Now get the starting position.
5C69H - Modify Mode Main Loop
This is the main loop for the Modify mode. It stores the current edit position, reads a hex nibble from the user, and processes the input to update the sector buffer. The loop continues until the user presses ENTER to confirm or another key to exit.
Valid hex digit entered - update the sector buffer with the new nibble value.
Determine which nibble (high or low) of the byte is being edited.
Editing high nibble - need to shift the input value left by 4 bits.
We edited the low nibble - advance to the next byte.
5CAEH - Process Non-Hex Key Input
This section handles keypresses that are not valid hex digits. It checks for control keys like ENTER (confirm changes), SPACE/TAB (advance position), BACKSPACE (move back), and arrow keys (navigation).
SPACE or TAB key - advance to next position.
5CC7H - Check Backspace and Arrow Keys
This section handles the BACKSPACE key (move cursor backward) and arrow keys for navigation within the sector buffer.
BACKSPACE/LEFT ARROW - move cursor backward.
5CD6H - Check Down Arrow Key
This section handles the DOWN ARROW key to move the cursor down by one line (2 bytes in hex display).
DOWN ARROW - move cursor down by 2 bytes.
Position overflowed past 255 - set to end of buffer.
5CE7H - Check Up Arrow and Other Navigation Keys
This section handles UP ARROW, LINE FEED (down by 16 bytes), and begins checking for special command keys.
UP ARROW or [ key - move cursor up by E bytes.
Position underflowed below 0 - set to start of buffer.
5D01H - Confirm and Save Sector Changes
This routine handles the ENTER key press during Modify mode. It prompts the user to confirm whether to write the changes to disk. If in alternate display mode (bit 5 set), it skips the confirmation. Otherwise, it displays "WRITE CHANGES (Y/N)?" and waits for user response. If 'Y' is pressed, the sector is written to disk.
Standard mode - prompt for write confirmation.
User confirmed 'Y' - write the sector to disk.
5D23H - Display Modification Complete Message
This routine displays a completion message after modifications have been made (or skipped). It shows "MODIFICATION COMPLETE" and waits for user acknowledgment before returning to the main display loop with a Re-read command.
5D34H - Check for Quit Command
This section checks if the user pressed Q to quit the Modify mode without saving. It also handles alternate mode differently, showing an "ABORTED" message.
Q pressed - quit editing without saving.
5D45H - Check for Zap Byte Command
This section checks for Z (zap/zero a byte) or A (set to alternate value) commands. These allow quickly setting a byte to 00H or another preset value.
5D51H - Zap/Repeat Fill Command Processing
This routine processes the Zap (Z) or Repeat fill (R) command. It echoes the command character, gets additional parameters (end address and optionally fill value), validates the range, and fills the specified bytes. For Zap, it fills with 00H. For Repeat fill, it prompts for a fill value. The syntax is "ZT<end>" for Zap or "RT<end>,<value>" for Repeat fill.
Repeat fill command - need to get the fill value from user.
Starting on low nibble - need to preserve the high nibble of the first byte.
5D9AH - Fill Bytes Loop
This is the main fill loop that writes the fill value to consecutive bytes in the sector buffer. It continues until the byte count in C reaches zero, then returns to the modify mode.
5DA6H - Error Handler and Recovery
This routine handles errors and boundary conditions during Modify mode. It displays an error message, waits for the user to press * to acknowledge, then returns to the edit loop. This is called when the user tries to edit beyond sector boundaries or when an invalid operation is attempted.
5DBCH - Display Cursor and Wait for Keypress
This routine displays a cursor character at the current screen position, waits for a keypress (with cursor blinking), and returns the key code. It calculates the screen address from the buffer position and handles cursor blinking by alternating the character display. Entry: A=cursor character, B=mode flags, C=buffer position. Exit: A=key code pressed.
5DECH - Wait for Keypress with Timeout
This routine waits for a keypress with a timeout counter. If no key is pressed before the timeout expires, it returns with Z flag set (for cursor blinking). If a key is pressed, it returns with NZ and the key code in A.
5DF7H - Get Character from Input
This routine gets a character from user input. It waits for a keypress, checks if it's a printable character (ASCII 20H or higher), and optionally echoes it to a buffer. If the key is below 20H (control character), it returns with carry set.
5DFDH - Echo Character to Command Buffer
This routine stores a character into the command line echo buffer area. It calculates the buffer position, checks for overflow, and stores the character. The buffer is located in video memory at 4000H.
5E19H - Get Hex Address Input
This routine gets a hexadecimal address value from user input. It first gets a character, then parses up to 4 hex digits into a 16-bit value in Register pair DE. If the input is invalid or the user presses a control key, carry is set on return. Used by the MOD command to get the starting edit position.
5E1CH - Parse Hex Digits into DE
This routine parses hexadecimal digits from user input into a 16-bit value. It accumulates digits into Register pair DE, shifting previous digits left by 4 bits for each new digit entered. Entry: Called after first character is in A. Exit: DE=parsed value, carry set on error.
5E2EH - Get Hex Byte with Validation
This routine gets a hex byte value from input with additional validation. It calls the parse routine and then checks for proper termination. Used for getting search patterns and other byte values.
5E33H - Get Hex Value with Full Parsing
This routine gets a complete hex value from input, handling up to 4 digits. It's the main entry point for hex input when a full address or value is expected.
5E37H - Check Input Termination
This routine checks if the input was properly terminated with ENTER (0DH) or a comma (2CH). It's called after parsing to validate that the user completed the input correctly. Returns: Z flag if terminated with ENTER, carry clear if comma (more input follows), carry set if invalid terminator.
5E49H - Password Entry and Checksum Calculation
This routine handles password entry for protected operations. It displays a password prompt, collects up to 8 characters of input, clears the entry area on screen with spaces, and then calculates a 16-bit checksum of the entered password combined with stored data. The checksum algorithm uses a complex series of rotations and XOR operations to create a hash value. This is used for disk copy protection verification.
Password display cleared. Now calculate the checksum hash.
5E64H - Checksum Calculation Loop
This is the main checksum calculation loop. It processes each byte of the password buffer through a complex series of rotations and XOR operations to generate a pseudo-random hash. The algorithm is designed to make it difficult to reverse-engineer the expected password from the stored checksum.
5E8CH - Display Checksum Result
After calculating the checksum, this section converts the 16-bit hash value in DE to hexadecimal ASCII and displays it. The checksum is shown as a 4-digit hex number.
5EA0H - Filespec Entry and Validation
This routine handles filename input with validation. It displays a prompt for the filespec, collects up to 8 characters for the filename, pads with spaces if needed, then collects up to 3 characters for the extension. It calculates a checksum of the entered filespec for validation purposes.
5ECCH - Filespec Checksum Calculation
This section calculates a checksum of the entered filespec for validation. It XORs all 11 characters (8 filename + 3 extension) together with rotation to create a hash value.
5EDFH - Raw Track Read Command Setup
This routine sets up and initiates a raw track read operation for disk analysis. It prompts for track/sector parameters, sets the file mode flag in the secondary mode flags at 5493H, configures the FCB (File Control Block) at 5400H with the maximum sector count and starting sector, then calls NEWDOS/80's directory search routine. This allows SUPERZAP to read raw track data directly from the floppy disk controller for analyzing disk format and copy protection.
File not found or error occurred - check if it's a recoverable error.
5F05H - Raw Track Read Initialization
This routine initializes the WD1771 floppy disk controller for a raw track read operation. It saves the current disk select byte from the DOS workspace at 4309H, disables interrupts for precise timing, calls the drive select routine, then restores the select byte. Raw track reads require uninterrupted execution to capture every byte as it streams off the disk.
5F26H - Wait for FDC Busy
This short loop waits for the FDC to transition from "just busy" (status=01H) to "busy with data ready" (status has DRQ bit set). This synchronizes the capture loop with the actual data stream from the disk.
5F2BH - Raw Track Data Capture Loop
This is the critical high-speed data capture loop. It reads raw bytes from the FDC data register at 37EFH as fast as possible and stores them into the buffer at 7000H. The loop must complete each iteration within the byte time of the disk (32 microseconds for single density) or data will be lost. Multiple DRQ checks handle timing variations.
5F46H - Track Read Completion and Error Check
This section handles completion of the raw track read. It checks for CRC errors in the captured data, marks error locations in the buffer, sends a Force Interrupt command to reset the FDC, re-enables interrupts, and saves the final buffer position for later analysis.
Error detected during read - mark the error location in the buffer.
5F54H - Save Buffer Position and Check Errors
This section saves the final buffer position, extracts error bits from the FDC status, and determines whether to display results or an error message. The buffer position indicates how many bytes were captured from the raw track read.
Error bits present - determine which specific error occurred.
5F63H - Display Disk Error
This routine displays a disk error message based on the error code in Register A, then returns to the error handler to allow the user to retry or abort.
5F69H - Display Track Read Results
This routine displays the results of a successful raw track read operation. It shows the buffer start address (7000H), the buffer end address (from 5F7CH), allowing the user to see how much data was captured.
5F85H - FDC Status Check with Retry
This routine checks the FDC status and handles busy/not ready conditions with automatic retry. It's used during drive initialization to wait for the drive to become ready.
5F8DH - Handle FDC Busy Condition
This section handles the case where the FDC is busy. It checks if the controller is simply completing an operation or if it needs to be reset with a Force Interrupt command.
5F9DH - Check FDC Not Ready
This short routine checks if the FDC is reporting "not ready" status, which indicates the drive door is open or no disk is inserted.
5FA2H - Output Drive Select Byte
This routine outputs the current drive select byte to the disk controller hardware. It reads the select byte from the DOS workspace at 4309H and writes it to the drive select latch at 37E1H.
5FA9H - Timing Delay and Read FDC Status
This routine provides a short timing delay (approximately 30 microseconds) then reads the FDC status register. The delay allows the FDC time to update its status after a command or operation.
5FB2H - Initialize Sector Display Screen
This routine initializes the screen for displaying sector contents. It sets up the cursor position pointer at 54B0H, clears the command line area, and prepares the video memory starting at 3C00H for the hex/ASCII dump display. The display shows 16 rows of 16 bytes each (256 bytes total per sector).
5FC6H - Format Display Row Address
This section calculates and displays the address prefix for each row of the hex dump. It shows the offset within the sector at the left margin.
Memory or alternate mode - display the high byte of the address.
5FE8H - Format Hex Bytes and ASCII Display
This is the main formatting loop that displays each row of the hex dump. For each row, it shows 8 pairs of hex bytes in the left portion of the screen, and the corresponding ASCII characters in the right portion. Non-printable characters are displayed as periods.
Now determine if this byte is printable ASCII for the right-side display.
601AH - Check Display Mode and Show Status
After displaying the 16 rows of hex/ASCII dump, this section checks the display mode flags and adds status information at the bottom of the screen. It shows disk number, track, sector, and granule information depending on the active mode (file mode, memory mode, or standard disk mode).
Memory mode - display "M" indicator at start of first line.
6032H - Display Disk Number Status
This section displays the disk drive number on the status line at the top of the screen. It sets up the display parameters and calls the status formatting routine.
6041H - Check for File Mode Status
This section loads the current sector number and checks if file mode is active. In file mode, additional information about granules and file position is displayed. Otherwise, track and sector information is shown.
604CH - Calculate File Position for Status
When in file mode, this section calculates the current position within the file by traversing the granule allocation chain. It determines which granule contains the current sector and calculates the offset within the file.
605DH - Traverse Granule Chain
This loop traverses the granule allocation chain in the FCB to calculate the file position. It checks each granule entry to see if the current sector falls within that granule, accumulating the byte offset as it goes.
6089H - Complete File Position Calculation
This section completes the file position calculation and proceeds to display the track/sector status line.
608DH - Calculate Exact File Offset
When the correct granule is found, this section calculates the exact byte offset within the file based on the granule position and sector offset.
60B5H - Display Track Number Status
This section displays the track number on the status line. It retrieves the sector number from the stack, checks if file mode is active, and calculates the track number based on sectors per track.
Standard disk mode - calculate and display track number from absolute sector.
60DEH - Display Track Number and Search Type
This section displays the track number at screen position 3F00H (bottom status row), then displays the current search/operation type indicator at position 3FC1H.
60EAH - Restore Registers and Return
This is the common exit point for the sector display routine. It restores the BC register pair that was saved at the beginning and returns to the caller.
60ECH - Format and Display Status Value
This is a general-purpose routine for formatting and displaying numeric status values on the screen. It takes a 16-bit value in HL, a screen position in DE, and a format string address in BC. It calculates three screen positions (base, +64, +128 for multi-line display), copies a 3-character label from the format string to the base position, then displays the value in three formats: as a formatted string, in decimal, and in hexadecimal with an "H" suffix.
6111H - Boundary Range Check
This routine checks if the current position falls within a specified boundary range. It compares values at 5499H and 549AH, then checks if the current sector (54A2H) is within range of the target sector (54A4H). If within range, it sets bit 7 of the secondary mode flags at 5493H. This is used during search operations to determine if a match has been found within the current sector.
Forward search - target ≥ current sector.
On the target sector - check byte position within sector.
612DH - Reverse Range Check
This section handles the reverse search case where the target sector is before the current sector. It recalculates the range to determine if the current position is within the search boundary.
6134H - Set Boundary Flag
This section sets bit 7 of the secondary mode flags to indicate that the boundary condition has been met. This flag signals to the calling code that the search target has been found.
613AH - Print Sector Display to Printer
This routine prints the current sector display to the printer. It first refreshes the screen display, then outputs each character of the first row (64 characters) to the printer, converting TRS-80 graphics characters to printable ASCII. The user can press H to halt, P to pause, or let it continue for multiple pages.
6147H - Print Row Character Loop
This loop reads each character from video memory and outputs it to the printer. TRS-80 graphics characters (codes 00H-1FH and 80H-BFH) are converted to printable ASCII by adding 40H to codes below 20H.
6157H - Check for User Interrupt
After printing each row, this section checks if the user has pressed a key to halt or pause the printing. H halts completely, P pauses until Enter is pressed.
User pressed H - halt printing and return to command loop.
6168H - Pause and Wait for Enter
When the user presses P, this loop waits for them to press Enter before resuming the print operation.
616FH - Continue Printing or Finish
This section decrements the page counter and either continues printing the next row or finishes the print job with extra newlines.
Finished printing all rows - add blank lines and finalize.
617BH - Initialize Edit Buffers
This routine initializes the edit buffers for sector operations. It calculates the buffer size based on the value at 54B4H, sets up the source buffer at 4200H and destination buffer at 5300H, stores the buffer address in the FCB, and fills the destination buffer with FFH bytes while reading keyboard input. This allows the user to enter data while the buffer is being initialized.
6191H - Fill Buffer with FFH
This loop fills the destination buffer at 5300H with FFH bytes. The FFH value represents "empty" or "uninitialized" data in the TRS-80 disk format.
6197H - Keyboard Input During Fill
After filling the buffer, this section reads keyboard input using the ROM routine at 0013H. Characters are stored into the buffer, allowing the user to enter data. Special keys (BREAK, CLEAR) are handled separately.
61A2H - Handle Special Keys
This section handles special keys returned by the ROM keyboard routine. Key code 1CH indicates BREAK was pressed (fill remaining buffer with FFH and show error), while 1DH indicates CLEAR was pressed (return to a specific menu).
BREAK pressed - fill remaining buffer with FFH and show abort message.
61BFH - Calculate Buffer Parameters from Input Value
This routine calculates sector and offset values from an input address in HL. It compares HL against the limit value at 54B2H, computes the sector number and byte offset within sector, and sets up the FCB fields for file positioning. On entry: HL = input address value. On exit: FCB at 540AH contains sector number, 5405H contains byte offset, bit 5 of 5401H is set to indicate special buffer mode.
HL was less than DE (input below limit). Set up alternative calculation.
61EAH - Convert DE to Hex ASCII at (HL)
This routine converts the 16-bit value in DE to 4 hex ASCII characters, storing them at the address in HL. It calls the byte conversion routine twice - once for D (high byte) and once for E (low byte). On entry: DE = 16-bit value to convert, HL = destination buffer address. On exit: HL points past the 4 stored characters.
61EFH - Convert Byte A to 2 Hex ASCII Characters at (HL)
This routine converts the byte in A to two hex ASCII characters, storing them at the address in HL. It converts the high nibble first, then the low nibble. On entry: A = byte to convert, HL = destination address. On exit: HL points past the 2 stored characters (HL = HL + 2).
61F8H - Convert Low Nibble of A to Hex ASCII and Store at (HL)
This routine converts the low nibble (bits 0-3) of A to a hex ASCII character ('0'-'9' or 'A'-'F') and stores it at the address in HL, then increments HL. On entry: A = value with nibble to convert in bits 0-3, HL = destination address. On exit: Character stored at (HL), HL = HL + 1.
6205H - Non-Blocking Keyboard Scan
This routine performs a non-blocking keyboard scan by calling ROM routine 002BH. It preserves DE and converts any lowercase letters to uppercase. On entry: None. On exit: A = key code if key pressed (converted to uppercase), A = 0 if no key, DE preserved.
620BH - Blocking Keyboard Wait
This routine waits for a keypress by calling ROM routine 0049H. It preserves DE and converts any lowercase letters to uppercase. This is a blocking call - execution pauses until a key is pressed. On entry: None. On exit: A = key code (converted to uppercase), DE preserved.
620FH - Restore DE and Convert Lowercase to Uppercase
This is the common exit point for keyboard routines. It restores DE from the stack and converts any lowercase letter in A to uppercase. On entry: A = key code from keyboard. On exit: A = key code (uppercase if was lowercase letter), DE restored.
6210H - Convert Lowercase to Uppercase
This routine converts a lowercase letter (a-z) in A to uppercase (A-Z). If A is not a lowercase letter, it is returned unchanged. On entry: A = character to convert. On exit: A = uppercase character (if was lowercase) or original character.
6219H - Clear Command Line and Display String with Newlines
This routine clears the command line area on screen, then displays the string pointed to by HL, followed by 3 carriage returns (newlines) to the printer. It's used to prepare the display for new prompts or messages.
6224H - Display String and Prompt for Y/N Confirmation
This routine displays a string at (HL), then displays the standard Y/N prompt from 6D11H and calls the confirmation input routine. On exit: Z flag set if user entered Y, NZ if N. If Z flag is set, execution jumps to 54C5H (main command handler).
6231H - Y/N Confirmation Input Loop
This routine repeatedly displays the prompt string at (HL), collects keyboard input, and loops until the user enters either Y (59H) or N (4EH). The routine gives the user 3 attempts, re-displaying the prompt each time. On entry: HL = prompt string address. On exit: A = key pressed (59H for Y or 4EH for N), Z flag set if Y, NZ if N.
[LOOP START] - Y/N input loop. Prompts user up to 3 times for valid input.
After the loop, check if the user entered a valid response (Y or N).
[LOOP END] - User entered Y. Clear carry and return with Z flag set.
6242H - Flush Printer and Display String with Newline
This routine flushes the printer buffer, then displays the string at (HL) followed by a newline. Used when printer output needs to be synchronized before displaying new content.
6245H - Display String with Single Newline
This routine displays the string pointed to by HL, then outputs one carriage return (0DH) to the printer. On entry: HL = string address. The string display routine at 6255H is called first.
[LOOP START] - Newline output loop. Outputs B carriage returns to printer.
[LOOP END] - All newlines output.
6252H - Flush Printer and Display Compressed String
This routine flushes the printer buffer before displaying a compressed string. It's an entry point that ensures printer synchronization before string output.
6255H - Display Compressed String
This is the main compressed string display routine. SUPERZAP uses a sophisticated string compression system where common words are stored in tables at 696BH (short words) and 6A23H (longer words). Strings contain special control codes (60H and above) that index into these word tables. The high bit of each character in the tables marks the end of a word. On entry: HL points to the compressed string. Register C tracks state: bit 0 indicates if a space should precede the next word.
[LOOP START] - Main character processing loop. Each character is checked for control codes or terminators.
Character is 60H or above - it's a compressed word token. Decode and output the word from the table.
[INNER LOOP START] - Scan through word table to find the entry at index B. Words end with high bit set.
Found end of a word. Check if this is the word we're looking for.
[INNER LOOP END] - Found the target word. Now output it character by character.
[WORD OUTPUT LOOP] - Output each character of the word until high bit is set.
[WORD OUTPUT LOOP END] - Word complete. Restore string position and continue.
629FH - Character Output Filter
This routine filters character output. If the character is 08H (backspace control code), it resets the space flag in C and returns without output. Otherwise, it outputs the character via the main character output routine at 62C8H. On entry: A = character to output, C = flags (bit 0 = space flag). On exit: Character output to display/printer (unless A was 08H).
62A7H - Clear Command Line Area
This routine clears the command line area on the screen by first outputting a "home to command line" code (1CH) followed by a "clear to end of line" code (1FH). Used to prepare the screen for new prompts or messages.
62AEH - Output "Turn On Expanded Print" Control
Outputs control code 0EH to enable expanded (double-width) printing on compatible printers.
62B2H - Output "Turn Off Expanded Print" Control
Outputs control code 0FH to disable expanded (double-width) printing on compatible printers.
62B6H - Output "Home to Command Line" Control
Outputs control code 1CH to position the cursor at the command line area (bottom of screen).
62BAH - Output Buffer Contents (B bytes from HL)
Outputs B bytes from the buffer at (HL) to the character output routine. On entry: HL = buffer address, B = byte count. On exit: HL points past the last byte output, B = 0.
[LOOP START] - Output B bytes from buffer at (HL).
[LOOP END]
62C2H - Output Single Character from (HL) and Advance
Outputs one character from (HL) and advances HL. Used for inline string output where HL tracks position.
62C6H - Output Space Character
Outputs a space character (20H). Called by the compressed string routine to insert spaces between words.
62C8H - Main Character Output Routine
This is the central character output routine for SUPERZAP. It handles both screen and printer output, managing column tracking, line wrapping, and special control codes. The routine uses several workspace variables: 5483H (current column position), 5484H (line width), 5480H (output mode flags where bit 6 = printer output enabled), 5481H (lines per page), 5482H (current line count). On entry: A = character to output. All registers are preserved.
Character is 00H-09H (low control code). Output directly then handle column tracking.
Character is a control code (00H-1FH). Handle special cases.
Handle backspace (08H) - move column position left if possible.
Check for cursor positioning codes (1CH-38H range).
Handle printable characters (20H and above) - decrement column counter.
Column counter reached zero - end of line. Handle auto line wrap.
Check if printer is ready for next line (paper out check).
This is bizarre to me. It makes sense as written that these functions would do this, but 3840H is the keyboard, not the printer. These checks would be BREAK and ENTER, in that order, on 3840H.
Printer not ready. Wait for user intervention then continue.
[LOOP START] - Wait for printer ready.
[LOOP END] - Printer ready. Exit the routine.
6327H - Output Padding Spaces
This routine outputs padding spaces to align output. It calculates how many spaces are needed based on the difference between line width and current position, then outputs that many spaces. On entry: B = alignment parameter. On exit: Spaces output to current position, or returns immediately if already past alignment point.
[LOOP START] - Output B spaces.
[LOOP END]
6339H - Display Prompt and Get Filename
This routine displays a prompt string at (HL), then collects filename input from the user into the buffer at 5440H. The input is limited by the value in B (maximum characters). On entry: HL = prompt string address, B = maximum input length. On exit: HL = 5440H (input buffer address).
6345H - Display String and Wait for Keypress
This routine displays the string at (HL), then waits for the user to press ENTER. It loops until ENTER is pressed. Used for "Press ENTER to continue" prompts.
[LOOP START] - Wait for user to press ENTER.
[LOOP END] - User pressed ENTER.
634EH - Display Prompt and Collect Input
This routine displays a prompt string at (HL), then collects keyboard input into the buffer at 5440H. Maximum input length is 64 characters (40H). On entry: HL = prompt string address. On exit: A = first character of input, Z flag set if first char is ENTER (0DH), HL = 5440H.
[LOOP START] - Convert all characters in buffer to uppercase.
[LOOP END] - All characters converted to uppercase.
636AH - Disable Printer Output Mode
This routine flushes the printer buffer, then clears the output mode flags at 5480H to disable printer output. Printer output is controlled by bit 6 of 5480H.
6374H - Flush Printer Buffer
This routine flushes any pending output and prepares for new output. It sets the output device to printer mode (22H stored at self-modifying location 63ECH) and initializes column position. If the current column is not at line start, a newline is output first.
6379H - Output Carriage Return to Printer
This routine initializes for screen output mode (00H) and ensures the cursor is at the start of a line.
639FH - Enable Printer Output Mode
This routine enables printer output by setting bit 6 of the output mode flags at 5480H. When bit 6 is set, characters are sent to both screen and printer.
63A8H - Disable Printer Output Mode
This routine disables printer output by clearing bit 6 of the output mode flags at 5480H. Output will go to screen only.
63AFH - Check if Line Counter at Page Boundary
This routine checks if the current line counter (at 5482H) equals 60 (3CH), which indicates a page boundary for printer pagination. On exit: Z flag set if at page boundary (line counter = 3CH).
63B5H - Handle End of Line for Printer
This routine handles end-of-line processing for the printer. It checks the output mode, manages page breaks (outputting extra carriage returns at page boundaries), and resets the column position. The self-modifying location at 63ECH determines the current output mode (22H = printer, 00H = screen).
Screen mode - check for page boundary and handle form feed.
At page boundary (line 1). Check if lines-per-page is configured.
Pagination enabled - output 6 carriage returns for page break.
[LOOP START] - Output B carriage returns.
[LOOP END] - Page break complete.
63DDH - Output Multiple Newlines Until Page Boundary
This routine outputs newlines until the line counter reaches a page boundary (60 lines). Register C specifies the maximum number of newlines to output. Used to advance to a new page or create vertical spacing. On entry: C = maximum newline count.
[LOOP START] - Output newlines until page boundary or C reaches zero.
[LOOP END] - Maximum count reached or page boundary found.
63E8H - Device Output Dispatcher
This routine outputs a character to the current output device(s). It uses a clever self-modifying dispatch mechanism to handle the return path. The routine at 6427H captures the return address and patches it into jump targets at 6434H and 6442H, allowing different return paths depending on how the output completes. On entry: A = character to output.
63EDH - Screen Output with Character Filtering
This routine outputs a character to the screen with filtering for non-printable characters. Characters above a configurable threshold (stored at 4370H) are replaced with a period (2EH). Control characters are handled specially. On entry: A = character to output.
Character is a control code (00H-1FH). Check if it should be displayed.
Printer output is enabled. Continue to send character to printer.
Handle carriage return - check if line has content before sending CR.
6427H - Output Setup with Self-Modifying Return Path
This routine implements a sophisticated dispatch mechanism using self-modifying code. It captures the return address from the stack and patches it into two jump targets (6434H and 6442H), allowing the output routines to return to different points depending on the execution path. This technique avoids multiple returns and simplifies control flow.
6436H - Alternate Return Path Setup
This routine provides an alternate entry for setting up return path. It patches the address into 6442H instead of 6434H, creating a different return destination.
6444H - Common Exit - Restore Registers and Return
This is the common exit point for the output routines. It restores all saved registers (IY, IX, BC, DE, HL) and returns to the caller.
644CH - Read File with Raw Mode Flag Set
This routine sets the raw/track mode flag (bit 6 of 5493H), calls the main file read routine at 6457H, then clears the flag. This wraps the file read operation with raw mode enabled for track-level access.
6457H - Main File Read Setup
This routine prepares for and executes a DOS file operation. It sets up the FCB flags, calls the DOS @FSPEC routine at 4436H, and handles any errors. On entry: None (uses FCB at 5400H). On exit: Carry set on error, Z flag set if operation succeeded without error code.
Operation succeeded. Determine the operation type indicator character.
6474H - Write Sector to Disk
This routine writes a sector to disk. It sets up the FCB for a write operation (80H flag), checks the operation type, and calls the DOS write routine. On exit: Carry set on error.
Password-protected file. Set the protection bit before writing.
6497H - FCB Setup with Self-Modifying Return Path
This routine sets up the FCB (File Control Block) for a disk operation and configures the self-modifying return address. It captures the return address from the stack, patches it into 64BAH, and initializes FCB fields. On entry: A = operation flag (00H = read, 80H = write). On exit: FCB prepared, self-modifying jump target set.
64BCH - Check DOS Error Status
This routine checks the result of a DOS operation. It examines flags and the error code in A, returning appropriate status or jumping to error display. On entry: Flags from DOS call, A = error code. On exit: Z set if no error, Carry set for critical errors, NZ for warnings.
64C5H - Display DOS Error Message
This routine displays a DOS error message based on the error code. It saves registers, clears the command line, displays drive/sector status, looks up the error message in the error table at 6BEDH, and prompts for user response. On entry: A = DOS error code, flags from error check. On exit: May jump to retry, skip, or exit based on user input.
Write operation error. Select appropriate write error messages.
Read operation error. Set up read error messages.
Now look up the specific error message in the error table at 6BEDH.
[LOOP START] - Search error table for matching error code.
No match. Skip past this error message to the next entry.
Found end of message (00H). Check for end of table (03H).
[LOOP END] - Error code not found in table. Display numeric code.
Found matching error code. Display the error message text.
Check mode flags to determine appropriate user prompt.
Display retry prompt and get user response (R=retry, S=skip, X=exit).
6573H - Display Error from DE
Entry point that exchanges DE and HL, then displays an error message. Used when the message address is in DE instead of HL.
6576H - Display Unknown Key Error
Entry point for handling unknown/invalid key presses. Displays DOS error code 01 (with C0H prefix) and waits for user acknowledgment.
657FH - Display Message and Wait for Any Key
Displays a message from (HL) with printer flush, then waits for any keypress before returning to the main command loop.
658EH - Display "INVALID" Error
Entry point for displaying "INVALID" error message from 6E20H.
6593H - Display "BEYOND" Error
Entry point for displaying "BEYOND" (out of range) error message from 6E26H.
6598H - Display Message and Return with Carry Set
Displays error message from 6E0AH, then returns with Carry flag set to indicate error to caller.
65A0H - Display Error Message from 6E0FH
Entry point for displaying error message from 6E0FH, returns with Carry set.
65A5H - Display Error Message from 6E14H
Entry point for displaying error message from 6E14H, returns with Carry set.
65AAH - Display "ILLEGAL OPERATION" Error
Entry point for displaying "ILLEGAL OPERATION" (or similar) error from 6E3DH. Used when an invalid operation is attempted.
65AFH - Display Error Message from 6E59H
Entry point for displaying error message from 6E59H.
65B4H - Display "ABORTED" Message
Entry point for displaying "ABORTED" message from 6E85H. Used when user chooses to exit/abort an operation.
65B9H - Display Error Message from 6DE7H
Entry point for displaying error message from 6DE7H.
65BEH - Display Error Message from 6EE9H
Entry point for displaying error message from 6EE9H.
65C3H - Main Return to Command Loop
Entry point that outputs a newline, displays a message from 6C2DH, and returns to command loop.
65CBH - Add A to HL (HL = HL + A)
This utility routine adds the value in A to the 16-bit value in HL. Used for table indexing and address calculations. On entry: A = offset to add, HL = base address. On exit: HL = HL + A.
65D0H - Display Drive and Sector Status
This routine displays the current drive number, sector number, track, and sector-within-track for error messages and status displays. It retrieves values from the FCB and mode flags, formats them, and outputs to the display. Uses label strings from 6E8DH (drive), 6E90H (track), 6E93H (sector), 6E96H (absolute sector), and 6E9BH.
Normal disk mode - display sector as track + sector-within-track.
660AH - Display Label with 8-bit Value
Entry point that expands an 8-bit value in A to 16-bit in DE, then displays it with a label. On entry: A = 8-bit value, HL = label string address.
660DH - Display Label with Numeric Value and Decimal Conversion
This routine displays a label string, converts a value to decimal, and outputs it with leading zero suppression. It also shows the value in hex format. On entry: DE = value to display, HL = label string address. Uses buffer at 5487H for conversion.
[LOOP START] - Clear the conversion buffer to zeros.
[LOOP END] - Buffer cleared.
[LOOP START] - Output hex digits with leading zero handling.
[LOOP END] - All hex digits output.
6649H - Convert Byte to Hex and Display
Converts a byte in A to two hex ASCII characters in the buffer at 5487H, then displays them. On entry: A = byte to convert. On exit: Two hex characters displayed.
665BH - Convert DE to Hex and Display with Suffix
Converts the 16-bit value in DE to 4 hex ASCII characters and displays them, followed by the "H" suffix. On entry: DE = 16-bit value to display.
6665H - Convert DE to Hex ASCII at (HL)
Converts the 16-bit value in DE to hex ASCII characters stored at (HL). Handles leading zeros by only outputting significant digits. On entry: DE = value to convert, HL = buffer address. On exit: HL points past the stored characters.
6674H - Convert Byte to Two Hex ASCII Characters
Converts a byte in A to two hex ASCII characters (high nibble first, then low nibble) and stores them at (HL), advancing HL by 2. On entry: A = byte to convert, HL = destination buffer. On exit: HL = HL + 2.
667DH - Convert Nibble to Hex ASCII and Store
Converts the low nibble (bits 0-3) of A to a hex ASCII character ('0'-'9' or 'A'-'F') and stores it at (HL), then increments HL. On entry: A = value with nibble in bits 0-3, HL = destination. On exit: Character stored, HL incremented.
STILL TO COME
668A 7E LD A,(HL) ~
668B 12 LD (DE),A .
668C 13 INC DE .
668D 23 INC HL #
668E 10FA DJNZ 668AH ..
6690 C9 RET .
6691 7C LD A,H |
6692 BA CP D .
6693 C0 RET NZ .
6694 7D LD A,L }
6695 BB CP E .
6696 C9 RET .
6697 7C LD A,H |
6698 B8 CP B .
6699 C0 RET NZ .
669A BD CP L .
669B D8 RET C .
669C 7A LD A,D z
669D BC CP H .
669E C0 RET NZ .
669F 7B LD A,E {
66A0 BD CP L .
66A1 C9 RET .
66A2 7A LD A,D z
66A3 B8 CP B .
66A4 C0 RET NZ .
66A5 BB CP E .
66A6 D8 RET C .
66A7 78 LD A,B x
66A8 BC CP H .
66A9 C0 RET NZ .
66AA 79 LD A,C y
66AB BD CP L .
66AC C9 RET .
66AD 78 LD A,B x
66AE BA CP D .
66AF C0 RET NZ .
66B0 79 LD A,C y
66B1 BB CP E .
66B2 C9 RET .
66B3 1A LD A,(DE) .
66B4 BE CP (HL) .
66B5 13 INC DE .
66B6 23 INC HL #
66B7 C0 RET NZ .
66B8 10F9 DJNZ 66B3H ..
66BA C9 RET .
66BB 7E LD A,(HL) ~
66BC FE41 CP 41H .A
66BE 3F CCF ?
66BF D0 RET NC .
66C0 FE5B CP 5BH .[
66C2 C9 RET .
66C3 7E LD A,(HL) ~
66C4 FE41 CP 41H .A
66C6 380D JR C,66D5H 8.
66C8 FE5B CP 5BH .[
66CA C9 RET .
66CB FE47 CP 47H .G
66CD D0 RET NC .
66CE FE41 CP 41H .A
66D0 3F CCF ?
66D1 D8 RET C .
66D2 1801 JR 66D5H ..
66D4 7E LD A,(HL) ~
66D5 FE3A CP 3AH .:
66D7 D0 RET NC .
66D8 FE30 CP 30H .0
66DA 3F CCF ?
66DB C9 RET .
66DC 216D6D LD HL,6D6DH !mm
66DF 1803 JR 66E4H ..
66E1 21716D LD HL,6D71H !qm
66E4 E5 PUSH HL .
66E5 CD4E63 CALL 634EH .Nc
66E8 CD7B67 CALL 677BH .{g
66EB E1 POP HL .
66EC 38F6 JR C,66E4H 8.
66EE C9 RET .
66EF 21756D LD HL,6D75H !um
66F2 CD4E63 CALL 634EH .Nc
66F5 CDFB66 CALL 66FBH ..f
66F8 38F5 JR C,66EFH 8.
66FA C9 RET .
66FB CDE567 CALL 67E5H ..g
66FE E5 PUSH HL .
66FF F5 PUSH AF .
6700 3808 JR C,670AH 8.
6702 7B LD A,E {
6703 32AE54 LD (54AEH),A 2.T
6706 7A LD A,D z
6707 B7 OR A .
6708 281B JR Z,6725H (.
670A 21046E LD HL,6E04H !.n
670D 181C JR 672BH ..
670F CDED67 CALL 67EDH ..g
6712 E5 PUSH HL .
6713 F5 PUSH AF .
6714 3812 JR C,6728H 8.
6716 7A LD A,D z
6717 B7 OR A .
6718 200E JR NZ,6728H .
671A 7B LD A,E {
671B 320654 LD (5406H),A 2.T
671E 7B LD A,E {
671F 329954 LD (5499H),A 2.T
6722 CDB567 CALL 67B5H ..g
6725 F1 POP AF .
6726 E1 POP HL .
6727 C9 RET .
6728 21EB6D LD HL,6DEBH !.m
672B CD4562 CALL 6245H .Eb
672E F1 POP AF .
672F E1 POP HL .
6730 37 SCF 7
6731 C9 RET .
6732 CDED67 CALL 67EDH ..g
6735 E5 PUSH HL .
6736 F5 PUSH AF .
6737 3813 JR C,674CH 8.
6739 7A LD A,D z
673A B7 OR A .
673B 200F JR NZ,674CH .
673D CDB567 CALL 67B5H ..g
6740 210D43 LD HL,430DH !.C
6743 7B LD A,E {
6744 BE CP (HL) .
6745 3005 JR NC,674CH 0.
6747 329E54 LD (549EH),A 2.T
674A 18D9 JR 6725H ..
674C 21EF6D LD HL,6DEFH !.m
674F 18DA JR 672BH ..
6751 CDE567 CALL 67E5H ..g
6754 E5 PUSH HL .
6755 F5 PUSH AF .
6756 3813 JR C,676BH 8.
6758 7A LD A,D z
6759 B7 OR A .
675A 200F JR NZ,676BH .
675C CDB567 CALL 67B5H ..g
675F 219B54 LD HL,549BH !.T
6762 7B LD A,E {
6763 BE CP (HL) .
6764 3005 JR NC,676BH 0.
6766 32A054 LD (54A0H),A 2.T
6769 18BA JR 6725H ..
676B 21F36D LD HL,6DF3H !.m
676E 18BB JR 672BH ..
6770 CDE567 CALL 67E5H ..g
6773 D0 RET NC .
6774 E5 PUSH HL .
6775 F5 PUSH AF .
6776 21FF6D LD HL,6DFFH !.m
6779 18B0 JR 672BH ..
677B CDE567 CALL 67E5H ..g
677E E5 PUSH HL .
677F F5 PUSH AF .
6780 3808 JR C,678AH 8.
6782 ED53AC54 LD (54ACH),DE .S.T
6786 7A LD A,D z
6787 B3 OR E .
6788 209B JR NZ,6725H .
678A 21FC6D LD HL,6DFCH !.m
678D 189C JR 672BH ..
678F CD5562 CALL 6255H .Ub
6792 21506D LD HL,6D50H !Pm
6795 CD4E63 CALL 634EH .Nc
6798 37 SCF 7
6799 C8 RET Z .
679A CD0F67 CALL 670FH ..g
679D D8 RET C .
679E CDE567 CALL 67E5H ..g
67A1 E5 PUSH HL .
67A2 F5 PUSH AF .
67A3 380A JR C,67AFH 8.
67A5 ED53A254 LD (54A2H),DE .S.T
67A9 CDB567 CALL 67B5H ..g
67AC C32567 JP 6725H .%g
67AF 21F76D LD HL,6DF7H !.m
67B2 C32B67 JP 672BH .+g
67B5 F5 PUSH AF .
67B6 E5 PUSH HL .
67B7 D5 PUSH DE .
67B8 C5 PUSH BC .
67B9 3A0654 LD A,(5406H) :.T
67BC 110054 LD DE,5400H ..T
67BF CD5E44 CALL 445EH .^D
67C2 C27865 JP NZ,6578H .xe
67C5 3A0E43 LD A,(430EH) :.C
67C8 329B54 LD (549BH),A 2.T
67CB 3A0F43 LD A,(430FH) :.C
67CE 329C54 LD (549CH),A 2.T
67D1 3A0D43 LD A,(430DH) :.C
67D4 6F LD L,A o
67D5 2600 LD H,00H &.
67D7 3A9B54 LD A,(549BH) :.T
67DA CD7D68 CALL 687DH .}h
67DD 22A854 LD (54A8H),HL ".T
67E0 C1 POP BC .
67E1 D1 POP DE .
67E2 E1 POP HL .
67E3 F1 POP AF .
67E4 C9 RET .
67E5 CDED67 CALL 67EDH ..g
67E8 D8 RET C .
67E9 C2A065 JP NZ,65A0H ..e
67EC C9 RET .
67ED 7E LD A,(HL) ~
67EE FE0D CP 0DH ..
67F0 CA9865 JP Z,6598H ..e
67F3 FE2C CP 2CH .,
67F5 CAA565 JP Z,65A5H ..e
67F8 E5 PUSH HL .
67F9 CD2268 CALL 6822H ."h
67FC C1 POP BC .
67FD 7E LD A,(HL) ~
67FE D641 SUB 41H .A
6800 FE08 CP 08H ..
6802 300B JR NC,680FH 0.
6804 60 LD H,B @
6805 69 LD L,C i
6806 CD4F68 CALL 684FH .Oh
6809 7E LD A,(HL) ~
680A FE48 CP 48H .H
680C 23 INC HL #
680D 2011 JR NZ,6820H .
680F 7E LD A,(HL) ~
6810 FE0D CP 0DH ..
6812 C8 RET Z .
6813 FE2C CP 2CH .,
6815 C21B68 JP NZ,681BH ..h
6818 23 INC HL #
6819 B7 OR A .
681A C9 RET .
681B FE58 CP 58H .X
681D CAC554 JP Z,54C5H ..T
6820 37 SCF 7
6821 C9 RET .
6822 110000 LD DE,0000H ...
6825 CD2C68 CALL 682CH .,h
6828 D8 RET C .
6829 23 INC HL #
682A 18F9 JR 6825H ..
682C 7E LD A,(HL) ~
682D CDD566 CALL 66D5H ..f
6830 3F CCF ?
6831 D8 RET C .
6832 D630 SUB 30H .0
6834 E5 PUSH HL .
6835 62 LD H,D b
6836 6B LD L,E k
6837 08 EX AF,AF' .
6838 3E1F LD A,1FH >.
683A BA CP D .
683B 3810 JR C,684DH 8.
683D 08 EX AF,AF' .
683E 29 ADD HL,HL )
683F 29 ADD HL,HL )
6840 19 ADD HL,DE .
6841 29 ADD HL,HL )
6842 3809 JR C,684DH 8.
6844 5F LD E,A _
6845 1600 LD D,00H ..
6847 19 ADD HL,DE .
6848 3803 JR C,684DH 8.
684A EB EX DE,HL .
684B 7A LD A,D z
684C B3 OR E .
684D E1 POP HL .
684E C9 RET .
684F 110000 LD DE,0000H ...
6852 CD5968 CALL 6859H .Yh
6855 D8 RET C .
6856 23 INC HL #
6857 18F9 JR 6852H ..
6859 7E LD A,(HL) ~
685A CD6D68 CALL 686DH .mh
685D 3F CCF ?
685E D8 RET C .
685F E5 PUSH HL .
6860 EB EX DE,HL .
6861 08 EX AF,AF' .
6862 7C LD A,H |
6863 C6F0 ADD F0H ..
6865 38E6 JR C,684DH 8.
6867 08 EX AF,AF' .
6868 29 ADD HL,HL )
6869 29 ADD HL,HL )
686A 29 ADD HL,HL )
686B 18D4 JR 6841H ..
686D D630 SUB 30H .0
686F FE0A CP 0AH ..
6871 D8 RET C .
6872 D611 SUB 11H ..
6874 FE06 CP 06H ..
6876 D0 RET NC .
6877 C60A ADD 0AH ..
6879 37 SCF 7
687A C9 RET .
687B 2600 LD H,00H &.
687D D5 PUSH DE .
687E C5 PUSH BC .
687F EB EX DE,HL .
6880 0E80 LD C,80H ..
6882 210000 LD HL,0000H !..
6885 0F RRCA .
6886 3001 JR NC,6889H 0.
6888 19 ADD HL,DE .
6889 CB3C SRL H .<
688B CB1D RR L ..
688D CB19 RR C ..
688F 30F4 JR NC,6885H 0.
6891 65 LD H,L e
6892 69 LD L,C i
6893 C1 POP BC .
6894 D1 POP DE .
6895 C9 RET .
6896 4F LD C,A O
6897 0610 LD B,10H ..
6899 AF XOR A .
689A 29 ADD HL,HL )
689B 17 RLA .
689C 3803 JR C,68A1H 8.
689E B9 CP C .
689F 3802 JR C,68A3H 8.
68A1 91 SUB C .
68A2 2C INC L ,
68A3 10F5 DJNZ 689AH ..
68A5 C9 RET .
68A6 5F LD E,A _
68A7 1600 LD D,00H ..
68A9 1804 JR 68AFH ..
68AB 5E LD E,(HL) ^
68AC 23 INC HL #
68AD 56 LD D,(HL) V
68AE 23 INC HL #
68AF E5 PUSH HL .
68B0 CDD168 CALL 68D1H ..h
68B3 0604 LD B,04H ..
68B5 218754 LD HL,5487H !.T
68B8 3E30 LD A,30H >0
68BA BE CP (HL) .
68BB 2005 JR NZ,68C2H .
68BD 3620 LD (HL),20H 6
68BF 23 INC HL #
68C0 10F8 DJNZ 68BAH ..
68C2 04 INC B .
68C3 D1 POP DE .
68C4 C9 RET .
68C5 CDD168 CALL 68D1H ..h
68C8 0605 LD B,05H ..
68CA 218754 LD HL,5487H !.T
68CD C3BA62 JP 62BAH ..b
68D0 EB EX DE,HL .
68D1 018754 LD BC,5487H ..T
68D4 21F668 LD HL,68F6H !.h
68D7 3E04 LD A,04H >.
68D9 08 EX AF,AF' .
68DA C5 PUSH BC .
68DB 4E LD C,(HL) N
68DC 23 INC HL #
68DD 46 LD B,(HL) F
68DE 23 INC HL #
68DF EB EX DE,HL .
68E0 3E2F LD A,2FH >/
68E2 3C INC A <
68E3 09 ADD HL,BC .
68E4 DAE268 JP C,68E2H ..h
68E7 ED42 SBC HL,BC .B
68E9 EB EX DE,HL .
68EA C1 POP BC .
68EB 02 LD (BC),A .
68EC 03 INC BC .
68ED 08 EX AF,AF' .
68EE 3D DEC A =
68EF 20E8 JR NZ,68D9H .
68F1 7B LD A,E {
68F2 C630 ADD 30H .0
68F4 02 LD (BC),A .
68F5 C9 RET .
68F6 F0 RET P .
68F7 D8 RET C .
68F8 18FC JR 68F6H ..
68FA 9C SBC A,H .
68FB FF RST 38H .
68FC F6FF OR FFH ..
68FE 44 LD B,H D
68FF 52 LD D,D R
6900 56 LD D,(HL) V
6901 54 LD D,H T
6902 52 LD D,D R
6903 4B LD C,E K
6904 54 LD D,H T
6905 52 LD D,D R
6906 53 LD D,E S
6907 44 LD B,H D
6908 52 LD D,D R
6909 53 LD D,E S
690A 46 LD B,(HL) F
690B 52 LD D,D R
690C 53 LD D,E S
690D 44 LD B,H D
690E 44 LD B,H D
690F 81 ADD A,C .
6910 00 NOP .
6911 84 ADD A,H .
6912 55 LD D,L U
6913 44 LD B,H D
6914 4D LD C,L M
6915 A1 AND C .
6916 00 NOP .
6917 4F LD C,A O
6918 56 LD D,(HL) V
6919 44 LD B,H D
691A 46 LD B,(HL) F
691B 53 LD D,E S
691C C1 POP BC .
691D 00 NOP .
691E CA5544 JP Z,4455H .UD
6921 54 LD D,H T
6922 53 LD D,E S
6923 91 SUB C .
6924 00 NOP .
6925 45 LD B,L E
6926 55 LD D,L U
6927 44 LD B,H D
6928 4D LD C,L M
6929 44 LD B,H D
692A 42 LD B,D B
692B 89 ADC A,C .
692C 00 NOP .
692D CA5556 JP Z,5655H .UV
6930 44 LD B,H D
6931 53 LD D,E S
6932 80 ADD A,B .
6933 80 ADD A,B .
6934 A6 AND (HL) .
6935 5B LD E,E [
6936 5A LD E,D Z
6937 44 LD B,H D
6938 53 LD D,E S
6939 80 ADD A,B .
693A 40 LD B,B @
693B 9E SBC A,(HL) .
693C 5B LD E,E [
693D 43 LD B,E C
693E 44 LD B,H D
693F 53 LD D,E S
6940 80 ADD A,B .
6941 204D JR NZ,6990H M
6943 5B LD E,E [
6944 43 LD B,E C
6945 44 LD B,H D
6946 44 LD B,H D
6947 80 ADD A,B .
6948 10E0 DJNZ 692AH ..
694A 59 LD E,C Y
694B 44 LD B,H D
694C 50 LD D,B P
694D 57 LD D,A W
694E 45 LD B,L E
694F 80 ADD A,B .
6950 00 NOP .
6951 49 LD C,C I
6952 5E LD E,(HL) ^
6953 44 LD B,H D
6954 4E LD C,(HL) N
6955 54 LD D,H T
6956 48 LD C,B H
6957 80 ADD A,B .
6958 00 NOP .
6959 A0 AND B .
695A 5E LD E,(HL) ^
695B 52 LD D,D R
695C 52 LD D,D R
695D 54 LD D,H T
695E 80 ADD A,B .
695F 08 EX AF,AF' .
6960 DF RST 18H .
6961 5E LD E,(HL) ^
6962 45 LD B,L E
6963 58 LD E,B X
6964 49 LD C,C I
6965 54 LD D,H T
6966 80 ADD A,B .
6967 00 NOP .
6968 1B DEC DE .
6969 58 LD E,B X
696A 00 NOP .
696B 80 ADD A,B .
696C 202D JR NZ,699BH -
696E A0 AND B .
696F 27 DAA '
6970 2AA727 LD HL,(27A7H) *.'
6973 52 LD D,D R
6974 A7 AND A .
6975 27 DAA '
6976 53 LD D,E S
6977 A7 AND A .
6978 27 DAA '
6979 58 LD E,B X
697A A7 AND A .
697B 27 DAA '
697C 59 LD E,C Y
697D A7 AND A .
697E 2859 JR Z,69D9H (Y
6980 204F JR NZ,69D1H O
6982 52 LD D,D R
6983 204E JR NZ,69D3H N
6985 29 ADD HL,HL )
6986 A0 AND B .
6987 08 EX AF,AF' .
6988 3F CCF ?
6989 3F CCF ?
698A 3F CCF ?
698B A0 AND B .
698C 2A2A2A LD HL,(2A2AH) ***
698F 2A2A2A LD HL,(2A2AH) ***
6992 AA XOR D .
6993 27 DAA '
6994 45 LD B,L E
6995 4E LD C,(HL) N
6996 54 LD D,H T
6997 45 LD B,L E
6998 52 LD D,D R
6999 A7 AND A .
699A 08 EX AF,AF' .
699B 2EA0 LD L,A0H ..
699D 08 EX AF,AF' .
699E 27 DAA '
699F D308 OUT (08H),A ..
69A1 27 DAA '
69A2 2020 JR NZ,69C4H
69A4 2D DEC L -
69A5 A0 AND B .
69A6 A0 AND B .
69A7 08 EX AF,AF' .
69A8 3F CCF ?
69A9 A0 AND B .
69AA 08 EX AF,AF' .
69AB 3F CCF ?
69AC 20A0 JR NZ,694EH .
69AE 2888 JR Z,6938H (.
69B0 08 EX AF,AF' .
69B1 A9 XOR C .
69B2 1C INC E .
69B3 1F RRA .
69B4 88 ADC A,B .
69B5 08 EX AF,AF' .
69B6 2853 JR Z,6A0BH (S
69B8 A9 XOR C .
69B9 08 EX AF,AF' .
69BA 2F CPL /
69BB 88 ADC A,B .
69BC A3 AND E .
69BD 41 LD B,C A
69BE D442C5 CALL NC,C542H .B.
69C1 44 LD B,H D
69C2 CF RST 08H .
69C3 49 LD C,C I
69C4 C649 ADD 49H .I
69C6 D34F OUT (4FH),A .O
69C8 C64F ADD 4FH .O
69CA CB4F BIT 1,A .O
69CC D254CF JP NC,CF54H .T.
69CF 41 LD B,C A
69D0 4C LD C,H L
69D1 CC414E CALL Z,4E41H .AN
69D4 C44241 CALL NZ,4142H .BA
69D7 C4454E CALL NZ,4E45H .EN
69DA C4454F CALL NZ,4F45H .EO
69DD C646 ADD 46H .F
69DF 45 LD B,L E
69E0 D7 RST 10H .
69E1 46 LD B,(HL) F
69E2 4F LD C,A O
69E3 D24D41 JP NC,414DH .MA
69E6 D9 EXX .
69E7 4E LD C,(HL) N
69E8 4F LD C,A O
69E9 D44F55 CALL NC,554FH .OU
69EC D45448 CALL NC,4854H .TH
69EF C5 PUSH BC .
69F0 54 LD D,H T
69F1 4F LD C,A O
69F2 CF RST 08H .
69F3 59 LD E,C Y
69F4 4F LD C,A O
69F5 D5 PUSH DE .
69F6 42 LD B,D B
69F7 41 LD B,C A
69F8 53 LD D,E S
69F9 C5 PUSH BC .
69FA 42 LD B,D B
69FB 59 LD E,C Y
69FC 54 LD D,H T
69FD C5 PUSH BC .
69FE 43 LD B,E C
69FF 48 LD C,B H
6A00 41 LD B,C A
6A01 D2434F JP NC,4F43H .CO
6A04 44 LD B,H D
6A05 C5 PUSH BC .
6A06 43 LD B,E C
6A07 4F LD C,A O
6A08 50 LD D,B P
6A09 D9 EXX .
6A0A 44 LD B,H D
6A0B 41 LD B,C A
6A0C 54 LD D,H T
6A0D C1 POP BC .
6A0E 44 LD B,H D
6A0F 49 LD C,C I
6A10 53 LD D,E S
6A11 CB44 BIT 0,H .D
6A13 55 LD D,L U
6A14 4D LD C,L M
6A15 D0 RET NC .
6A16 45 LD B,L E
6A17 58 LD E,B X
6A18 49 LD C,C I
6A19 D44649 CALL NC,4946H .FI
6A1C 4C LD C,H L
6A1D C5 PUSH BC .
6A1E 4C LD C,H L
6A1F 4F LD C,A O
6A20 53 LD D,E S
6A21 D40080 CALL NC,8000H ...
6A24 4D LD C,L M
6A25 41 LD B,C A
6A26 49 LD C,C I
6A27 CE4D ADC 4DH .M
6A29 41 LD B,C A
6A2A 4E LD C,(HL) N
6A2B D9 EXX .
6A2C 4D LD C,L M
6A2D 45 LD B,L E
6A2E 4E LD C,(HL) N
6A2F D5 PUSH DE .
6A30 4D LD C,L M
6A31 4F LD C,A O
6A32 44 LD B,H D
6A33 C5 PUSH BC .
6A34 4E LD C,(HL) N
6A35 41 LD B,C A
6A36 4D LD C,L M
6A37 C5 PUSH BC .
6A38 52 LD D,D R
6A39 45 LD B,L E
6A3A 41 LD B,C A
6A3B C45345 CALL NZ,4553H .SE
6A3E 45 LD B,L E
6A3F CB53 BIT 2,E .S
6A41 4B LD C,E K
6A42 49 LD C,C I
6A43 D0 RET NC .
6A44 53 LD D,E S
6A45 4F LD C,A O
6A46 4D LD C,L M
6A47 C5 PUSH BC .
6A48 53 LD D,E S
6A49 55 LD D,L U
6A4A 52 LD D,D R
6A4B C5 PUSH BC .
6A4C 54 LD D,H T
6A4D 48 LD C,B H
6A4E 49 LD C,C I
6A4F D354 OUT (54H),A .T
6A51 59 LD E,C Y
6A52 50 LD D,B P
6A53 C5 PUSH BC .
6A54 57 LD D,A W
6A55 41 LD B,C A
6A56 4E LD C,(HL) N
6A57 D45748 CALL NC,4857H .WH
6A5A 45 LD B,L E
6A5B CE5A ADC 5AH .Z
6A5D 45 LD B,L E
6A5E 52 LD D,D R
6A5F CF RST 08H .
6A60 42 LD B,D B
6A61 4C LD C,H L
6A62 4F LD C,A O
6A63 43 LD B,E C
6A64 CB43 BIT 0,E .C
6A66 4F LD C,A O
6A67 55 LD D,L U
6A68 4E LD C,(HL) N
6A69 D44452 CALL NC,5244H .DR
6A6C 49 LD C,C I
6A6D 56 LD D,(HL) V
6A6E C5 PUSH BC .
6A6F 45 LD B,L E
6A70 52 LD D,D R
6A71 52 LD D,D R
6A72 4F LD C,A O
6A73 D24558 JP NC,5845H .EX
6A76 54 LD D,H T
6A77 52 LD D,D R
6A78 C1 POP BC .
6A79 46 LD B,(HL) F
6A7A 41 LD B,C A
6A7B 55 LD D,L U
6A7C 4C LD C,H L
6A7D D4464F CALL NC,4F46H .FO
6A80 55 LD D,L U
6A81 4E LD C,(HL) N
6A82 C4494E CALL NZ,4E49H .IN
6A85 50 LD D,B P
6A86 55 LD D,L U
6A87 D45041 CALL NC,4150H .PA
6A8A 55 LD D,L U
6A8B 53 LD D,E S
6A8C C5 PUSH BC .
6A8D 50 LD D,B P
6A8E 52 LD D,D R
6A8F 45 LD B,L E
6A90 53 LD D,E S
6A91 D352 OUT (52H),A .R
6A93 41 LD B,C A
6A94 4E LD C,(HL) N
6A95 47 LD B,A G
6A96 C5 PUSH BC .
6A97 52 LD D,D R
6A98 45 LD B,L E
6A99 50 LD D,B P
6A9A 4C LD C,H L
6A9B D9 EXX .
6A9C 52 LD D,D R
6A9D 45 LD B,L E
6A9E 54 LD D,H T
6A9F 52 LD D,D R
6AA0 D9 EXX .
6AA1 54 LD D,H T
6AA2 52 LD D,D R
6AA3 41 LD B,C A
6AA4 43 LD B,E C
6AA5 CB56 BIT 2,(HL) .V
6AA7 41 LD B,C A
6AA8 4C LD C,H L
6AA9 55 LD D,L U
6AAA C5 PUSH BC .
6AAB 57 LD D,A W
6AAC 52 LD D,D R
6AAD 49 LD C,C I
6AAE 54 LD D,H T
6AAF C5 PUSH BC .
6AB0 42 LD B,D B
6AB1 45 LD B,L E
6AB2 59 LD E,C Y
6AB3 4F LD C,A O
6AB4 4E LD C,(HL) N
6AB5 C44255 CALL NZ,5542H .BU
6AB8 46 LD B,(HL) F
6AB9 46 LD B,(HL) F
6ABA 45 LD B,L E
6ABB D24445 JP NC,4544H .DE
6ABE 56 LD D,(HL) V
6ABF 49 LD C,C I
6AC0 43 LD B,E C
6AC1 C5 PUSH BC .
6AC2 4D LD C,L M
6AC3 45 LD B,L E
6AC4 4D LD C,L M
6AC5 4F LD C,A O
6AC6 52 LD D,D R
6AC7 D9 EXX .
6AC8 4F LD C,A O
6AC9 46 LD B,(HL) F
6ACA 46 LD B,(HL) F
6ACB 53 LD D,E S
6ACC 45 LD B,L E
6ACD D45041 CALL NC,4150H .PA
6AD0 52 LD D,D R
6AD1 49 LD C,C I
6AD2 54 LD D,H T
6AD3 D9 EXX .
6AD4 52 LD D,D R
6AD5 45 LD B,L E
6AD6 43 LD B,E C
6AD7 4F LD C,A O
6AD8 52 LD D,D R
6AD9 C45245 CALL NZ,4552H .RE
6ADC 54 LD D,H T
6ADD 55 LD D,L U
6ADE 52 LD D,D R
6ADF CE53 ADC 53H .S
6AE1 45 LD B,L E
6AE2 43 LD B,E C
6AE3 54 LD D,H T
6AE4 4F LD C,A O
6AE5 D2534F JP NC,4F53H .SO
6AE8 55 LD D,L U
6AE9 52 LD D,D R
6AEA 43 LD B,E C
6AEB C5 PUSH BC .
6AEC 53 LD D,E S
6AED 59 LD E,C Y
6AEE 53 LD D,E S
6AEF 54 LD D,H T
6AF0 45 LD B,L E
6AF1 CD5645 CALL 4556H .VE
6AF4 52 LD D,D R
6AF5 49 LD C,C I
6AF6 46 LD B,(HL) F
6AF7 D9 EXX .
6AF8 57 LD D,A W
6AF9 49 LD C,C I
6AFA 54 LD D,H T
6AFB 48 LD C,B H
6AFC 49 LD C,C I
6AFD CE41 ADC 41H .A
6AFF 44 LD B,H D
6B00 44 LD B,H D
6B01 52 LD D,D R
6B02 45 LD B,L E
6B03 53 LD D,E S
6B04 D343 OUT (43H),A .C
6B06 4F LD C,A O
6B07 4E LD C,(HL) N
6B08 54 LD D,H T
6B09 41 LD B,C A
6B0A 49 LD C,C I
6B0B CE44 ADC 44H .D
6B0D 49 LD C,C I
6B0E 53 LD D,E S
6B0F 50 LD D,B P
6B10 4C LD C,H L
6B11 41 LD B,C A
6B12 D9 EXX .
6B13 49 LD C,C I
6B14 4C LD C,H L
6B15 4C LD C,H L
6B16 45 LD B,L E
6B17 47 LD B,A G
6B18 41 LD B,C A
6B19 CC494E CALL Z,4E49H .IN
6B1C 56 LD D,(HL) V
6B1D 41 LD B,C A
6B1E 4C LD C,H L
6B1F 49 LD C,C I
6B20 C44D49 CALL NZ,494DH .MI
6B23 53 LD D,E S
6B24 53 LD D,E S
6B25 49 LD C,C I
6B26 4E LD C,(HL) N
6B27 C7 RST 00H .
6B28 4E LD C,(HL) N
6B29 55 LD D,L U
6B2A 4D LD C,L M
6B2B 45 LD B,L E
6B2C 52 LD D,D R
6B2D 49 LD C,C I
6B2E C35052 JP 5250H .PR
6B31 49 LD C,C I
6B32 4E LD C,(HL) N
6B33 54 LD D,H T
6B34 45 LD B,L E
6B35 D25245 JP NC,4552H .RE
6B38 51 LD D,C Q
6B39 55 LD D,L U
6B3A 45 LD B,L E
6B3B 53 LD D,E S
6B3C D4434F CALL NC,4F43H .CO
6B3F 4E LD C,(HL) N
6B40 54 LD D,H T
6B41 45 LD B,L E
6B42 4E LD C,(HL) N
6B43 54 LD D,H T
6B44 D343 OUT (43H),A .C
6B46 4F LD C,A O
6B47 4E LD C,(HL) N
6B48 54 LD D,H T
6B49 49 LD C,C I
6B4A 4E LD C,(HL) N
6B4B 55 LD D,L U
6B4C C5 PUSH BC .
6B4D 44 LD B,H D
6B4E 49 LD C,C I
6B4F 53 LD D,E S
6B50 4B LD C,E K
6B51 45 LD B,L E
6B52 54 LD D,H T
6B53 54 LD D,H T
6B54 C5 PUSH BC .
6B55 46 LD B,(HL) F
6B56 49 LD C,C I
6B57 4C LD C,H L
6B58 45 LD B,L E
6B59 53 LD D,E S
6B5A 50 LD D,B P
6B5B 45 LD B,L E
6B5C C34655 JP 5546H .FU
6B5F 4E LD C,(HL) N
6B60 43 LD B,E C
6B61 54 LD D,H T
6B62 49 LD C,C I
6B63 4F LD C,A O
6B64 CE4F ADC 4FH .O
6B66 50 LD D,B P
6B67 45 LD B,L E
6B68 52 LD D,D R
6B69 41 LD B,C A
6B6A 54 LD D,H T
6B6B 4F LD C,A O
6B6C D25041 JP NC,4150H .PA
6B6F 53 LD D,E S
6B70 53 LD D,E S
6B71 57 LD D,A W
6B72 4F LD C,A O
6B73 52 LD D,D R
6B74 C45245 CALL NZ,4552H .RE
6B77 4C LD C,H L
6B78 41 LD B,C A
6B79 54 LD D,H T
6B7A 49 LD C,C I
6B7B 56 LD D,(HL) V
6B7C C5 PUSH BC .
6B7D 53 LD D,E S
6B7E 55 LD D,L U
6B7F 50 LD D,B P
6B80 45 LD B,L E
6B81 52 LD D,D R
6B82 5A LD E,D Z
6B83 41 LD B,C A
6B84 D0 RET NC .
6B85 41 LD B,C A
6B86 56 LD D,(HL) V
6B87 41 LD B,C A
6B88 49 LD C,C I
6B89 4C LD C,H L
6B8A 41 LD B,C A
6B8B 42 LD B,D B
6B8C 4C LD C,H L
6B8D C5 PUSH BC .
6B8E 43 LD B,E C
6B8F 4F LD C,A O
6B90 4D LD C,L M
6B91 50 LD D,B P
6B92 4C LD C,H L
6B93 45 LD B,L E
6B94 54 LD D,H T
6B95 45 LD B,L E
6B96 C45041 CALL NZ,4150H .PA
6B99 52 LD D,D R
6B9A 41 LD B,C A
6B9B 4D LD C,L M
6B9C 45 LD B,L E
6B9D 54 LD D,H T
6B9E 45 LD B,L E
6B9F D25052 JP NC,5250H .PR
6BA2 4F LD C,A O
6BA3 54 LD D,H T
6BA4 45 LD B,L E
6BA5 43 LD B,E C
6BA6 54 LD D,H T
6BA7 45 LD B,L E
6BA8 C45445 CALL NZ,4554H .TE
6BAB 52 LD D,D R
6BAC 4D LD C,L M
6BAD 49 LD C,C I
6BAE 4E LD C,(HL) N
6BAF 41 LD B,C A
6BB0 54 LD D,H T
6BB1 C5 PUSH BC .
6BB2 42 LD B,D B
6BB3 41 LD B,C A
6BB4 44 LD B,H D
6BB5 2F CPL /
6BB6 49 LD C,C I
6BB7 4C LD C,H L
6BB8 4C LD C,H L
6BB9 45 LD B,L E
6BBA 47 LD B,A G
6BBB 41 LD B,C A
6BBC CC4445 CALL Z,4544H .DE
6BBF 53 LD D,E S
6BC0 54 LD D,H T
6BC1 49 LD C,C I
6BC2 4E LD C,(HL) N
6BC3 41 LD B,C A
6BC4 54 LD D,H T
6BC5 49 LD C,C I
6BC6 4F LD C,A O
6BC7 CE4D ADC 4DH .M
6BC9 4F LD C,A O
6BCA 44 LD B,H D
6BCB 49 LD C,C I
6BCC 46 LD B,(HL) F
6BCD 49 LD C,C I
6BCE 43 LD B,E C
6BCF 41 LD B,C A
6BD0 54 LD D,H T
6BD1 49 LD C,C I
6BD2 4F LD C,A O
6BD3 CE52 ADC 52H .R
6BD5 45 LD B,L E
6BD6 4C LD C,H L
6BD7 41 LD B,C A
6BD8 54 LD D,H T
6BD9 49 LD C,C I
6BDA 56 LD D,(HL) V
6BDB 45 LD B,L E
6BDC 2D DEC L -
6BDD 53 LD D,E S
6BDE 45 LD B,L E
6BDF 43 LD B,E C
6BE0 54 LD D,H T
6BE1 4F LD C,A O
6BE2 52 LD D,D R
6BE3 2D DEC L -
6BE4 57 LD D,A W
6BE5 49 LD C,C I
6BE6 54 LD D,H T
6BE7 48 LD C,B H
6BE8 49 LD C,C I
6BE9 4E LD C,(HL) N
6BEA 2D DEC L -
6BEB 88 ADC A,B .
6BEC 00 NOP .
6BED 02 LD (BC),A .
6BEE 0A LD A,(BC) .
6BEF 00 NOP .
6BF0 9D SBC A,L .
6BF1 A9 XOR C .
6BF2 03 INC BC .
6BF3 03 INC BC .
6BF4 0B DEC BC .
6BF5 00 NOP .
6BF6 96 SUB (HL) .
6BF7 91 SUB C .
6BF8 03 INC BC .
6BF9 04 INC B .
6BFA 0C INC C .
6BFB 00 NOP .
6BFC BB CP E .
6BFD A9 XOR C .
6BFE 03 INC BC .
6BFF 05 DEC B .
6C00 0D DEC C .
6C01 00 NOP .
6C02 91 SUB C .
6C03 BC CP H .
6C04 87 ADD A,A .
6C05 AC XOR H .
6C06 03 INC BC .
6C07 08 EX AF,AF' .
6C08 1000 DJNZ 6C0AH ..
6C0A B8 CP B .
6C0B 87 ADD A,A .
6C0C D5 PUSH DE .
6C0D 03 INC BC .
6C0E 0E00 LD C,00H ..
6C10 A8 XOR B .
6C11 B5 OR L .
6C12 AB XOR E .
6C13 03 INC BC .
6C14 0F RRCA .
6C15 00 NOP .
6C16 B5 OR L .
6C17 D8 RET C .
6C18 CE03 ADC 03H ..
6C1A 1C INC E .
6C1B 1D DEC E .
6C1C 00 NOP .
6C1D 76 HALT v
6C1E 74 LD (HL),H t
6C1F B6 OR (HL) .
6C20 82 ADD A,D .
6C21 7B LD A,E {
6C22 CE74 ADC 74H .t
6C24 95 SUB L .
6C25 03 INC BC .
6C26 2000 JR NZ,6C28H .
6C28 C6A8 ADD A8H ..
6C2A 75 LD (HL),L u
6C2B 03 INC BC .
6C2C 00 NOP .
6C2D D0 RET NC .
6C2E D603 SUB 03H ..
6C30 72 LD (HL),D r
6C31 41 LD B,C A
6C32 50 LD D,B P
6C33 50 LD D,B P
6C34 41 LD B,C A
6C35 52 LD D,D R
6C36 41 LD B,C A
6C37 54 LD D,H T
6C38 6B LD L,E k
6C39 D42F38 CALL NC,382FH ./8
6C3C 306A JR NC,6CA8H 0j
6C3E AD XOR L .
6C3F 204F JR NZ,6C90H O
6C41 4E LD C,(HL) N
6C42 45 LD B,L E
6C43 7B LD A,E {
6C44 89 ADC A,C .
6C45 2046 JR NZ,6C8DH F
6C47 4F LD C,A O
6C48 4C LD C,H L
6C49 4C LD C,H L
6C4A 4F LD C,A O
6C4B 57 LD D,A W
6C4C 49 LD C,C I
6C4D 4E LD C,(HL) N
6C4E 47 LD B,A G
6C4F D0 RET NC .
6C50 53 LD D,E S
6C51 3A0D27 LD A,(270DH) :.'
6C54 44 LD B,H D
6C55 44 LD B,H D
6C56 6C LD L,H l
6C57 7D LD A,L }
6C58 204E JR NZ,6CA8H N
6C5A 55 LD D,L U
6C5B 4C LD C,H L
6C5C 4C LD C,H L
6C5D 60 LD H,B @
6C5E C5 PUSH BC .
6C5F 92 SUB D .
6C60 BE CP (HL) .
6C61 0D DEC C .
6C62 27 DAA '
6C63 44 LD B,H D
6C64 4D LD C,L M
6C65 6C LD L,H l
6C66 C5 PUSH BC .
6C67 97 SUB A .
6C68 B9 CP C .
6C69 0D DEC C .
6C6A 27 DAA '
6C6B 44 LD B,H D
6C6C 46 LD B,(HL) F
6C6D 53 LD D,E S
6C6E 6C LD L,H l
6C6F C5 PUSH BC .
6C70 95 SUB L .
6C71 6B LD L,E k
6C72 BE CP (HL) .
6C73 0D DEC C .
6C74 27 DAA '
6C75 44 LD B,H D
6C76 54 LD D,H T
6C77 53 LD D,E S
6C78 6C LD L,H l
6C79 C5 PUSH BC .
6C7A B3 OR E .
6C7B 6B LD L,E k
6C7C BE CP (HL) .
6C7D 0D DEC C .
6C7E 27 DAA '
6C7F 44 LD B,H D
6C80 4D LD C,L M
6C81 44 LD B,H D
6C82 42 LD B,D B
6C83 6C LD L,H l
6C84 C5 PUSH BC .
6C85 B9 CP C .
6C86 93 SUB E .
6C87 A6 AND (HL) .
6C88 0D DEC C .
6C89 27 DAA '
6C8A 56 LD D,(HL) V
6C8B 44 LD B,H D
6C8C 53 LD D,E S
6C8D 6C LD L,H l
6C8E C1 POP BC .
6C8F 92 SUB D .
6C90 BE CP (HL) .
6C91 53 LD D,E S
6C92 0D DEC C .
6C93 27 DAA '
6C94 5A LD E,D Z
6C95 44 LD B,H D
6C96 53 LD D,E S
6C97 6C LD L,H l
6C98 A5 AND L .
6C99 92 SUB D .
6C9A BE CP (HL) .
6C9B 53 LD D,E S
6C9C 0D DEC C .
6C9D 27 DAA '
6C9E 43 LD B,E C
6C9F 44 LD B,H D
6CA0 53 LD D,E S
6CA1 6C LD L,H l
6CA2 90 SUB B .
6CA3 92 SUB D .
6CA4 BE CP (HL) .
6CA5 53 LD D,E S
6CA6 0D DEC C .
6CA7 27 DAA '
6CA8 43 LD B,E C
6CA9 44 LD B,H D
6CAA 44 LD B,H D
6CAB 6C LD L,H l
6CAC 90 SUB B .
6CAD 92 SUB D .
6CAE 91 SUB C .
6CAF 0D DEC C .
6CB0 27 DAA '
6CB1 44 LD B,H D
6CB2 50 LD D,B P
6CB3 57 LD D,A W
6CB4 45 LD B,L E
6CB5 6C LD L,H l
6CB6 C5 PUSH BC .
6CB7 D22045 JP NC,4520H . E
6CBA 4E LD C,(HL) N
6CBB 08 EX AF,AF' .
6CBC 8F ADC A,A .
6CBD 0D DEC C .
6CBE 27 DAA '
6CBF 44 LD B,H D
6CC0 4E LD C,(HL) N
6CC1 54 LD D,H T
6CC2 48 LD C,B H
6CC3 6C LD L,H l
6CC4 C5 PUSH BC .
6CC5 9B SBC A,E .
6CC6 74 LD (HL),H t
6CC7 A2 AND D .
6CC8 2048 JR NZ,6D12H H
6CCA 41 LD B,C A
6CCB 53 LD D,E S
6CCC 48 LD C,B H
6CCD 8F ADC A,A .
6CCE 0D DEC C .
6CCF 27 DAA '
6CD0 08 EX AF,AF' .
6CD1 94 SUB H .
6CD2 6C LD L,H l
6CD3 82 ADD A,D .
6CD4 D42C94 CALL NC,942CH .,.
6CD7 7E LD A,(HL) ~
6CD8 2044 JR NZ,6D1EH D
6CDA 4F LD C,A O
6CDB 53 LD D,E S
6CDC 0D DEC C .
6CDD 08 EX AF,AF' .
6CDE CA204F JP Z,4F20H . O
6CE1 55 LD D,L U
6CE2 54 LD D,H T
6CE3 50 LD D,B P
6CE4 55 LD D,L U
6CE5 54 LD D,H T
6CE6 6A LD L,D j
6CE7 2041 JR NZ,6D2AH A
6CE9 50 LD D,B P
6CEA 50 LD D,B P
6CEB 45 LD B,L E
6CEC 4E LD C,(HL) N
6CED 44 LD B,H D
6CEE 202C JR NZ,6D1CH ,
6CF0 50 LD D,B P
6CF1 7E LD A,(HL) ~
6CF2 2044 JR NZ,6D38H D
6CF4 44 LD B,H D
6CF5 2C INC L ,
6CF6 2044 JR NZ,6D3CH D
6CF8 4D LD C,L M
6CF9 2C INC L ,
6CFA 2044 JR NZ,6D40H D
6CFC 46 LD B,(HL) F
6CFD 53 LD D,E S
6CFE 2C INC L ,
6CFF 2044 JR NZ,6D45H D
6D01 54 LD D,H T
6D02 53 LD D,E S
6D03 7D LD A,L }
6D04 2044 JR NZ,6D4AH D
6D06 4D LD C,L M
6D07 44 LD B,H D
6D08 42 LD B,D B
6D09 0D DEC C .
6D0A 03 INC BC .
6D0B BF CP A .
6D0C 2003 JR NZ,6D11H .
6D0E DB20 IN A,(20H) .
6D10 03 INC BC .
6D11 A0 AND B .
6D12 8B ADC A,E .
6D13 A3 AND E .
6D14 7E LD A,(HL) ~
6D15 78 LD A,B x
6D16 A1 AND C .
6D17 67 LD H,A g
6D18 66 LD H,(HL) f
6D19 03 INC BC .
6D1A 68 LD L,B h
6D1B A5 AND L .
6D1C 92 SUB D .
6D1D BE CP (HL) .
6D1E 53 LD D,E S
6D1F 67 LD H,A g
6D20 03 INC BC .
6D21 68 LD L,B h
6D22 90 SUB B .
6D23 92 SUB D .
6D24 BE CP (HL) .
6D25 53 LD D,E S
6D26 67 LD H,A g
6D27 03 INC BC .
6D28 68 LD L,B h
6D29 90 SUB B .
6D2A 92 SUB D .
6D2B 91 SUB C .
6D2C 03 INC BC .
6D2D 203D JR NZ,6D6CH =
6D2F 2093 JR NZ,6CC4H .
6D31 6B LD L,E k
6D32 8C ADC A,H .
6D33 B9 CP C .
6D34 C30397 JP 9703H ...
6D37 B9 CP C .
6D38 C36F03 JP 036FH .o.
6D3B A8 XOR B .
6D3C 2C INC L ,
6D3D B3 OR E .
6D3E 80 ADD A,B .
6D3F BE CP (HL) .
6D40 75 LD (HL),L u
6D41 6B LD L,E k
6D42 6F LD L,A o
6D43 03 INC BC .
6D44 B3 OR E .
6D45 80 ADD A,B .
6D46 BE CP (HL) .
6D47 75 LD (HL),L u
6D48 6B LD L,E k
6D49 6F LD L,A o
6D4A 03 INC BC .
6D4B DD DEFB DDH .
6D4C B3 OR E .
6D4D 75 LD (HL),L u
6D4E 6F LD L,A o
6D4F 03 INC BC .
6D50 A8 XOR B .
6D51 80 ADD A,B .
6D52 DD DEFB DDH .
6D53 A8 XOR B .
6D54 75 LD (HL),L u
6D55 6B LD L,E k
6D56 6F LD L,A o
6D57 03 INC BC .
6D58 DD DEFB DDH .
6D59 A8 XOR B .
6D5A 75 LD (HL),L u
6D5B 6F LD L,A o
6D5C 03 INC BC .
6D5D CF RST 08H .
6D5E 6F LD L,A o
6D5F 03 INC BC .
6D60 95 SUB L .
6D61 9B SBC A,E .
6D62 6F LD L,A o
6D63 03 INC BC .
6D64 95 SUB L .
6D65 A2 AND D .
6D66 6F LD L,A o
6D67 03 INC BC .
6D68 DD95 SUB IXL ..
6D6A 75 LD (HL),L u
6D6B 6F LD L,A o
6D6C 03 INC BC .
6D6D BE CP (HL) .
6D6E A7 AND A .
6D6F 6F LD L,A o
6D70 03 INC BC .
6D71 8D ADC A,L .
6D72 A7 AND A .
6D73 6F LD L,A o
6D74 03 INC BC .
6D75 8D ADC A,L .
6D76 BA CP D .
6D77 C2BE6F JP NZ,6FBEH ..o
6D7A 03 INC BC .
6D7B 93 SUB E .
6D7C 97 SUB A .
6D7D B9 CP C .
6D7E C36F03 JP 036FH .o.
6D81 AE XOR (HL) .
6D82 A4 AND H .
6D83 BE CP (HL) .
6D84 9C SBC A,H .
6D85 D8 RET C .
6D86 67 LD H,A g
6D87 66 LD H,(HL) f
6D88 03 INC BC .
6D89 AF XOR A .
6D8A 69 LD L,C i
6D8B 7E LD A,(HL) ~
6D8C BD CP L .
6D8D 7E LD A,(HL) ~
6D8E 99 SBC A,C .
6D8F 03 INC BC .
6D90 B7 OR A .
6D91 86 ADD A,(HL) .
6D92 C49F7D CALL NZ,7D9FH ..}
6D95 7F LD A,A
6D96 7B LD A,E {
6D97 BE CP (HL) .
6D98 91 SUB C .
6D99 0D DEC C .
6D9A 08 EX AF,AF' .
6D9B AF XOR A .
6D9C 69 LD L,C i
6D9D 7E LD A,(HL) ~
6D9E C5 PUSH BC .
6D9F B7 OR A .
6DA0 CC0372 CALL Z,7203H ..r
6DA3 B1 OR C .
6DA4 65 LD H,L e
6DA5 79 LD A,C y
6DA6 7C LD A,H |
6DA7 7E LD A,(HL) ~
6DA8 B5 OR L .
6DA9 204D JR NZ,6DF8H M
6DAB 4F LD C,A O
6DAC 44 LD B,H D
6DAD 49 LD C,C I
6DAE 46 LD B,(HL) F
6DAF 49 LD C,C I
6DB0 45 LD B,L E
6DB1 44 LD B,H D
6DB2 BE CP (HL) .
6DB3 7E LD A,(HL) ~
6DB4 92 SUB D .
6DB5 6D LD L,L m
6DB6 03 INC BC .
6DB7 7A LD A,D z
6DB8 7E LD A,(HL) ~
6DB9 77 LD (HL),A w
6DBA 2043 JR NZ,6DFFH C
6DBC 4F LD C,A O
6DBD 50 LD D,B P
6DBE 49 LD C,C I
6DBF 45 LD B,L E
6DC0 44 LD B,H D
6DC1 7E LD A,(HL) ~
6DC2 0D DEC C .
6DC3 03 INC BC .
6DC4 72 LD (HL),D r
6DC5 DCD603 CALL C,03D6H ...
6DC8 72 LD (HL),D r
6DC9 DC2043 CALL C,4320H . C
6DCC 41 LD B,C A
6DCD 4E LD C,(HL) N
6DCE 43 LD B,E C
6DCF 45 LD B,L E
6DD0 4C LD C,H L
6DD1 4C LD C,H L
6DD2 45 LD B,L E
6DD3 44 LD B,H D
6DD4 03 INC BC .
6DD5 AF XOR A .
6DD6 69 LD L,C i
6DD7 7E LD A,(HL) ~
6DD8 CD6D03 CALL 036DH .m.
6DDB 72 LD (HL),D r
6DDC C7 RST 00H .
6DDD DC9A8E CALL C,8E9AH ...
6DE0 6A LD L,D j
6DE1 B1 OR C .
6DE2 61 LD H,C a
6DE3 7E LD A,(HL) ~
6DE4 CD6D03 CALL 036DH .m.
6DE7 C6CA ADD CAH ..
6DE9 CB03 RLC E ..
6DEB DAA875 JP C,75A8H ..u
6DEE 03 INC BC .
6DEF DAB375 JP C,75B3H ..u
6DF2 03 INC BC .
6DF3 DABE75 JP C,75BEH ..u
6DF6 03 INC BC .
6DF7 DAD3BE JP C,BED3H ...
6DFA 75 LD (HL),L u
6DFB 03 INC BC .
6DFC DAA703 JP C,03A7H ...
6DFF DA97B9 JP C,B997H ...
6E02 C303DA JP DA03H ...
6E05 BA CP D .
6E06 C2BEB4 JP NZ,B4BEH ...
6E09 03 INC BC .
6E0A 8A ADC A,D .
6E0B 84 ADD A,H .
6E0C D7 RST 10H .
6E0D 53 LD D,E S
6E0E 03 INC BC .
6E0F 8A ADC A,D .
6E10 98 SBC A,B .
6E11 D7 RST 10H .
6E12 53 LD D,E S
6E13 03 INC BC .
6E14 C8 RET Z .
6E15 2049 JR NZ,6E60H I
6E17 4D LD C,L M
6E18 42 LD B,D B
6E19 45 LD B,L E
6E1A 44 LD B,H D
6E1B 44 LD B,H D
6E1C 45 LD B,L E
6E1D 44 LD B,H D
6E1E D7 RST 10H .
6E1F 03 INC BC .
6E20 BF CP A .
6E21 BE CP (HL) .
6E22 88 ADC A,B .
6E23 7B LD A,E {
6E24 B0 OR B .
6E25 03 INC BC .
6E26 DBBE IN A,(BEH) ..
6E28 88 ADC A,B .
6E29 7B LD A,E {
6E2A B0 OR B .
6E2B 03 INC BC .
6E2C BE CP (HL) .
6E2D 9C SBC A,H .
6E2E A9 XOR C .
6E2F 03 INC BC .
6E30 BE CP (HL) .
6E31 B5 OR L .
6E32 A9 XOR C .
6E33 03 INC BC .
6E34 BE CP (HL) .
6E35 C1 POP BC .
6E36 A9 XOR C .
6E37 03 INC BC .
6E38 C0 RET NZ .
6E39 A9 XOR C .
6E3A 8F ADC A,A .
6E3B 2003 JR NZ,6E40H .
6E3D BE CP (HL) .
6E3E 87 ADD A,A .
6E3F 2050 JR NZ,6E91H P
6E41 52 LD D,D R
6E42 45 LD B,L E
6E43 56 LD D,(HL) V
6E44 49 LD C,C I
6E45 4F LD C,A O
6E46 55 LD D,L U
6E47 53 LD D,E S
6E48 4C LD C,H L
6E49 59 LD E,C Y
6E4A 2053 JR NZ,6E9FH S
6E4C 55 LD D,L U
6E4D 43 LD B,E C
6E4E 43 LD B,E C
6E4F 45 LD B,L E
6E50 53 LD D,E S
6E51 53 LD D,E S
6E52 46 LD B,(HL) F
6E53 55 LD D,L U
6E54 4C LD C,H L
6E55 4C LD C,H L
6E56 59 LD E,C Y
6E57 9C SBC A,H .
6E58 03 INC BC .
6E59 D42049 CALL NC,4920H . I
6E5C 4E LD C,(HL) N
6E5D 54 LD D,H T
6E5E 45 LD B,L E
6E5F 52 LD D,D R
6E60 4E LD C,(HL) N
6E61 41 LD B,C A
6E62 4C LD C,H L
6E63 2050 JR NZ,6EB5H P
6E65 52 LD D,D R
6E66 4F LD C,A O
6E67 47 LD B,A G
6E68 52 LD D,D R
6E69 41 LD B,C A
6E6A 4D LD C,L M
6E6B 4D LD C,L M
6E6C 49 LD C,C I
6E6D 4E LD C,(HL) N
6E6E 47 LD B,A G
6E6F A9 XOR C .
6E70 03 INC BC .
6E71 B1 OR C .
6E72 62 LD H,D b
6E73 85 ADD A,L .
6E74 B2 OR D .
6E75 2C INC L ,
6E76 63 LD H,E c
6E77 85 ADD A,L .
6E78 9E SBC A,(HL) .
6E79 A9 XOR C .
6E7A BE CP (HL) .
6E7B 2C INC L ,
6E7C 7D LD A,L }
6E7D 64 LD H,H d
6E7E 7E LD A,(HL) ~
6E7F 0D DEC C .
6E80 08 EX AF,AF' .
6E81 D9 EXX .
6E82 D0 RET NC .
6E83 6D LD L,L m
6E84 03 INC BC .
6E85 D0 RET NC .
6E86 D9 EXX .
6E87 44 LD B,H D
6E88 2042 JR NZ,6ECCH B
6E8A 59 LD E,C Y
6E8B D1 POP DE .
6E8C 03 INC BC .
6E8D A8 XOR B .
6E8E 2003 JR NZ,6E93H .
6E90 B3 OR E .
6E91 2003 JR NZ,6E96H .
6E93 BE CP (HL) .
6E94 2003 JR NZ,6E99H .
6E96 44 LD B,H D
6E97 52 LD D,D R
6E98 53 LD D,E S
6E99 2003 JR NZ,6E9EH .
6E9B 46 LD B,(HL) F
6E9C 52 LD D,D R
6E9D 53 LD D,E S
6E9E 2003 JR NZ,6EA3H .
6EA0 2C INC L ,
6EA1 2003 JR NZ,6EA6H .
6EA3 48 LD C,B H
6EA4 2020 JR NZ,6EC6H
6EA6 03 INC BC .
6EA7 2D DEC L -
6EA8 2020 JR NZ,6ECAH
6EAA 03 INC BC .
6EAB BE CP (HL) .
6EAC 87 ADD A,A .
6EAD 9C SBC A,H .
6EAE 41 LD B,C A
6EAF 42 LD B,D B
6EB0 4C LD C,H L
6EB1 45 LD B,L E
6EB2 03 INC BC .
6EB3 BE CP (HL) .
6EB4 87 ADD A,A .
6EB5 9C SBC A,H .
6EB6 D8 RET C .
6EB7 03 INC BC .
6EB8 BE CP (HL) .
6EB9 9C SBC A,H .
6EBA D8 RET C .
6EBB 03 INC BC .
6EBC 53 LD D,E S
6EBD 48 LD C,B H
6EBE 41 LD B,C A
6EBF 4C LD C,H L
6EC0 4C LD C,H L
6EC1 2049 JR NZ,6F0CH I
6EC3 54 LD D,H T
6EC4 2077 JR NZ,6F3DH w
6EC6 9C SBC A,H .
6EC7 D8 RET C .
6EC8 67 LD H,A g
6EC9 66 LD H,(HL) f
6ECA 03 INC BC .
6ECB 50 LD D,B P
6ECC 41 LD B,C A
6ECD 52 LD D,D R
6ECE 54 LD D,H T
6ECF 49 LD C,C I
6ED0 41 LD B,C A
6ED1 4C LD C,H L
6ED2 20A6 JR NZ,6E7AH .
6ED4 2044 JR NZ,6F1AH D
6ED6 55 LD D,L U
6ED7 45 LD B,L E
6ED8 7E LD A,(HL) ~
6ED9 83 ADD A,E .
6EDA 03 INC BC .
6EDB 72 LD (HL),D r
6EDC 4E LD C,(HL) N
6EDD 4F LD C,A O
6EDE 204D JR NZ,6F2DH M
6EE0 41 LD B,C A
6EE1 54 LD D,H T
6EE2 43 LD B,E C
6EE3 48 LD C,B H
6EE4 0D DEC C .
6EE5 03 INC BC .
6EE6 D26F03 JP NC,036FH .o.
6EE9 D0 RET NC .
6EEA C620 ADD 20H .
6EEC 55 LD D,L U
6EED 4E LD C,(HL) N
6EEE 44 LD B,H D
6EEF 45 LD B,L E
6EF0 52 LD D,D R
6EF1 2044 JR NZ,6F37H D
6EF3 4F LD C,A O
6EF4 53 LD D,E S
6EF5 2D DEC L -
6EF6 43 LD B,E C
6EF7 41 LD B,C A
6EF8 4C LD C,H L
6EF9 4C LD C,H L
6EFA 03 INC BC .
6EFB 97 SUB A .
6EFC B9 CP C .
6EFD B0 OR B .
6EFE 6D LD L,L m
6EFF 03 INC BC .
6F00 00 NOP .
6F01 00 NOP .
6F02 00 NOP .
6F03 00 NOP .
6F04 00 NOP .
6F05 00 NOP .
6F06 00 NOP .
6F07 00 NOP .
6F08 00 NOP .
6F09 00 NOP .
6F0A 00 NOP .
6F0B 00 NOP .
6F0C 00 NOP .
6F0D 00 NOP .
6F0E 00 NOP .
6F0F 00 NOP .
6F10 00 NOP .
6F11 00 NOP .
6F12 00 NOP .
6F13 00 NOP .
6F14 00 NOP .
6F15 00 NOP .
6F16 00 NOP .
6F17 00 NOP .
6F18 00 NOP .
6F19 00 NOP .
6F1A 00 NOP .
6F1B 00 NOP .
6F1C 00 NOP .
6F1D 00 NOP .
6F1E 00 NOP .
6F1F 00 NOP .
6F20 00 NOP .
6F21 00 NOP .
6F22 00 NOP .
6F23 00 NOP .
6F24 00 NOP .
6F25 00 NOP .
6F26 00 NOP .
6F27 00 NOP .
6F28 00 NOP .
6F29 00 NOP .
6F2A 00 NOP .
6F2B 00 NOP .
6F2C 00 NOP .
6F2D 00 NOP .
6F2E 00 NOP .
6F2F 00 NOP .
6F30 00 NOP .
6F31 00 NOP .
6F32 00 NOP .
6F33 00 NOP .
6F34 00 NOP .
6F35 00 NOP .
6F36 00 NOP .
6F37 00 NOP .
6F38 00 NOP .
6F39 00 NOP .
6F3A 00 NOP .
6F3B 00 NOP .
6F3C 00 NOP .
6F3D 00 NOP .
6F3E 00 NOP .
6F3F 00 NOP .
6F40 00 NOP .
6F41 00 NOP .
6F42 00 NOP .
6F43 00 NOP .
6F44 00 NOP .
6F45 00 NOP .
6F46 00 NOP .
6F47 00 NOP .
6F48 00 NOP .
6F49 00 NOP .
6F4A 00 NOP .
6F4B 00 NOP .
6F4C 00 NOP .
6F4D 00 NOP .
6F4E 00 NOP .
6F4F 00 NOP .
6F50 00 NOP .
6F51 00 NOP .
6F52 00 NOP .
6F53 00 NOP .
6F54 00 NOP .
6F55 00 NOP .
6F56 00 NOP .
6F57 00 NOP .
6F58 00 NOP .
6F59 00 NOP .
6F5A 00 NOP .
6F5B 00 NOP .
6F5C 00 NOP .
6F5D 00 NOP .
6F5E 00 NOP .
6F5F 00 NOP .
6F60 00 NOP .
6F61 00 NOP .
6F62 00 NOP .
6F63 00 NOP .
6F64 00 NOP .
6F65 00 NOP .
6F66 00 NOP .
6F67 00 NOP .
6F68 00 NOP .
6F69 00 NOP .
6F6A 00 NOP .
6F6B 00 NOP .
6F6C 00 NOP .
6F6D 00 NOP .
6F6E 00 NOP .
6F6F 00 NOP .
6F70 00 NOP .
6F71 00 NOP .
6F72 00 NOP .
6F73 00 NOP .
6F74 00 NOP .
6F75 00 NOP .
6F76 00 NOP .
6F77 00 NOP .
6F78 00 NOP .
6F79 00 NOP .
6F7A 00 NOP .
6F7B 00 NOP .
6F7C 00 NOP .
6F7D 00 NOP .
6F7E 00 NOP .
6F7F 00 NOP .
6F80 00 NOP .
6F81 00 NOP .
6F82 00 NOP .
6F83 00 NOP .
6F84 00 NOP .
6F85 00 NOP .
6F86 00 NOP .
6F87 00 NOP .
6F88 00 NOP .
6F89 00 NOP .
6F8A 00 NOP .
6F8B 00 NOP .
6F8C 00 NOP .
6F8D 00 NOP .
6F8E 00 NOP .
6F8F 00 NOP .
6F90 00 NOP .
6F91 00 NOP .
6F92 00 NOP .
6F93 00 NOP .
6F94 00 NOP .
6F95 00 NOP .
6F96 00 NOP .
6F97 00 NOP .
6F98 00 NOP .
6F99 00 NOP .
6F9A 00 NOP .
6F9B 00 NOP .
6F9C 00 NOP .
6F9D 00 NOP .
6F9E 00 NOP .
6F9F 00 NOP .
6FA0 00 NOP .
6FA1 00 NOP .
6FA2 00 NOP .
6FA3 00 NOP .
6FA4 00 NOP .
6FA5 00 NOP .
6FA6 00 NOP .
6FA7 00 NOP .
6FA8 00 NOP .
6FA9 00 NOP .
6FAA 00 NOP .
6FAB 00 NOP .
6FAC 00 NOP .
6FAD 00 NOP .
6FAE 00 NOP .
6FAF 00 NOP .
6FB0 00 NOP .
6FB1 00 NOP .
6FB2 00 NOP .
6FB3 00 NOP .
6FB4 00 NOP .
6FB5 00 NOP .
6FB6 00 NOP .
6FB7 00 NOP .
6FB8 00 NOP .
6FB9 00 NOP .
6FBA 00 NOP .
6FBB 00 NOP .
6FBC 00 NOP .
6FBD 00 NOP .
6FBE 00 NOP .
6FBF 00 NOP .
6FC0 00 NOP .
6FC1 00 NOP .
6FC2 00 NOP .
6FC3 00 NOP .
6FC4 00 NOP .
6FC5 00 NOP .
6FC6 00 NOP .
6FC7 00 NOP .
6FC8 00 NOP .
6FC9 00 NOP .
6FCA 00 NOP .
6FCB 00 NOP .
6FCC 00 NOP .
6FCD 00 NOP .
6FCE 00 NOP .
6FCF 00 NOP .
6FD0 00 NOP .
6FD1 00 NOP .
6FD2 00 NOP .
6FD3 00 NOP .
6FD4 00 NOP .
6FD5 00 NOP .
6FD6 00 NOP .
6FD7 00 NOP .
6FD8 00 NOP .
6FD9 00 NOP .
6FDA 00 NOP .
6FDB 00 NOP .
6FDC 00 NOP .
6FDD 00 NOP .
6FDE 00 NOP .
6FDF 00 NOP .
6FE0 00 NOP .
6FE1 00 NOP .
6FE2 00 NOP .
6FE3 00 NOP .
6FE4 00 NOP .
6FE5 00 NOP .
6FE6 00 NOP .
6FE7 00 NOP .
6FE8 00 NOP .
6FE9 00 NOP .
6FEA 00 NOP .
6FEB 00 NOP .
6FEC 00 NOP .
6FED 00 NOP .
6FEE 00 NOP .
6FEF 00 NOP .
6FF0 00 NOP .
6FF1 00 NOP .
6FF2 00 NOP .
6FF3 00 NOP .
6FF4 00 NOP .
6FF5 00 NOP .
6FF6 00 NOP .
6FF7 00 NOP .
6FF8 00 NOP .
6FF9 00 NOP .
6FFA 00 NOP .
6FFB 00 NOP .
6FFC 00 NOP .
6FFD 00 NOP .