SicTools je zbirnik in simulator za računalnik SIC/XE (dokumentacija, primeri programov). Za uporabo rabimo OpenJDK ali katero drugo implementacijo Jave.

Simulator

SicTools implementira navidezni stroj za računalnik SIC/XE s podporo za vhodno/izhodne (angl. I/O) in pomnilniške (angl. memory-mapped) naprave.

Datoteko z izvorno ali objektno kodo lahko v SicTools naložimo z ukazom

java -cp sictools.jar sic.Sim primer.asm  # prevede in naloži izvorno kodo v zbirniku
java -cp sictools.jar sic.Sim primer.obj  # naloži že prevedeno kodo

Program lahko zaženemo tudi brez grafičnega vmesnika z ukazom

java -cp sictools.jar sic.VM primer.obj

SIC/XE podpira 256 I/O naprav, ki jih uporabljamo z ukazi RD, WD in TD. SicTools naprave 0, 1 in 2 rezervira za standardni vhod, izhod in napako. Vsebino ostalih naprav bere in piše v datoteke v delovnem imeniku, npr. 1A.dev za napravo 1A.

Tipkovnica je pomnilniška naprava, ki vrednost zadnje tipke zapisuje na naslov 0xC000.

Tekstovni zaslon izrisuje črke (ASCII), ki jih zapišemo v tabelo na pomnilniškem naslovu 0xB800. Privzeta velikost zaslona je 80×25. Pomnilniški naslov vsebine celice na (x, y) izračunamo z

address = origin + y*cols + x

Grafični zaslon izrisuje piksle, ki jih zapišemo v tabelo na pomnilniškem naslovu 0xA000. Privzeta velikost zaslona je 64×64. Barvo vsakega piksla določa en bajt. Pomnilniški naslov in barvo piksla z vrednostjo iirrggbb na (x, y) izračunamo z

address = origin + y*cols + x
red, green, blue = (rr, gg, bb) * 20*(ii+1)

Zbirnik

Program primer.asm prevedemo v strojno kodo z ukazom

java -cp sictools.jar sic.Asm primer.asm

ki objektno kodo zapiše v datoteko primer.obj. Poleg tega zapiše disassembly v primer.lst, simbole in druge informacije pa v primer.log. Program lahko podamo tudi na standardnem vhodu:

java -cp sictools.jar sic.Asm <<EOF
start   LDA #6
        LDB #9
        MULR A,B
EOF

Več datotek s strojno kodo a.obj, b.obj in c.obj povežemo (angl. link) v izhodno datoteko output.obj z ukazom

java -cp sictools.jar sic.Link -o output.obj -m main a.obj b.obj c.obj

Vse opcije za zbirnik dobimo z -help. Uporabna je opcija -obj-slack, ki med posamezne strojne ukaze vstavi presledek za lažje branje.

Zadnja sprememba: ponedeljek, 13. oktober 2025, 11.03