Installed boot PROMs

The IBL PROMs can be found by removing a few of the lower CPU cage cards. This then allows access to two of the boot PROMs in location U216 and U196.

The boot PROMs are N82S129 PROMs which are 256x4 bit model. These can actually be read with an TL 866II+.

U216

The U216 slot contained the following:

00000000  08 05 04 01 08 00 02 04  00 0c 04 09 08 00 02 01
00000010  00 03 01 04 03 07 0e 04  07 07 0e 04 01 0f 0e 0e
00000020  08 05 04 08 08 02 01 07  00 04 00 09 02 0f 0c 08
00000030  08 0f 0c 00 01 0f 0e 0e  00 04 0c 00 01 0f 0e 0e
00000040  06 07 0f 0e 08 05 08 06  08 0d 0c 02 06 07 0d 0d
00000050  08 05 08 02 06 07 0e 00  08 05 0c 02 08 05 08 02
00000060  08 07 0c 06 08 04 08 06  09 0f 0e 08 08 04 0c 08
00000070  02 0f 0d 09 08 04 00 09  00 01 0b 0f 00 01 0d 0f
00000080  0f 0d 09 04 00 01 02 00  00 01 06 08 00 00 00 00
00000090  00 02 00 00 00 01 0b 0f  00 01 04 00 08 01 0e 00
000000a0  08 04 02 0d 00 08 00 03  00 00 02 07 00 08 00 03
000000b0  00 01 00 0b 00 02 00 0d  00 00 00 00 08 0f 0c 08
000000c0  06 07 0e 09 08 05 08 08  08 05 0c 08 03 0f 0f 00
000000d0  00 04 0a 00 0a 0f 0e 0e  06 07 0d 0e 03 0f 0f 06
000000e0  08 05 08 08 00 04 01 01  02 0f 0f 06 08 04 0c 08
000000f0  02 0f 0f 0b 02 0f 0e 0f  00 00 00 08 0f 00 04 00

MD5 hashed to 13b3a1d34298c3b8f7f095f6a723baa0 which resolves to 12992-80004.bin, which is the 12992H loader ROM, used for disk models 7906H, 7920H, 7925H and 9895; all using the 12821A HP-IB (ICD) interface.

U196

The U196 slot contained:

00000000  00 00 00 00 00 00 00 00  00 00 0c 0c 00 06 00 04
00000010  07 07 0f 0d 06 0f 0f 0a  01 0f 0f 02 08 04 0c 09
00000020  02 0f 0c 07 06 0f 0f 0c  03 0f 0f 0d 02 0f 0c 06
00000030  06 0f 0f 0b 01 0f 0f 02  08 07 0c 08 08 04 08 09
00000040  02 0f 0e 0a 08 04 0c 08  02 0f 0c 0f 08 0f 04 08
00000050  00 0b 0d 07 00 0e 00 00  07 0f 0f 0d 08 04 08 09
00000060  02 0f 0e 0a 08 04 0c 08  02 0f 0d 07 08 0f 04 08
00000070  07 08 00 00 07 0f 0f 02  02 0f 0e 02 0f 0f 0f 02
00000080  04 00 00 01 03 0f 0f 02  08 04 0c 08 02 0f 0e 02
00000090  08 0f 04 08 03 0f 0f 0d  02 0f 0d 0f 05 08 00 00
000000a0  02 0f 0c 0f 08 04 00 09  08 05 04 09 00 03 0d 07
000000b0  00 04 01 00 08 04 03 0f  00 03 0d 07 00 02 0c 08
000000c0  08 04 00 00 02 0f 0c 0c  00 00 00 00 08 0d 08 09
000000d0  08 05 04 09 00 02 0d 03  00 02 0c 08 02 0f 0f 03
000000e0  08 07 0c 09 0a 0f 0f 02  00 03 04 01 00 03 01 03
000000f0  00 00 08 03 00 00 00 00  00 00 00 00 00 00 00 00

which hashes to 2e1826652c7a37b59e66f20b4b262b74. There is no direct match with the known boot PROMs.

With a lot of help from Claude this PROM was identified as the HP 12992D loader ROM: the 7970B/7970E 9‑track magnetic‑tape absolute binary loader (HP part 12992‑80006) - with a small change.

IDENTITY:  HP 12992D -- 7970B/7970E 9-track MAGNETIC TAPE absolute binary loader
           (HP part 12992-80006).  Interface: 13181A (7970B) / 13183A (7970E).
           Interface select codes used: 10B = data channel ("DC"),
                                        11B = command channel ("CC").

Words 07703-07777 are BYTE-IDENTICAL to the published 12992D listing.
Words 07700-07702 DIFFER (see *** below): the switch-register "file-forward
select" entry of 12992D is absent here (first 10 PROM nibbles read as zero).

addr   octal   mnemonic        12992D label / comment
-----  ------  --------------  ---------------------------------------------
*** ENTRY DIFFERS FROM PUBLISHED 12992D ***
07700  000000  NOP             (12992D: 106501  LIB 1   = read switch register)
07701  000000  NOP             (12992D: 006011  SLB,RSS = file-forward requested?)
07702  000314  SLA             (12992D: 027714  JMP NRD = no, just read a file)
*** body below matches 12992D exactly ***
07703  003004  CMA,INA         make file-forward request negative for counter
07704  073775  STA  WCT        save file counter (WCT=07775)
07705  067772  LDB  SLORW      select unit 0 and rewind  (SLORW=07772)
07706  017762  JSB  CMD        FFL: output command to drive (CMD=07762)
07707  102311  SFS  CC         wait for command completion (CC=11B)
07710  027707  JMP  *-1
07711  067774  LDB  FFC        get file-forward command   (FFC=07774)
07712  037775  ISZ  WCT        bump file counter
07713  027706  JMP  FFL        do file forward
07714  067773  LDB  RDCMD      NRD: get read command      (RDCMD=07773)
07715  017762  JSB  CMD        issue it
07716  103710  STC  DC,C       start data channel (DC=10B)
07717  102211  SFC  CC         check for status
07720  027752  JMP  STAT       (STAT=07752)
07721  102310  SFS  DC         any data?
07722  027717  JMP  *-3
07723  107510  LIB  DC,C       get record count (lower byte)
07724  005727  BLF,BLF
07725  007000  CMB
07726  077775  STB  WCT        save input count
07727  102211  SFC  CC         check for status
07730  027752  JMP  STAT
07731  102310  SFS  DC         wait to read next word
07732  027727  JMP  *-3
07733  107510  LIB  DC,C       get load address
07734  074000  STB  0          start checksum
07735  077762  STB  CMD        and address pointer (CMD=07762)
07736  027742  JMP  *+4
07737  177762  STB  CMD,I      NWD: put word in memory
07740  040001  ADA  1          add it to checksum
07741  037762  ISZ  CMD        move up address
07742  102310  SFS  DC         wait for next word
07743  027742  JMP  *-1
07744  107510  LIB  DC,C       get data to store in memory
07745  037775  ISZ  WCT        finished with data?
07746  027737  JMP  NWD        no, read next word
07747  054000  CPB  0          is checksum OK?
07750  027717  JMP  NRD+3      yes - wait for cmd channel status (NRD+3=07717)
07751  102011  HLT  11B        no -- error halt
07752  102511  LIA  CC         STAT: get status
07753  001727  ALF,ALF         position EOF bit
07754  002020  SSA
07755  102077  HLT  77B        end-of-file halt
07756  001727  ALF,ALF
07757  001310  RAR,SLA
07760  102000  HLT  0
07761  027714  JMP  NRD        read next record
-- constants / subroutine ----------------------------------------------
07762  000000  CMD  NOP        (command-output subroutine entry / address temp)
07763  106611  OTB  CC         output command
07764  102511  LIA  CC         check if rejected
07765  001323  RAR,RAR
07766  001310  RAR,SLA
07767  027763  JMP  *-4        yes, try again
07770  103711  STC  CC,C       no, start command
07771  127762  JMP  CMD,I      return
07772  001501  =OCT 1501       SLORW: MT select 0 / rewind command
07773  001423  =OCT 1423       RDCMD: MT read-a-record command
07774  000203  =OCT 0203       FFC:   MT file-forward command
07775  000000  =OCT 0          WCT:   input word/file count (variable)
07776  000000  =OCT 0
07777  000000  =OCT 0
© 2024 by Frits Jalvingh. All information in here can be freely used (MIT License)