HP85 Basic

Preliminary listing of HP85(-family?) BASIC programs.

Usage

from autoarchaeologist.vendor.hp import hp85_basic
…
self.add_examiner(*hp85_basic.ALL)

Notes

We may need to recursively evaluate the stack, for instance so BEEP can see if it has optional arguments in conditional contexts.

We will need a separate class for each ROM. It may then make sense to handle the base set as “ROM#0”.

Test input

  • hp9133a_st506_2.bin

Documentation

  • https://github.com/vp080808/HP85-Detokenizer

  • https://www.kaser.com/hp85/listings/MSROM85B.zip

    According to this snippet:

    061521             !
    061521             !Summary of disk file types and type-table lookup:
    061521             !  type=377 --> next available file
    061521             !  type=0   --> empty (hole) file
    061521             !  type bit set (msb7 to lsb0)
    061521             !   2       --> **** extended file type(GRAF,ASCI,etc.)
    061521             !   3       --> BPGM
    061521             !   4       --> DATA
    061521             !   5       --> PROG
    061521             !
    

    The file types for the HP80 series is a bitmap, and that seems to jive.

    LIF filesytems seems to be called “INTERCHANGE DISC” in that code and this snippet:

    061716             !CONVERTS 2-BYTE INTERCHANGE DISC TYPE TO
    061716             !1-BYTE DISC TYPE.
    […]
    061716             !NOTE: -16001 <= INTERCHANGE CAPR TYPES <= -20000 (octal)
    061716             !       i.e. CAPR FILE TYPE - 20000 --> INTERCHANGE CAPR TYPE
    

    Indicates that the HP80 series occupies the 0xe000…0xe3ff range of file types in LIF.

  • https://www.series80.org/Images/

    List of ROM images