Anyone have any documentation or information about the RPQ to use 2415 tape drives with an 1130 system

23 views
Skip to first unread message

Carl Claunch

unread,
Nov 5, 2015, 5:27:12 PM11/5/15
to IBM1130
IBM had an RPQ to attach 2415 tape drives (through an 1133 Multiplexor and probably using the Selector Channel RPQ as a basis) - but I can't find any mention of the programming interface - XIO types, DSW bits, interrupt levels ,area codes and behaviors. 

Nor have I found any software that would use these. 

First, anyone know the purpose of the RPQ, e.g. what use people made of the tape drives on the 1130? 

Second, anyone have documentation of how they are accessed, as if there were a section in the Functional Characteristics about them?

Third, anyone know what software might exist that used them, since I could work backwords from code if needed?

Carl

Paul Tremblett

unread,
Nov 5, 2015, 5:59:33 PM11/5/15
to ibm...@googlegroups.com
My memory is dim but I thought there was more use of tape on the 1800. Maybe you might look for software there?

Sent from my iPhone
--
You received this message because you are subscribed to the Google Groups "IBM1130" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ibm1130+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Carl Claunch

unread,
Nov 5, 2015, 6:25:51 PM11/5/15
to IBM1130
Hi Paul

The 1800 IO system is a bit different - it allows "data chaining" so that an XIO Initiate Write points to the first WCA but the word at the end of the table can point to another WCA, so that the device transfers words from several blocks in core with a single XIO. It also has DSW conditions such as storage protect that don't pertain at all to the 1130. On the 1800 you issue the total count which is held in a 'word count register'. 

The 2400 tape drives are supported as area code 14 on the 1800, which is a 'reserved' value on the 1130. I could set up the tapes to operate as described by the 1800 but that doesn't tell me what interrupt level it would use on the 1130, nor what ILSW bits are set, even if I took the DSW directly from the 1800 and set all the 1800-unique bits to 0. 

Any software on the 1800 would support those incompatible IO features so it wouldn't be transferrable very readily to the 1130, I suspect. 

It would have been nice to have DMS2 support for tapes (e.g. perhaps a DUP option to copy tape to disk/card/etc), or a utility program unique to the tape. 

I guess if there is no software extant that used the 2400 tape RPQ on the 1130, then I don't have to worry about compatibility at all. 

Carl

rbsteup

unread,
Nov 5, 2015, 8:08:10 PM11/5/15
to IBM1130
We had an 1130 system at Manassas, VA that had a dual 2415 tape drive - a 7 and 9 track combo. I don't remember any of the details. I remember writing an assembler package of subroutines that was callable from Fortran to do IO on the drives. It was pretty straight forward and took me only a day or two to get it operational.

It was used by the IPF System, a graphical FET Integrated circuit chip design system

Eddy Q

unread,
Nov 6, 2015, 7:34:02 AM11/6/15
to ibm...@googlegroups.com

At DNA we used tape drives. My emulator also supports tape. It is available on this forum. I'll look for the doc.

On Nov 5, 2015 8:08 PM, "rbsteup" <rbs...@gmail.com> wrote:
>
> We had an 1130 system at Manassas, VA that had a dual 2415 tape drive - a 7 and 9 track combo. I don't remember any of the details. I remember writing an assembler package of subroutines that was callable from Fortran to do IO on the drives. It was pretty straight forward and took me only a day or two to get it operational.
>
> It was used by the IPF System, a graphical FET Integrated circuit chip design system
>

Carl Claunch

unread,
Nov 7, 2015, 1:39:56 AM11/7/15
to IBM1130
I got the information I needed, thanks to a friend from the National Museum of Computing in the UK. There is a field developed program 00.3.003 that provides magnetic tape programs for use from both Assembler and Fortran 

It has enough code to show me how the tapes were accessed and connected. The drives were attached to the Selector Channel RPQ installed in an 1133 - which itself is documented in the manual Attachment Channel RPQ. 

The channel is addressed on area code 27 and responds on interrupt level 4, setting bit 12 in the ILSW. 

The XIO Write points to the first word of a three word long CCW (S/360 channel command word) that uses the standard 360 commands to control the tape drives. The control unit for the tapes is 80 and the software supports drives 0 to 7. The 2400 series tape drives respond exactly as they do on a 360 system, producing a four word long Channel Status Word which is retrieved using an XIO Sense Device, with bits 13 and 14 of the IOCC for the sense device indicating which of the four words of the CSW is to be loaded into the accumulator. 

Plus, the manual which describes the program has listings, clear enough to allow me to set up the source and assemble it 

It involves a modified Interrupt level 4 subroutine that will pass control to Iinterrupt Service Subroutine 05 when bit 12 is turned on in the L4 ILSW. The program includes both the IL4 subroutine and the ISS 05 subroutine. 

Thanks all for helping out.

Carl

John R Pierce

unread,
Nov 7, 2015, 2:09:20 AM11/7/15
to ibm...@googlegroups.com
On 11/6/2015 10:39 PM, Carl Claunch wrote:
> I got the information I needed, thanks to a friend from the National
> Museum of Computing in the UK. There is a field developed program
> 00.3.003 that provides magnetic tape programs for use from both
> Assembler and Fortran

I didn't quite see this confirmed in your description, but surely the
data transfer was via DMA/cycle stealing ? I can't imagine an 1130
could keep up with the typical transfer rate of a tape under PIO. I
suppose the really scary thing is, the tapes I remember dealing with on
s/370 and various 1970s minicomputers often used 4K or 8K byte blocks,
which was a significant portion of the typical 1130's rather limited
storage. Of course there were many tapes that had 80 byte blocks with
card images, but those were really inefficient, as the interrecord gaps
on a 1600 BPI tape were equivalent to about 800 or 1000 bytes of data.



--
john r pierce, recycling bits in santa cruz

Carl Claunch

unread,
Nov 7, 2015, 10:58:31 AM11/7/15
to IBM1130
Hi John

Yes, it uses cycle steal for data transfers.

The selector channel only implements four types of XIO. 

XIO Sense ILSW during an interrupt level 4 returns 0x0000000000001000 to mark the selector channel as the interrupt source

XIO Control with the data address in the IOCC pointing at a CCW in core acts as a Halt IO, stopping the IO activity

XIO Write with the data address in the first word of IOCC pointing at a CCW in core is the Start IO, telling the channel to fetch the CCW and begin IO to the device whose number is in the end of word two of the IOCC

The CCW acts somewhat like the WCA for the 'normal' 1130 instructions XIO Init Read or XIO Init Write.

The selector channel fetches the CCW, which has three words. First is the count to transfer, second is options and the command code, third is the core address for the data to be read/written. In a WCA, the first word is a count for the transfer but then the data is in the WCA in the succeeding core locations. The CCW scheme has commands like Read Backwards, Control, Test IO and Transfer in Channel, which is a branch to a new CCW. The options can tell the channel to read the next three words as a follow on CCW once the current CCW is complete (command chaining), it can tell the channel to transfer the IO count from the current CCW then fetch another CCW in the following three words, using the new CCW to continue the IO operation moving an additional count of data to a new core location (data chaining), and other options. 

The selector channel fetches the CCWs, begins the actual IO operation on the control unit and then uses the count and data addresses from the CCWs to move the data in or out of core via the cycle stealing mechanism in the 1133 Multiplexor box. 

Therefore no direct one word IO (e.g. no XIO Read and the XIO Write is repurposed to be the Start IO to the channel. 

Flat out, an 1130 could only transfer 277,777 words per second on a 3.6us machine, 454454 words per second on the faster 2.2us models, at which rates no instructions would execute and no other IO could take place. 

The fastest 2400 series drive at 1600 bpi and 112.5 ips transfers at 180000 bytes per second, which is 90000 words per second - impactful in the same way as disk IO but not out of the question. Usually 2415 models were installed which ran at 18.5 ips and only required cycle steal rates of 15000 words per second while transferring data. 

You make a good point about reasonable block sizes given core memory. A 4K block size would require 2048 words of core, attainable on a 32K machine but impractical on 4K or 8K systems. 

Carl

Richard Stofer

unread,
Nov 8, 2015, 10:18:58 AM11/8/15
to ibm...@googlegroups.com

I have always wondered about ‘chaining’.  What happens if I add a link to a previous command block JUST as the command is completing?  It seems to me that the new command block would never get executed.

So, disable interrupts to prevent the previous command from completing, check to see that it isn’t complete and then add the link.  Fine!  But the 1130 doesn’t have a facility for disabling interrupts.  At least not in the hardware as I understand it.

 

If the tape drive doesn’t already include a FIFO, I would certainly add one.

 

From: ibm...@googlegroups.com [mailto:ibm...@googlegroups.com] On Behalf Of Carl Claunch
Sent: Saturday, November 07, 2015 7:59 AM
To: IBM1130
Subject: Re: [IBM1130] Re: Anyone have any documentation or information about the RPQ to use 2415 tape drives with an 1130 system

 

Hi John

 

Yes, it uses cycle steal for data transfers.

 

The selector channel only implements four types of XIO. 

 

XIO Sense ILSW during an interrupt level 4 returns 0x0000000000001000 to mark the selector channel as the interrupt source

 

XIO Control with the data address in the IOCC pointing at a CCW in core acts as a Halt IO, stopping the IO activity

 

XIO Write with the data address in the first word of IOCC pointing at a CCW in core is the Start IO, telling the channel to fetch the CCW and begin IO to the device whose number is in the end of word two of the IOCC

 

The CCW acts somewhat like the WCA for the 'normal' 1130 instructions XIO Init Read or XIO Init Write.

 

The selector channel fetches the CCW, which has three words. First is the count to transfer, second is options and the command code, third is the core address for the data to be read/written. In a WCA, the first word is a count for the transfer but then the data is in the WCA in the succeeding core locations. The CCW scheme has commands like Read Backwards, Control, Test IO and Transfer in Channel, which is a branch to a new CCW. The options can tell the channel to read the next three words as a follow on CCW once the current CCW is complete (command chaining), it can tell the channel to transfer the IO count from the current CCW then fetch another CCW in the following three words, using the new CCW to continue the IO operation moving an additional count of data to a new core location (data chaining), and other options. 

 

The selector channel fetches the CCWs, begins the actual IO operation on the control unit and then uses the count and data addresses from the CCWs to move the data in or out of core via the cycle stealing mechanism in the 1133 Multiplexor box. 

 

Therefore no direct one word IO (e.g. no XIO Read and the XIO Write is repurposed to be the Start IO to the channel. 

 

Flat out, an 1130 could only transfer 277,777 words per second on a 3.6us machine, 454454 words per second on the faster 2.2us models, at which rates no instructions would execute and no other IO could take place. 

 

The fastest 2400 series drive at 1600 bpi and 112.5 ips transfers at 180000 bytes per second, which is 90000 words per second - impactful in the same way as disk IO but not out of the question. Usually 2415 models were installed which ran at 18.5 ips and only required cycle steal rates of 15000 words per second while transferring data. 

 

You make a good point about reasonable block sizes given core memory. A 4K block size would require 2048 words of core, attainable on a 32K machine but impractical on 4K or 8K systems. 

 

Carl

.

Carl Claunch

unread,
Nov 8, 2015, 12:34:26 PM11/8/15
to IBM1130
Hi Richard

The S/360 CCW has a Command Chaining or Data Chaining bit that would be interpreted as it was fetched – thus it would be too late to try to append by flipping the bit while the command was in operation or completed. On the other hand, you can definitely change the contents of the next CCW while the current one is in process. Plenty of dynamic channel programs existed in telecommunications and for optimized disk operations.

 

Disabling interrupts does nothing to stop the channel from completing. Think about the Program Controlled Interrupt flag, which allowed a channel program to cause an interrupt when a particular CCW was fetched, possibly even to allow dynamic modification of CCWs somewhere further down the CCW chain. If you don’t accept the interrupt, that didn’t stop the channel from fetching away and executing further CCWs – if you missed the window, too bad.

 

The third word of a CSW in the 1130 implementation is the CCW address but it is always +3 from the address of the one executing. That also shows that the channel fetches the entire CCW and its flags before executing and doesn’t ‘look back’. I have to assume that the 360 channel CSW also presents the address of the next sequential CCW beyond the one in execution now, but haven’t look at 360 PrincOps yet to confirm this. IBM has fairly lazy in doing RPQs that involved borrowing hardware from one system to put on another. Thus, the 1133 would have had essentially all of the Selector Channel hardware from a real 2860 channel box, plus glue logic to respond to XIO commands, do cycle steal for data fetches and present interrupts.  However the 2860 worked is highly likely to be how the Attachment Channel RPQ worked on the 1130.

 

The drives I own are ‘streaming’ drives that support start-stop IO but use a large FIFO to try to keep the tape moving steadily. Without vacuum columns, those drives would have terribly slow start and stop times, but would attain a decent IPS rate once moving. I still haven’t decided exactly how I will attach my tape drives to the 1130. If I use a PC and a SCSI card, then the PC memory would be the buffer to ensure speed matching between the 1130 and the drive. If I can find some hardware to make the fpga the host driving the SCSI cable, then I would indeed do some kind of speed matching FIFO as you suggested, even though the drive itself has an internal FIFO.

 

SPECULATIVE MODE ON

The 1130 doesn’t disable interrupts, while the 1800 supported that. I imagine you could do the equivalent on systems without a 1442 installed, by creating a pseudo device that interrupted on level 0 and just BSC I back from the interrupt routine leaving level 0 active. No lower level interrupt would take place until you cleared the interrupt at a later time by issuing some kind of BOSC command, but you wouldn’t stay in the interrupt routine for zero, you would go back to other code. Thus, somehow trigger the interrupt level by an XIO to your special area code, then do an XIO Sense Device with reset to turn off the request. Your user code that wanted to disable interrupts would XIO to set interrupts, then XIO DSW Reset and BOSC to itself to clear L0.  Otherwise, it could do whatever you wanted. You could even nest the concept – put the XIO to disable inside some other interrupt handler, forcing the branch to our L0 handler and back then ensuring other ‘higher’ interrupt levels would not occur until we had reset L0 with a BOSC, then eventually get control back in our original int handler to BOSC to clear our own level. 

SPECULATIVE MODE OFF

Reply all
Reply to author
Forward
0 new messages