HP Forums
HP-IL Traces (part #2) - Printable Version

+- HP Forums (https://www.hpmuseum.org/forum)
+-- Forum: HP Calculators (and very old HP Computers) (/forum-3.html)
+--- Forum: Articles Forum (/forum-14.html)
+--- Thread: HP-IL Traces (part #2) (/thread-20186.html)



HP-IL Traces (part #2) - Sylvain Cote - 07-16-2023 08:38 PM

HP-IL Traces (part #2) [2023-07-16]

I am currently commenting HP-IL traces for another project, but it was suggested to made them public, so here they are ...

Setup:
  • HP-41CX halfnut
  • 82160A HP-IL module
    • PIL-Box
      • pyILPER
        • Virtual Scope (incoming frames: 41__to__TAPE)
        • Virtual Mass Storage (82161A Cassette Drive)
        • Virtual Scope (outgoing frames: TAPE__to__41)
Listings:
  • HP-41 / HP-IL / WRTS (write status file, ST) [2023-07-16]
  • HP-41 / HP-IL / READS (read status file, ST) [upcoming]
Listing is easier to read with "View a Printable Version" (link at the bottom)

Sylvain

HP-41 / HP-IL / WRTS (write status file, ST) [2023-07-16]
Code:
                              HP-41 HP-IL WRTS (WRITE STATUS)
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
--------------------------------------------------------------------------------

                              LOOP CONFIGURATION
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
IDY 00 (600) | idy 00 (600) | loop continuity test and service request detection
-------------+--------------+---------------------------------------------------
AAU    (49A) | aau    (49a) | auto address unconfigure,
             |              |   all devices must set his loop address to 31
RFC    (500) | rfc    (500) | ready for command
-------------+--------------+---------------------------------------------------
AAD  1 (581) | aad  2 (582) | adressing the loop, only 1 device in the loop
--------------------------------------------------------------------------------

                              GET DEVICE ACCESSORY ID
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
TAD 01 (441) | tad 01 (441) | first device is now the loop talker
RFC    (500) | rfc    (500) | ready for command
-------------+--------------+---------------------------------------------------
SAI    (563) |              | talker accessory id request
             | dab 10 (010) | aid = 10h (mass storage class)
DAB 10 (010) |              |
             | eto    (540) | end of transmission ok
--------------------------------------------------------------------------------

                              GET DEVICE STATUS
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
TAD 01 (441) | tad 01 (441) | first device is now the loop talker
RFC    (500) | rfc    (500) | ready for command
-------------+--------------+---------------------------------------------------
SST    (561) |              | talker interface status request
             | dab 00 (000) | status = 0h (no error)
DAB 00 (000) |              |
             | eto    (540) | end of transmission ok
--------------------------------------------------------------------------------

                              GO TO FIRST DIRECTORY RECORD
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
LAD 01 (421) | lad 01 (421) | first device is now one of the loop listeners
             |              |   and no longer the loop talker
RFC    (500) | rfc    (500) | ready for command
-------------+--------------+---------------------------------------------------
DDL 04 (4A4) | ddl 04 (4a4) | tape seek request
             |              |   parameters are in the next two DAB frames
RFC    (500) | rfc    (500) | ready for command
DAB 00 (000) | dab 00 (000) | track  0
DAB 02 (002) | dab 02 (002) | record 2
--------------------------------------------------------------------------------

                              GET DEVICE STATUS
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
TAD 01 (441) | tad 01 (441) | first device is now the loop talker
RFC    (500) | rfc    (500) | ready for command
-------------+--------------+---------------------------------------------------
SST    (561) |              | talker interface status request
             | dab 00 (000) | status = 0h (no error)
DAB 00 (000) |              |
             | eto    (540) | end of transmission ok
--------------------------------------------------------------------------------

                              COPY TAPE DIRECTORY FIRST RECORD TO BUFFER 0
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
DDT 02 (4C2) | ddt 02 (4c2) | tape read request
             |              |   track 0 record 2 is copied into buffer 0
             |              |   tape is now set to track 0 record 3
RFC    (500) | rfc    (500) | ready for command
--------------------------------------------------------------------------------

                              GET DEVICE STATUS
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
TAD 01 (441) | tad 01 (441) | first device is now the loop talker
RFC    (500) | rfc    (500) | ready for command
-------------+--------------+---------------------------------------------------
SST    (561) |              | talker interface status request
             | dab 00 (000) | status = 0h (no error)
DAB 00 (000) |              |
             | eto    (540) | end of transmission ok
-------------+--------------+---------------------------------------------------

                              SEND BUFFER 0 (FIRST 32 BYTES : FIRST FILE)
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
DDT 00 (4C0) | ddt 00 (4c0) | ctrl is asking the talker to send his
             |              |   buffer 0 content on the loop
RFC    (500) | rfc    (500) | ready for command
SDA    (560) |              | send data - LIF record 32 bytes
             | dab 41 (041) |   filename = "ABC       " (10 bytes)
DAB 41 (041) | dab 42 (042) |
DAB 42 (042) | dab 43 (043) |
DAB 43 (043) | dab 20 (020) |
DAB 20 (020) | dab 20 (020) |
DAB 20 (020) | dab 20 (020) |
DAB 20 (020) | dab 20 (020) |
DAB 20 (020) | dab 20 (020) |
DAB 20 (020) | dab 20 (020) |
DAB 20 (020) | dab 20 (020) |
DAB 20 (020) | dab e0 (0e0) |   filetype = 0xE0D0 (SDATA, 2 bytes)
DAB E0 (0E0) | dab d0 (0d0) |
DAB D0 (0D0) | dab 00 (000) |   start block = 0x00000008 (4 bytes)
DAB 00 (000) | dab 00 (000) |
DAB 00 (000) | dab 00 (000) |
DAB 00 (000) | dab 08 (008) |
DAB 08 (008) | dab 00 (000) |   allocated blocks = 0x00000004 (file length, 4 bytes))
DAB 00 (000) | dab 00 (000) |
DAB 00 (000) | dab 00 (000) |
DAB 00 (000) | dab 04 (004) |
DAB 04 (004) | dab 00 (000) |   date+time (6 bytes)
DAB 00 (000) | dab 00 (000) |
DAB 00 (000) | dab 00 (000) |
DAB 00 (000) | dab 00 (000) |
DAB 00 (000) | dab 00 (000) |
DAB 00 (000) | dab 00 (000) |
DAB 00 (000) | dab 80 (080) |   miscellaneous data (6 bytes)
DAB 80 (080) | dab 01 (001) |     tbd = 0x80 0x01 0x00 0x64 0x00 0x20
DAB 01 (001) | dab 00 (000) |
DAB 00 (000) | dab 64 (064) |
DAB 64 (064) | dab 00 (000) |
DAB 00 (000) | dab 20 (020) |
NRD    (542) | nrd    (542) | stop sending data
DAB 20 (020) |              |
             | eto    (540) | end of transmission ok
--------------------------------------------------------------------------------

                              GET DEVICE STATUS
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
TAD 01 (441) | tad 01 (441) | first device is now the loop talker
RFC    (500) | rfc    (500) | ready for command
-------------+--------------+---------------------------------------------------
SST    (561) |              | talker interface status request
             | dab 00 (000) | status = 0h (no error)
DAB 00 (000) |              |
             | eto    (540) | end of transmission ok
--------------------------------------------------------------------------------

                              SEND BUFFER 0 (SECOND 32 BYTES : SECOND FILE : NONE)
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
DDT 00 (4C0) | ddt 00 (4c0) | ctrl is asking the talker to send his
             |              |   buffer 0 content on the loop
RFC    (500) | rfc    (500) | ready for command
SDA    (560) |              | send data - LIF record 32 bytes
             | dab ff (0ff) |   empty directory entry
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
NRD    (542) | nrd    (542) | stop sending data
DAB FF (0FF) |              |
             | eto    (540) | end of transmission ok
--------------------------------------------------------------------------------

                              LOOP CONFIGURATION
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
AAU    (49A) | aau    (49a) | auto address unconfigure,
             |              |   all devices must set his loop address to 31
RFC    (500) | rfc    (500) | ready for command
-------------+--------------+---------------------------------------------------
AAD  1 (581) | aad  2 (582) | adressing the loop, only 1 device in the loop
--------------------------------------------------------------------------------

                              GO TO HEADER RECORD
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
UNT    (45F) | unt    (45f) | first device is no longer a talker (untalk)
RFC    (500) | rfc    (500) | ready for command
-------------+--------------+---------------------------------------------------
LAD 01 (421) | lad 01 (421) | first device is now one of the loop listeners
             |              |   and no longer the loop talker
RFC    (500) | rfc    (500) | ready for command
-------------+--------------+---------------------------------------------------
DDL 04 (4A4) | ddl 04 (4a4) | tape seek request
             |              |   parameters are in the next two DAB frames
RFC    (500) | rfc    (500) | ready for command
DAB 00 (000) | dab 00 (000) | track  0
DAB 00 (000) | DAB 00 (000) | record 0
             |              | track 0 sector 0 contains the LIF Volume data
--------------------------------------------------------------------------------

                              GET DEVICE STATUS
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
TAD 01 (441) | tad 01 (441) | first device is now the loop talker
RFC    (500) | rfc    (500) | ready for command
-------------+--------------+---------------------------------------------------
SST    (561) |              | talker interface status request
             | dab 00 (000) | status = 0h (no error)
DAB 00 (000) |              |
             | eto    (540) | end of transmission ok
--------------------------------------------------------------------------------

                              COPY TAPE HEADER RECORD TO BUFFER 0
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
DDT 02 (4C2) | ddt 02 (4c2) | tape read request
             |              |   track 0 record 0 is copied into buffer 0
             |              |   tape is now set to track 0 record 1
RFC    (500) | rfc    (500) | ready for command
--------------------------------------------------------------------------------

                              GET DEVICE STATUS
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
TAD 01 (441) | tad 01 (441) | first device is now the loop talker
RFC    (500) | rfc    (500) | ready for command
-------------+--------------+---------------------------------------------------
SST    (561) |              | talker interface status request
             | dab 00 (000) | status = 0h (no error)
DAB 00 (000) |              |
             | eto    (540) | end of transmission ok
--------------------------------------------------------------------------------

                              SEND BUFFER 0 (FIRST 32 BYTES : PARTIAL TAPE HEADER)
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
DDT 00 (4C0) | ddt 00 (4c0) | ctrl is asking the talker to send his
             |              |   buffer 0 content on the loop
RFC    (500) | rfc    (500) | ready for command
SDA    (560) |              | ctrl is asking the talker for his data
             |              | LIF Volume
             | dab 80 (080) |   LIF identifier = 0x8000 (2 bytes)
DAB 80 (080) | dab 00 (000) |
DAB 00 (000) |              |
             | dab 20 (020) |   Volume Label (6 bytes)
DAB 20 (020) | dab 20 (020) |
DAB 20 (020) | dab 20 (020) |
DAB 20 (020) | dab 20 (020) |
DAB 20 (020) | dab 20 (020) |
DAB 20 (020) | dab 20 (020) |
DAB 20 (020) |              |
             | dab 00 (000) |   Directory start block = 0x00000002 (4 bytes)
DAB 00 (000) | dab 00 (000) |
DAB 00 (000) | dab 00 (000) |
DAB 00 (000) | dab 02 (002) |
DAB 02 (002) |              |
             | dab 10 (010) |   LIF identifer = 0x1000 ( 2 bytes)
DAB 10 (010) | dab 00 (000) |
DAB 00 (000) |              |
             | dab 00 (000) |   Filler, must be zero (2 bytes)
DAB 00 (000) | dab 00 (000) |
DAB 00 (000) |              |
             | dab 00 (000) |   Length of directory in blocks = 0x00000006 (4 bytes)
DAB 00 (000) | dab 00 (000) |
DAB 00 (000) | dab 00 (000) |
DAB 00 (000) | dab 06 (006) |
DAB 06 (006) |              |
             | dab 00 (000) |   LIF version number, must be 1 (2 bytes)
DAB 00 (000) | dab 01 (001) |
DAB 01 (001) |              |
             | dab 00 (000) |   Filler, must be zero (2 bytes)
DAB 00 (000) | dab 00 (000) |
DAB 00 (000) |              |
             | dab 00 (000) |   Number of tracks per surface = 0x0000002 (4 bytes)
DAB 00 (000) | dab 00 (000) |
DAB 00 (000) | dab 00 (000) |
DAB 00 (000) | dab 02 (002) |
DAB 02 (002) |              |
             | dab 00 (000) |   Number of surfaces = 0x00000001 (4 bytes)
DAB 00 (000) | dab 00 (000) |
DAB 00 (000) | dab 00 (000) |
DAB 00 (000) | dab 01 (001) |
NRD    (542) | nrd    (542) |
DAB 01 (001) | eto    (540) | end of transmission ok
             |              | LIF info not transmitted:
             |              |   number of blocks per track (4 bytes)
             |              |     cassette drive -> 256 blocks per track is assume here
             |              |   date and time that the volume was initialized (6 bytes)
--------------------------------------------------------------------------------

                              GO TO FIRST DIRECTORY RECORD
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
LAD 01 (421) | lad 01 (421) | first device is now one of the loop listeners
             |              |   and no longer the loop talker
RFC    (500) | rfc    (500) | ready for command
-------------+--------------+---------------------------------------------------
DDL 04 (4A4) | ddl 04 (4a4) | tape seek request
             |              |   parameters are in the next two DAB frames
RFC    (500) | rfc    (500) | ready for command
DAB 00 (000) | dab 00 (000) | track  0
DAB 02 (002) | dab 02 (002) | record 2
             |              | track 0 sector 2 contains the directory first record
--------------------------------------------------------------------------------

                              GET DEVICE STATUS
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
TAD 01 (441) | tad 01 (441) | first device is now the loop talker
RFC    (500) | rfc    (500) | ready for command
-------------+--------------+---------------------------------------------------
SST    (561) |              | talker interface status request
             | dab 00 (000) | status = 0h (no error)
DAB 00 (000) |              |
             | eto    (540) | end of transmission ok
--------------------------------------------------------------------------------

                              COPY TAPE DIRECTORY FIRST RECORD TO BUFFER 0
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
DDT 02 (4C2) | ddt 02 (4c2) | tape read request
             |              |   track 0 record 2 is copied into buffer 0
             |              |   tape is now set to track 0 record 3
RFC    (500) | rfc    (500) | ready for command
--------------------------------------------------------------------------------

                              GET DEVICE STATUS
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
TAD 01 (441) | tad 01 (441) | first device is now the loop talker
RFC    (500) | rfc    (500) | ready for command
-------------+--------------+---------------------------------------------------
SST    (561) |              | talker interface status request
             | dab 00 (000) | status = 0h (no error)
DAB 00 (000) |              |
             | eto    (540) | end of transmission ok
--------------------------------------------------------------------------------

                              GET DEVICE STATUS
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
TAD 01 (441) | tad 01 (441) | first device is now the loop talker
RFC    (500) | rfc    (500) | ready for command
-------------+--------------+---------------------------------------------------
SST    (561) |              | talker interface status request
             | dab 00 (000) | status = 0h (no error)
DAB 00 (000) |              |
             | eto    (540) | end of transmission ok
--------------------------------------------------------------------------------

                              SEND BUFFER 0 (FIRST 32 BYTES : FIRST FILE)
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
DDT 00 (4C0) | ddt 00 (4c0) | ctrl is asking the talker to send his
             |              |   buffer 0 content on the loop
RFC    (500) | rfc    (500) | ready for command
SDA    (560) |              | send data - LIF record 32 bytes
             | dab 41 (041) |   filename = "ABC       " (10 bytes)
DAB 41 (041) | dab 42 (042) |
DAB 42 (042) | dab 43 (043) |
DAB 43 (043) | dab 20 (020) |
DAB 20 (020) | dab 20 (020) |
DAB 20 (020) | dab 20 (020) |
DAB 20 (020) | dab 20 (020) |
DAB 20 (020) | dab 20 (020) |
DAB 20 (020) | dab 20 (020) |
DAB 20 (020) | dab 20 (020) |
DAB 20 (020) | dab e0 (0e0) |   filetype = 0xE0D0 (SDATA, 2 bytes)
DAB E0 (0E0) | dab d0 (0d0) |
DAB D0 (0D0) | dab 00 (000) |   start block = 0x00000008 (4 bytes)
DAB 00 (000) | dab 00 (000) |
DAB 00 (000) | dab 00 (000) |
DAB 00 (000) | dab 08 (008) |
DAB 08 (008) | dab 00 (000) |   allocated blocks = 0x00000004 (file length, 4 bytes))
DAB 00 (000) | dab 00 (000) |
DAB 00 (000) | dab 00 (000) |
DAB 00 (000) | dab 04 (004) |
DAB 04 (004) | dab 00 (000) |   date+time (6 bytes)
DAB 00 (000) | dab 00 (000) |
DAB 00 (000) | dab 00 (000) |
DAB 00 (000) | dab 00 (000) |
DAB 00 (000) | dab 00 (000) |
DAB 00 (000) | dab 00 (000) |
DAB 00 (000) | dab 80 (080) |   miscellaneous data (6 bytes)
DAB 80 (080) | dab 01 (001) |     tbd = 0x80 0x01 0x00 0x64 0x00 0x20
DAB 01 (001) | dab 00 (000) |
DAB 00 (000) | dab 64 (064) |
DAB 64 (064) | dab 00 (000) |
DAB 00 (000) | dab 20 (020) |
NRD    (542) | nrd    (542) | stop sending data
DAB 20 (020) |              |
             | eto    (540) | end of transmission ok
--------------------------------------------------------------------------------

                              GET DEVICE STATUS
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
TAD 01 (441) | tad 01 (441) | first device is now the loop talker
RFC    (500) | rfc    (500) | ready for command
-------------+--------------+---------------------------------------------------
SST    (561) |              | talker interface status request
             | dab 00 (000) | status = 0h (no error)
DAB 00 (000) |              |
             | eto    (540) | end of transmission ok
--------------------------------------------------------------------------------

                              SEND BUFFER 0 (SECOND 32 BYTES : SECOND FILE)
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
DDT 00 (4C0) | ddt 00 (4c0) | ctrl is asking the talker to send his
             |              |   buffer 0 content on the loop
RFC    (500) | rfc    (500) | ready for command
SDA    (560) |              | send data - LIF record 32 bytes
             | dab ff (0ff) |   empty directory entry
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
DAB FF (0FF) | dab ff (0ff) |
NRD    (542) | nrd    (542) | stop sending data
DAB FF (0FF) |              |
             | eto    (540) | end of transmission ok
--------------------------------------------------------------------------------

                              GET TAPE TRACK, RECORD & BYTE INFORMATION
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
TAD 01 (441) | tad 01 (441) | first device is now the loop talker
RFC    (500) | rfc    (500) | ready for command
-------------+--------------+---------------------------------------------------
DDT 03 (4C3) | ddt 03 (4c3) | tape position request
RFC    (500) | rfc    (500) | ready for command
-------------+--------------+---------------------------------------------------
SDA    (560) |              | ctrl is asking the talker for his data
             | dab 00 (000) |   track 0
DAB 00 (000) | dab 03 (003) |   record 3
DAB 03 (003) | dab 40 (040) |   byte 64
DAB 40 (040) |              |
             | eto    (540) | end of transmission ok
--------------------------------------------------------------------------------

                              SET BYTE POINTER TO 0 (BEGIN OF DIRECTORY RECORD)
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
LAD 01 (421) | lad 01 (421) | first device is now one of the loop listeners
             |              |   and no longer the loop talker
RFC    (500) | rfc    (500) | ready for command
-------------+--------------+---------------------------------------------------
DDL 03 (4A3) | ddl 03 (4a3) | set byte pointer to 0 (00h)
RFC    (500) | rfc    (500) | ready for command
DAB 00 (000) | dab 00 (000) |   byte pointer position
--------------------------------------------------------------------------------

                              ENABLE WRITE MODE
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
DDL 02 (4A2) | ddl 02 (4a2) | enable continuous write
RFC    (500) | rfc    (500) | ready for command
--------------------------------------------------------------------------------

                              SET BYTE POINTER TO 32 (SECOND FILE ENTRY)
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
DDL 03 (4A3) | ddl 03 (4a3) | set byte pointer to 32 (20h)
RFC    (500) | rfc    (500) | ready for command
DAB 20 (020) | dab 20 (020) |   byte pointer position
--------------------------------------------------------------------------------

                              WRITE TO BUFFER 0 (AT BYTE POSITION)
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
DDL 00 (4A0) | ddl 00 (4a0) | write to buffer 0
RFC    (500) | rfc    (500) | ready for command
DAB 53 (053) | dab 53 (053) |   filename = "STS       " (10 bytes)
DAB 54 (054) | dab 54 (054) |
DAB 53 (053) | dab 53 (053) |
DAB 20 (020) | dab 20 (020) |
DAB 20 (020) | dab 20 (020) |
DAB 20 (020) | dab 20 (020) |
DAB 20 (020) | dab 20 (020) |
DAB 20 (020) | dab 20 (020) |
DAB 20 (020) | dab 20 (020) |
DAB 20 (020) | dab 20 (020) |
DAB E0 (0E0) | dab e0 (0e0) |   filetype = 0xE060 (HP-41 STATUS, 2 bytes)
DAB 60 (060) | dab 60 (060) |
DAB 00 (000) | dab 00 (000) |   start block = 0x0000000C (4 bytes)
DAB 00 (000) | dab 00 (000) |
DAB 00 (000) | dab 00 (000) |
DAB 0C (00C) | dab 0c (00c) |
DAB 00 (000) | dab 00 (000) |   allocated blocks = 0x00000001 (file length, 4 bytes))
DAB 00 (000) | dab 00 (000) |
DAB 00 (000) | dab 00 (000) |
DAB 01 (001) | dab 01 (001) |
DAB 00 (000) | dab 00 (000) |   date+time (6 bytes)
DAB 00 (000) | dab 00 (000) |
DAB 00 (000) | dab 00 (000) |
DAB 00 (000) | dab 00 (000) |
DAB 00 (000) | dab 00 (000) |
DAB 00 (000) | dab 00 (000) |
DAB 80 (080) | dab 80 (080) |   miscellaneous data (6 bytes)
DAB 01 (001) | dab 01 (001) |     tbd = 0x80 0x01 0x00 0x0a 0x00 0x20
DAB 00 (000) | dab 00 (000) |
DAB 0A (00A) | dab 0a (00a) |
DAB 00 (000) | dab 00 (000) |
END 20 (220) | end 20 (220) |
--------------------------------------------------------------------------------

                              GET DEVICE STATUS
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
TAD 01 (441) | tad 01 (441) | first device is now the loop talker
RFC    (500) | rfc    (500) | ready for command
-------------+--------------+---------------------------------------------------
SST    (561) |              | talker interface status request
             | dab 00 (000) | status = 0h (no error)
DAB 00 (000) |              |
             | eto    (540) | end of transmission ok
--------------------------------------------------------------------------------

                              GET TAPE TRACK, RECORD & BYTE INFORMATION
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
TAD 01 (441) | tad 01 (441) | first device is now the loop talker
RFC    (500) | rfc    (500) | ready for command
-------------+--------------+---------------------------------------------------
DDT 03 (4C3) | ddt 03 (4c3) | tape position request
RFC    (500) | rfc    (500) | ready for command
-------------+--------------+---------------------------------------------------
SDA    (560) |              | ctrl is asking the talker for his data
             | dab 00 (000) |   track 0
DAB 00 (000) | dab 03 (003) |   record 3
DAB 03 (003) | dab 40 (040) |   byte 64
DAB 40 (040) |              |
             | eto    (540) | end of transmission ok
--------------------------------------------------------------------------------


                              COPY BUFFER 0 To BUFFER 1
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
LAD 01 (421) | lad 01 (421) | first device is now one of the loop listeners
             |              |   and no longer the loop talker
RFC    (500) | rfc    (500) | devices are ready for another command
-------------+--------------+---------------------------------------------------
DDL 09 (4A9) | ddl 09 (4a9) | copy buffer 0 to buffer 1
             |              |   reset buffer pointer to 0
             |              |   buffer 1 hold a copy of the first directory record
RFC    (500) | rfc    (500) | devices are ready for another command
--------------------------------------------------------------------------------

                              POINTER = 240 (FAh)
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
DDL 03 (4A3) | ddl 03 (4a3) | set byte pointer
RFC    (500) | rfc    (500) | devices are ready for another command
DAB FA (0FA) | dab fa (0fa) |   to FAh or 250d
--------------------------------------------------------------------------------

                              BUFFER1[ POINTER ] = 240 (FAh)
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
DDL 01 (4A1) | ddl 01 (4a1) | activate buffer 1
RFC    (500) | rfc    (500) | devices are ready for another command
DAB FA (0FA) | dab fa (0fa) | write FAh at position FAh in buffer 1
             |              |   hein! why? I need to investigate this
--------------------------------------------------------------------------------

                              POINTER = 64 (40h)
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
LAD 01 (421) | lad 01 (421) | first device is now one of the loop listeners
RFC    (500) | rfc    (500) | devices are ready for another command
-------------+--------------+---------------------------------------------------
DDL 03 (4A3) | ddl 03 (4a3) | set byte pointer
RFC    (500) | rfc    (500) | devices are ready for another command
DAB 40 (040) | dab 40 (040) | pointer set to 64 (40h)
-------------+--------------+---------------------------------------------------
UNL    (43F) | unl    (43f) | unlisten
RFC    (500) | rfc    (500) | devices are ready for another command
--------------------------------------------------------------------------------

                              GO TO FIRST RECORD OF STATUS FILE
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
LAD 01 (421) | lad 01 (421) | first device is now one of the loop listeners
             |              |   and no longer the loop talker
RFC    (500) | rfc    (500) | ready for command
-------------+--------------+---------------------------------------------------
DDL 04 (4A4) | ddl 04 (4a4) | tape seek request
             |              |   parameters are in the next two DAB frames
RFC    (500) | rfc    (500) | ready for command
DAB 00 (000) | dab 00 (000) | track  0
DAB 0C (00C) | dab 0C (00C) | record 12 (0Ch)
--------------------------------------------------------------------------------

                              GET DEVICE STATUS
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
TAD 01 (441) | tad 01 (441) | first device is now the loop talker
RFC    (500) | rfc    (500) | ready for command
-------------+--------------+---------------------------------------------------
SST    (561) |              | talker interface status request
             | dab 00 (000) | status = 0h (no error)
DAB 00 (000) |              |
             | eto    (540) | end of transmission ok
--------------------------------------------------------------------------------

                              POINTER = 0 (0h)
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
LAD 01 (421) | lad 01 (421) | first device is now one of the loop listeners
RFC    (500) | rfc    (500) | devices are ready for another command
-------------+--------------+---------------------------------------------------
DDL 03 (4A3) | ddl 03 (4a3) | set byte pointer
RFC    (500) | rfc    (500) | devices are ready for another command
DAB 00 (000) | dab 00 (000) | pointer set to 0 (0h)
-------------+--------------+---------------------------------------------------
UNL    (43F) | unl    (43f) | unlisten
RFC    (500) | rfc    (500) | devices are ready for another command
--------------------------------------------------------------------------------

                              ENABLE WRITE MODE
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
DDL 02 (4A2) | ddl 02 (4a2) | enable continuous write
RFC    (500) | rfc    (500) | ready for command
--------------------------------------------------------------------------------

                              WRITE TO BUFFER 0 (AT BYTE POSITION)
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
DDL 00 (4A0) | ddl 00 (4a0) | write to buffer 0
RFC    (500) | rfc    (500) | ready for command
--------------------------------------------------------------------------------

                              WRITE T REGISTER
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
             |              |   T Register : _______IN_RAM_______
             |              |         byte : 66 55 44 33 22 11 00
             |              |                ab cd ef gh ij kl mn
             |              |     __ON_TAPE___
DAB 01 (001) | dab 01 (001) |     DAB mn (0mn)
DAB 00 (000) | dab 00 (000) |     DAB la (0la)
DAB 00 (000) | dab 00 (000) |     DAB 00 (000)
DAB 00 (000) | dab 00 (000) |     DAB jk (0jk)
DAB 00 (000) | dab 00 (000) |     DAB hi (0hi)
DAB 00 (000) | dab 00 (000) |     DAB fg (0fg)
DAB 00 (000) | dab 00 (000) |     DAB de (0de)
DAB 33 (033) | dab 33 (033) |     DAB bc (0bc)
--------------------------------------------------------------------------------

                              WRITE Z REGISTER
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
             |              |   Z Register : _______IN_RAM_______
             |              |         byte : 66 55 44 33 22 11 00
             |              |                ab cd ef gh ij kl mn
             |              |     __ON_TAPE___
DAB 01 (001) | dab 01 (001) |     DAB mn (0mn)
DAB 00 (000) | dab 00 (000) |     DAB la (0la)
DAB 00 (000) | dab 00 (000) |     DAB 00 (000)
DAB 00 (000) | dab 00 (000) |     DAB jk (0jk)
DAB 00 (000) | dab 00 (000) |     DAB hi (0hi)
DAB 00 (000) | dab 00 (000) |     DAB fg (0fg)
DAB 00 (000) | dab 00 (000) |     DAB de (0de)
DAB 22 (022) | dab 22 (022) |     DAB bc (0bc)
--------------------------------------------------------------------------------

                              WRITE Y REGISTER
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
             |              |   Y Register : _______IN_RAM_______
             |              |         byte : 66 55 44 33 22 11 00
             |              |                ab cd ef gh ij kl mn
             |              |     __ON_TAPE___
DAB 01 (001) | dab 01 (001) |     DAB mn (0mn)
DAB 00 (000) | dab 00 (000) |     DAB la (0la)
DAB 00 (000) | dab 00 (000) |     DAB 00 (000)
DAB 00 (000) | dab 00 (000) |     DAB jk (0jk)
DAB 00 (000) | dab 00 (000) |     DAB hi (0hi)
DAB 00 (000) | dab 00 (000) |     DAB fg (0fg)
DAB 00 (000) | dab 00 (000) |     DAB de (0de)
DAB 11 (011) | dab 11 (011) |     DAB bc (0bc)
--------------------------------------------------------------------------------

                              WRITE X REGISTER
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
             |              |   X Register : _______IN_RAM_______
             |              |         byte : 66 55 44 33 22 11 00
             |              |                ab cd ef gh ij kl mn
             |              |     __ON_TAPE___
DAB 00 (000) | dab 00 (000) |     DAB mn (0mn)
DAB 00 (000) | dab 00 (000) |     DAB la (0la)
DAB 00 (000) | dab 00 (000) |     DAB 00 (000)
DAB 00 (000) | dab 00 (000) |     DAB jk (0jk)
DAB 00 (000) | dab 00 (000) |     DAB hi (0hi)
DAB 00 (000) | dab 00 (000) |     DAB fg (0fg)
DAB 00 (000) | dab 00 (000) |     DAB de (0de)
DAB 00 (000) | dab 00 (000) |     DAB bc (0bc)
--------------------------------------------------------------------------------

                              WRITE L REGISTER
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
             |              |   L Register : _______IN_RAM_______
             |              |         byte : 66 55 44 33 22 11 00
             |              |                ab cd ef gh ij kl mn
             |              |     __ON_TAPE___
DAB 00 (000) | dab 00 (000) |     DAB mn (0mn)
DAB 00 (000) | dab 00 (000) |     DAB la (0la)
DAB 00 (000) | dab 00 (000) |     DAB 00 (000)
DAB 00 (000) | dab 00 (000) |     DAB jk (0jk)
DAB 00 (000) | dab 00 (000) |     DAB hi (0hi)
DAB 00 (000) | dab 00 (000) |     DAB fg (0fg)
DAB 00 (000) | dab 00 (000) |     DAB de (0de)
DAB 00 (000) | dab 00 (000) |     DAB bc (0bc)
--------------------------------------------------------------------------------

                              WRITE tbd REGISTER
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
             |              |   ? Register : _______IN_RAM_______
             |              |         byte : 66 55 44 33 22 11 00
             |              |                ab cd ef gh ij kl mn
             |              |     __ON_TAPE___
DAB 53 (053) | dab 53 (053) |     DAB    (0  )
DAB 40 (040) | dab 40 (040) |     DAB    (0  )
DAB 00 (000) | dab 00 (000) |     DAB    (0  )
DAB 35 (035) | dab 35 (035) |     DAB    (0  )
DAB 05 (005) | dab 05 (005) |     DAB    (0  )
DAB 00 (000) | dab 00 (000) |     DAB    (0  )
DAB 00 (000) | dab 00 (000) |     DAB    (0  )
DAB 00 (000) | dab 00 (000) |     DAB    (0  )
--------------------------------------------------------------------------------

                              WRITE tbd REGISTER
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
             |              |   ? Register : _______IN_RAM_______
             |              |         byte : 66 55 44 33 22 11 00
             |              |                ab cd ef gh ij kl mn
             |              |     __ON_TAPE___
DAB 00 (000) | dab 00 (000) |     DAB    (0  )
DAB 00 (000) | dab 00 (000) |     DAB    (0  )
DAB 00 (000) | dab 00 (000) |     DAB    (0  )
DAB 00 (000) | dab 00 (000) |     DAB    (0  )
DAB 00 (000) | dab 00 (000) |     DAB    (0  )
DAB 00 (000) | dab 00 (000) |     DAB    (0  )
DAB 00 (000) | dab 00 (000) |     DAB    (0  )
DAB 00 (000) | dab 00 (000) |     DAB    (0  )
--------------------------------------------------------------------------------

                              WRITE tbd REGISTER
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
             |              |   ? Register : _______IN_RAM_______
             |              |         byte : 66 55 44 33 22 11 00
             |              |                ab cd ef gh ij kl mn
             |              |     __ON_TAPE___
DAB 00 (000) | dab 00 (000) |     DAB    (0  )
DAB 00 (000) | dab 00 (000) |     DAB    (0  )
DAB 00 (000) | dab 00 (000) |     DAB    (0  )
DAB 00 (000) | dab 00 (000) |     DAB    (0  )
DAB 00 (000) | dab 00 (000) |     DAB    (0  )
DAB 00 (000) | dab 00 (000) |     DAB    (0  )
DAB 00 (000) | dab 00 (000) |     DAB    (0  )
DAB 00 (000) | dab 00 (000) |     DAB    (0  )
--------------------------------------------------------------------------------

                              WRITE tbd REGISTER
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
             |              |   ? Register : _______IN_RAM_______
             |              |         byte : 66 55 44 33 22 11 00
             |              |                ab cd ef gh ij kl mn
             |              |     __ON_TAPE___
DAB 00 (000) | dab 00 (000) |     DAB    (0  )
DAB 00 (000) | dab 00 (000) |     DAB    (0  )
DAB 00 (000) | dab 00 (000) |     DAB    (0  )
DAB 00 (000) | dab 00 (000) |     DAB    (0  )
DAB 00 (000) | dab 00 (000) |     DAB    (0  )
DAB B0 (0B0) | dab b0 (0b0) |     DAB    (0  )
DAB 00 (000) | dab 00 (000) |     DAB    (0  )
DAB 64 (064) | dab 64 (064) |     DAB    (0  )
--------------------------------------------------------------------------------

                              WRITE tbd REGISTER
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
             |              |   ? Register : _______IN_RAM_______
             |              |         byte : 66 55 44 33 22 11 00
             |              |                ab cd ef gh ij kl mn
             |              |     __ON_TAPE___
DAB 00 (000) | dab 00 (000) |     DAB    (0  )
DAB 00 (000) | dab 00 (000) |     DAB    (0  )
DAB 00 (000) | dab 00 (000) |     DAB    (0  )
DAB 48 (048) | dab 48 (048) |     DAB    (0  )
DAB C0 (0C0) | dab c0 (0c0) |     DAB    (0  )
DAB 13 (013) | dab 13 (013) |     DAB    (0  )
DAB 00 (000) | dab 00 (000) |     DAB    (0  )
DAB 00 (000) | dab 00 (000) |     DAB    (0  )
--------------------------------------------------------------------------------

                              WRITE tbd REGISTER
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
             |              |   ? Register : _______IN_RAM_______
             |              |         byte : 66 55 44 33 22 11 00
             |              |                ab cd ef gh ij kl mn
             |              |     __ON_TAPE___
DAB 56 (056) | dab 56 (056) |     DAB    (0  )
DAB 40 (040) | dab 40 (040) |     DAB    (0  )
DAB 00 (000) | dab 00 (000) |     DAB    (0  )
DAB 7D (07D) | dab 7d (07d) |     DAB    (0  )
DAB C5 (0C5) | dab c5 (0c5) |     DAB    (0  )
DAB C3 (0C3) | dab c3 (0c3) |     DAB    (0  )
DAB 00 (000) | dab 00 (000) |     DAB    (0  )
DAB CA (0CA) | dab ca (0ca) |     DAB    (0  )
--------------------------------------------------------------------------------

                              FLUSH BUFFER 0 TO TAPE
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
DDL 08 (4A8) | ddl 08 (4a8) | flush buffer to tape and close record
RFC    (500) | rfc    (500) | ready for command
--------------------------------------------------------------------------------

                              GET DEVICE STATUS
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
TAD 01 (441) | tad 01 (441) | first device is now the loop talker
RFC    (500) | rfc    (500) | ready for command
-------------+--------------+---------------------------------------------------
SST    (561) |              | talker interface status request
             | dab 00 (000) | status = 0h (no error)
DAB 00 (000) |              |
             | eto    (540) | end of transmission ok
--------------------------------------------------------------------------------

                              UNTALK
--------------------------------------------------------------------------------
41 _to_ TAPE | TAPE _to_ 41 | Description
-------------+--------------+---------------------------------------------------
UNT    (45F) | unt    (45f) | first device is no longer a talker (untalk)
RFC    (500) | rfc    (500) | ready for command
----------------------------------------------------------------------------‑--