PDP-8 mystery data, 8 values, LCD bit pattern?

On my code I found a section which is obviously data (not detected as such). So I don’t know how/from where these are called.

There are 8 octal values 10, 4, 200, 1000, 40, 100, 20, 400. And 2 words before each. All values are one bit data. 3x 8 bit range, then 1x12 bit. then again. Below is the data in palbart and a bit pattern of the 8 values.

The preceding words are high, maybe 2s complement. Probably no addresses. Almost all 7xxx. 20 has 7000 and 5000.

8x1 bit could be anything. An ASCII character, but would be too much data. I have 8 main instructions on the Festo device. But I assume these are bit patterns for the LCD display. But probably there are LCD driver ICs. I have a dot between display sections. And why this strange order? Any ideas?

      addr   word
 2443 04541  1410  D04541, 1410
 2444 04542  7640          SZA CLA 
 2445 04543  5336          JMP L04536
 2446 04544  1410          TAD I P00010
 2447 04545  3134          DCA P00134
 2448 04546  5020          JMP P00020           code?
 2449 04547  7774          SNA SPA SZL CLA OSR  --- start? for 10-
 2450 04550  7744          SZA SMA CLA OSR 
                                                                
 2451 04551  0010          AND P00010   ---------10
 2452 04552  7770          SNA SPA SZL CLA 
 2453 04553  7750          SNA SPA CLA 
 2454 04554  0004          AND D00004
 2455 04555  7777          7777
 2456 04556  7740          SZA SMA CLA 
 2457 04557  0200          AND P04400
 2458 04560  7777          7777
 2459 04561  7701          7701
 2460 04562  1000          TAD S00000
 2461 04563  7700          SMA CLA 
 2462 04564  7700          SMA CLA 
 2463 04565  0040          AND D00040
 2464 04566  7700          SMA CLA 
 2465 04567  7600  D04567, 7600
 2466 04570  0100          AND P00100
 2467 04571  7000          NOP
 2468 04572  5000          JMP S00000
 2469 04573  0020          AND P00020
 2470 04574  7700          SMA CLA 
 2471 04575  7400          7400                  
 2472 04576  0400          AND I S00000      -end ??
 2473 04577  0000          AND S00000     -empty?
 2474              
 2475        4600          *4600 ----------new page 
 2476 04600  0000  D04600, 0000
 2477 04601  2000          ISZ S00000
 2478 04602  1103          TAD D00103
 2479 04603  3054          DCA L00054
 2480 04604  1104          TAD D00104
             _ _ _X_ _ _  10 (hex 8)
             _ _ _ _X_ _   4
            X_ _ _ _ _ _ 200 (80)
 _ _X _  _ _ _ _ _ _ _ _  - 1000 (200 hex, 512 dec)
           _ _X_ _ _ _ _  40 (20) space?
           _X_ _ _ _ _ _ 100  (40)
           _ _ _X_ _ _ _  20 (10)
 _ _ _X  _ _ _ _ _ _ _ _  - 400  (100 hex, 256 dec)

It’s an odd finding, to be sure. Nothing springs to mind.

Most likely this could be something with the baud settings.

I have 4 baud settings (110, 300, 600 and 1200) for each of the 2 I/O devices (TTY, audio).
When importing or exporting one has to add a parameter 0-7 for device and speed.

On the DecMate it’s a bit different, 2 words, one 6xxx IOT and followed by a word with the setting. My device is different.

Can’t be something with the keyboard, as I have more than 8 keys on either section.
But could be another setting, maybe data for audio output or DIP switch setting but I think that is unlikely.
Maybe it’s even for character encoding?

But probably this will remain a mystery and I have to give up.

I now found data at 742-777 which is definitely the table (sorted by numbers) of the “functional units” what are the main parts of the Festo instructions (last 4 digits of a 6 digit instruction). I wondered why after 6023 there is 6025 and after 6133 there’s 0134. The original units are different as most starting with 00 and it’s only half of the word. So that’s why I haven’t found this earlier.

The first is 0010 (PTE) what is 0410 here. The first 2 digits are obviously the allowed operations (what is digit 2 of the instruction). Units 0-3 are missing here (part of special instructions NUW, OR, brackets). 0010 (PTE programm part end) is 0410. The only allowed operation is SET what is bit 3 = 04here.

THEN SET PTE =030010
Units 11, 16 have 74 which have 4 allowed operations. 0050 (display) is 1050. Only allowed is DEL what is 10 (bit 2).
After Units 71,77 there are obviously some units 01xx-04xx missing. 2001, 2002, 6003 are probably units 1xxx-3xxx. At 777 is 0 = empty. At 1000 there’s a new page with other data.

The original table in the manual has allowed instructions as bits. 0030 is 0130 here. 01 stands for the only allowed operation bit 5 (MIV=with contents of), so bit 5 (012345) is the LSB what is 1 here. Operation 4 (02 here) like 0251-0254 is the only allowed operation (LOAD) for the 4 display sections.
I now have to check all this within the code. This also confirms that ROM combination.

 unit   allowed- Mnemonic    
 0000 0,1,2,3,4  NUW
 0001 
 0010       3    PTE (3=SET) 
 0030          5 DAU 
 
        Addr word
 
  492 00740  0063  D00740, 0063
  493 00741  6600          6600
  494 00742  0410          AND I P00010
  495 00743  7411          7411
  496 00744  7416          SKP OSR HLT
  497 00745  6021          6021
  498 00746  6022          6022
  499 00747  6023  P00747, 6023
  500 00750  6025          6025
  501 00751  6026          6026
  502 00752  0130          AND D00130
  503 00753  6131          6131
  504 00754  6132          6132
  505 00755  6133          6133
  506 00756  0134  D00756, 0134
  507 00757  0135          AND D00135
  508 00760  0340          AND D00740
  509 00761  1050          TAD L00050
  510 00762  0251          AND D00651
  511 00763  0252          AND L00652
  512 00764  0253          AND D00653
  513 00765  0254          AND D00654
  514 00766  0457          AND I P00057
  515 00767  0460          AND I P00060
  516 00770  0461          AND I P00061
  517 00771  0470          AND I P00070
  518 00772  0471          AND I P00071
  519 00773  7177          CLL CML RTL RTR CIA
  520 00774  2001          ISZ P00001
  521 00775  2002          ISZ D00002
  522 00776  6003          6003
  523 00777  0000          AND S00000
  524              
  525        1000          *1000
  526 01000  4017  P01000, L04017
  527 01001  0014  D01001, 0014

The purpose of the table of (~30) functional units is probably just the syntax check. Or maybe part of the printout.

I haven’t found out yet how the table is accessed. There is no direct TAD neither from top nor below. Maybe relocated or calculated. But I think there’s data earlier and after that.

I’m quite sure, that directly after that between 1000-2000 there’s another large table about what each unit can do or what to print to the display. There are sections of different length separated by 4017 (would be JMS 17+1). The shortest one just has 3 words. The units of the 4 display sections (at 1546 and includes the fixed LCD values). Either these sharing one section or more likely there are some missing and only units with 2 digits, up to 77. The last 3 or 4 units of the 1st table could be the special instructions, missing here. The last word of each section could be an address on where to continue.

Most or all words are values, not instruction. A least the first ones probably bit patterns. Maybe all are microcodes. Note that these instructions are for the PLC. Some instructions are same or similar. See 3rd and 5th. 4th differs by 100. And check the last words of section 2. 1101 +3x 1102 interrupted by one word 3121, 3120, 3112, 3113. Often, 2 words belong together.

 01000  4017   O    | a1000,   JMS   C17    1st unit PTE
 01001  0014  @L    | a1001,   AND   M14    Programmteilende
 01002  1123  IS    | a1002,   TAD   M123   
 01003  6207  1G    | a1003,   IOT   0207
 01004  1266  J5    | a1004,   TAD   M1066  
 01005  4557  %.    | a1005,   JMS I C157   
 01006  1000  H@    | a1006,   TAD   M0     
 01007  3020  XP    | a1007,   DCA   M20   
 
 01010  4017   O    | a1010,   JMS   C17    2nd unit ASA
 01011  1350  K(    | a1011,   TAD   M1150  Alle Satzzeiger 
 01012  1123  IS    | a1012,   TAD   M123   
 01013  6107  0G    | a1013,   IOT   0107
 01014  1266  J5    | a1014,   TAD   M1066  
 01015  4563  %2    | a1015,   JMS I C163   
 01016  7500  <@    | a1016,   SMA
 01017  3020  XP    | a1017,   DCA   M20    
 01020  4023   S    | a1020,   JMS   C23    
 01021  5152  )*    | a1021,   JMP   J152   
 01022  4023   S    | a1022,   JMS   C23    
 01023  1071  H8    | a1023,   TAD   M71    
 01024  7510  <H    | a1024,   SPA
 01025  5723  .S    | a1025,   JMP I J1123  
 01026  1101  IA    | a1026,   TAD   M101   -
 01027  3121  YQ    | a1027,   DCA   M121   
 01030  1102  IB    | a1030,   TAD   M102   x
 01031  3120  YP    | a1031,   DCA   M120   
 01032  1102  IB    | a1032,   TAD   M102   x
 01033  3112  YJ    | a1033,   DCA   M112   
 01034  1102  IB    | a1034,   TAD   M102   x
 01035  3113  YK    | a1035,   DCA   M113   
 ..
 01747  4017   O    | a1747,   JMS   C17    SE8+SE9 ? (or SAZ nn
 01750  7777  >>    | a1750,   OPR   0777
 01751  2556  U.    | a1751,   ISZ I M156   
 01752  2712  WJ    | a1752,   ISZ I M1712