Här kommer nåt ganska skojigt!
Jag har pillat på en Zusie-simulator, byggd i javascript.
Den följer maskinens faktiska uppbyggnad så nära jag kunde.
Den utgår t.ex. från råa, kompilerade mikrokoden för att generera alla
kontrollsignaler, precis som den riktiga maskinen. (jag har bara kopierat mikrokoden till en js-array).
Dessutom har simulatorn en inbyggd assembler som förstår samma opcoder som den
"riktiga" DOS-assemblern som jag använder annars.
En rejält tidig version ligger på
http://www.nablaman.com/relay/sim/zusie.html
Det mesta ska nog funka, förutom condition code-registret som jag inte orkat koda ännu.
Så villkorliga hopp funkar inte.
Och estetiskt ser programmet för jäkla fult ut, men det får fixas nån gång
Tanken är att den vänstra kolumnen ska svara mot kortens fysiska placering på Zusie.
Den läser ett par js-filer, som nog kan vara intressanta.
http://www.nablaman.com/relay/sim/mnem.js
Detta är maskinens opcoder, och för närvarande all dokumentation som finns för dessa

Fast de flesta borde vara självförklarande.
http://www.nablaman.com/relay/sim/mc.js
Den råa mikrokoden.
http://www.nablaman.com/relay/sim/ctrl.js
Maskinens styrsignaler och hur de mappar till mikrokoden.
Alla dessa filer är automatgenererade från mikrokods-källkoden
som jag jobbar med på min DOS-dator.
Jag ska givetvis göra dessa sourcar tillgängliga senare
Dessutom finns
http://www.nablaman.com/relay/sim/zusiesim.js
som är källkoden till själva simulatorn, om nån är intresserad
Några kul program som ni kan testa:
Följande program är det "stack test" program som jag har använt i flera youtube-filmer:
Kod: Markera allt
ldl->b b11110000
ldl->c b00001111
pushb
pushc
pop->a
pop->a
Här är ett kul program som utnyttjar flipdot-displayen
OBS! För att detta ska funka så måste ni klicka i bits 11, 10, 9, 8 i XY-registret
innan ni kör programmet. Detta för att sätta basadressen till flipdoten.
Kod: Markera allt
ldl->c b10101010 % Ladda C-registret med 10101010
:again
notc->b % Lägg NOT C i B
movb->c % Och lägg tillbaka B i C
wrxy<-c % Skriv värdet i C till minnespositionen i XY (dvs till flipdoten)
incxy % Öka XY
sbr again % Kör igen
Gör så här:
Skriv programmet i textrutan och tryck Assemble. Då kommer maskinen att resettas (vilket också sker om man
trycker på knappen Cycle 24V) och sen assembleras programmet och skrives till minnesadress 0x8000 och framåt, precis
som den riktiga Zusie skulle gjort.
Sen kan man köra programmet antingen genom att singlestega med Step-knappen, eller genom att trycka Autorun.
Hastigheten är justerbar.
Det är endast testat på Firefox 4. Säkerligen har jag gjort en massa webbprogrammeringsmässiga idiotier -
jag är en hederlig C-programmerare egentligen
Ha så kul!!!
