PiDP-8/I Software

Review and disposition of os8.tu56
Log In

Review and disposition of os8.tu56

(1) By Bill Cattey (poetnerd) on 2018-10-01 02:12:27 [link] [source]

The DECtape image os8.tu56 has been part of the PiDP-8/i distribution from the early days. However it is a found object, rather than a designed system. It is a TD8E image, rather than a TC08 image. It contains:

incomplete pieces of BASIC, FORTRAN II and FORTRAN IV.

"HELLO WORLD" test FORTRAN demo program source, and binaries.

random device driver .BN files, PT8E.BN, TD8EDT.BN (They should already be in BUILD.SV)

ECHO.SV, FBOOT.SV programs I do not recognize.

LCSYS.BI and UCSYS.BI which are the hacks for the helping the OS/8 keyboard monitor cope with lower case terminals.

I see this same set of programs in the SBC6120 User Manual Appendix A, instructions to build OS/8. That appendix refers to an "OS/8 V3Q image that was originally built with RX01 and RK05 support" which may be the previous "best baseline truth" before I discovered Willem van der Mark's archive with the OS/8 V3D distribution binary and source DECtape images.

(See also: http://www.sparetimegizmos.com/Downloads/SBC6120.pdf and http://www.vandermark.ch/pdp8/index.php?n=OS8.OS8-V3D)

There are now Distribution DECtape images that can be used to create a proper bootable DECtape system image for either TC08 or TD8E with sensible and consistent contents.

os8.tu56 should probably be replaced with a TC08 image, since TC08 operates so much faster and more simply under SIMH.

DECtapes don't have a lot of space, so one needs to make tough choices about what to keep and drop.

The baseline CUSPs (actual common nomenclature, "Commonly Used System Programs" would be:

CCL, ABSLDR, DIRECT, BOOT, EDIT, EPIC, FOTP, PIP, RESORC, SET, BATCH, FUTIL, PAL8, BITMAP, CREF

Additionally recommended: TECO

If it's a TD8E system, TDFRMT and TDCOPY should be present.

If it's a TC08 system, TDFRMT and DTCOPY should be present.

FORTRAN II with its Loader, runtime library and SABR assembler is commonly included on a bootable OS/8 DECtape, but could be sacrificed for additional space.

A complete BASIC system would probably fit on the tape. (The instructions with the SBC6120 seem, ostensibly, to remove required BASIC library files BASIC.AF, BASIC.SF, BASIC.FF, BASIC.UF. Those files should be present.)

I suspect one would create either a system with BASIC or FORTRAN IV. I think FORTRAN IV and its libraries take up a lot of space.

I plan to craft a script that will create v3d-tc08.os8 and v3d-td12k.os8 as replacements for os8.tu56

I would be grateful for suggestions about what should live on such tape images.

(2) By Warren Young (tangent) on 2018-10-01 06:33:45 in reply to 1 [link] [source]

I think you've got a good handle on what makes sense.

I'm not sure this is the sort of question you can get useful consensus on up front. I think you need to just lead, using your own sense of good taste guide you, and see how the users react to what you present.

(3) By Bill Cattey (poetnerd) on 2018-10-04 03:45:52 in reply to 2 [link] [source]

Thanks for thinking about this. I've just checked into my branch, an update to script, cusp-copyin.os8 that contains:

The minimal subset named above: CCL, ABSLDR, DIRECT, BOOT, EDIT, EPIC, FOTP, PIP, RESORC, SET, BATCH, FUTIL, PAL8, BITMAP, CREF (all .SV)

One I discovered on the OS/8 V3D binary distribution tape that I'd forgotten about: SRCCOM.SV.

From optional list: TECO.SV

On further thought, helpful ones: HELP.SV and HELP.HL, and RXCOPY.SV.

I currently leave out:

Infrequently used utilities: MCPIP.SV, PIP10.SV, CAMP.SV, RKLFMT.SV.

Fortran II: LOADER.SV, SABR.SV, FORT.SV, LIBSET.SV.

BASIC: BASIC.SV, BCOMP.SV, BLOAD.SV, BRTS,SV, BASIC.AF, BASIC.SF, BASIC.FF, BASIC.UF,

Tape specific Items: DTCOPY.SV, DTFRMT.SV, TDCOPY.SV, TDFRMT.SV will be added appropriately in the next revision of all-tu56.os8.

(4) By Bill Cattey (poetnerd) on 2018-10-05 23:50:37 in reply to 3 [link] [source]

The update to all-tu56.os8 has been made. So there are now 4 options for replacement of os8.tu56:

  • v3d-tc08.tu56
  • v3f-tc08.tu56
  • v3d-td12k.tu56
  • v3f-td12k.tu56

I think auto.defs can get something like this:

tape_config defined as either tc08 or td12k os8_boot_tape_version defined as either v3d or v3f

OS8_BOOT_TAPE similarly to OS8_BOOT_DISK at line 170 of auto.def gets defined:

define OS8_BOOT_TAPE $os8_boot_tape_version "-" $tape_config ".tu56"

And then @OS8_BOOT_TAPE@ would be used in .../boot/3.script.in in place of "os8.tu56"

I can make this change, but I have one question:

QUESTION:

How do we want to set up the default values, and allow altering of tape_config and os8_boot_tape_version? That's a piece of auto.def that I'm a bit iffy on.

(5) By Bill Cattey (poetnerd) on 2018-10-05 23:54:26 in reply to 4 [link] [source]

Oh wait, there's one more thing I don't know: I need to connect the dots for commenting out the lines:

set dt disabled
set td enabled

if tape_config is tc08.

or including those lines if tape_config is td12k.

(6) By Bill Cattey (poetnerd) on 2018-10-13 14:06:02 in reply to 4 [link] [source]

I THOUGHT I could figure out the changes to auto.def to add the tape_config and os8_boot_tape_version, but I can't get it to work after 3 hours of trying.

The autosetup docs say that the two lines I added should add string options with default values. But when I try to view the values I get NOTHING.

     usb-automount=1   => "do not automatically mount USB drives for SING_STEP + DF"
+    boot-tape-conf:=tc08  => "Boot tape configuration: tc08, or td12k"
+    tape-vers:=v3dx => "OS/8 version for boot tape, either v3d or v3f"
 }

 options $alloptions
+
+msg-result "tape-conf: [opt-val boot-tape-conf]"
 define USB_AUTOMOUNT [opt-bool usb-automount]

The output of "make reconfig" gives the null string for boot-tape-conf:

wdc-home2:os8-v3f-extensions wdc$ make reconfig
/Users/wdc/src/pidp8i/os8-v3f-extensions/configure prefix=/Users/wdc/PDP-8/PiDP-8/runtime
Host System...i386-unknown-darwin15.6.0
Build System...i386-unknown-darwin15.6.0
C compiler... cc -g -O2
C++ compiler... c++ -g -O2
Build C compiler...cc
Checking for stdlib.h...ok
tape-conf: 
Will add Adventure to the built OS/8 RK05 image
Will add *.BA BASIC games and demos to the built OS/8 RK05 image
Will add the native OS/8 CC8 compiler to the built OS/8 RK05 image
...

(7) By Warren Young (tangent) on 2018-10-13 15:23:46 in reply to 6 [link] [source]

msg-result "tape-conf: [opt-val boot-tape-conf]"

That's not valid Tcl. You can't interpolate a whole expression, or if you can, not like that.

You can interpolate single variables:

set x [opt-val boot-tape-conf]
msg-result "tape-conf: $x"

(8) By Bill Cattey (poetnerd) on 2018-10-13 21:58:06 in reply to 6 [link] [source]

Additional insight:

./configure --boot-tape-conf hello

does set the variable:

...
Build C compiler...cc
Checking for stdlib.h...ok
tape-conf: hello
Will add Adventure to the built OS/8 RK05 image
Will add *.BA BASIC games and demos to the built OS/8 RK05 image

so the problem is that the default string value is not getting set.

(9) By Bill Cattey (poetnerd) on 2018-10-13 22:54:53 in reply to 8 [link] [source]

Using internal variables, I've got something that does what I want.

New options:

--boot-tape-config={tc08 | td12k} with default of tc08

--boot-tape-version={v3d | v3f} with default of v3d

These put the right stuff into 3.script

Checking in now.

(10) By Bill Cattey (poetnerd) on 2018-10-16 00:19:56 in reply to 1 [source]

With the recent checkins, I consider this issue to be resolved. Readers of this thread are invited to disagree.