to: intel-devsys from: Frode M date: Dec 19 2024 subject: intel-devsys Differences between Intel ISIS and Tandberg OS [note by Herb Johnson: Tandberg Data TDV-2114 or 2121 8080 computer was produced in Norway from about 1976 to at least 1981, as an intelligent terminal, with an ISIS-like OS.] I have obtained some more versions of Tandberg OS (v1.5 and v1.6, in addition to v1.7 that I had from before), and am in the works of disassembling everything to learn more about how things work and changed over the range of versions I have. In the process I have found a few differences from Intel ISIS. Sorry for the wall of text, but here we go: [previous devsys discussion "tandberg OS like ISIS-II?" Sept 7 2023. references facebook group "Vintage Computer Club" post not available to nonmembers. devsys discussion describes particulars of the system and contents. Copy also available on my Web site with this document.- Herb] As mentioned in the older thread, the user-interface (down to the debugger monitor level), file system, and use of Intel Absolute Binary format for executable commands is very much taken from Intel ISIS. The general look and feel is much the same, but that's about where it ends. The system APIs, both in ROM and in the OS are completely different, as well as the memory layout, but I will mostly focus on the user-experience here. First of all, one thing to note is that TOS always has a dual command-line parameter in the form of CMD [TOS args]$[command args]. This first set of arguments always goes to TOS and only TOS, where the second set is the only args the program sees. The TOS args are typically used to assign some standard file control blocks that provides a layer of abstraction to the program to be run. What I mean by standard-files, is that instead of setting up and opening every file locally in the program, it gets a set of prepared and open FCBs from TOS instead on entry. In particular, CI and CO for console in and output, SI SL and SO for primary file input, line-polling device, and output, and likewise AI AL and AO for auxiliary file actions. What to do with these abstract files is a little up to the program itself, but it enables a unified way of dealing with ordinary data-flow in and out of a program. Take for instance the MOVE command. MOVE SI=:F0:MYFILE.BIN, SO=:F0:MYCOPY.BIN simply copies a file. However, MOVE CO=:XM:, SI=:F0:MYFILE.BIN, SO=:LP:$H will print a hexadecimal listing of MYFILE.BIN to the printer port, while sending console output to the serial port. In this example, the MOVE program only gets the H argument (for its hexadecimal listing mode), and the already-prepared and opened CI, CO, SI and SO file control blocks. What's more, is that there's a linked file control block type, so you can set up things like SO=(:LP:,:F0:MYFILE.TXT) to get the output hex listing both on the printer port and a copy of that to MYFILE.TXT. This serves much the purpose of file-piping in UNIX, but this is declarative tree-branched piping system and not just the regular proximity-based piping we are used to. I am surprised how powerful this is, and there are actual use-cases on modern systems where I would wish for this functionality. The next thing I note, is that support for the IBM 3740 file system is built into TOS (but not through the XMON routines in ROM). Both disks of ASCII and EBCDIC varieties, being assigned devices :A0: to :A3: and :I0: to :I3: respectively. While MOVE won't set the additional verbose metadata of an IBM file, there's a tool called ALLOC that will let you do this. There's also more attributes, most notably the "Alias" attribute. This attribute lets you create aliases of a file, or basically it lets you address the same file using several filenames. Think along the lines of a UNIX symlink. Of the programs that ships on a system disk, here is a complete list: File system standard operations: ALIAS (Create aliases) ATTRIB (Set attribute of file) DELETE (Delete file or alias) DIR (Directory listing) MOVE (Copy files and/or move data) RENAME (Rename file) File system advanced operations: DIRPAC (Prune deleted file entries) DROP (Reserve freestanding sectors in ISIS.MAP) REMAP (Reset ISIS.MAP based on directory entries) RESCUE (Undelete) System: ASSIGN (Set up standard files for consecutive commands) EXEC (Same as ASSIGN, but for the domain of CI=) RELEAS (Release standard file-assignment by ASSIGN) SYS (Set TOS system behaviour variable) SYSTEM (Tandberg OS itself, automatically loaded and run on boot) Storage devices init: DGEN (Copy all files from one floppy to another) FORMAT (Formats new floppy or tape) INIT (Initialize file-system on newly formatted floppy) TPGEN (Copy all files from one floppy to tape) Storage devices bulk: ANALYZ (Check floppy for errors) DCONVA (Convert floppy from EBCDIC to ASCII) DCOPY (Make sector-copy of floppy to floppy) DDUMC (Dump sector-image from floppy to tape) DRSTC (Restore sector-image from tape to floppy) MDUP (Make record-copy of tape to tape) Applications, text: EDIT (Fully-featured text editor) SEDIT (Line-editor) TTY (Behave like a TDV-2115L dumb-terminal) TXW (Text-writer) Applications, assembler: ASM (Control-center for assembler suite) DEBUG (Enable XMON debugger on RST0) HEXBIN (Convert from HEX file to Intel Absolute Binary file) LINK (Link relocatable modules) RASM (The assembler itself) XREF (Generates cross-reference list) Miscellaneous: ALLOC (Create or edit IBM 3740 file entry) MYLOAD (Run a program from a Mycron MYCRO-1 formatted floppy) PROM (Interface with a BNPF-based chip programmer) With best regards. -Frode [I asked Frode if TOS was most closely related to the original first-release Intel "ISIS", that is a version 1.X ISIS released by Intel to operate as an upgrade, possibly on the early MDS-800 with floppy drive and controller. The later OS from Intel was branded "ISIS-II", is a larger set of software and was part of Intel's Mutibus based and disk based development systems. Here's Frode's response. - Herb] I don't know exactly when the [TOS] software was done, the people over at technikum29.de scanned some early hardware design documents that dates from late 1975. Most of the scanned schematics are dated around 1976 and early 77, but the dates on those may be related to revision and not the first design. The oldest actual physical part I have myself is from 1977 (the keyboard from my machine). Whether the TDV-2114 was available for sale already in 1976 or 1977 is as such not entirely clear. I recently tried to get hold of some Tandberg-newsletters from the right time to give more clear details on it, but I lost that auction. Given Tandberg OS uses the dollar-sign to delimiter the OS-specific arguments and program-specific arguments, and the heavy reliance on the absolute binary format instead of the relocatable format from ISIS-II, I would make an educated guess that Tandberg [mainly had] ISIS-1.x in mind when making their design decisions. - Frode