When we programmed for the 1130 didn’t have much memory so, within interrupt code, we generally avoided the complex logic involved with a state machine. The “nice” thing was that we could modify an instruction but can, if not done correctly, lead to more complex logic than you would want to deal with.
When my friend wrote a DISKZ that would run as a replacement for DISK1, he used instruction modification to his advantage which eliminated a complex and unnecessary state machine. I also saw a nice use of a similar technique in the IBM SCATx code (BI-SYNC). Here is what I remember of DISKZ from those old days:
* COL 73
INT DC *-* INTERRUPT ENTRY POINT
... SAVE REGISTERS & SETUP
UT0F BSC L *-* CONTINUE WITH SERVICE ROUTINE
SERV EQU *-1 ADDRESS OF SERVICE ROUTINE
... CLEANUP HERE
BOSC I INT RETURN FROM INTERRUPT
... THIS IS PART OF PERIPHERAL OPERATION AND WE
... ARE ON THE INTERRUPT LEVEL HERE
XIO WHAT1
* WE HAVE ISSUED AN XIO TO OPERATE PART OF THE
* PERIPHERAL AND NOW NEED TO CLEAR THE CURRENT
* INTERRUPT AND WAIT FOR THIS INTERRUPT
BSI L SERV
* WHEN THE INTERRUPT OCCURS, RETURN TO HERE
... CHECK FOR ERRORS ASSOCIATED WITH THE OPERATION
* START THE NEXT LOGICAL OPERATION
XIO WHAT2
BSI L SERV
... PICK UP HERE AFTER THE I/O IS COMPLETE
As I remember, SCATx used the STS instruction to modify a branch. The interrupt code would fall into the branch and would then branch back to the logic and pickup where it left off.
Several years ago I developed a technique similar to this to eliminate state machines in C. It was done with macros and I have used it at many companies including CISCO when I wrote their Transceiver Library for the Nexus 7000. You can read about it here: https://www.codeproject.com/Articles/37037/Macros-to-simulate-multi-tasking-blocking-code-at
Eddy
--
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.
Cool, in order to write my emulation of the IBM2780 (which ran as a .DCI) I studied the scatx routines up one side and down the other. I re-wrote the BSC code when I wrote the BI-SYNC support for TSO (an 1130 time sharing system which is still being used today).
Eddy
To unsubscribe from this group and stop receiving emails from it, send an email to ibm1130+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
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+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
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+unsubscribe@googlegroups.com.
TSO is not an emulator. It is a time sharing system that runs on the 1130. I could not use standard SCA for that because all of the drivers run in Auxiliary Core and they use an 1800 style interface. I.e. the caller points to a list and the list contains the arguments plus a callback pointer.
Eddy
From: ibm...@googlegroups.com [mailto:ibm...@googlegroups.com] On Behalf Of Bob Flanders
Sent: Thursday, March 08, 2018 9:57 AM
To: ibm...@googlegroups.com
Subject: Re: [IBM1130] Example of code modification on the 1130
On Wed, Mar 7, 2018 at 9:20 PM, Eddy Quicksall <Ed...@quicksall.com> wrote:
Cool, in order to write my emulation of the IBM2780 (which ran as a .DCI) I studied the scatx routines up one side and down the other. I re-wrote the BSC code when I wrote the BI-SYNC support for TSO (an 1130 time sharing system which is still being used today).
Eddy
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.
--
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.
--
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.
--
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.
Hi from another of the 1130 team. Are still playing golf? I've taken it up since retirement. It is a difficult game and I'm not very good at it.