Re: [Simh] Interdata OS/32: hello-world in CAL32

2016-02-23 Thread lists
On Tue, 23 Feb 2016 14:15:11 +
"Armistead, Jason  BIS"  wrote:

> Hosting on a VAX under VMS might be viewed as a little extreme when the
> target had less than 64K of EPROM and a few K of RAM, but it worked.

That's what I meant. I know what a cross compiler is. I never saw a
mainframe-hosted cross-compiler back in the day and here within 2 days I
found out about two mainframe hosted cross compilers. And then your note
about extreme re: VAX/VMS. Imagine!
___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] Interdata OS/32: hello-world in CAL32

2016-02-23 Thread Armistead, Jason BIS
On Feb 23, 2016, an anonymous user (li...@openmailbox.org) wrote:

> Thanks very much for the additional info. Your post was very timely since I 
> read in the notes that come with the PL/M cross compiler
> that is being discussed that it was a cross-compiler hosted on MTS and VM/CMS.

> I don't think I ever came across a cross compiler in the old days. It is 
> interesting to see that people used these odd combinations.

> I wonder if we should start trying to archive and document cross compilers 
> specifically.

> On Tue, 23 Feb 2016 01:01:28 -0500
> johns...@gregjohnson.org wrote:

> [very nice story snipped]

Cross compilers were great when your target system didn't have enough memory, 
storage, and possibly no actual operating system to support a locally-hosted 
compiler.  For a language like PL/M-86 which had no language specific I/O 
constructs beyond reading to and writing from I/O ports on the target CPU, it 
was perfect for writing applications for an OS-less embedded systems, but it 
needed a host.  Hosting on a VAX under VMS might be viewed as a little extreme 
when the target had less than 64K of EPROM and a few K of RAM, but it worked.  
The only complaint I had is that Intel limited the symbol table sizes somewhere 
in the linker (IIRC !), and you could exceed the maximum number of external 
symbols, thus requiring some splitting of modules and multi-step linking to 
resolve this dilemma.  I suspect the origins of this limitation was the MS-DOS 
environment with 640K of memory (Intel's tools didn't use a DOS extender), and 
that whoever ported the toolset to VAX/VMS never increased this limitation, 
even though VAX/VMS could support a lot more than virtual memory than DOS.

Assemblers were a little bit easier to host on a target - smaller code size in 
your editor, no optimization required, etc., though plenty of cross assemblers 
certainly existed for a wide range of targets, especially those that were 
embedded like Intel 8048 & 8051, Motorola 680x, etc.

A lot of the "classic" embedded cross compiler/cross assembler companies are no 
longer in existence, either gobbled up by larger companies, or simply going the 
way of the Dodo bird.  Names like Franklin, 2500AD, Avocet System, Adtek (from 
Japan) and Hi-Tech (from Queensland Australia), were pretty common players, but 
these days their products are no longer available, or if you're lucky they are 
end-of-life and provided as-is with no support, even if you buy them.  Intel 
created their own systems, like the Intel's iPDS-100 running ISIS-II, or 
Motorola/Freescale (now NXP) got 3rd party vendors like P Micro to do some of 
their tools and development boards.  It was a wild time !!!

PS: I'd love to see an iPDS-100 emulation in SIMH one day !!!


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] Interdata OS/32: hello-world in CAL32

2016-02-23 Thread lists
Thanks very much for the additional info. Your post was very timely since I
read in the notes that come with the PL/M cross compiler that is being
discussed that it was a cross-compiler hosted on MTS and VM/CMS.

I don't think I ever came across a cross compiler in the old days. It is
interesting to see that people used these odd combinations.

I wonder if we should start trying to archive and document cross compilers
specifically.


On Tue, 23 Feb 2016 01:01:28 -0500
johns...@gregjohnson.org wrote:

[very nice story snipped]
___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] Interdata OS/32: hello-world in CAL32

2016-02-22 Thread johnsong



Actually there was also an Interdata cross assembler which ran on an  
IBM OS/360 and produced punched 'load decks'.  I believe the  
'assembler' was little more than the OS/360 assembler with a bunch of  
macros.


When I was in high school I had access to an Interdata 7/32 and  
Interdata 70 (16-bit) up at the local university.
the 7/32 did not run OS/32 but a locally written OS called WTS  
(Western Terminal System) - they attached about 16 or
to terminals to a 7/32 with about 128K of memory (each terminal I  
believe had a huge 8K partition).  It was used for
CAI (Computer Assisted Instruction), programming and administration.   
Ran an interpreted basic (also locally written but pretty good), and  
abbreviated version of PL/1 (called WPL) and one of the systems ran  
sort of a batch FORTRAN.  But a version of PILOT was used for CAI.   
That is how I learned FORTRAN - a CAI program call FORBUS written in  
Pilot.


However the Interdata 70 was fun - it was 16 bit with about 64K  
memory.  Ran an Interdata OS called BOSS which was real basic - to  
assign a disk file you would specify a range of sectors in hex and the  
disk 'catalog' was a physical piece of paper with file names and  
sector ranges on it.  (I believe this was _way_ before OS/32)


Me and another guy (a student there) would work (read: play with) an  
Interdata OS called DOS (Disk Operating System) which featured, among  
other things, blocking of multiple records on a disk sector and a real  
disk catalog.  Interdata also had an real time OS called RTOS - I  
never got into that - perhaps that was an ancestor to OS/16 and OS/32.  
 I never really got to work with OS/32 but I see some vestages of the  
old BOSS and DOS commands reflected in OS/32 - ALlocate and ASsign for  
example).


What we would do is take the DOS source code (on punched cards) and  
run them over on the OS/360 IBM with the
cross-assembler the assembler would produce a 'load deck' which was  
then punched on 80-column cards (in binary).   As I recall the  
BOSS/DOS load deck record size was something like 108 bytes.  Anyway  
we would get this load deck and put it in a card reader on the  
Interdata 70 preceeded by a 'boot' card (containing a binary program  
which would load the rest of the cards).  Key in (or verify) a program  
at location '50' via the switches. Press EXE and it would load, in  
effect, boot from the card reader.  Editing was by inserting and  
replacing cards in the OS punched Deck (about a box - 2,000 cards).


The main use of the 70 was students running simulations (I don't  
exactly recall the name of the simulation package - simulac or  
something like that?), graphics, and land use management.  It had a  
Tektronics 1410 storage tube graphics terminal, a card reader, a  
thermal printer for the 1410, a regular ASCII terminal (I wrote a  
PASLA driver for it), and I believe a digitizer.


Anyway - that's my story :).

-- Greg

Quoting li...@openmailbox.org:


Thanks for the very interesting info! I have not come across this machine
or software and did not know anything about it.

On Thu, 18 Feb 2016 21:16:32 -0500
Davis Johnson  wrote:


I'm pretty sure the resemblance was intentional  so as to be an easier
sell to customers familiar with 360 assembler.

There was a rumor that they had originally hoped to sell low-cost
training machines to schools when real computers were expensive.

There is some architectural resemblance if you throw out most of the
address modes, base registers, have fewer condition code bits... You end
up with 16 two's complement registers, uniform size 8-bit op codes, RX,
RR, and RI addressing modes (with a few variants).

A 16 bit quantity on the 16 bit machines was always, from the beginning,
a "HALF WORD".

The assembler, "CAL" (Common Assembly Language) would assemble 16 or 32
bit source.

With care it was possible to write source code that could be assembled
to either 16 or 32 bit object. Don's example uses some of the features,
A(...) specifies an "address length" constant, 16 or 32 bit as
appropriate. There was a whole set of opcode mnemonics that would
assemble appropriately depending on the target. The BASIC interpreter
was a key example, and was actually distributed in source form. I'd love
to find a copy.

If you were really careful you could create a binary that would actually
run on 16 or 32 bit machines without modification. Some of the hardware
diagnostics are this way. Look for COMMON in the diagnostic title.

For a 32 bit target a different kind of careful would let you write
position independent code.

On 02/16/2016 05:16 AM, li...@openmailbox.org wrote:
> Fascinating and very similar in syntax to the assembler for IBM OS/360
> and later. Does anybody know the history behind this?
>
> On Mon, 15 Feb 2016 13:58:26 -0500 (EST)
> dst...@execulink.com (Don Stalkowski) wrote:
>
>> *L EDIT32
>> TSKID = EDIT32
>> *ST
>> *13:19:38   EDIT32:PERKIN-ELMER OS/32 EDIT 03-145 R04-01
>> 

Re: [Simh] Interdata OS/32: hello-world in CAL32

2016-02-18 Thread lists
Thanks for the very interesting info! I have not come across this machine
or software and did not know anything about it.

On Thu, 18 Feb 2016 21:16:32 -0500
Davis Johnson  wrote:

> I'm pretty sure the resemblance was intentional  so as to be an easier 
> sell to customers familiar with 360 assembler.
> 
> There was a rumor that they had originally hoped to sell low-cost 
> training machines to schools when real computers were expensive.
> 
> There is some architectural resemblance if you throw out most of the 
> address modes, base registers, have fewer condition code bits... You end 
> up with 16 two's complement registers, uniform size 8-bit op codes, RX, 
> RR, and RI addressing modes (with a few variants).
> 
> A 16 bit quantity on the 16 bit machines was always, from the beginning, 
> a "HALF WORD".
> 
> The assembler, "CAL" (Common Assembly Language) would assemble 16 or 32 
> bit source.
> 
> With care it was possible to write source code that could be assembled 
> to either 16 or 32 bit object. Don's example uses some of the features, 
> A(...) specifies an "address length" constant, 16 or 32 bit as 
> appropriate. There was a whole set of opcode mnemonics that would 
> assemble appropriately depending on the target. The BASIC interpreter 
> was a key example, and was actually distributed in source form. I'd love 
> to find a copy.
> 
> If you were really careful you could create a binary that would actually 
> run on 16 or 32 bit machines without modification. Some of the hardware 
> diagnostics are this way. Look for COMMON in the diagnostic title.
> 
> For a 32 bit target a different kind of careful would let you write 
> position independent code.
> 
> On 02/16/2016 05:16 AM, li...@openmailbox.org wrote:
> > Fascinating and very similar in syntax to the assembler for IBM OS/360
> > and later. Does anybody know the history behind this?
> >
> > On Mon, 15 Feb 2016 13:58:26 -0500 (EST)
> > dst...@execulink.com (Don Stalkowski) wrote:
> >
> >> *L EDIT32
> >> TSKID = EDIT32
> >> *ST
> >> *13:19:38   EDIT32:PERKIN-ELMER OS/32 EDIT 03-145 R04-01
> >> *EDIT32>GET HELLO.CAL
> >> *EDIT32>T 1-12
> >> *13:19:48   EDIT32:1 SVC   1,SAY
> >> *13:19:48   EDIT32:2 SVC   3,0
> >> *13:19:48   EDIT32:3 ALIGN ADC
> >> *13:19:48   EDIT32:4SAY  DBX'28'
> >> *13:19:48   EDIT32:5 DBX'00'
> >> *13:19:48   EDIT32:6 DS2
> >> *13:19:48   EDIT32:7 DCA(SAY1)
> >> *13:19:48   EDIT32:8 DCA(SAY2)
> >> *13:19:48   EDIT32:9 DAS   2
> >> *13:19:48   EDIT32:   10SAY1 DCC'HELLO WORLD '
> >> *13:19:48   EDIT32:   11SAY2 EQU   *-1
> >> *13:19:48   EDIT32:   12 END
> >> *EDIT32>END
> > ___
> > Simh mailing list
> > Simh@trailing-edge.com
> > http://mailman.trailing-edge.com/mailman/listinfo/simh
> >
> >
> 
> ___
> Simh mailing list
> Simh@trailing-edge.com
> http://mailman.trailing-edge.com/mailman/listinfo/simh
___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] Interdata OS/32: hello-world in CAL32

2016-02-16 Thread lists
Fascinating and very similar in syntax to the assembler for IBM OS/360 and
later. Does anybody know the history behind this?

On Mon, 15 Feb 2016 13:58:26 -0500 (EST)
dst...@execulink.com (Don Stalkowski) wrote:

> *L EDIT32
> TSKID = EDIT32
> *ST
> *13:19:38   EDIT32:PERKIN-ELMER OS/32 EDIT 03-145 R04-01
> *EDIT32>GET HELLO.CAL
> *EDIT32>T 1-12
> *13:19:48   EDIT32:1 SVC   1,SAY
> *13:19:48   EDIT32:2 SVC   3,0
> *13:19:48   EDIT32:3 ALIGN ADC
> *13:19:48   EDIT32:4SAY  DBX'28'
> *13:19:48   EDIT32:5 DBX'00'
> *13:19:48   EDIT32:6 DS2
> *13:19:48   EDIT32:7 DCA(SAY1)
> *13:19:48   EDIT32:8 DCA(SAY2)
> *13:19:48   EDIT32:9 DAS   2
> *13:19:48   EDIT32:   10SAY1 DCC'HELLO WORLD '
> *13:19:48   EDIT32:   11SAY2 EQU   *-1
> *13:19:48   EDIT32:   12 END
> *EDIT32>END
___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

[Simh] Interdata OS/32: hello-world in CAL32

2016-02-15 Thread Don Stalkowski
For those following the Interdata OS/32 saga, here's an example
of "HELLO WORLD" in CAL32 and how to assemble/link it.

---

"HELLO WORLD" in CAL32

The spacing in the .CAL file is important! I don't know what the exact
spacing requirements are, but this worked.

The "os32st" directory on bitsavers contains a "Program Reference"
manual that proved helpful in writing this.

*L EDIT32
TSKID = EDIT32
*ST
*13:19:38   EDIT32:PERKIN-ELMER OS/32 EDIT 03-145 R04-01
*EDIT32>GET HELLO.CAL
*EDIT32>T 1-12
*13:19:48   EDIT32:1 SVC   1,SAY
*13:19:48   EDIT32:2 SVC   3,0
*13:19:48   EDIT32:3 ALIGN ADC
*13:19:48   EDIT32:4SAY  DBX'28'
*13:19:48   EDIT32:5 DBX'00'
*13:19:48   EDIT32:6 DS2
*13:19:48   EDIT32:7 DCA(SAY1)
*13:19:48   EDIT32:8 DCA(SAY2)
*13:19:48   EDIT32:9 DAS   2
*13:19:48   EDIT32:   10SAY1 DCC'HELLO WORLD '
*13:19:48   EDIT32:   11SAY2 EQU   *-1
*13:19:48   EDIT32:   12 END
*EDIT32>END
*13:19:59   EDIT32:END OF TASK 0
*
Simulation stopped, PC: 22C9A (BAL R12,19064)
sim> as lpt cal02
LPT: creating new file
sim> c
L CAL32
TSKID = CAL32
*AS 1,HELLO.CAL
AL HELLO.OBJ,IN,126
*AS 2,HELLO.OBJ
*AS 3,PR:
*ST
*13:27:19   CAL32:CAL/32 03-338R01-01
*13:27:19   CAL32:  NO ERRORS   TABLE SPACE USED : 1K
*13:27:19   CAL32:END OF TASK 0
*L LINK
TSKID = LINK
*ST
*13:27:32   LINK:PERKIN-ELMER OS/32 LINKAGE EDITOR 03-242 R01-03
*LINK>IN HELLO.OBJ
*LINK>BU
*13:27:40   LINK:ENTER FILE DESCRIPTOR FOR IMAGE*LINK>HELLO.TSK
*13:27:46   LINK:MAP?*LINK>NO
*LINK>END
*13:27:53   LINK:END OF TASK 0
*L HELLO
TSKID = HELLO
*AS 0,CON:
*ST
*13:28:15   HELLO:HELLO WORLD
*13:28:15   HELLO:END OF TASK 0
*
___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh