Thursday, September 19, 2024

1132 Printer controller logic appears to be working properly. Installed 1442 reader/punch SLT cards to begin testing that logic

CORRECT SLT CARD FOR PRINTER IS JUST ONE 0000 ADDED IN SLOT M6

After I checked every signal net from card M6, it showed this was a relocation of the 0000 card from the slot B3 where it was shown in every ALD I have seen, with an 0509 card sitting in that slot for some unknown reason. This is a different engineering level than any I have seen.

EXTREMELY IMPORTANT TO GET THE ALDS THAT MATCH A SPECIFIC MACHINE

For many computers, the schematics for a particular model are the same for every serial number of that machine. This is definitely not true for IBM mainframes from the 1950s through the 1970s at least. The documentation, called Automated Logic Diagrams (ALD) are unique to the serial number. They eliminate gates and connections based on the exact configuration. 

I have collected as many scanned ALDs as I can find for IBM 1130 systems, hoping to between them amass all the logic for various peripherals and features. That is how I have ALD information on the 2501 card reader and the synchronous communications adapter (SCA) that was not included in my own manuals because they were not configured on my machine. Recently I got copies of the 1133 ALDs, but there are still devices for which I have no documentation. The 2250 graphics terminal and the 1231 optical mark reader are the two which were normal options for 1130 systems. 

PRINTER SPACING, SKIPPING AT HIGH SPEED AND PRINTING CHARACTERS

I was able to issue XIO commands to cause the printer to start print mode, where it interrupts on IL1 to inform the software when each new character position on the 120 print wheels is approaching the spot in front of the paper. I set up patterns in the fixed memory locations x0020 to x0029 where the printer controller will cycle steal to fire hammers for each position with a 1 bit set. 

The software must issue an XIO Read to get the code value of the character that is ready to print. The software then sets the 1 bits in the fixed area 0020-0029 and the controller uses that to fire appropriate hammers. The software issues an XIO Control to stop printing when all characters that are needed on the print line have been printed. 

The XIO Control command to start the carriage skipping and we will then get an interrupt each time a brush detects a hole in channels 1, 2, 3, 4, 5, 6, 9 or 12 of the carriage control tape. The Sense DSW command shows which channels had holes detected, so that the software can issue an XIO Control to stop skipping when the desired channel was reached. 

It takes quite a bit of software to control all of this, more than I was willing to develop and toggle in for the testing. Once I saw that proper character codes were read by the XIO Read, that the selected hammers would fire when the printer was started, and that the carriage would start and stop skilling, I knew the functionality was there. I saw the interrupt level activated and saw appropriate DSW bits each time I tested. 

There is only one condition I didn't check - the print scan error test. Since the software must respond to an interrupt request to read the character code, then must set up the bits in the fixed area before the printer begins fetching, it is possible if the software is delayed that the printer wheels will r each the point where the controller fetches the fixed area and fires hammers.

To detect when the software didn't complete its task in time, the hardware makes use of one bit position in word x0029 to detect the problem. It depends on the software following a process where it clears that last bit (bit 15 of 0029) when it first responds to the interrupt for a new character getting ready to print. The software reads the character code, sets up bits in locations 0020 to 0029, then sets bit 15 of 0029 to a 1. This means the software completed its task. 

After the interrupt is requested for a new character approaching, there is approximately 11.2 milliseconds delay before the fixed locations are fetched and hammers fired. If during the fetch, bit 15 of word 0029 is not set to a 1, then controller detects a print scan error and indicates this in the DSW with bit 4 turned on. 

The software should delay through 47 interrupts with character codes, thus returning to the character that was being printed when the print scan error occurred. It would then set up the bits in 0020 to 0029 to reprint the character, presumably without error. 

The software must also perform 'idle scan cycles', meaning setting the locations 0020 to 0029 to all zeroes except for bit 15 of the last word. This causes no hammers to fire. For some situations, the software must count up 16 interrupts for approaching characters on the print wheel but ignore it, instead issuing the idle scan cycle. 

INSTALLED CARDS IN COMPARTMENT A-B1 FOR THE 1442 CARD READER/PUNCH

I installed the 31 SLT cards that implement the read/punch controller logic into their assigned slots in the compartment. I am not yet ready to cable up my 1442 peripheral to the machine, but can verify some behavior right away. 

The controller responds to the Sense DSW command for its area code (device address) and gives appropriate status. I see the Not Ready condition signaled with bit 15 turned on, plus bit 2 indicating an Error. There are several errors that can turn on this bit, such as various feed checks and jams. It also detects feed movement when the clutch has not been activated and it detects cards blocking the photocells when no card should be present in that area. 

When I get back to the workshop I will test which of these errors are set and determine if it is logical that they were triggered. With disconnected wires, they usually are treated as a logic high by the SLT gates they feed. This is likely the impetus for one or more of the error conditions. 

No comments:

Post a Comment