Intersil 6100 Cross Assembler ASxxxx

Searching for a specific IOT instruction I found this cross assembler package, with 6100 support added or updated in 2023.

There’s also a fork on Github

The input is a specific .asm file (so not the usual .pal file, there’s just one sample file with all instructions, string output etc). The output is in .s19 format and .lst, .map and other files.

I have to test it with some few lines of my code to better understand the specific 6100 instructions.

I’m currently focussed on the 73 84 combination (2nd half first) and found some more data tables.
Elsewhere I found another Sixbit encoding/addressing. - - -xxx xxx- - - , so 6 bits in the middle of the 12 bits. I try to convert to that. Unclear how that is stored in 16 bits. Probably LSB.

I found an 6100 Assembler called PALX here. In folder ossmb is a bin, pa and lst file. The PAL.EXE works (runs under Win32/64 bit but needs 32 bit Cygwin (2 dll files). PALX is also on the SBC6120 tools.

Assembling works but starts/moves addr 0 to 200 and quits at 7647 (real 7407) as the symbol table is full, relative addresses remain. Although an error it has 2 passes and outputs a bin file (what is different/incomplete). At least I know the behavior of the 6100 RTL/RTR instructions and have some commented sources.

Very interesting also the SMAL8 assembler there. Here is a text shown. Obviously same file in PALX not showing text. Not sure why. 1720->5760, so +4040 (A=01 /41), so I have to substract 40. (But only for text). I wrote a c script including printf(“%c”, temp+32); (instead of temp+64) resulting in an interesting ASCII file. None of my missing mnemonics but some pattern with underlines, could be an output for LCD or printer. But maybe just a bug in converting SIXBIT. I also now see the text alignment. Not backwards or just the right half of the word (vertically like usual eg. in CHEKMO).

ossmb.bin doesn’t work maybe due to missing external input devices (I haven’t checked all emulators).

Palbart and Macro8 (not 6100 specific) also showing symbol table and cross ref list. ossmb/PALX also a memory list.

Some early assemblers (mainly running under PDP-8) should also handle 6100 like PAL-II but probably that is a spelling error and is in fact PAL-III. Another Win Cross assembler with 6100 support is Macro Assembler {AS} V1.42 (‘‘ACASM’’).

SMAL8 assembler SMAL8.EXE ->.o ->o2bin ->online emu to dump this listing

 02011  4263  "2    | a2011,   JMS   C2063  <- JMS TERR
 02012  1720  OP    | a2012,   TAD I M2120  <- SIXBIT text: Open Failed
 02013  0516  EN    | a2013,   AND I M116   
 02014  4006   F    | a2014,   JMS   C6     
 02015  0111  AI    | a2015,   AND   M111   
 02016  1405  LE    | a2016,   TAD I M5     
 02017  0400  D@    | a2017,   AND I M0     <- @ end text
 02020  4773  `:    | a2020,   JMS I C2173

PALX 6100 compiler PALX - IM6100/HM6120 Assembly Language V3.32 RLA 08-MAR-12 PALX.EXE

 02011  4263  "2    | a2011,   JMS   C2063  <- JMS
 02012  5760  ./    | a2012,   JMP I J2160  <-     NOT SIXBIT 
 02013  4556  %.    | a2013,   JMS I C156   
 02014  0046  @&    | a2014,   AND   M46    
 02015  4151  !)    | a2015,   JMS   C151   
 02016  5445  ,%    | a2016,   JMP I J45    
 02017  4400  $@    | a2017,   JMS I C0     
 02020  4773  `:    | a2020,   JMS I C2173 (PAL)
CLERR: JMS TERR ; Close failure

ossmb.lsr (note 12007=2007)
341 12007 7700 SMA CLA ; Error. If AC < 0, it was fatal
342 12010 5220 JMP OK ; Non file structured output
343 12011 4263 JMS TERR
345 12020 4773 OK: JMS @[ICHAR] ; Read a character