The Hillibilly1 Assembler
-The DOS binary and potentially source code will be provided at a later date
-The program's help output provides some usage info and the assembler -> machine code mappings reproduced here:
--Relay Computer Assembler: Ver. Beta 0.4.3 - -Valid assembler codes: - -ADD : 22 00100010 -AND : 26 00100110 -BRA : 60 01100000 -BRN : 48 01001000 -BRNN : 54 01010100 -BRNO : 5c 01011100 -BRNP : 50 01010000 -BRNZ : 4c 01001100 -BRO : 58 01011000 -BRP : 44 01000100 -BRZ : 40 01000000 -DEF : -EQU : -HALT : 08 00001000 -INCB,A : 2c 00101100 -INCB,C : 2e 00101110 -LDAA : a0 10100000 -LDAB : a1 10100001 -LDAC : a2 10100010 -LDDA : a8 10101000 -LDDB : a9 10101001 -LDDC : aa 10101010 -LDIA : 98 10011000 -LDIB : 99 10011001 -LDIC : 9a 10011010 -MOVA,B : c1 11000001 -MOVA,C : c2 11000010 -MOVA,MH : c3 11000011 -MOVA,ML : c4 11000100 -MOVAD+,PC: ec 11101100 -MOVB,A : c8 11001000 -MOVB,C : ca 11001010 -MOVB,MH : cb 11001011 -MOVB,ML : cc 11001100 -MOVC,A : d0 11010000 -MOVC,B : d1 11010001 -MOVC,MH : d3 11010011 -MOVC,ML : d4 11010100 -MOVM,PC : de 11011110 -MOVPC,AD+: f5 11110101 -MOVZ,A : f8 11111000 -MOVZ,B : f9 11111001 -MOVZ,C : fa 11111010 -MOVZ,MH : fb 11111011 -MOVZ,ML : fc 11111100 -NOP : 00 00000000 -NOTA,B : 29 00101001 -NOTA,C : 2a 00101010 -ORG : -RESET : 04 00000100 -ROLB,A : 34 00110100 -ROLB,C : 36 00110110 -RORA,B : 31 00110001 -RORA,C : 32 00110010 -STAA : 84 10000100 -STAB : 8c 10001100 -STAC : 94 10010100 -STAZ : bc 10111100 -STDA : 85 10000101 -STDB : 8d 10001101 -STDC : 95 10010101 -WAIT : 0c 00001100 -\ : -- -
Here is an example 16 bit adder program for the DAVIAC-1:
--\ RAM Variables - ORG 0800H \RAM at 0800h - DEF X_Lo *1 - DEF X_Hi *1 - DEF Y_Lo *1 - DEF Y_Hi *1 - DEF Z_Lo *1 - DEF Z_Hi *1 - DEF Carry_Lo *1 - DEF Carry_Hi *1 - ORG 0400h -\ -\ load some numbers -\ -\ Put numbers in X and Y at 0800H by hand from Control Panel. -\ -\ -\ 16bit ADD X + Y -> Z + Carry_Hi -\ - -\ - NOP -ADD16: - WAIT - STAZ Carry_Lo \Clear lo carry - LDAA X_Lo - LDAB Y_Lo - ADD \ADD lo bytes - STAC Z_Lo \store partial sum - BRNO ADD16J1: \test OVF bit to see if Carry required - LDIA 01h \must be OVF, set a Carry_Lo - STAA Carry_Lo -ADD16J1: - STAZ Carry_Hi \Clear hi carry - LDAA X_Hi - LDAB Y_Hi - ADD \ADD hi bytes - STAC Z_Hi \store hi partial sum - BRNO ADD16J2: - LDAA 01h \might be a hi carry - STAA Carry_Hi -ADD16J2: - MOVC,A - LDAB Carry_Lo \include any lo carry - ADD - STAC Z_Hi - BRNO ADD16J3: - LDAA 01h - STAA Carry_Hi \which may trigger a hi carry -ADD16J3: -\ - BRA ADD16: -\ -\ end of ADD16p -- -