Review and disposition of os8.tu56
(1) By poetnerd on 2018-10-01 02:12:27 [link]
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.
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.
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.
The update to all-tu56.os8 has been made. So there are now 4 options for replacement of os8.tu56:
I think auto.defs can get something like this:
tape_config defined as either
os8_boot_tape_version defined as either
OS8BOOTTAPE similarly to OS8BOOTDISK at line 170 of auto.def gets defined:
define OS8_BOOT_TAPE $os8_boot_tape_version "-" $tape_config ".tu56"
And then @OS8BOOTTAPE@ would be used in .../boot/3.script.in in place of "os8.tu56"
I can make this change, but I have one question:
How do we want to set up the default values, and allow altering of
That's a piece of auto.def that I'm a bit iffy on.
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
or including those lines if
I THOUGHT I could figure out the changes to auto.def to add the tapeconfig and os8boottapeversion, 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 ...
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"
./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.
Using internal variables, I've got something that does what I want.
td12k} with default of
v3f} with default of
These put the right stuff into 3.script
Checking in now.
(10) By poetnerd on 2018-10-16 00:19:56 in reply to 1
With the recent checkins, I consider this issue to be resolved. Readers of this thread are invited to disagree.