Low Level Interrupt behavior

192 views
Skip to first unread message

Bob Flanders

unread,
May 4, 2024, 8:16:56 PMMay 4
to IBM1130
Hi All,

Do any of you know if an ILSW Sense can return more than one device bit at a time? 
For example, if you had an interrupt level 4 happen for a write to the printer and at the same time a key was pressed on the keyboard (assuming it's enabled and ready to read), would the ILSW show both devices or just one?  If both, do the interrupts "stack"? 

By this I mean in the preceding example, when you read the Level 4 ILSW, and the keyboard bit is on, and you do an XIO to reset the interrupt and BOSC out of the interrupt routine, does Interrupt 4 assert one again for the keyboard?

If I were writing this today, all the bits of the active interrupt, and let the interrupt routine decide which to service first. The interrupts would reassert until all devices have been serviced. 

I am working on an emulator, and I need to get the behavior implemented correctly.

Thanks!

Regards,
Bob

Bob Flanders

unread,
May 4, 2024, 10:29:29 PMMay 4
to ibm...@googlegroups.com
I *may* have found an answer (not THE answer)...

In the DMS source available with the IBM 1130 simulator in the file u1ils04.asm, the routine just does an SLCA to figure out the device to service. Now this doesn't answer what the hardware does -- "or" the bits into the ILSW, or just the one device that interrupted, but the code doesn't seem to care.

I will write it with whatever bits happen to be on for the device.interrupting device bit on for the given interrupt. 

Let me know if anyone knows what the real machine does.

Thanks!

Regards,
Bob

--
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.
To view this discussion on the web visit https://groups.google.com/d/msgid/ibm1130/a9791a2e-abec-4463-bdf6-eb9e58678ee8n%40googlegroups.com.

br...@quarterbyte.com

unread,
May 4, 2024, 11:14:57 PMMay 4
to ibm...@googlegroups.com
will be interested to hear the answer.
In my simh simulator, the ILSW words can have multiple device bits set -- each device sets and clears its ILSW bit(s) independently of the others. This means nothing in terms of the real hardware.
My hunch is that on the hardware, the bits are or'd as I did in simh. The extra gates and such that would be required to pend raising an interrupt until no other device was using the associated ILSW seems like it would be fairly complicated.

I imagine the best place to look would be Carl Claunch's FPGA code (easier to peruse probably but where is it?) 
Or the ALD's, which are harder to peruse.



John Pierce

unread,
May 4, 2024, 11:54:54 PMMay 4
to ibm...@googlegroups.com
Afair...   If any bits aren't reset, it will interrupt again...   It's a little more efficient for the software handling a ils to keep checking bits and dispatching handlers but the complexity of doing that likely outweighs any benefit 

Note, it's been 50 years since I wrote 1130 irq handlers so take this with a spoonful of salt 

Bob Flanders

unread,
May 4, 2024, 11:55:05 PMMay 4
to ibm...@googlegroups.com
Agreed, but I think nothing but a real 1130 will reveal the answer, and apart from the ALD, it would be a hard condition to capture. Maybe. 
My gut agrees with you about the or'ing of bits in the ILSW. Plus the way they used SLC to service the leftmost bit seems to point to the interrupt logic not resolving the pending interrupt after the first is serviced.

To test the idea, maybe something like a program that enables the keyboard,  issues a console write,where the interrupt handler doesn't process the interrupt .. just BSC to return.  Then, while the console interrupt is active, hit a key. Then read the ILSW and see if there are two bits presented.

BTW, Brian. Thank you so much for the groundbreaking work you did on the simulator. You're getting the DMS to load on a "disk" and then run in the sim is spectacular. 

I am trying (if I ever get this done) to have a fully test-driven C# IBM 1130 simulator that will connect to a Blazor front end. Maybe evren run as a web assembly. I have a long way to go.
Thanks!

Regards,
Bob

Bob Flanders

unread,
May 5, 2024, 12:26:19 AMMay 5
to ibm...@googlegroups.com
Thank John. 

Yeah ... Time makes everything a bit hazy.

I remember my parents complaining, "I can't believe our kid is sitting in a computer room on a Saturday night writing interrupt handlers. He should be out drinking like the rest of the kids his age."

(just kidding) :D

Bob

Carl Claunch

unread,
May 5, 2024, 7:14:15 AMMay 5
to IBM1130
Each device controller asserts its bit independently and thus simultaneously if more than one has an interrupting condition. 

They are therefore bitwise ORed in the ILSW. You will see more than one bit set if more than one device controller requests the same interrupt level.

The common IO bus in the hardware has many lines hooked to it that assert each bit. Every device that can do a read, every device that has bits in the ILSW and every device which uses that bit for its DSW. The "gentleman's agreement" is that devices don't assert those lines until they are addressed by an appropriate type of XIO. The 1130 common logic puts the IO bus on the B reg (Storage Address Register) at the appropriate time during the handling of an XIO instruction, when it can either be stored in a memory location or transferred to the ACC (Accumulator) register. If several devices have asserted their bits for the ILSW and a XIO Sense ILSW is executed, all of those bits are transferred to B. 

Each device controller raises the request for the interrupt level independently.

The interrupt handler must handle more than one bit by choosing one to handle. Typically that would be done with an SLCA to detect the leftmost bit that is on, then branch to the routine to handle that interrupt.

When the interrupt handler code for the leftmost active device is ready to complete, it turns off the request condition by issuing an XIO Sense Device with the appropriate reset bit set in the IOCC. It then returns by BOSC

Because more than one device controller had a request for the interrupt level, the next instruction after the BOSC is entry back into the interrupt handler. The SLCA now finds a different bit set since the earlier device reset its request condition. Repeat until no device has the interrupt request asserted for this level, thus no bits would be on in the ILSW at that point. The BOSC then drops back to user code (or a lower priority interrupt level if that was asserted by a device controller). 

Carl

gah4

unread,
May 5, 2024, 7:54:49 AMMay 5
to IBM1130
So IBM knew how to do this so far back, and still got it wrong for the IBM PC.

The PC uses edge triggered interrupts, so this fails if more than one devices hits the same interrupt line before others are serviced.

It isn't so obvious to me that this matters for emulators, though. 

Most emulators do synchronous interrupts, such that it isn't possible to hit more than one at the same time.


Also, if I understand the question, interrupt routines can handle all the interrupting devices, or wait until the interrupt is reasserted. 

That is a question for software, and not hardware or emulation.


Peter Diehr

unread,
May 5, 2024, 10:29:36 AMMay 5
to ibm...@googlegroups.com
Bork's "Programming the IBM 1130" provides information on how the interrupt handling works.  This was my reference when developing several interrupt handlers at EMU between 1969 and 1972.



Best regards, Peter Diehr

On Sat, May 4, 2024 at 11:54 PM John Pierce <pie...@hogranch.com> wrote:

Bob Flanders

unread,
May 5, 2024, 10:48:30 AMMay 5
to ibm...@googlegroups.com
Hi Carl,

Thank you! 

I love it .... a gentlemen's agreement. Just perfect. 

This makes a load of sense, especially given the era and the fact that not just anybody can build a device for the computer and plug it in.

This will help with implementation. I want to "get it right" so I can dev on a sim (which I can) and then take the program to a real box and run it (like SSM).

Thanks again for the response... you are the man.

Regards,
Bob

--
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.

Bob Flanders

unread,
May 5, 2024, 10:57:21 AMMay 5
to ibm...@googlegroups.com
Yeah ... the design team were what .. 17 years apart or so? 

I wrote a lot for the PC, but probably didn't know (or think about) how it's interrupts operate. Hmm ... did I even write an interrupt handler on the thing? Not sure....

Now about emulators, that's probably right. Especially for a machine that most will never see, and much less program. But they are coming back to life at a surprising rate. I bet they will be in everyone's living room before too long. :D

Actually, the thing I am writing puts each device on a thread, and I need to know how those devices cooperate so the operation is more lifelike. Reviewing the DM2 interrupt handler gives a bit of a clue, but it is not spelled out anywhere that I have found.

Thanks for posting! 

Regards,
Bob

--
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.

Bob Flanders

unread,
May 5, 2024, 11:03:43 AMMay 5
to ibm...@googlegroups.com
Hi Peter,

Are you the guy? Did  you participate in writing the EMU Fortran for the 1130? 

image.png

Thanks for that gem. Wow. Very cool. I don't think I have seen this before.

Regards,
Bob


Peter Diehr

unread,
May 5, 2024, 11:18:55 AMMay 5
to ibm...@googlegroups.com
That's me in the EMU computer room, back in 1970.  Dave Morse and I started work on the Fortran compiler in the summer of 1971, publishing the first release late that fall, and the final release in the late winter of 1972.  I did a couple of talks at the IBM 1130 COMMON user group meetings at that time.  Then the IBM 1130 was replaced by a PDP DEC 10, and I went on to other challenges.

All that work was done while I was an undergraduate at EMU, where I had returned after my discharge from the US Coast Guard Academy with diabetes.  

Best regards, Peter Diehr



EMU ICS IBM 1130 - Peter Diehr (1970).jpg

Bob Flanders

unread,
May 5, 2024, 11:25:20 AMMay 5
to ibm...@googlegroups.com
Peter,

That is Very Cool! Was EMU your first contact with an 1130?

- Bob

Peter Diehr

unread,
May 5, 2024, 11:47:23 AMMay 5
to ibm...@googlegroups.com
Yes; February of 1969, Numerical Analysis class.  The Coast Guard Academy had an IBM 1620, and before that, I had learned Fortran on a CDC 3600 at MSU, during a high school summer program.  I was straight off the farm!

Best regards, Peter Diehr

Jeff Jonas

unread,
May 5, 2024, 12:56:45 PMMay 5
to ibm...@googlegroups.com
> I love it .... a gentlemen's agreement. Just perfect.

That's the glory of a unified, clear architecture
from end to end that early computer mfgrs exercised.
Not the piecemeal "use commodity chips" of the PC and later.
(where's the interrupt status?
Well, for this General Instrument chip, it's in this inner register
that needs to be selected first by an instruction since there are no
address lines, for the National Semi/Mostek chips it's ...)

> This makes a load of sense,
> especially given the era
> and the fact that not just anybody can build a device
> for the computer and plug it in.

After the "consent decree"
(IBM's antitrust settlement/agreement)
they published OEM manuals
for "how to interface your stuff to the IBM 1130".
But Carl Claunch said it best at his VCF-East presentation:
the manual may be complete and correct
but it was still incomprehensible, full of IBM-jargon.

see:

http://media.ibm1130.org/E0005.pdf
IBM 1130 OEM channel RPQs

https://en.wikipedia.org/wiki/History_of_IBM
1936 Consent Decree
1956 Consent Decree

https://www.cnet.com/tech/services-and-software/40-year-old-ibm-antitrust-case-ends/
40-year-old IBM antitrust case ends
The Justice Department plans to end a 40-year-old antitrust regulation of IBM.
CNET News staff
July 2, 1996

-- jeff jonas

Richard Stofer

unread,
May 5, 2024, 1:42:56 PMMay 5
to ibm...@googlegroups.com
I found the Functional Characteristics Manual readable and suitable for building a hardware emulation with an FPGA

Here are a couple of crib notes on interrupts but by no means the complete logic

In hardware there are 6 iLSWs tha have the various interrupt signals from the peripherals

There is just one ILSW and it has a copy for the highest priority of the 6 ILSWs.

signal ILSW : std_logic_vector(15 downto 0); --active ILSWx
signal ILSW0 : std_logic_vector(15 downto 0);
signal ILSW1 : std_logic_vector(15 downto 0);
signal ILSW2 : std_logic_vector(15 downto 0);
signal ILSW3 : std_logic_vector(15 downto 0);
signal ILSW4 : std_logic_vector(15 downto 0);
signal ILSW5 : std_logic_vector(15 downto 0);

Rememberr that IBM labels the bits with bit0 as the high order and
leftmost bit. I number the bits with bit15 as the high order


ILSW0 <= x"0000";
ILSW1 <= x"0000";
ILSW2 <= DiskInt & "000000000000000";
ILSW3 <= PlotterInt & "000000000000000";
ILSW4(15) <= paper_tape_int; -- 1134 Paper Tape Reader and
- 1055 Paper Tape Punch interrupt
ILSW4(14) <= ConsoleInt; -- Console/Keyboard interrupt
ILSW4(13) <= CRP1442_int; -- 1442 Card Reader/Punch interrupt
ILSW4(12) <= ReaderInt; -- 2501 Card Reader interrupt
ILSW4(11) <= PrinterInt; -- 1403 Printer interrupt
ILSW4(10) <= OMPR1231_int; -- 1231 Optical Mark Page Reader interrupt
ILSW4(9 downto 0) <= SAC_int; -- Storage Access Channel interrupt
ILSW5 <= x"0000";

A priority tree selects the highest priiority

process(IntServLevel, ILSW0, ILSW1, ILSW2, ILSW3, ILSW4, ILSW5)
begin
if IntServLevel(0) = '1' then
ILSW <= ILSW0;
elsif IntServLevel(1) = '1' then
ILSW <= ILSW1;
elsif IntServLevel(2) = '1' then
ILSW <= ILSW2;
elsif IntServLevel(3) = '1' then
ILSW <= ILSW3;
elsif IntServLevel(4) = '1' then
ILSW <= ILSW4;
elsif IntServLevel(5) = '1' then
ILSW <= ILSW5;
else
ILSW <= x"0000";
end if;
end process;

There is some other logic involved with Interrut Request Level and interrupt
Service Level but at the end of the day, interrupts can be nested by priority,
And many interrupt handlers can be in process but only the highest priority gets serviced and,
most important is the fact that there is no Enable or Disable Interrupt instruction. And no Return Address stack...

I got my info from the Fuctional Characteristics Manual. If I were writing an emoulator to run on a PC, I would copy Brian's work. www.ibm1130.org

Bob Flanders

unread,
May 5, 2024, 3:11:50 PMMay 5
to ibm...@googlegroups.com
Hi Richard,

How are you? 

Thanks for this. I often rely on Brian's work. I think they call it "Standing on the shoulders of giants."  :D

I have the stuff worked out for interrupt level priority, but now am working on the ILSW presentation to the "CPU" during a sense interrupts XIO.

It's wee bit more complicated than I expected. I need to have a bit of code that examines the devices and ORs the Interrupt Level bits together. 

This hasn't been an issue before because I only had one device per interrupt, but when I got to the console, although it sits at one device ID (00001B), it has multiple things that can interrupt (Keyboard and Console Printer.) 

What a pain. I hadn't looked closely before, and then I find it is more complicated than I expected. Not a show stopper, but a show slower downer. (Is that a thing?)

Thanks for writing.

Regards,
Bob

--
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.

gah4

unread,
May 5, 2024, 8:53:06 PMMay 5
to IBM1130
I am not so sure about that time, but I believe that what we now know as tri-state logic didn't exist yet.

But open collector drivers, pretty much like we still have in TTL, were usual.

So, I/O buses were designed with either one driver and multiple receivers,
or with multiple open collector drivers, and on receiver. 

Unlike today, wire was cheaper than transistors, so many wires were used when it would save the cost of transistors.

I think I was slightly wrong yesterday.  It isn't that the IBM PC was designed around edge triggered interrupts, but MS-DOS used them that way.

I think I remember that OS/2 knew about level triggered interrupts, and so could use more than one on the same IRQ line.

But beginning and ending of interrupt routines seems to always have some unusual ideas.

For the 8080, you enable interrupts with EI, but it delays one instruction so you can RST before they actually enable.

Many emulators do synchronous I/O where, as seen by the running OS, the I/O interrupt occurs immediately after the I/O instruction.
And some software designed for the real hardware expects to execute some instructions in between.


On Sunday, May 5, 2024 at 4:14:15 AM UTC-7 Carl Claunch wrote:
Each device controller asserts its bit independently and thus simultaneously if more than one has an interrupting condition. 

They are therefore bitwise ORed in the ILSW. You will see more than one bit set if more than one device controller requests the same interrupt level.

The common IO bus in the hardware has many lines hooked to it that assert each bit. Every device that can do a read, every device that has bits in the ILSW and every device which uses that bit for its DSW.  
(snip)

Claudio Vincenzi

unread,
May 13, 2024, 1:47:41 AMMay 13
to IBM1130
Hi everyone

A little bit off Topic, so I apologize in advance.
My name is Claudio and I am looking for people interested in 
reviewing or testing (or even use) a new version of the IBM1130 
simulator I have been developing during the last 10 months. 
I can post a link here tô download If you allow me.

Thanks in advance.
Att
Prof Claudio Vincenzi
Brasil 

Bob Flanders

unread,
May 13, 2024, 8:46:57 AMMay 13
to ibm...@googlegroups.com
Welcome!

I would like to try it out.

Thanks,
Bob

--
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.

Claudio Vincenzi

unread,
May 14, 2024, 12:19:30 AMMay 14
to IBM1130
Hi Bob!
Thank you.
I am in the middle of a new release of the emulator and expect it to be ready by the end of this week.
As soon as it is minimally 'bug-fixed' I will upload it to my dropbox drive and share it here.
In the meantime you can have a pre view of the emulator  by downloading the previous releases I posted there.
These releases are by no means good for regular use since they have many bugs.


Please let me know.
Best regards
prof. Claudio Vincenzi

Claudio Vincenzi

unread,
May 14, 2024, 12:51:04 AMMay 14
to IBM1130
Hi Bob

as a suggestion:  ibm1130-4.2.1-R3.zip maybe is the most stable version. 
Version 4.3.0 is very unstable. As soon as you have accessed the drive, please
follow this script (it is for 4.1.3 but the steps are the same (attached you will
find an installation and primer manual for 4.1.3):

There you will find the .ZIP distribution archive file for version 4.1.3 , release R1.
You'll also find, attached to this email, the installation and configuration manual.

The simulator installation is very simple. 

    • Extract the .ZIP archive, keeping the directory structure.
    • It will create  ...\ibm1130\V4.1\ibm1130-4.1.3 BASE directory.
    • CD to the BASE dir.
    • There you will find install.cmd script - run it. 
    • It will (re) create ibm1130.cmd (the sim startup script)..
    • Run IBM1130.CMD
    • It will start the launch script, ibm1130_4.1.3, in another console window
    • Choose which build  version you want to run.
    • Choose  32/64 bit
    • Choose I (interactive)
    • SIM console should show-up;
    • GUI console should show-up (if you\ve chosen a GUI-enabled one)
    • Try some pre-written sample scripts:
      • do boot       (boots DMS)
      • do  ban       (a long FOR job that print banners)
      • do zdcip     (runs the zdcip utility)
      • do gofor1     (sample fortran programs)
      • do gofor1c1
      • do gofor2
      • do gofor3
      • do gofor4
      • do gofor5
      • do gofor6..9
Claudio
IBM-1130 V4.2.0 Installation 1.4.pdf

Alex D

unread,
May 14, 2024, 2:16:19 AMMay 14
to IBM1130
Great work, the emulator Interface looks nice, i like the text look and that the printer output goes to the console automatically.
Although there seems to be a problem on my machine that the 1132 displays printed paper but when clicking on it the output file is not found.

Performance on my notebook leaves nothing to be desired for me  (i7-10610).

Have you tried running it on WINE/Linux? Might try that later since i mostly use Linux, the old Emulator ran fine with WINE.

Also, what I did with the old emulator was integrating it with Notepad++ (which has a language plugin for fixed form fortran built in) and setting it up as shortcut
in the editor so i could start my program with a keypress in the emulator. I think 99% that is very possible with your emulator too. 

And might steal your BAN program for our real 1130 as demonstration program with your permission :D

thank you for the effort :)
Alex


Kym Farnik

unread,
May 14, 2024, 4:37:48 AMMay 14
to IBM1130
G'day

Feel free to add this to your samples  https://www.farnik.com/cgi-bin/wiki.pl?SnoopyCalendar

Great work, thanks!

Claudio Vincenzi - GMail

unread,
May 14, 2024, 3:36:21 PMMay 14
to ibm...@googlegroups.com
Hi Kym!

I certainly will include It in the samples  package. Please let me know If you have more 1130 programs or If you  know who have some.
Thanks a Lot!
Att
Prof. Claudio Vincenzi 


You received this message because you are subscribed to a topic in the Google Groups "IBM1130" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/ibm1130/_FZR3m4voHA/unsubscribe.
To unsubscribe from this group and all its topics, send an email to ibm1130+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ibm1130/fa0d9da3-643c-4c5a-af7d-8fbdeddec39bn%40googlegroups.com.

Claudio Vincenzi

unread,
May 14, 2024, 4:56:26 PMMay 14
to IBM1130
snoopy.jpeg

Bob Flanders

unread,
May 14, 2024, 5:57:31 PMMay 14
to ibm...@googlegroups.com
Hi Claudio,

This is great! Thank you.

My first impressions:
  • Very cool!
  • I really like the new console. So much info in so little space!
  • I like how the disks show activity. 
  • I like the ability to adjust speed/cycle time
Thoughts/ideas/bugs?...
  • Make SPCL FEAT dark until implemented
  • PERF MTR doesn't seem to do anything visible.
  • Got random parity check lights in FOR0. Did not affect operation. See attached video
  • (Not operational, but what is (CL*CKING) mean?)
  • Disks
    • sh dev shows:
      • $ DSK1, 521KW, not attached, R/W, (write enabled), 2310, (2315), Not Quiet, Debug OFF
        $ DSK1, is OFFLINE, DISABLE-ABLE, FIXED CAPACITY
        % DSK1, Counters: Reads: 0012, Writes: 0000, Seeks: 0000
        % DSK1, Status: NOT READY, DSW: 0x2000
        % DSK1, Flags: 0x00000405
        % DSK1, Current Function='FAILED'
      • Lights show image.png
      • I would suggest they both be dark if not mounted. Maybe red?
    • Can the disk speed (at least seek) be made the same as 1130. I remember it taking like a second to seek across the disk.
  • Devices
    • Printer check blinking. see video. Not sure why
    • Can the "Tear" button have a hover display that shows the output file?
      • Maybe right-click "Tear" and it shows a file browser where to put the output?
    • If you look closely at the CR0, it looks like a card in the output stacker
      • image.png
      • It's not there when you turn it on
      • How do you get that output deck? 
  • Operations
    • If I turn on the machine, do boot, then do ban, I get this:
    • image.png
    • Known bug?
  • Source code?
    • Will you publish the source code?
    • Is it in Github?
  • 1130 C compiler?
    • You interested on working on a stalled 1130 small C compiler?

Thanks so much for your work on this!

Regards,
Bob



You received this message because you are subscribed to a topic in the Google Groups "IBM1130" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/ibm1130/_FZR3m4voHA/unsubscribe.
To unsubscribe from this group and all its topics, send an email to ibm1130+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ibm1130/d40cd48e-f041-4910-b7d6-11860ccb085cn%40googlegroups.com.
2024-05-14 17-39-29.mp4
2024-05-14 17-46-07.mp4
2024-05-14 17-46-07.mp4

Claudio Vincenzi

unread,
May 14, 2024, 8:28:16 PMMay 14
to IBM1130
Hi Bob! (stole this from "For All Mankind" seeries :))

On Tuesday, May 14, 2024 at 6:57:31 PM UTC-3 Bob Flanders wrote:
Hi Claudio,

This is great! Thank you.

My first impressions:
  • Very cool!
  • I really like the new console. So much info in so little space!
  • I like how the disks show activity. 
  • I like the ability to adjust speed/cycle time
Thanks a lot!
 
Thoughts/ideas/bugs?...
  • Make SPCL FEAT dark until implemented   OK
  • PERF MTR doesn't seem to do anything visible.
    The CPU performance meter (on GUI interface)  works when the CPU performance monitor (PM) is on.

    The 'gofor0' script turns CPU perf monitor off (PM OFF). You can test it by stopping the FOR0 job,
    turning  pmon on and then resuming the job (go). The 'gofor0' script enables the console
    keyboard (KBD) to call the simulator 'attention routine' or ATTN during the CPU run time (something I 
    used to do when I was an IBM/370 DOS/VS operator during the 80´s.). Just type ENTER while the 
    CPU is in RUN mode and you get the 'attn>' console prompt. If you type CTRL-A instead of ENTER
    you get a little attn help. You can use that prompt to change some CPU setttings while the job is
    running and see the effects.

    [Tue May 14 20:04:02 2024] sim> do gofor0
    ....
    $ PRT0, SPOOL\FOR0.OUT: File truncated to zero.
    @ set CPU 4us
    @ set CPU PMOFF
    @ Now starting 'FOR0' job ...
    $ CPU0, boot device is DSK0
    $ CPU0, preparing boot from DSK0 ...
    $ CPU0, Loaded DMS V2M12 cold start card - boot target is DSK0
    + [[ CPU RUNNING ]]

    /* (type CTRL-P now to Stop the Job and turn PM ON) */

    + [[ CPU STOPPING ]]
    [Tue May 14 20:05:57 2024] sim> set cpu -k pmon
    % CPU0, CPU time elapse bargraph is OFF.
    % CPU0, CPU time elapse rotate bar is OFF.
    % CPU0, Host OS clock resolution is 10000000/s, or, 100.0 ns/tick.
    % CPU0, I-Cycle Times lesser than that wont be achievable.
    [Tue May 14 20:06:02 2024] sim> go
    + [[ CPU RUNNING ]]

     loop=y
     depth= 8
     zero-th fortran program on ibm-1130 4.0 sim
     hello (cl*cking) world.
      1 512k instructions done.
      2 512k instructions done.

    /*  (type ENTER) now to call ATTN and change CPU cycle to 1us) */

      3 512k instructions done.
    [Tue May 14 20:07:46 2024] attn>  set cpu 1U

      4 512k instructions done.
      5 512k instructions done.

    /*  (type ENTER) now to call ATTN and change CPU cycle to 512ns) */

    [Tue May 14 20:08:12 2024] attn>  set cpu 512

      6 512k instructions done.
      7 512k instructions done.
      8 512k instructions done.
     bye, bye... or no.
     hello (cl*cking) world.

      1 512k instructions done.
      2 512k instructions done.
      3 512k instructions done.
      4 512k instructions done.

    /*  (type ENTER) now to call ATTN and change CPU cycle to 2us) */

    [Tue May 14 20:09:02 2024] attn>  set cpu 2u

      5 512k instructions done.
      6 512k instructions done.

    /*  (type ENTER) now to call ATTN and change CPU cycle to 4us) */

    [Tue May 14 20:09:30 2024] attn>  set cpu 4U

      7 512k instructions done.
      8 512k instructions done.
     
    The CPU Cycle Time  routine TRIES to keep the CPU execution rate/period near the CPU cycle
     time setting specified by the user. It deserves more improvements.

    On my computer, these are typical values shown by the PMeter:

    CPU Cycle    Performance Meter  (Kips=Kilo instructions per sec)
    ---------    ------------------ ------------------------------
    16us         16.5us          60 Kips
    8us           8,3us         120 Kips
    4us           4.3us         231 Kips
    2us           2.2us         458 Kips
    1us           1.1us         820 Kips
    512ns         650ns        1460 Kips
    256ns         330ns        2940 Kips
     
    • Got random parity check lights in FOR0. Did not affect operation. See attached video

    The GUI event handling routine is buggy on this version. Some events trigger wrong objects. Working on that. 
    • (Not operational, but what is (CL*CKING) mean?)
    It is some random thought I had while writing that Fortran WRITE statement, but certainly I was thinking about CPU CLOCKs.
    • Disks
      • sh dev shows:
        • $ DSK1, 521KW, not attached, R/W, (write enabled), 2310, (2315), Not Quiet, Debug OFF
          $ DSK1, is OFFLINE, DISABLE-ABLE, FIXED CAPACITY
          % DSK1, Counters: Reads: 0012, Writes: 0000, Seeks: 0000
          % DSK1, Status: NOT READY, DSW: 0x2000
          % DSK1, Flags: 0x00000405
          % DSK1, Current Function='FAILED'
        • Lights show image.png
        • I would suggest they both be dark if not mounted. Maybe red?
     Both should be dark if not attached. Thinking about that FAILED op status.
      • Can the disk speed (at least seek) be made the same as 1130. I remember it taking like a second to seek across the disk.
    Yes! I was thinking about creating on or more modifiers for devices to set them to a mode called realistic
    When applied to a device, it would put timers in their functions to delay their operations in order to get its perform more like the real device (or to its models).
    Without those, the device would operate at maximum (possible) speed. But for now, I am more concerned about the bugs. Noted, and already on the bucket list.
    • Devices
      • Printer check blinking. see video. Not sure why.  Bugs on GUI code!
      • Can the "Tear" button have a hover display that shows the output file?
        • Maybe right-click "Tear" and it shows a file browser where to put the output?
      • If you look closely at the CR0, it looks like a card in the output stacker.
        • image.png
        • It's not there when you turn it on
        • How do you get that output deck? 
    The GUI deserves a lot of work yet, I am working on these glitches. 
    • Operations
      • If I turn on the machine, do boot, then do ban, I get this:
      • image.png
      • Known bug?
      • No. but I suspect that this is related to file paths having 'blanks' - something I postponed to treat  in a better way.
     
    • Source code?
      • Will you publish the source code?  Yes. But not while I feel embarrassed in showing it lol ... please wait and let me put some beauty on it.
      • Is it in Github? No, I am working only with my local disks and cloud drives.
     
    • 1130 C compiler?
      • You interested on working on a stalled 1130 small C compiler?
    A C compiler for the 1130 is something I have been thinking about for a long time. It would be a huge step in porting software for it. Yes, of course!
     

    Thanks so much for your work on this!

    I appreciate your comments and suggestions. 

    Claudio Vincenzi

    unread,
    May 14, 2024, 10:22:39 PMMay 14
    to IBM1130
    hI Alex

    yes, of course. 

    I think that the source code there is incomplete since most of the subroutines are DUP STOREd on the DMS.DSK that comes with the 4.1.2 .zip distro.
    I will prepare the whole package of subroutines for the BANER program for you to use as demonstration.

    Best regards
    Claudio

    Peter Diehr

    unread,
    May 15, 2024, 11:55:50 AMMay 15
    to ibm...@googlegroups.com
    This bit of code will make the performance meter go to 100%. I was asked to provide a boot card which would do the trick by an IBM CE, circa 1970.  This is the second version, which also makes the console lights cycle endlessly:

    LDD  *
    STD  *

    The CE's client requested this following a visit from his boss, who said "This computer isn't being used enough to justify its rent.  Find more work!"

    The code picks itself up, and moves through memory.  When it is running, all of your memory will be cleared.

    Best regards, Peter Diehr

    John P. Doty

    unread,
    May 15, 2024, 12:40:21 PMMay 15
    to ibm...@googlegroups.com

    I suppose the first is the famous C000 D000 ツ

    Peter Diehr

    unread,
    May 15, 2024, 1:30:16 PMMay 15
    to ibm...@googlegroups.com
    Yup! Spins the performance meter, but the console lights are essentially frozen.

    But it didn't take long to design or punch up - maybe five minutes?   I had to look up the 16 bit to 12 bit punch card coding.


    Best regards, Peter Diehr

    Message has been deleted

    Bob Flanders

    unread,
    May 18, 2024, 2:46:08 AMMay 18
    to IBM1130

    Hi Claudio,

    Did you get my personal message about Small C 1130?

    Regards,
    Bob

    Claudio Vincenzi - GMail

    unread,
    May 19, 2024, 12:45:37 AMMay 19
    to ibm...@googlegroups.com
    Hey professor Diehr, good morning.
    I hope the upcoming release will be better and have fewer errors.
    I will post the link here as soon as I upload it.
    Would you have some 1130 code worth to be used as a demo program?
    Best regards
    prof. Claudio Vincenzi
    Brasil




    --
    Claudio Vincenzi

    Claudio Vincenzi - GMail

    unread,
    May 19, 2024, 8:33:53 AMMay 19
    to ibm...@googlegroups.com
    Hi Bob!
    Yes, I got it. 
    Unfortunately I had no time to have a good look at it because I am working hours on next release of the simulator (4.3.3), something that will be ready tomorrow night.
    I will post you as soon as I upload it to my dropbox drive.
    Best regards
    prof. Claudio Vincenzi


    --
    NEW! IBM1130 discord channel: https://discord.gg/NTkrNWHG
    ---
    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.


    --
    Claudio Vincenzi

    Peter Diehr

    unread,
    May 19, 2024, 9:14:16 AMMay 19
    to ibm...@googlegroups.com
    Claudio:

    I may have some IBM 1130 code; I will let you know when I find it! 

    Best regards, Peter Diehr

    --
    NEW! IBM1130 discord channel: https://discord.gg/NTkrNWHG
    ---
    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.

    Bob Flanders

    unread,
    May 19, 2024, 1:13:48 PMMay 19
    to ibm...@googlegroups.com
    Thank you Professor! :D 

    This has waited for over 10 years. I think it can set for another 2-3. 

    Best regards,
    Bob

    Claudio Vincenzi - GMail

    unread,
    May 25, 2024, 12:30:10 AMMay 25
    to ibm...@googlegroups.com, Bob Flanders, Alex D, Kym Farnik, Peter Diehr, Carl Claunch
    Hi folks! Good night everyone.

    I just uploaded Release R6 of the IBM 1130 simulator ( version V4.3.4 ) to dropbox.
    I uploaded R5 too, but I discovered another ugly bug on the card routines (it is now fixed on R6). So, please don't use it :D

    The link follows below: 


    The install process is the same from the previous.

    Once again: will be very grateful for anyone who could test or review it and give some feedback. I got some great suggestions last time and I am starting to implement
    some of them. Hopefully, they will be preset on the next versions. 

    Suggested demos:
    • do boot
      • attaches DMS.DSK disk (FOR, ASM, DUP), stdout <- printer, rewinds stdin and do boot
    • do bootcob
      • attaches COB.DSK disk (COBOL, DUP), stdout <- printer, rewinds stdin and do boot (Cobol is installed, thanks to Carl Claunch)
    • do cob01
      • (run bootcob before this) tries to compile a simple Cobol program, unsuccessfully.
      • Missing the /* at the end of source code, on purpose.
      • Correct error message is displayed, but.... see below.
    • do cob02
      • (run bootcob before this) tries to compile a simple Cobol program, unsuccessfully. 
      • The /* is present at the end of source code. but again... no success.
      • The compiler enters in an endless loop (see my comments at end)
    • do bootlisp
      • attaches LISP.DSK disk, stdout <- printer, rewinds stdin and do boot (lisp CI is DUP-stored)
    • do lispsample
      • try to run a lisp sample code (unfortunately LISP stops with an 'invalid instruction' reason)
    • do snoopy
      • compiles, runs and prints '1969 Snoopy Calendar' (thanks to Kym Farnik)
    • do quadratic
      • compiles and runs a Fortran program to solve roots of any 2nd degree polynomial
    • do gauss
      • compiles a deck of subroutines and program to solve linear system of N variables
      • using Gauss elimination numerical method. Runs with data from some sample systems.
    • do ban
      • compiles, runs and prints some banners
    • do banxeq
      • // XEQ run the (DUP-stored) banner program
    • do cardf randp
      • compiles and runs a program that reads a card and then punches on it (on the same 1442 R+P) (randp = read and punch)
      • CR0 represents the 1442 reader section and CP0 represents the 1442 punch section of the same 1442 device
    • do cardf rorp
      • compiles and runs a program that read cards on a 1442R and then punches on a separate 1442P (rorp = read or punch)
      • CR0 represents the 1442 reader device and CP0 represents the 1442 punch device
    • do for0
      • compiles and runs a program to raise CPU usage to the maximum
      • producing a minimal console output and having KBD ATTN enabled
    • do for4
      • compiles and runs a program that prints on different devices, according to input data
      • it can print data on the console, on the 1132, on the 1403 or even on punched cards.
      • Each time it runs, a distinct output device is selected by a data card.
    • do for9
      • compiles and runs a free-form number input program. for integer numbers
    • do for10
      • compiles and runs a free-form number input program. for reals (float numbers)
    Suggested utility scripts:
    • do zdcip
      • loads and runs the stand-alone version of the Disk Cartridge Init Program
    • do cons_test
      • loads and runs the 1131 console tty/kbd diag program (0304) (thanks to Carl Claunch)
      • this diagnostic program tests varios 1053 features and also tests
      • data input from the keyboard (using Console/Keyboard switch toggle)
    • do diag\ibm1130diag
      • boots 3A3 basic loader and CPU 3A1 CPU functional test program
    • do diag\ibmlcorediag
      • boots 3AA rel loader, 300 DM and 3B1 LOW CORE diagnostic
    • do diag\ibmhcorediag
      • boots 3AA rel loader, 300 DM and 3B0 HI CORE diagnostic program
    • do diag\ibmconsdiag
      • boots 3AA rel loader, 300 DM and 304 console diagnostic program.
      • this program needs some special console printer setup and this
      • script just loads the programs. For a good setup,
      • see contents of SCRIPTS\CONS_TEST.DO
        • set tabbing positions: set TTY -r tabStop=24;24
        • set console speed to actual hardware speeds:
        • SET TTY ACTUAL  --> sets printing speed to 15.5 cps
        • SET TTY HALF   --> sets printing speed half of 15.5cps
        • SET TTY DOUBLE --> sets printing speed double of 15.5cps
    Cobol Compiler

    When the IBM Cobol Compiler is invoked, it reads all the source code correctly and produces a beautiful listing.
    If the Procedure Division is missing, it correctly emits an error message and stops. Although that, some strange
    things are sent to the printer. Maybe some error codes, I don't know:

    M 14 SYSTEM PROGRAM DETECTED MONITOR CONTROL RECORD

    P6   D            2      O  9    6   3     W   O          5  O      1      B  J

    M 11 INVALID MONITOR CONTROL RECORD


    But, when the source program structure is correct and finishes with the /* end-of-program mark, it enters an endless loop.
    I captured the CPU instruction trace on file (see attachment) during this event, so maybe someone can have an idea
    of what is happening. One good possibility is related to I/O because the simulator still does not reproduce the
    real hardware behaviour with 100% fidelity. I suspect that LISP program suffers the same problem.

    1442 Diagnostics

    You can run the 1442 diagnostics program by entering
    • do diag\ibm1442diag
    Seems that 1442 code still needs to be more tweaked to enhance fidelity with the real hardware. 

    1132 Diagnostics

    You can run the 1132 diagnostics program by entering
    • do diag\ibm1132diag
    Seems that 1132 code still needs to be more tweaked to enhance fidelity with the real hardware. 

    1403 Diagnostics

    You can run the 1403 diagnostics program by entering
    • do diag\ibm1403diag
    Seems that 1403 code is a little better than the 1403 in terms of fidelity.

    Anyway, any comments and suggestions are welcome.

    "Boa noite e bom fim de semana a todos!"

    prof. Claudio Vincenzi




    --
    Claudio Vincenzi
    CPU 1131 Instruct Trace IAR 174d - 1758 COBOL Compiler.txt

    Claudio Vincenzi - GMail

    unread,
    May 25, 2024, 12:32:20 AMMay 25
    to ibm...@googlegroups.com
    Hi Alex!
    Sorry for the late reply.

    Great work, the emulator Interface looks nice, i like the text look and that the printer output goes to the console automatically.
    Although there seems to be a problem on my machine that the 1132 displays printed paper but when clicking on it the output file is not found.

    What I did was to attach the virtual printer to (stdout) - the console screen. There is no spool file being generated in this case. 
    I´ve been thinking about this case and maybe I can attach create a way to attach also a real file and send the output to both (to (stdout) as well as to the spool file).


    Performance on my notebook leaves nothing to be desired for me  (i7-10610).

    I guess performance will improve on next releases, since I used many timers and did not tune them well yet.


    Have you tried running it on WINE/Linux? Might try that later since i mostly use Linux, the old Emulator ran fine with WINE.

    Not yet, but thanks for reminding me to do this!


    Also, what I did with the old emulator was integrating it with Notepad++ (which has a language plugin for fixed form fortran built in) and setting it up as shortcut
    in the editor so i could start my program with a keypress in the emulator. I think 99% that is very possible with your emulator too. 

    Hmm very interesting ideaa. For the time being, you can set the viewer/editor of your choice using "SET VIEW" command. 


    And might steal your BAN program for our real 1130 as demonstration program with your permission :D

    Sure!

    thank you for the effort :)

    Alex

    You are welcome!
    Claudio



    --
    Claudio Vincenzi

    Peter Diehr

    unread,
    May 25, 2024, 11:32:31 AMMay 25
    to Claudio Vincenzi - GMail, ibm...@googlegroups.com, Bob Flanders, Alex D, Kym Farnik, Carl Claunch
    I noted your testing of a COBOL compiler, and some issues.

    For the historical archives:

    I remember the COBOL that EMU received in the winter of 1972, which had one serious run-time error: it would sometimes trash your disk file.  For the class that was using it, the sample program and data file provided by the instructor had to be reloaded after every run, due to this damage.

    So I ran it under control  of IBM 1130 Step Mode, for which I had written an interactive console debugger, showing the registers and active instruction at each step.  This should be a piece of cake for you with your emulator!  Anyway, the offending code showed up when the author used a couple of words in the Monitor disk I/O buffer header to store a flag.  Of course, this was overwritten when any disk I/O was performed, and the COBOL runtime lost track of what it was doing (because of the damaged flags), and went crazy.

    So I was  thinking that you probably have the original, unpatched code for the COBOL compiler.  I don't recall the details of the patch, but it just requires that those flags be stored elsewhere, then everything runs great.

    The story behind the debugger: we had some nasty bugs in the code generation portions of the EMU Fortran compiler, related to the new data types.  I got tired of stepping through the traces, figuring out what was going on, so one night I wrote some code, and then some more, and within a day or so I had a working single step debugger.  When I would find something (I being the very patient type, and well suited for boring repetitive work, having grown up on a vegetable farm!), I would point out the error to Dave, and he would say "Oh! That's not right!", and he would go off for a few minutes, and would then have some corrected code, so we could start again.  I think we polished off all of the code generation errors in one long weekend, maybe Labor Day of 1971.

    By the end of that weekend I had polished the code, using both the red and the black from the IBM Selectric typewriter!   No, I don't have the code, nor any printouts from then.


    Best regards, Peter Diehr

    Peter Diehr-Van de Graaff-#1.jpg

    Claudio Vincenzi - GMail

    unread,
    May 25, 2024, 3:39:17 PMMay 25
    to Peter Diehr, ibm...@googlegroups.com, Bob Flanders, Alex D, Kym Farnik, Carl Claunch
    Hi professor Diehr, good morning!

     "it would sometimes trash your disk file."   ... I witnessed some people initializing wrong cartridges during my 1130 time.. they messed up with the CES switches.

    You brought very fond memories from the 70's. I learned to program in Cobol using the IBM1130 Cobol compiler, the year was 1979 at the local USP college campus . I guess the compiler version was already very stable at that epoch since I do not recall having any issues using It. Before that, during 1978 I learned Basic and Fortran programming, also on the same IBM 1130 (that computer was probably the first computer that my city had - at that time (1967) the city probably had about 30k inhabitants and the college was in its first years of existence - the 1130 came to help the physics department to do numerical calculations for the crystallography group, but soon became the choice for engineering and chemistry use either). Soon after that, 1980, I was assigned to develop programs in Cobol on a Fujitsu Facom computer that they had just bought and arrived. It would be used to develop and run administrative systems. Hard to believe, but I remember that the 1130 Cobol had a richer set of features than the Facom VO3 Cobol (I guess that is how it was called). For example: it did not recognize the ELSE clause. I guess It did not have a report writer either. Anyway, about a year afterwards I was reassigned to work on the IBM 370/145 they just received from the São Paulo railroad as a donation and another career chapter began leaving the 1130 only in my (good) memories. Anyways, looking at the COBOL disk load log I see that many of the routines loaded thru DUP *STORE have tags like V2M00, V2M01 ... probably these are modules released on the very early versions of DMS V2 and maybe this is a clue about the compiler version.

    Feeling glad for having a standalone ASM and a working FORTRAN compiler - thanks to all the effort and endurance people already put on this 1130 revival.

    att
    Claudio Vincenzi


    // JOB                                            COB01JOB

    LOG DRIVE   CART SPEC   CART AVAIL  PHY DRIVE
      0000        0021        0021        0000

    V2 M12   ACTUAL 16K  CONFIG 32K

    // * COBOL PROGRAM COB01

    // COBOL
    ** COBOL PROGRAM COB01
    *LIST
    *1132
    *1442

    OPTIONS-LIST,EJCT,NOXREF,NODMAP,NOPMAP,NOSTNO,NODUMP,NOSUPX,NOKP26,NOSUBR,1442,1132
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    PAGE   2    COB01JOB     COBOL PROGRAM COB01


    STNO - A...B... C O B O L   S O U R C E   S T A T E M E N T S ..........  IDENTFCN  PAGLIN

       1   IDENTIFICATION DIVISION.
       2     PROGRAM-ID. COB01.
       3     AUTHOR.     CLAUDIO R DE VINCENZI.
       4     DATE-WRITTEN.  MAY 2024.
             DATE-COMPILED. MAY 2024.

       5     REMARKS.    FIRST COBOL PROGRAM IN YEARS.

       6   ENVIRONMENT DIVISION.
       7     CONFIGURATION SECTION.
       8      SOURCE-COMPUTER. IBM-1130.
       9      OBJECT-COMPUTER. IBM-1130.
      10      SPECIAL-NAMES.   DECIMAL-POINT IS COMMA.

      11     INPUT-OUTPUT  SECTION.
      12      FILE-CONTROL.

      13   DATA DIVISION.

      14    FILE SECTION.

      15    WORKING-STORAGE SECTION.
      16       77 NUM1       PIC 9(4).
      17       77 NUM2       PIC 9(4).
      18       77 TOTAL      PIC 9(5).

      19   PROCEDURE DIVISION.
      20     BEGIN.
      21        ACCEPT NUM1.
      22        ACCEPT NUM2.
      23        ADD NUM1 TO NUM2 GIVING TOTAL.
      24        DISPLAY TOTAL.
      25        SUBTRACT NUM1 FROM NUM2 GIVING TOTAL.
      26        DISPLAY TOTAL.
      27        MULTIPLY NUM1 BY NUM2 GIVING TOTAL.
      28        DISPLAY TOTAL.
      29        DIVIDE NUM1 BY NUM2 GIVING TOTAL.
      30        DISPLAY TOTAL.
      31        IF TOTAL EQUALS ZERO GOTO BEGIN.
      32        STOP RUN.


    M 14 SYSTEM PROGRAM DETECTED MONITOR CONTROL RECORD

    P6   D            2      O  9    6   3     W   O          5  O      1      B  J

    M 11 INVALID MONITOR CONTROL RECORD

    + [[ CPU STOPPING ]]
    $
    $ Stop due 'CPU WAIT', (stop code=01), CPU Wait for Program Start
    $ -------- '--------', (------------), --------------------------
    $ Stopped with: IAR: 0x002A SAR: 0x0029 SBR: 0x3000
    $ Stopped   at: IAR: 0x0029 (0x0000 0x00 0x00 S               +0x00 (  +0))
    $ Followed  by: IAR: 0x002A (0x4C80 0x09 BSC  I       0x0028  +0x00 (  +0))
    $ Elapsed Time:  18s
    $ ACC Code: 0x1000, intervention required on 1442 Card RP/P
    $ ---------------------------------------------------------------

    [Sat May 25 16:20:42 2024] sim> do tty
    %  CR0, First card loaded on read station.

    $ CPU0, boot device is DSK0
    $ CPU0, preparing boot from DSK0 ...
    % CPU0, Loaded DMS V2M12 cold start card - boot target is DSK0
    % DSK0, CR Boot: Jumping to address 0x0000 ...
    + [[ CPU RUNNING ]]

    PAGE   1

    // JOB    0021

    LOG DRIVE   CART SPEC   CART AVAIL  PHY DRIVE
      0000        0021        0021        0000

    V2 M12   ACTUAL 16K  CONFIG 32K
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    PAGE   1    TTYJOB

    // JOB                                            TTYJOB

    LOG DRIVE   CART SPEC   CART AVAIL  PHY DRIVE
      0000        0021        0021        0000

    V2 M12   ACTUAL 16K  CONFIG 32K

    // TYP
    // COBOL

    // COBOL
    /*
    /*

    Q01  COBOL COMPILATION DISCONTINUED BECAUSE
    ***  PROCEDURE DIVISION NOT FOUND IN SOURCE PROGRAM




    Claudio Vincenzi - GMail

    unread,
    May 25, 2024, 4:16:10 PMMay 25
    to ibm...@googlegroups.com
    Hi Bob!

    Regarding this:
    image.png

    For now, I was able to overcome this issue by adding CMD.EXE to the ''set view'' command: I installed Sublime Text on my Win10 computer and changed the VIEW App from Notepad to Sublime:

    [Sat May 25 17:02:06 2024] sim> set view cmd /c "c:\Program Files\Sublime Text 3\subl.exe"
    $ VIEW: editor program set to 'cmd /c "c:\Program Files\Sublime Text 3\subl.exe"'
    [Sat May 25 17:02:12 2024] sim> [Sat May 25 17:02:12 2024] sim> show view
    $ VIEW: editor program is set to 'cmd /c "c:\Program Files\Sublime Text 3\subl.exe"'
    [Sat May 25 17:02:15 2024] sim> view (ps)
    [Sat May 25 17:02:22 2024] sim> # the profile script was opened by Sublime Text


    image.png
    image.png

    You can add this setting to your (PS) script and it will be set every time you start the simulator.

    Claudio

    On Tue, May 14, 2024 at 6:57 PM Bob Flanders <bob.fl...@gmail.com> wrote:


    --
    Claudio Vincenzi
    Reply all
    Reply to author
    Forward
    0 new messages