srec_hp64k(5)
πΈ NAME πΈ
srec_hp64k β HP64000 Absolute Data Format π
Okay bestie, welcome to the srec_hp64k(5) page from the File Formats Manual β this is the HP64000 Absolute Data Format, and it is lowkey iconic in a deeply binary way β¨
β¨ DESCRIPTION β¨
This format is the output of the HP 64000 Development System Linker and associated tools. All fields are 16-bit words. This is a binary (non-text) file format. No cap, it's not here to be pretty in your terminal β it's here to be data π«Ά
π File Format π
Files in this format start with a header record.
Then comes the Processor Information Record.
Then comes the data itself, organized into records. Slay, structure π
π¦ Overall Structure π¦
βββββββββββββββ¬ββββββββββββββ¬ββββββββββββββ¬ββββββββββββββ¬ββββββββββββββ
β Magic β Processor β Data β β Data β
β Number β Information β Record #1 β ------ β Record #N β
β 0x8204 β Record(PIR) β β β (N <=127) β
βββββββββββββββ΄ββββββββββββββ΄ββββββββββββββ΄ββββββββββββββ΄ββββββββββββββ
π Header π
The header consists of 8 words which are interpreted as a null terminated string:
ββββββββββ¬βββββββββ¬βββββββββ
β Data β β Data β
β Word β ------ β Word β
β 1 β β 8 β
ββββββββββ΄βββββββββ΄βββββββββ
π§ Processor Information Record (PIR) π§
The PIR does not have a checksum; it is therefore possible that a corrupt file header will go undetected. Bestie, that's the vibe check failing silently π
ββββββββββββ¬βββββββββββ¬βββββββββββ¬βββββββββββ
β Data β Data β Transfer β Transfer β
β Bus β Width β Address β Address β
β Width β Base β LS Word β MS Word β
ββββββββββββ΄βββββββββββ΄βββββββββββ΄βββββββββββ
π Data Record π
Each data record consists of a byte count followed by the commensurate number of words. The data part of each record is raw byte values, no encoding. It's giving "just bytes, no thoughts" π
βββββββββββ¬ββββββββββ¬ββββββββββ¬ββββββββββ¬ββββββββββ¬ββββββββββ
β Number β Load β Load β Data β β Data β
β of β Address β Address β Word β ------ β Word β
β Bytes β LS Word β MS Word β 1 β β N β
βββββββββββ΄ββββββββββ΄ββββββββββ΄ββββββββββ΄ββββββββββ΄ββββββββββ
The checksum is calculated by a simple sum of unsigned bytes into a 32-bit accumulator. Cute, simple, math-coded π₯
π Commentary π
The implementation is based on two documents:
- HP 64000 Logic Development System - File Format Reference Manual,
#64980-90933,1985 - HP 64700 Operating Environment - Absolute File Translator. HP Part No.
B1471-97008,1992
These documents disagree on some points, and also do not quite match actual examples (firmware update files from early 90's equipment; probably generated from an unknown MC68k toolchain). Messy lore, honestly π«
The main points of disagreement are:
- Two first bytes of the file, before any header or the "Processor Information Record", are not officially documented anywhere yet found. (68k linker docs may be worth investigating if they can be found). In this implementation they are set to
"82 04", where04matches HP doc's"type"value of4for Absolute files. Mysterious first bytes, very main character energy π - Header: Only mentioned in B1471.
16bytes of user data? Present in this implementation. Question mark included, because same π recsize(author's terminology) : redundant field, before every record, giving length of its record minus1, i.e.recsize == (DataRecord.numbytes + 6) - 1
π SOURCE π
- HP 64000 Logic Development System - File Format Reference Manual,
#64980-90933,1985https://archive.org/details/bitsavers_hp64000sof986_8480556 - HP 64700 Operating Environment - Absolute File Translator. HP Part No.
B1471-97008,1992https://archive.org/details/bitsavers_hp64700sof008AbsoluteFileTranslatorMar92_143924
Β©οΈ COPYRIGHT Β©οΈ
srec_cat version 1.65 Copyright (C) 1998... Peter Miller
The srec_cat program comes with ABSOLUTELY NO WARRANTY; for details use the 'srec_cat -VERSion License' command. This is free software and you are welcome to redistribute it under certain conditions; for details use the 'srec_cat -VERSion License' command. Read the license bestie, it's right there β¨
π«Ά MAINTAINER π«Ά
- Scott Finneran β E-Mail:
scottfinneran@yahoo.com.au - Peter Miller β E-Mail:
pmiller@opensource.org.au
Signed off with Reference Manual / SRecord energy and srec_cat version 1.65 β this is srec_hp64k(5), periodt ππ
π¦ where this page comes from
- opensuse-leap 16.0: srecord 1.65.0-bp160.1.12 Β· GPL-3.0-or-later
- opensuse-leap 16.0: srecord 1.65.0-bp160.1.12 Β· GPL-3.0-or-later
- opensuse-leap 16.0: srecord 1.65.0-bp160.1.12 Β· GPL-3.0-or-later
- opensuse-leap 16.0: srecord 1.65.0-bp160.1.12 Β· GPL-3.0-or-later
- Copyright (C) 2022 fenugrec & Scott Finneran
- Copyright (C) 1998, 2006-2009, 2014 Peter Miller
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms