|
|
DataMuseum.dkPresents historical artifacts from the history of: RC4000/8000/9000 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RC4000/8000/9000 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 91383 (0x164f7)
Description: Bits:30000868 GIER SIMULATOR GIER980ATXT
Types: 8-hole paper tape, TextFileEvenParity
;\f
R: 0,0,0,0 ;
M: 0,0,0,0 ;
F: 0,0,0,0 ;
ybes: 0 ;
0 ;
by: 0 ;
bl: 0 ;
bsr: 0 ;
fejl: 1<8 ;
r1: 0 ;
s1: 0 ;
in: 0 ;
kbes: 0 ;
0 ;
0 ;
tkr: 0 ;
g: 0 ;
ta: 0 ;
svar: 0,0,0,0,0,0 ;
kbuf: 0 ;
vbuf: 0 ;
ybuf: 0 ;
;\f
o0: qq, qq ;
zq, zq ;
ar, ardm ;
sr, srdm ;
an, andm ;
sn, sndm ;
ac, acdm ;
sc, scdm ;
mb, mbdm ;
ab, abdm ;
mt, mtdm ;
mk, mkdm ;
ml, mldm ;
dk, dkdm ;
dl, dldm ;
nk, nkdm ;
nl, nldm ;
hr, hrdm ;
tl, tldm ;
ck, ckdm ;
cl, cldm ;
gr, grdm ;
ga, gadm ;
gt, gtdm ;
tk, tkdm ;
ca, cadm ;
gm, gmdm ;
pm, pmdm ;
xr, xr ;
gi, gidm ;
ps, psdm ;
pp, ppdm ;
pa, padm ;
pt, ptdm ;
hk, hkdm ;
pi, pidm ;
is, isdm ;
it, itdm ;
cm, cmdm ;
bt, btdm ;
ns, nsdm ;
nt, ntdm ;
gp, gpdm ;
nc, ncdm ;
il, il ;
us, us ;
gg, ggdm ;
gc, gc ;
pc, pc ;
bs, bsdm ;
hs, hsdm ;
vy, vydm ;
lk, lkdm ;
sk, skdm ;
gk, gkdm ;
vk, vkdm ;
hv, hvdm ;
zj, zj ;
sy, sydm ;
ly, lydm ;
hh, hhdm ;
gs, gsdm ;
zl, zl ;
ud, uddm ;
;\f
c0: 0,r.4096 ;
;\f
; Den adresseberegning, der indleder enhver ordres udførelse,
;kan i ALGOL (dog uden alle erklæringerne) beskrives således:
;
;Stop:
; comment: Her stopper GIER både efter en ZQ-ordre og ved
; tryk på Normal Stop.
; Det er iøvrigt også på dette trin at et tryk på
; HP-knappen afbryder kørsel;
;Ny ordre:
; r2:= r1;
; s2:= s1;
;
; if pos(40,r2) then
; begin
; if -, højrehalvord then
; begin
; Fvopr:= vopr(r2);
; Hadr:= adr(r2);
; r modif:= pos(28,r2);
; s modif:= pos(29,r2);
; parentes:= pos(27,r2);
; højrehalvord:= true
; end
; else
; begin
; Fvopr:= hopr(r2);
; Hadr:= tæl(r2);
; r modif:= pos(38,r2);
; s modif:= pos(39,r2);
; parentes:= pos(37,r2);
; højrehalvord:= false;
; r1:= r1 + 1
; end;
; Fhopr:= 0;
; Ftæl:= 0
; end
; else
; begin
; Fopr:= opr(r2);
; Hadr:= adr(r2);
; Ftæl:= tæl(r2);
; r modif:= pos(28,r2);
; s modif:= pos(29,r2);
; parentes:= pos(27,r2);
; højrehalvord:= false;
; r1:= r1 + 1;
; if -, indikatorbetingelse then goto Ny ordre
; end;
;
;Adresseberegn:
; if parentes then goto Modif;
; if statisk operation then goto Modif;
; adressetal(r2):= Hadr:= Hadr + Ftæl;
;
;Modif:
; if s modif and -, r modif then
; begin
; Hadr:= Hadr + s2;
; s2:= tæl(s2)
; end;
; if r modif and -, s modif then Hadr:= Hadr + r2;
; if r modif and s modif then Hadr:= Hadr + p;
; if parentes then
; begin
; r2:= Hadr;
; Hadr:= adr(r2);
; r modif:= pos(28,r2);
; s modif:= pos(29,r2);
; parentes:= pos(27,r2);
; goto Adresseberegn
; end;
;
; Herefter påbegyndes udførelsen af selve operationen, og den
;resulterende adresse c er netop c = Hadr, mens D-adressen er
;Dadr = r2.
; Hvor tælletallet benyttes under grundoperationens udførelse,
;tages det fra F-registerets tællepositioner Ftæl.
; Ved D-mærkede aritmetiske operationer beregnes c med 11 bits
;(evt. med overløb), som indgår i operationen.
;
;
stop: rmo ra,re ;
and =-1 ;
snz ra ;
bru k+4 ;
lda = 0 ;
imo = fejl ;
rin re,re ;
lld 8 ;
tmbz 4,by ;
sabz 14 ;
snz ra ;
rmo rl,rp ;
ldx = svar ;
lde æ vbuf ;
snz re ;
bru k+2 ;
trap 4 ;
lde æ kbuf ;
snz re ;
bru k+9 ;
trap 4 ;
lda æ svar ;
ior æ fejl ;
sta = fejl ;
lde = 0 ;
ste = kbuf ;
ste = vbuf ;
lde = 1 ;
ste = ybes ;
ldx = ybes ;
trap 3 ;
trap 4 ;
trap 6 ;
a: dld æ fejl ;
rmo re,rb ;
sze ra ;
brl stop ;
rmo rb,rs ;
ldm æ s1 ;
ais: lda b.c0+3 ;
tabo 14 ;
bru (a0) ;
lde = 3 ;
ran ra,re ;
tmbz 0,in ;
bru ahh ;
smbo 0,in ;
lda b.c0+2 ;
dst = F+2 ;
ldx b.c0 ;
bru a1 ;
a0: ahel ;
ahh: smbz 0,in ;
reo re,ra ;
dst = F+2 ;
ldx b.c0+1 ;
lda æ r1 ;
add = 4 ;
sabz 3 ;
sta = r1 ;
lda b.c0+2 ;
a1: lde = 0 ;
ste = F+1 ;
brl am0 ;
ait1: tabz 10 ;
brl snm ;
lra 5 ;
and = 126 ;
lde æ= 4092 ;
rex ra,rb ;
brl (b.o0) ;
bru a ;
bru a ;
am: sze re ;
tabz 11 ;
bru am0 ;
tabz 4 ;
tabz 6 ;
bru k+3 ;
tabo 7 ;
bru am0 ;
rex ra,rx ;
rad re,ra ;
lla 4 ;
ara 4 ;
sta b.c0 ;
rex ra,rx ;
am0: tabz 13 ;
bru am2 ;
tabz 12 ;
rad rb,rx ;
am1: tabo 11 ;
rmo rl,rp ;
and æ= 4064 ;
rex ra,rx ;
and æ= 4092 ;
rmo ra,rb ;
lda b.c0+2 ;
and = 28 ;
ror rx,ra ;
ldx b.c0 ;
rde rl,rp ;
am2: tabo 12 ;
bru am3 ;
rex ra,rx ;
add æ F ;
rex ra,rx ;
bru am1 ;
am3: rad rm,rx ;
rex rm,rx ;
ldx æx+c0+1 ;
rex rm,rx ;
bru am1 ;
amd: sze re ;
tabz 11 ;
bru amd0 ;
tabz 4 ;
tabz 6 ;
bru k+3 ;
tabo 7 ;
bru amd0 ;
rex ra,re ;
lla 4 ;
ara 4 ;
rad ra,rx ;
rmo rx,ra ;
lla 4 ;
ara 4 ;
sta b.c0 ;
rmo re,ra ;
amd0: rmo ra,re ;
tabz 13 ;
bru amd3 ;
tabo 12 ;
bru amd2 ;
rmo rb,ra ;
amd1: lla 4 ;
ara 4 ;
rad ra,rx ;
rmo re,ra ;
amd2: tabo 11 ;
rin rl,rp ;
and æ= 4064 ;
rex ra,rx ;
and æ= 4092 ;
rmo ra,rb ;
lda b.c0+2 ;
and = 28 ;
ror rx,ra ;
ldx b.c0 ;
lde æ F+1 ;
bru amd ;
amd3: tabo 12 ;
bru amd4 ;
lda æ F ;
bru amd1 ;
amd4: rex rb,ra ;
rex rb,rm ;
ldm b.c0+1 ;
rex rb,ra ;
bru amd1 ;
snm: lda æ R+3 ;
and = 3 ;
rmo ra,re ;
lda = 0 ;
dst = R+2 ;
lde = 0 ;
dst = R ;
lda æ F+2 ;
tmbo 15,F+3 ;
rmo rl,rp ;
ste = M ;
rmo rl,rp ;
vxm0: lde æ= ii0 ;
rmo re,rl ;
vxm: tabo 5 ;
bru xm ;
lda æ r1 ;
add = 4 ;
sabz 3 ;
sta = r1 ;
rmo rm,ra ;
xm: tabo 4 ;
rmo rl,rp ;
lda æ R+3 ;
lde =-4 ;
ran ra,re ;
and = 3 ;
ior æ M+3 ;
sta = R+3 ;
lda æ R+2 ;
ldx æ M+2 ;
dst = M+2 ;
stx = R+2 ;
dld æ R ;
lla 4 ;
ara 4 ;
ldx æ M+1 ;
stx = R+1 ;
ldx æ M ;
stx = R ;
dst = M ;
rmo rm,ra ;
rmo rl,rp ;
a2: iln ;
a3: amd ;
a4: am ;
ahel: rmo ra,re ;
lda b.c0+2 ;
dst = F+2 ;
lda b.c0+1 ;
sta = F+1 ;
ait0: smbz 0,in ;
lda æ r1 ;
add = 4 ;
sabz 3 ;
sta = r1 ;
rmo re,ra ;
tabz 7 ;
brl (a2) ;
dld b.c0+1 ;
rex ra,re ;
tmbz 6,F+3 ;
brl (a3) ;
brl (a4) ;
tabz 10 ;
brl snm ;
lra 5 ;
and = 126 ;
tmbz 6,F+3 ;
add = 1 ;
lde æ= 4092 ;
rex ra,rb ;
brl (b.o0) ;
bru im ;
lda æ F+3 ;
rmo ra,rm ;
brl vxm ;
;\f
;IOA OA-bitten får samme indhold som overløbsregisteret har efter
; grundoperationens udførelse:
;
; OA:= if overløb then 1 else 0;
;
;IOB OB-bitten får samme indhold som O-registeret har efter▶90◀ grund-
; operationens udførelse:
;
; OB:= if overløb then 1 else 0;
;
;IOC OA- og OB-bittene får begge samme indhold som O-registeret har
; efter grundoperationens udførelse:
;
; OA:= OB:= if overløb then 1 else 0;
;
; NB! Overløb registreres ved de aritmetiske grundoperationer
; (heri indbefattet skifteoperationer) og disses varianter
; med undtagelse af F-varianten. Det vil sige, at overløbs-
; registeret O bliver 1-stillet, hvis der er overløb i
; resultatat i H-registeret, og nulstillet ellers. Ved alle
; øvrige grundoperationer og varianter er O-registeret
; uændret.
;
;
;IZA OA-bitten 1-stilles, hvis indholdet i R-registeret er 0 efter
; grundoperationens udførelse. Ellers nulstilles OA:
;
; OA:= if R=0 then 1 else 0;
;
;IZB OB-bitten 1-stilles, hvis indholdet i R-registeret er 0 efter
; grundoperationens udførelse. Ellers nulstilles OB:
;
; OB:= if R=0 then 1 else 0;
;
;IZC OA- og OB-bittene 1-stilles begge, hvis indholdet i R-regis-
; teret er 0 efter grundoperationens udførelse. Ellers nulstil-
; les OA og OB:
;
; OA:= OB:= if R=0 then 1 else 0;
;
; NB! R00 er her medregnet.
; Indicering af nulsituationen i R-registeret kan ske i
; forbindelse med med enhver operation.
; Indiceringen sker inden en eventuel X-variants udførelse.
;
;
;ITA TA-bitten 1-stilles, hvis indholdet i H-registeret er negativt
; efter grundoperationens udførelse. Ellers nulstilles TA:
;
; TA:= H00;
;
;ITB TB-bitten 1-stilles, hvis indholdet i H-registeret er negativt
; efter grundoperationens udførelse. Ellers nulstilles TB:
;
; TB:= H00;
;
;ITC TA- og TB-bittene 1-stilles begge, hvis indholdet i H-registeret
; er negativt efter grundoperationens udførelse. Ellers nulstil-
; les TA og TB:
;
; TA:= TB:= H00;
;
; NB! Ved de aritmetiske grundoperationer (samt skifteoperatio-
; ner og enkelte andre) er fortegnet i H-registeret det sam-
; me som resultatets fortegn, og det er således resultatets
; fortegn, der indiceres. Det er nødvendigt at indicere tegnet
; i den ordre, hvor det "opstår", da H-registeret anvendes i
; hver eneste operation.
; Fortegnet aflæses i pos. 00 og er således korrekt selv om
; der er opstået overløb.
; Bemærk iøvrigt forskellen fra indikatordelene LT og NT,
; hvor fortegnet undersøges i R-registeret.
;
;
;IPA PA-bitten får samme indhold som Rpos. 40 har efter grundopera-
; tionens udførelse:
;
; PA:= Rpos(40);
;
;IPB PB-bitten får samme indhold som Rpos. 41 har efter grundopera-
; tionens udførelse:
;
; PB:= Rpos(41);
;
;IPC PA- og PB-bittene får samme indhold som henholdsvis R40 og R41
; har efter grundoperationens udførelse:
;
; PA:= Rpos(40);
; PB:= Rpos(41);
;
;IQA
;IQB
;IQC
;IRA
;IRB
;IRC Har tilsvarende virkninger for Q- og R-bittene.
;
; NB! Operandcellens mærkning registreres, d.v.s. overføres
; til R40,41 ved følgende grundoperationer:
; AR, AN, AC, SR, SN, SC, MK, ML, MT, DK, DL, AB, MB, PM, CM
; samt disses S-, F-, X-, og V-varianter, men ikke D-varian-
; terne.
;
;
;IK
;IKA
;IKB
;IKC Har alle samme virkning, nemlig at indholdet af p-registeret
; og af indikatoren ombyttes efter grundoperationens udførelse.
;
; NB! Indholdet af KA og KB indgår ikke i ombytningen og forbliver
; uændret.
;
;
ii: tabz 7 ;
bru (ii8) ;
tabz 8 ;
bru ii1 ;
ii0: lde = 12 ;
ran ra,re ;
and = 112 ;
lra 4 ;
rad ra,rp ;
bru (ii8) ;
bru ii2 ;
bru ii3 ;
bru ii6 ;
bru ii7 ;
cre 14 ;
cre 14 ;
snz re ;
bru (ii8) ;
sub = 5 ;
rmo ra,rs ;
lda æ R+3 ;
rad rs,rp ;
lla 2 ;
lla 2 ;
lla 2 ;
ran re,ra ;
riv re,rs ;
lde æ in ;
ran rs,re ;
ror re,ra ;
sta = in ;
bru (ii8) ;
ii1: and = 112 ;
sze ra ;
bru (ii8) ;
lda æ R+3 ;
ior = 3 ;
sta = R+3 ;
bru (ii8) ;
ii2: lda æ in ;
rmo ra,rs ;
and æ= 61443 ;= -4093
ior æ F ;
sta = in ;
lda æ= 4092 ;
ran rs,ra ;
sta = F ;
bru (ii8) ;
ii3: snz re ;
bru (ii8) ;
tmbz 4,F+3 ;
bru ii5 ;
lda =-4 ;
and æ R+3 ;
ior æ R+2 ;
ior æ R+1 ;
ior æ R ;
ii4: cpa = 0 ;
cre 8 ;
riv re,ra ;
and æ in ;
sne ;
lde = 0 ;
ror re,ra ;
sta = in ;
bru (ii8) ;
ii5: lda æ M ;
ior æ M+1 ;
ior æ M+2 ;
ior æ M+3 ;
bru ii4 ;
ii6: snz re ;
bru (ii8) ;
cre 8 ;
riv re,ra ;
and æ in ;
tabo 1 ;
lde = 0 ;
ror re,ra ;
sta = in ;
bru (ii8) ;
ii7: snz re ;
bru (ii8) ;
cre 10 ;
riv re,ra ;
and æ in ;
smi rs ;
lde = 0 ;
ror re,ra ;
sta = in ;
bru (ii8) ;
ii8: a ;
;\f
;M Operandcellens mærkebits nulstilles begge. R-registerets mærke-
; bits 1-stilles begge:
;
; pos(40,c):= pos(41,c):= 0;
; Rpos(40):= Rpos(41):= 1;
;
;MA Operandcellens mærkebits sættes lig 10. R-registerets mærkebits
; 1-stilles begge:
;
; pos(40,c):= 1; pos(41,c):= 0;
; Rpos(40):= Rpos(41):= 1;
;
;MB Operandcellens mærkebits sættes lig 01. R-registerets mærkebits
; 1-stilles begge:
;
; pos(40,c):= 0; pos(41,c):= 1;
; Rpos(40):= Rpos(41):= 1;
;
;MC Operandcellens mærkebits sættes lig 11. R-registerets mærkebits
; 1-stilles begge:
;
; pos(40,c):= pos(41,c):= 1;
; Rpos(40)= Rpos(41):= 1;
;
; NB! Bruges normalt kun i forbindelse med grundoperationerne
; AC, SC, GR, GM, GA, GT, GI, GP, GS, GK, GG, NK og NL samt
; disses varianter.
; I forbindelse med de øvrige grundoperationer vil operand-
; cellens mærkebits ikke ændres, men R-registerets mærkebits
; bliver stadig etstillet.
; M, MA, MB og MC betegnes som absolutte mærkeoperationer.
;
;
;MOA Pos. 40 i operandcellen får samme indhold som OA, mens pos. 41
; nulstilles. R-registerets mærkebits er uændrede:
;
; pos(40,c):= OA; pos(41,c):= 0;
;
;MOB Pos. 41 i operandcellen får samme indhold som OB, mens pos. 40
; nulstilles. R-registerets mærkebits er uændrede:
;
; pos(40,c):= 0; pos(41,c):= OB;
;
;MOC Pos. 40-41 i operandcellen får samme indhold som henholdsvis
; OA og OB. R-registerets mærkebits er uændrede:
;
; pos(40,c):= OA; pos(41,c):= OB;
;
; NB! De øvrige bits i indikatoren inklusive KA og KB kan på helt
; samme måde som OA og OB bruges ved mærkning af en celle.
; R-registerets mærkebits er altid uændrede.
; Se iøvrigt bemærkningerne under M.
; MOA, MOB, MOC,..., MKC betegnes som indikatorafhængige mærke-
; operationer.
;
;
im: rmo ra,rs ;
lda æ F+3 ;
rmo ra,rm ;
tabz 7 ;
bru im1+1 ;
tabo 8 ;
bru (im2) ;
lde = 112 ;
ran ra,re ;
and = 12 ;
lra 2 ;
rmo ra,rs ;
lda æ in ;
cre 3 ;
rad re,rp ;
bru im0 ;
0 ;
bru k+13 ;
0 ;
lra 10 ;
bru k+10 ;
lra 10 ;
bru k+8 ;
lra 8 ;
bru k+6 ;
lra 6 ;
bru k+4 ;
lra 4 ;
bru k+2 ;
lra 2 ;
sze rs ;
bru im1 ;
ran ra,rs ;
lda =-4 ;
and æx+c0+3 ;
ror rs,ra ;
sta æx+c0+3 ;
bru im1 ;
im0: lda =-4 ;
and æx+c0+3 ;
ror rs,ra ;
sta æx+c0+3 ;
lda æ R+3 ;
ior = 3 ;
sta = R+3 ;
im1: rmo rm,ra ;
brl (im3) ;
bru æ a ;
im2: vxm0 ;
im3: vxm ;
;\f
;LO
;(NO) Den aktuelle ordre udføres kun, hvis indholdet i R00 er forskel-
; ligt fra (lig med) indholdet i R0.
;
; NB! Uafhængige af indikatorindholdet.
;
;
;LOA
;(NOA) Den aktuelle ordre udføres kun, hvis indholdet i OA er 1 (er 0).
;
;LOB
;(NOB) Den aktuelle ordre udføres kun, hvis indholdet i OB er 1 (er 0).
;
;LOC
;(NOC) Den aktuelle ordre udføres kun, hvis både OA og OB indeholder
; 1 (indeholder 0).
;
;
;LZ
;(NZ) Den aktuelle ordre udføres kun, hvis indholdet i R er lig 0
; (forskelligt fra ).
;
; NB! R00 er her medregnet.
; Uafhængige af indikatorindholdet.
;
;
;LZA
;LZB
;LZC Samme virkning som henholdsvis LOA, LOB og LOC.
;
;NZA
;NZB
;NZC Samme virkning som henholdsvis NOA, NOB og NOC.
;
;
;LT
;(NT) Den aktuelle ordre udføres kun, hvis R00=1 (R00=0).
;
; NB! Bemærk forskellen fra fortegnsindiceringen, hvor fortegnet
; tages fra H00.
; Uafhængige af indikatorindholdet.
;
;
;LTA
;(NTA) Den aktuelle ordre udføres kun, hvis TA=1 (TA=0).
;
;LTB
;(NTB) Den aktuelle ordre udføres kun, hvis TB=1 (TB=0).
;
;LTC
;(NTC) Den aktuelle ordre udføres kun, hvis TA=TB=1 (TA=TB=0).
;
;
;LA
;(NA) Den aktuelle ordre udføres kun, hvis R40=1 (R40=0).
;
;LB
;(NB) Den aktuelle ordre udføres kun, hvis R41=1 (R41=0).
;
;LC
;(NC) Den aktuelle ordre udføres kun, hvis R40=R41=1 (R40=R41=0).
;
; NB! Uafhængige af indikatorindholdet.
;
;
;LPA
;(NPA) Den aktuelle ordre udføres kun, hvis PA=1 (PA=0).
;
;LPB
;(NPB) Den aktuelle ordre udføres kun, hvis PB=1 (PB=0).
;
;LPC
;(NPC) Den aktuelle ordre udføres kun, hvis PA=PB=1 (PA=PB=0).
;
;LQA
;NQA
; .
; .
; .
;NRC Har tilsvarende betingende virkninger.
;
;
;LKA
;(NKA) Den aktuelle ordre udføres kun, hvis KA=1 (KA=0).
;
;LKB
;(NKB) Den aktuelle ordre udføres kun, hvis KB=1 (KB=0).
;
;LKC
;(NKC) Den aktuelle ordre udføres kun, hvis KA=KB=1 (KA=KB=0).
;
; NB! Indholdet i KA og KB kan kun ændres ved hjælp af trykknapper
; på manøvrebordet.
;
;
iln: lde = 112 ;
ran ra,re ;
and = 12 ;
snz ra ;
bru iln2 ;
cre 3 ;
rad re,rp ;
lra 2 ;
bru iln3 ;
lra 2 ;
bru k+11 ;
lla 8 ;
bru k+9 ;
lla 8 ;
bru k+7 ;
lla 6 ;
bru k+5 ;
lla 4 ;
bru k+3 ;
lla 2 ;
add = 0 ;
lde æ in ;
iln0: ran ra,re ;
rcl ra,re ;
tmbo 8,F+3 ;
bru k+4 ;
sne ;
rmo rl,rp ;
bru (iln1) ;
seq ;
rmo rl,rp ;
bru (iln1) ;
iln1: a ;
iln2: lda æ R ;
cre 4 ;
rad re,rp ;
rmo rl,rp ;
rmo rl,rp ;
bru iln4 ;
bru iln5 ;
bru iln6 ;
rmo rl,rp ;
rmo rl,rp ;
rmo rl,rp ;
iln3: lde æ R+3 ;
bru iln0 ;
iln4: ior æ R+1 ;
ior æ R+2 ;
ior æ R+3 ;
and æ= 65532 ;= -4
cpa = 0 ;
bru iln0+2 ;
iln5: rmo ra,re ;
lla 4 ;
ara 4 ;
bru iln0+1 ;
iln6: and (k+2) ;
cpl æ= 61440 ;= -1<12
bru iln0+2 ;
;\f
;AR celle c adderes til R og resultatet anbringes i R:
;
; R:= R + celle(c);
;
; Mærkning registreres.
; Overløb registreres.
; Fortegn kan indiceres.
;
;AR D c*2**(-9) adderes til R og resultatet anbringes i R:
;
; R:= R + c*2**(-9);
;
; Overløb registreres.
; Fortegn kan indiceres.
;
; NB! c opfattes som et heltal i intervallet -512 <= c <= 511.
;
;AR F flydcelle c adderes til RF og resultatet anbringes i RF,
; mens M's tælledel indeholder antallet af skift for resultatet:
;
; RF:= RF + flydcelle(c);
; Mtæl:= antal skift;
;
; Mærkning registreres.
; Fortegn kan indiceres.
;
; NB! D-varianten virker som AR D.
; Ved overløb hoppes til celle 0 med adressen på næste ordre i
; Radr. (Hvis den aktuelle ordre er en venstre halvordsordre,
; hoppes til højre halvdel af celle 0; hvis den aktuelle ordre
; er en højre halvordsordre, hoppes til venstre halvdel af
; celle 0; i begge tilfælde er Radr = r1).
;
;
ar: ran re,rx ;
tmbz 15,F+3 ;
bru arf ;
ar0: lda =-4 ;
and æ R+3 ;
add æx+c0+3 ;
cpl æ= 1<12 ;
sabz 3 ;
rmo ra,re ;
lda æ R+2 ;
add æx+c0+2 ;
sgt ;
add = 4 ;
cpl æ= 1<12 ;
sabz 3 ;
dst = R+2 ;
lda æ R+1 ;
add æx+c0+1 ;
sgt ;
add = 4 ;
cpl æ= 1<12 ;
sabz 3 ;
rmo ra,re ;
lda æ R ;
add æx+c0 ;
sgt ;
add = 4 ;
lla 3 ;
ara 3 ;
dst = R ;
ar1: tabz 3 ;
bru k+9 ;
tabz 4 ;
bru k+4 ;
smbz 1,in ;
rin rl,rp ;
smbo 1,in ;
rin rl,rp ;
tabo 4 ;
bru k+4 ;
smbz 1,in ;
rin rl,rp ;
smbo 1,in ;
rin rl,rp ;
ardm: rmo rx,ra ;
add æ R ;
lla 3 ;
ara 3 ;
sta = R ;
bru ar1 ;
arf:
;\f
;AN Absolutværdien af celle c adderes til R og resultatet anbringes
; i R:
;
; R:= R + abs(celle(c));
;
; Mærkning registreres.
; Overløb registreres.
; Fortegn kan indiceres.
;
; NB! Operanden -1 behandles korrekt, d.v.s. absolutværdien af -1
; er +1 (med overløb).
;
;AN D Absolutværdien af c*2**(-9) adderes til R og resultatet
; anbringes i R:
;
; R:= R + abs(c*2**(-9));
;
; Overløb registreres.
; Fortegn kan indiceres.
;
; NB! c opfattes som et heltal i intervallet -512 <= c <= 511.
;
;AN F Absolutværdien af flydcelle c adderes til RF og resultatet
; anbringes i RF, mens M's tælledel indeholder antallet af skift
; for resultatet:
;
; RF:= RF + abs(flydcelle(c));
; Mtæl:= antal skift;
;
; Mærkning kan foretages.
; Fortegn kan indiceres.
;
; NB! D-varianten virker som AN D.
; Ved overløb sker det samme som ved AR F.
;
;
an: ran re,rx ;
tmbz 15,F+3 ;
bru anf ;
lda æx+c0 ;
smi ra ;
bru ar0 ;
bru æ sr0 ;
anf: lda æx+c0+1 ;
smi ra ;
bru arf ;
bru æ srf ;
andm: smi rx ;
bru ardm ;
bru æ srdm ;
;\f
;AC R adderes til celle c og resultatet anbringes i celle c:
;
; celle(c):= H:= celle(c) + R;
;
; Mærkning registreres.
; Overløb registreres.
; Mærkning kan foretages.
; Fortegn kan indiceres.
;
; NB! R-registeret er uændret.
; Vi fremhæver at AC F har samme virkning som AC, d.v.s. at
; der ikke sker en korrekt addition af de flydende tal.
;
;AC D Radr. adderes til ordrens eventuelle tælletal og denne sum
; adderes til adressetallet i Dadr:
;
; adressetal(Dadr):= Hadr:= c + Radr;
;
; Overløb registreres.
; Fortegn kan indiceres.
;
;
ac: ran re,rx ;
lda =-4 ;
and æ R+3 ;
add æx+c0+3 ;
cpl æ= 1<12 ;
sabz 3 ;
rmo ra,re ;
lda æ R+2 ;
add æx+c0+2 ;
sgt ;
add = 4 ;
cpl æ= 1<12 ;
sabz 3 ;
dst æx+c0+2 ;
lda æ R+1 ;
add æx+c0+1 ;
sgt ;
add = 4 ;
cpl æ= 1<12 ;
sabz 3 ;
rmo ra,re ;
lda æ R ;
add æx+c0 ;
sgt ;
add = 4 ;
ac0: rmo ra,rs ;
lla 4 ;
ara 4 ;
dst æx+c0 ;
rmo rs,ra ;
rde rl,rl ;
bru æ ar1 ;
acdm: rmo ra,rb ;
rmo rx,ra ;
add æ R ;
rmo ra,re ;
lla 4 ;
ara 4 ;
sta b.c0 ;
rmo re,ra ;
bru æ ar1 ;
;\f
;SR celle c subtraheres fra R og resultatet anbringes i R:
;
; R:= R - celle(c);
;
; Mærkning registreres.
; Overløb registreres.
; Fortegn kan indiceres.
;
; NB! Operanden -1 behandles korrekt, d.v.s. subtraktion af -1
; udføres som addition af +1.
;
;SR D c*2**(-9) subtraheres fra R og resultatet anbringes i R:
;
; R:= R - c*2**(-9);
;
; Overløb registreres.
; Fortegn kan indiceres.
;
; NB! c opfattes som et heltal i intervallet -512 <= c <= 511.
;
;SR F flydcelle c subtraheres fra RF og resultatet anbringes i RF,
; mens M's tælledes indeholder antallet af skift for resultatet:
;
; RF:= RF - flydcelle(c);
; Mtæl:= antal skift;
;
; Mærkning registreres.
; Fortegn kan indiceres.
;
; NB! D-varianten virker som SR D.
; Ved overløb hoppes til celle 0 som ved AR F.
;
;
sr: ran re,rx ;
tmbz 15,F+3 ;
bru srf ;
sr0: lda æx+c0+3 ;
ran ra,re ;
and = 3 ;
rmo ra,rs ;
lda =-4 ;
and æ R+3 ;
rsu re,ra ;
ror rs,ra ;
cpa = 0 ;
and æ= 4095 ;
rmo ra,re ;
lda æ R+2 ;
sub æx+c0+2 ;
sle ;
sub = 4 ;
cpa = 0 ;
and æ= 4092 ;
dst = R+2 ;
lda æ R+1 ;
sub æx+c0+1 ;
sle ;
sub = 4 ;
cpa = 0 ;
and æ= 4092 ;
rmo ra,re ;
lda æ R ;
sub æx+c0 ;
sle ;
sub = 4 ;
lla 3 ;
ara 3 ;
dst = R ;
bru æ ar1 ;
srdm: lda æ R ;
rsu rx,ra ;
lla 3 ;
ara 3 ;
sta = R ;
bru æ ar1 ;
srf:
;\f
;SN Absolutværdien af celle c subtraheres fra R og resultatet
; anbringes i R:
;
; R:= R - abs(celle(c));
;
; Mærkning registreres.
; Overløb registreres.
;
; NB! Operanden -1 behandles korrekt, d.v.s. absolutværdien af -1
; er +1 (med overløb).
;
;SN D Absolutværdien af c*2**(-9) subtraheres fra R og resultatet
; anbringes i R:
;
; R:= R - abs(c*2**(-9));
;
; Overløb registreres.
; Fortegn kan indiceres.
;
; NB! c opfattes som et heltal i intervallet -512 <= c <= 511.
;
;SN F Absolutværdien af flydcelle c subtraheres fra RF og resultatet
; anbringes i RF, mens M's tælledel indeholder antallet af
; skift for resultatet:
;
; RF:= RF - abs(flydcelle(c));
; Mtæl:= antal skift;
;
; Mærkning registreres.
; Fortegn kan indiceres.
;
; NB! D-varianten virker som SN D.
; Ved overløb hoppes til celle 0 som ved AR F.
;
;
sn: ran re,rx ;
tmbz 15,F+3 ;
bru snf ;
lda æx+c0 ;
smi ra ;
bru sr0 ;
bru æ ar0 ;
snf: lda æx+c0+1 ;
smi ra ;
bru srf ;
bru æ arf ;
sndm: spl rx ;
bru srdm ;
bru æ ardm ;
;\f
;SC R subtraheres fra celle c og resultatet anbringes i celle c:
;
; celle(c):= H:= celle(c) - R;
;
; Mærkning registreres.
; Overløb registreres.
; Mærkning kan foretages.
; Fortegn kan indiceres.
;
; NB! R-registeret er uændret.
; Vi fremhæver at SC F har samme virkning som SC, d.v.s. at
; der ikke sker en korrekt subtraktion af de flydende tal.
;
;SC D Radr. subtraheres fra adressetallet i Dadr. Ordrens eventuelle
; tælletal adderes til resultatet:
;
; adressetal(Dadr):= Hadr:= c - Radr;
;
; Overløb registreres.
; Fortegn kan indiceres.
;
; NB! Hvis R pos. 10-39 <> 0, subtraheres Radr + 1.
;
;
sc: ran re,rx ;
lda æ R+3 ;
ran ra,re ;
lda æx+c0+3 ;
rsu re,ra ;
cpa = 0 ;
and æ= 4095 ;
rmo ra,re ;
lda æx+c0+2 ;
sub æ R+2 ;
sle ;
sub = 4 ;
cpa = 0 ;
and æ= 4092 ;
dst æx+c0+2 ;
lda æx+c0+1 ;
sub æ R+1 ;
sle ;
sub = 4 ;
cpa = 0 ;
and æ= 4092 ;
rmo ra,re ;
lda æx+c0 ;
sub æ R ;
sle ;
sub = 4 ;
bru æ ac0 ;
scdm: rmo ra,rb ;
lda æ R+3 ;
ior æ R+2 ;
ior æ R+1 ;
ran ra,re ;
rmo rx,ra ;
sub æ R ;
sze re ;
sub = 4 ;
rmo ra,re ;
lla 4 ;
ara 4 ;
sta b.c0 ;
rmo re,ra ;
bru æ ar1 ;
;\f
;MK M multipliceres med celle c hvorefter produktet adderes
; til R:
;
; R:= R + M*celle(c) + 2**(-40);
;
; Mærkning registreres.
; Overløb registreres.
; Fortegn kan indiceres.
;
; NB! Multiplikationen siges at være akkumulerende.
; Resultatet er afrundet.
; Indholdet af M ændres ikke.
;
;MK D M multipliceres med c*2**(-9) hvorefter produktet adderes
; til R. Resultatet kommer i R:
;
; R:= R + M*c*2**(-9) + 2**(-40);
;
; Overløb registreres.
; Fortegn kan indiceres.
;
; NB! Som ved MK.
; Iøvrigt vil c blive opfattet som et heltal i intervallet
; -512 <= c <= 511.
;
;MK F RF multipliceres med flydcelle c og produktet kommer i RF:
;
; RF:= RF*flydcelle(c);
;
; Mærkning registreres.
; Fortegn kan indiceres.
;
; NB! D-varianten virker som MK D.
; Multiplikationen er ikke akkumulerende.
; Ved overløb hoppes til celle 0 som ved AR F.
; Der foretages ingen afrunding.
;
;
mk:
mkdm:
;\f
;ML M multipliceres med celle c hvorefter produktet adderes til
; R*2**(-39). Resultatet kommer i RM:
;
; RM:= R*2**(-39) + M*celle(c);
; Mpos(0):= 0;
;
; Mærkning registreres.
; Overløb registreres.
; Fortegn kan indiceres.
;
; NB! Multiplikationen udføres uden afrunding.
; Resultatet har 78 binnaler.
;
;ML D M multipliceres med c*2**(-9) hvorefter produktet adderes til
; R*2**(-39). Resultatet kommer i RM:
;
; RM:= R*2**(-39) + M*c*2**(-9);
; Mpos(0):= 0;
;
; Overløb registreres.
; Fortegn kan indiceres.
;
; NB! Resultatet har 78 binnaler.
;
;
ml:
mldm:
;\f
;MT R multipliceres med +1 eller med -1 eftersom pos(0,c) er 0
; eller 1. Resultatet i R:
;
; R:= if pos(0,c) then -R else R;
;
; Mærkning registreres.
; Overløb registreres.
; Fortegn kan indiceres.
;
; NB! Står der et maskintal i celle c multipliceres R med dettes
; fortegn.
; Står der et flydende tal i celle c multipliceres R med
; fortegnet for dettes exponent.
;
;MT D c*2**(-9) opfattes som maskintal og R multipliceres med c's
; fortegn:
;
; R:= if H00 then -R else R;
;
; Overløb registreres.
; Fortegn kan indiceres.
;
;
mt: ran re,rx ;
lda æx+c0+3 ;
and = 3 ;
rmo ra,re ;
lda æx+c0 ;
smi ra ;
bru mt1 ;
lda =-4 ;
and æ R+3 ;
rco ra,ra ;
cpa = 0 ;
and æ= 4092 ;
ror ra,re ;
mt0: lda æ R+2 ;
sle ;
bru k+4 ;
rco ra,ra ;
cpa = 0 ;
bru k+2 ;
riv ra,ra ;
and æ= 4092 ;
dst = R+2 ;
lda æ R+1 ;
sle ;
bru k+4 ;
rco ra,ra ;
cpa = 0 ;
bru k+2 ;
riv ra,ra ;
and æ= 4092 ;
rmo ra,re ;
lda æ R ;
sle ;
bru k+3 ;
rco ra,ra ;
bru k+3 ;
ior = 3 ;
riv ra,ra ;
dst = R ;
bru æ ar1 ;
mt1: lda =-4 ;
and æ R+3 ;
ror re,ra ;
sta = R+3 ;
lda æ R ;
bru æ ar1 ;
mtdm: smi rx ;
bru mtd0 ;
lda æ R+3 ;
ran ra,re ;
and = 3 ;
rco re,re ;
ror re,ra ;
cpa = 0 ;
and æ= 4095 ;
rmo ra,re ;
bru mt0 ;
mtd0: lda æ R ;
bru æ ar1 ;
;\f
;DK R divideres med celle c; resultatet anbringes i R og
; resten - multipliceret med 2**39 - anbringes i M.
; Hvis abs(R) > 2*abs(celle c) registreres der overløb:
;
; if abs(R) < 2*abs(celle(c)) then
; begin
; q:= entier(R/celle(c)*2**39)*2**(-39);
; M:= (R - q*celle(c))*2**39;
; R:= q;
; if celle(c) < 0 and
; R/celle(c)*2**39 = entier(R/celle(c)*2**39) then
; begin
; R:= q - 2**(-39);
; M:= celle(c)
; end
; end else
; overløb:= true;
;
; Mærkning registreres.
; Overløb registreres.
; Fortegn kan indiceres.
;
; NB! Bør kun benyttes såfremt abs(R) < 2*abs(celle c).
; Hvis abs(R) > abs(celle c) kan man - ved et højreskift - få
; den halve kvotient i R.
; Resten vil have divisors fortegn.
;
;DK D R divideres med c*2**(-9); resultatet anbringes i R og
; resten - multipliceret med 2**39 - anbringes i M:
;
; if abs(R) < 2*abs(c*2**(-9)) then
; begin
; q:= entier(R/c*2**48)*2**(-39);
; M:= (R - q*c*2**(-9))*2**39;
; R:= q;
; if c < 0 and
; R/c*2**48 = entier(R/c*2**48) then
; begin
; R:= q - 2**(-39);
; M:= c*2**(-9)
; end
; end else
; overløb:= true;
;
; Overløb registreres.
; Fortegn kan indiceres.
;
; NB! Bør kun benyttes såfremt abs(R) < 2*abs(c*2**(-9)).
; c opfattes som et heltal i intervallet -512 <= c <= 511.
; Se iøvrigt bemærkningen til DK.
; Hvis kvotienternes absolutværdier er > 2, er både R's og
; M's indhold ubrugeligt.
; 0/0 giver som resultat R00 = 0, R pos. 0-39 = 1 og M = 0.
;
;DK F RF divideres med flydcelle c; resultatet kommer i RF; resten
; går tabt:
;
; RF:= RF/flydcelle(c);
;
; Mærkning registreres.
; Fortegn kan indiceres.
;
; NB! D-varianten virker som DK D.
; Ved overløb hoppes til celle 0 som ved AR F.
;
;
dk:
dkdm:
;\f
;DL RM divideres med celle c; resultatet anbringes i R og
; resten - multipliceret med 2**39 - anbringes i M. Hvis
; abs(RM) > abs(celle c) registreres der overløb:
;
; ALGOL-beskrivelse som ved DK, idet R erstattes af RM undtagen
; i sætningerne R:= q og R:= q - 2**(-39).
;
; Mærkning registreres.
; Overløb registreres.
; Fortegn kan indiceres.
;
; NB! Bør kun benyttes såfremt abs(RM) < 2*abs(celle c).
; Se iøvrigt bemærkningen til DK.
;
;DL D RM divideres med c*2**(-9), iøvrigt som DK D blot med
; RM i stedet for R.
;
; Overløb registreres.
; Fortegn kan indiceres.
;
; NB! Bør kun benyttes såfremt abs(RM) < 2*abs(c*2**(-9)).
; c opfattes som et heltal i intervallet -512 <= c <= 511.
; Se iøvrigt bemærkningen til DK.
;
;
dl:
dldm:
;\f
;NK R normaliseres, d.v.s. skiftes indtil der fremkommer et tal, N,
; der opfylder følgende: -1 <= N < -1/2 eller N = 0 eller
; 1/2 <= N < 1. Normaliseringsexponenten (antallet af skift
; med modsat fortegn) anbringes som adressetal i celle c:
;
; exponent:= 0;
; if R <> 0 then
; begin
; if R00 <> Rpos(0) then
; begin
; for i:= 39 step -1 until 1 do Rpos(i):= Rpos(i-1);
; Rpos(0):= R00;
; exponent:= 1
; end else
; E: if Rpos(0) = Rpos(1) then
; begin
; R:= 2 * R;
; exponent:= exponent - 1;
; goto E
; end
; end;
; adressetal(c):= exponent;
;
; Mærkning kan foretages.
; Fortegn kan indiceres.
;
; NB! Normaliseringsexponenten er kun positiv (+1), såfremt der
; er overløb i R inden operationens udførelse. Der foretages
; ingen afrunding ved dette højreskift.
;
;NK D Som NK med den ændring, at normaliseringsexponenten anbringes i
; den celle, hvis adresse er D-adressen.
;
; Mærkning kan foretages.
; Fortegn kan indiceres.
;
;NK F Først normaliseres R, hvorefter det normaliserede tal forskydes
; 10 pladser til højre. Normaliseringsexponenten minus 1 adderes
; til c og denne sum anbringes i Madr. (se bemærkningen).
;
; ALGOL-beskrivelse: Som ved NK idet den sidste sætning erstattes
; af:
;
; for i:= 39 step -1 until 10 do Rpos(i):= Rpos(i-10);
; for i:= 1 step 1 until 9 do Rpos(i):= Rpos(0);
; Madr:= c + exponent - 1;
;
; Fortegn kan indiceres.
;
; NB! D-modifikationen virker som NK D.
; Ordren NK F 0 vil bevirke, at et maskintal i R omdannes til
; et flydende tal i RF.
; Der foretages ingen afrunding.
; Hvis R = 0, vil NK F c bevirke at Madr:= c.
;
;
nk:
nkdm:
;\f
;NL RM normaliseres, idet M0 ikke indgår i skiftene: Mpos(0):= 0.
; I øvrigt som ved NK.
;
; Mærkning kan foretages.
; Fortegn kan indiceres.
;
;NL D Som NL, dog anbringes normaliseringsexponenten i den celle, hvis
; adresse er D-adressen.
;
; Mærkning kan foretages.
; Fortegn kan indiceres.
;
;
nl:
nldm:
;\f
;TK R forskydes c pladser til venstre hvis c > 0 og -c pladser til
; højre hvis c < 0:
;
; if c >= 0 then
; for k:= 1 step 1 until c do
; begin
; R00:= Rpos(0);
; for i:= 0 step 1 until 38 do Rpos(i):= Rpos(i+1);
; Rpos(39):= 0
; end
; else
; begin
; q:= Rpos(40+c);
; for k:= 1 step 1 until -c do
; begin
; for i:= 39 step -1 until 1 do Rpos(i):= Rpos(i-1);
; Rpos(0):= R00
; end;
; R:= R + q*2**(-39)
; end;
;
; Overløb registreres.
; Fortegn kan indiceres.
;
; NB! Såfremt R*2**c ligger i intervallet -2 <= x < 2 vil det være
; dette tal, der står i R efter operationen.
; Ved højreskift foretages afrunding til sidst.
; Overløb registreres til sidst, efter selve skifteoperationen.
;
;TK D R forskydes så mange pladser til venstre (eller til højre) som
; Dadr angiver. Iøvrigt som TK.
;
; Overløb registreres.
; Fortegn kan indiceres.
;
; NB! Normalt uden interesse.
;
;TK F R forskydes (c+Madr+1) pladser til venstre hvis (c+Madr+1) > 0,
; og -(c+Madr+1) pladser til højre hvis (c+Madr+1) < 0.
;
; Overløb registreres.
; Fortegn kan indiceres.
;
; NB! D-modificationen virker som TK D.
; Ordren TK F 10 vil bevirke, at et flydende tal i RF omdannes
; til et maskintal i R (hvis tallet ligger mellem -2 og 2).
; Overløb registreres til sidst, efter selve skifteoperationen.
; Der foretages eventuelt afrunding.
;
;
tk: rmo rx,ra ;
tmbo 15,F+3 ;
bru tkdm ;
add æ M ;
add = 1 ;
tkdm: lla 4 ;
ara 6 ;
;\f
;TL RM forskydes, idet dog M0 ikke indgår: Mpos(0):= 0. I øvrigt
; som TK, men uden afrunding ved højre skift.
;
; Overløb registreres.
; Fortegn kan indiceres.
;
;TL D Som TK D, men med RM i stedet for R.
;
; Overløb registreres.
; Fortegn kan indiceres.
;
; NB! Normalt uden interesse.
;
;
tl: rmo rx,ra ;
tldm: lla 4 ;
ara 6 ;
;\f
;CK R forskydes cyklisk c pladser til venstre hvis c > 0 og -c
; pladser til højre hvis c < 0:
;
; R00:= 0
; if c >= 0 then
; for k:= 1 step 1 until c do
; begin
; a:= Rpos(0);
; for i:= 0 step 1 until 38 do Rpos(i):= Rpos(i+1);
; Rpos(39):= a
; end
; else
; for k:= 1 step 1 until -c do
; begin
; a:= Rpos(39);
; for i:= 39 step -1 until 1 do Rpos(i):= Rpos(i-1);
; Rpos(0):= a
; end;
;
; Overløb registreres.
;
; NB! Pos. 00 i R-registeret indgår ikke i skiftet, men nulstilles.
;
;CK D R forskydes cyklisk så mange pladser til venstre (eller til
; højre) som Dadr angiver. Iøvrigt som CK.
;
; Overløb registreres.
;
; NB! Normalt uden interesse.
;
;
ck: rmo rx,ra ;
ckdm: lla 4 ;
ara 6 ;
add æ= 520 ;
rmo ra,re ;
lda = 0 ;
div = 40 ;
lda = 0 ;
div = 10 ;
rco ra,rb ;
lda ck1 ;
rad re,ra ;
sta ck3 ;
rmo rl,rs ;
dld æ R ;
brl ck2 ;
dld æ R+1 ;
brl ck2 ;
dld æ R+2 ;
brl ck2 ;
lde æ R ;
ald 3 ;
lda æ R+3 ;
ldm = 3 ;
ran ra,rm ;
lra 2 ;
brl ck3 ;
dld ck0 ;
tabz 4 ;
bru k+4 ;
smbz 1,in ;
bru k+3 ;
smbo 1,in ;
dst = R ;
dld ck0+2 ;
ror rm,re ;
dst = R+2 ;
rin rs,rp ;
ck0: 0,0,0,0 ;
ck1: ald 0 ;
ck2: ald 3 ;
lra 5 ;
ck3: 0 ;
lla 2 ;
and æ= 4092 ;
ldx = 3 ;
ran rb,rx ;
sta x+ck0 ;
rin rb,rb ;
rmo rl,rp ;
;\f
;CL RM forskydes cyklisk c pladser til venstre hvis c > 0 og -c
; pladser til højre hvis c < 0. M0 indgår ikke: Mpos(0):= 0.
; Iøvrigt som CK.
;
; Overløb registreres.
;
; NB! Pos. 00 i R-registeret og pos. 0 i M-registeret indgår ikke i
; i skiftet, men nulstilles.
;
;CL D Som CK D, men med RM i stedet for R.
;
; Overløb registreres.
;
; NB! Normalt uden interesse.
;
;
cl: rmo rx,ra ;
cldm: lla 4 ;
ara 6 ;
add æ= 553 ;
rmo ra,re ;
lda = 0 ;
div = 79 ;
lda = 0 ;
div = 10 ;
sub = 4 ;
rco ra,rb ;
lda cl1 ;
rad re,ra ;
sta cl3 ;
rmo rl,rs ;
dld æ M ;
brl cl2 ;
dld æ M+1 ;
brl cl2 ;
dld æ M+2 ;
brl cl2 ;
lde æ R ;
ald 3 ;
lda æ M+3 ;
lra 2 ;
brl cl3 ;
dld æ R ;
brl cl2 ;
dld æ R+1 ;
brl cl2 ;
dld æ R+2 ;
brl cl2 ;
lde æ M ;
ald 4 ;
lda æ R+3 ;
lra 2 ;
brl cl3 ;
dld cl0 ;
tabz 4 ;
bru k+4 ;
smbz 1,in ;
bru k+3 ;
smbo 1,in ;
dst = R ;
dld cl0+2 ;
ror rm,re ;
dst = R+2 ;
dld cl0+4 ;
sabz 4 ;
dst = M ;
dld cl0+6 ;
dst = M+2 ;
rin rs,rp ;
cl0: 0,0,0,0,0,0,0,0;
cl1: ald 0 ;
cl2: ald 3 ;
lra 5 ;
cl3: 0 ;
ldx = 4 ;
rca rb,rx ;
slt ;
ald 1 ;
lla 2 ;
and æ= 4092 ;
ldx = 7 ;
ran rb,rx ;
sta x+cl0 ;
rin rb,rb ;
rmo rl,rp ;
;\f
;AB celle c adderes logisk til R og summen anbringes i R:
;
; for i:= 0 step 1 until 39 do
; Rpos(i):= Rpos(i) or pos(i,c);
; R00:= R00 or pos(0,c);
;
; Mækning registreres.
; Fortegn kan indiceres.
;
;AB D c adderes logisk til R og summen anbringes i R:
;
; for i:= 0 step 1 until 9 do
; Rpos(i):= Rpos(i) or Hpos(i);
; R00:= R00 or H00;
;
; Fortegn kan indiceres.
;
;AB X Efter udførelsen af AB anbringes R i M-registeret
; og -,R i R-registeret:
;
; for i:= 0 step 1 until 39 do
; begin
; Mpos(i):= Rpos(i) or pos(i,c);
; Rpos(i):= -,Mpos(i)
; end;
; R00:= -,(R00 or pos(0,c));
;
; Mærkning registreres.
; Fortegn kan indiceres.
;
;AB DX Efter udførelsen af AB D anbringes R i M-registeret
; og -,R i R-registeret:
;
; for i:= 0 step 1 until 9 do
; Rpos(i):= Rpos(i) or Hpos(i);
; for i:= 0 step 1 until 39 do
; begin
; Mpos(i):= Rpos(i);
; Rpos(i):= -,Rpos(i)
; end;
; R00:= -,(R00 or H00);
;
; Fortegn kan indiceres.
;
;
ab: ran re,rx ;
tmbz 4,F+3 ;
bru abx ;
lda =-4 ;
and æ R+3 ;
ior æx+c0+3 ;
rmo ra,re ;
lda æ R+2 ;
ior æx+c0+2 ;
dst = R+2 ;
lda æ R+1 ;
ior æx+c0+1 ;
rmo ra,re ;
lda æ R ;
ior æx+c0 ;
dst = R ;
rin rl,rp ;
abx: lda =-4 ;
and æ R+3 ;
ior æx+c0+3 ;
lde =-4 ;
ran ra,re ;
ste = M+3 ;
lde æ= 4092 ;
reo ra,re ;
lda æ R+2 ;
ior æx+c0+2 ;
sta = M+2 ;
riv ra,ra ;
and æ= 4092 ;
dst = R+2 ;
lda æ R+1 ;
ior æx+c0+1 ;
sta = M+1 ;
lde æ= 4092 ;
reo ra,re ;
lda æ R ;
ior æx+c0 ;
rmo ra,rs ;
lla 4 ;
ara 4 ;
sta = M ;
lda =-4 ;
reo rs,ra ;
dst = R ;
abx0: lda æ F+3 ;
tabo 5 ;
bru (abx1) ;
rmo ra,re ;
lda æ r1 ;
add = 4 ;
sabz 3 ;
sta = r1 ;
rmo re,ra ;
bru (abx1) ;
abx1: ii ;
abdm: tmbz 4,F+3 ;
bru abdx ;
rmo rx,ra ;
ior æ R ;
sta = R ;
rmo ra,rs ;
bru abx0 ;
abdx: lda æ R+3 ;
ran ra,re ;
ste = M+3 ;
lde æ= 4092 ;
reo ra,re ;
lda æ R+2 ;
sta = M+2 ;
riv ra,ra ;
and æ= 4092 ;
dst = R+2 ;
dld æ R ;
ror rx,ra ;
rmo ra,rs ;
lla 4 ;
ara 4 ;
dst = M ;
riv re,ra ;
and æ= 4092 ;
rmo ra,re ;
lda =-4 ;
reo rs,ra ;
dst = R ;
bru abx0 ;
;\f
;MB celle c multipliceres logisk med R og produktet anbringes i R:
;
; for i:= 0 step 1 until 39 do
; Rpos(i):= Rpos(i) and pos(i,c);
; R00:= R00 and pos(0,c);
;
; Mærkning registreres.
; Fortegn kan indiceres.
;
;MB D c multipliceres logisk med R og produktet anbringes i R:
;
; for i:= 0 step 1 until 9 do
; Rpos(i):= Rpos(i) and Hpos(i);
; R00:= R00 and H00;
; for i:= 10 step 1 until 39 do Rpos(i):= 0;
;
; Fortegn kan indiceres.
;
;MB X Efter udførelse af MB anbringes R i M-registeret og
; nonækvivalens af opr. R og celle(c) anbringes i
; R-registeret:
;
; for i:= 0 step 1 until 39 do
; begin
; Mpos(i):= Rpos(i) and pos(i,c);
; Rpos(i):= -,(Rpos(i) == pos(i,c))
; end;
; R00:= -,(R00 == pos(o,c));
;
; Mærkning registreres.
; Fortegn kan indiceres.
;
;MB DX Efter udførelsen af MB D anbringes R i M-registeret og
; nonækvivalens af opr. R og c anbringes i R-registeret:
;
; for i:= 0 step 1 until 9 do
; begin
; Mpos(i):= Rpos(i) and Hpos(i);
; Rpos(i):= -,(Rpos(i) == Hpos(i))
; end;
; R00:= -,(R00 == H00);
; for i:= 10 step 1 until 39 do Mpos(i):= 0;
;
; Fortegn kan indiceres.
;
; NB! Pos. 10-39 i R er uændrede efter operationen.
;
;
mb: ran re,rx ;
tmbz 4,F+3 ;
bru mbx ;
lda æ R+3 ;
ior = 3 ;
and æx+c0+3 ;
rmo ra,re ;
lda æ R+2 ;
and æx+c0+2 ;
dst = R+2 ;
lda æ R+1 ;
and æx+c0+1 ;
rmo ra,re ;
lda æ R ;
and æx+c0 ;
dst = R ;
rin rl,rp ;
mbx: lda =-4 ;
and æ R+3 ;
rmo ra,rs ;
lde æx+c0+3 ;
ran re,ra ;
sta = M+3 ;
reo rs,re ;
ste = R+3 ;
lde æ R+2 ;
rmo re,rs ;
lda æx+c0+2 ;
ran ra,re ;
ste = M+2 ;
reo rs,ra ;
sta = R+2 ;
lde æ R+1 ;
rmo re,rs ;
lda æx+c0+1 ;
ran ra,re ;
ste = M+1 ;
reo rs,ra ;
sta = R+1 ;
lde æ R ;
rmo re,rs ;
lda æx+c0 ;
reo ra,re ;
ste = R ;
ran ra,rs ;
rmo rs,ra ;
lla 4 ;
ara 4 ;
sta = M ;
bru abx0 ;
mbdm: tmbz 4,F+3 ;
bru mbdx ;
lda æ R+3 ;
and = 3 ;
rmo ra,re ;
lda = 0 ;
dst = R+2 ;
rmo rx,ra ;
lde = 0 ;
and æ R ;
dst = R ;
rmo ra,rs ;
bru æ abx0 ;
mbdx: dld = 0 ;
dst = M+2 ;
lda æ R ;
rmo rx,rs ;
reo ra,rx ;
stx = R ;
ran ra,rs ;
rmo rs,ra ;
lla 4 ;
ara 4 ;
dst = M ;
bru æ abx0 ;
;\f
;PM Indholdet af celle c anbringes i M:
;
; M:= celle(c);
;
; Mærkning registreres.
; Fortegn kan indiceres.
;
;PM D c*2**(-9) anbringes i M0-9 mens resten af M nulstilles:
;
; M:= c*2**(-9);
;
; Fortegn kan indiceres;
;
;
pm: lda æx+c0+3 ;
ran ra,re ;
and = 3 ;
rmo ra,rs ;
lda =-4 ;
and æ R+3 ;
ror rs,ra ;
sta = R+3 ;
lda æx+c0+2 ;
dst = M+2 ;
dld æx+c0 ;
dst = M ;
rin rl,rp ;
pmdm: dld = 0 ;
dst = M+2 ;
rmo rx,ra ;
dst = M ;
rin rl,rp ;
;\f
;PI Den modificerede adresse placeres i indikatoren (på nær KA
; og KB) med ordrens tælletal som maske, idet de positioner i
; indikatoren, der er angivet ved ettaller i ordrens tælletal
; (binært), ikke ændres:
;
; for i:= 0 step 1 until 9 do
; in(i):= (in(i) and Ftæl(i)) or (Hpos(i) and -,Ftæl(i));
;
; NB! Ordren er statisk.
; Står PI som halvordsordre, opfattes tælletallet som nul,
; d.v.s. at hele den modificerede adresse overføres til
; indikatoren.
;
;PI D Som ovenfor idet D-adressen træder i stedet for den
; modificerede adresse.
;
; NB! Ordren er statisk.
; Normalt uden interesse.
;
;
pidm: rmo ra,rx ;
pi: lda æ F+1 ;
ior æ= 61443 ;= -4093
riv ra,re ;
and æ in ;
ran rx,re ;
ror re,ra ;
sta = in ;
rin rl,rp ;
;\f
;PP c placeres i p-registeret:
;
; p:= c;
;
;PP D D-adressen anbringes i p-registeret:
;
; p:= Dadr;
;
; NB! Normalt uden interesse.
;
;
ppdm: rmo ra,rx ;
pp: ran re,rx ;
stx = F ;
rin rl,rp ;
;\f
;PS c placeres i sekvensregisteret:
;
; s1:= c;
;
;PS D D-adressen anbringes i sekvensregisteret:
;
; s1:= Dadr;
;
; NB! Normalt uden interesse.
;
;
psdm: rmo ra,rx ;
ps: ran re,rx ;
stx = s1 ;
rin rl,rp ;
;\f
;PA Ordrens tælletal anbringes i positionerne 0-9 af celle c,
; mens resten af cellen er uforandret:
;
; adressetal(c):= Ftæl;
;
; NB! Ordren er statisk.
; Hvis PA-ordren er en halvordsordre, virker den som
; en helordsordre med tælletal 0.
;
;PA D Ordrens tælletal anbringes i pos. 0-9 i den celle, D-adressen
; angiver:
;
; adressetal(Dadr):= Ftæl;
;
; NB! Ordren er statisk.
;
;
padm: rmo ra,rx ;
pa: ran re,rx ;
lda æ F+1 ;
lla 4 ;
ara 4 ;
sta æx+c0 ;
rin rl,rp ;
;\f
;PT Ordrens tælletal anbringes i pos. 10-19 af celle c, mens
; resten af cellen er uændret:
;
; tælletal(c):= Ftæl;
;
; NB! Ordren er statisk.
; Hvis PT-ordren er en halvordsordre, virker den som en
; helordsordre med tælletal 0.
;
;PT D Ordrens tælletal anbringes i pos. 10-19 af den celle,
; D-adressen angiver:
;
; tælletal(Dadr):= Ftæl;
;
; NB! Ordren er statisk.
;
;
ptdm: rmo ra,rx ;
pt: ran re,rx ;
lda æ F+1 ;
sta æx+c0+1 ;
rin rl,rp ;
;\f
;GR R lagres i celle c:
;
; celle(c):= R;
;
; Mærkning kan foretages.
;
; NB! R00 er irrelevant.
;
;GR D Adressetal og tælletal i R lagres i de tilsvarende
; positioner i den celle, der angives ved D-adressen,
; mens resten af cellen er uændret:
;
; adressetal(Dadr):= Radr;
; tælletal(Dadr):= Rtæl;
;
; NB! R00 er irrelevant.
;
;GR F RF lagres i celle c:
;
; flydcelle(c):= RF;
;
; Mærkning kan foretages.
;
; NB! R00-9 er irrelevant.
; D-varianten virker som GR D.
;
;
gr: ran re,rx ;
lda æ R+3 ;
ran ra,re ;
lda æx+c0+3 ;
and = 3 ;
ror ra,re ;
lda æ R+2 ;
dst æx+c0+2 ;
tmbz 15,F+3 ;
bru grf ;
dld æ R ;
lla 4 ;
ara 4 ;
dst æx+c0 ;
rmo rl,rp ;
grf: lde æ R+1 ;
lda æ M ;
dst æx+c0 ;
rmo rl,rp ;
grdm: rmo ra,rb ;
dld æ R ;
lla 4 ;
ara 4 ;
dst b.c0 ;
rin rl,rp ;
;\f
;GM M lagres i celle c:
;
; celle(c):= M;
;
; Mærkning kan foretages.
;
;GM D Adressetal og tælletal i M lagres i de tilsvarende
; positioner i den celle, der angives ved D-adressen,
; mens resten af cellen er uændret:
;
; adressetal(Dadr):= Madr;
; tælletal(Dadr):= Mtæl;
;
;
gm: ran re,rx ;
lda æx+c0+3 ;
and = 3 ;
ior æ M+3 ;
rmo ra,re ;
lda æ M+2 ;
dst æx+c0+2 ;
dld æ M ;
dst æx+c0 ;
rmo rl,rp ;
gmdm: rmo ra,rb ;
dld æ M ;
dst b.c0 ;
rin rl,rp ;
;\f
;GA Adressetallet i R lagres i pos. 0-9 i celle c, mens
; resten af cellen er uændret:
;
; adressetal(c):= Radr;
;
; Mærkning kan foretages.
;
;GA D Adressetallet i R lagres i pos. 0-9 i den celle, der
; angives ved D-adressen, mens resten af denne celle er
; uændret:
;
; adressetal(Dadr):= Radr;
;
; Mærkning kan foretages.
;
;
gadm: rmo ra,rx ;
ga: ran re,rx ;
lda æ R ;
lla 4 ;
ara 4 ;
sta æx+c0 ;
rmo rl,rp ;
;\f
;GT Tælletallet i R lagres i pos. 10-19 i celle c, mens
; resten af cellen er uændret:
;
; tælletal(c):= Rtæl;
;
; Mærkning kan foretages.
;
;GT D Tælletallet i R lagres i pos. 10-19 i den celle, der
; angives ved D-adressen, mens resten af denne celle er
; uændret:
;
; tælletal(Dadr):= Rtæl;
;
; Mærkning kan foretages.
;
;
gtdm: rmo ra,rx ;
gt: ran re,rx ;
lda æ R+1 ;
sta æx+c0+1 ;
rmo rl,rp ;
;\f
;GP p-registerets indhold lagres i pos. 0-9 i celle c, mens
; resten af cellen er uforandret:
;
; adressetal(c):= p;
;
; Mærkning kan foretages.
;
;GP D p-registerets indhold lagres i pos. 0-9 i den celle, der
; angives ved D-adressen, mens resten af cellen er uændret:
;
; adressetal(Dadr):= p;
;
; Mærkning kan foretages.
;
;
gpdm: rmo ra,rx ;
gp: ran re,rx ;
lda æ F ;
lla 4 ;
ara 4 ;
sta æx+c0 ;
rmo rl,rp ;
;\f
;GS Sekvensregisterets indhold lagres i pos. 0-9 i celle c, mens
; resten af cellen er uforandret:
;
; adressetal(c):= s1;
;
; Mærkning kan foretages.
;
;GS D Sekvensregisterets indhold lagres i pos. 0-9 i den celle,
; der angives ved D-adressen, mens resten af cellen er uændret:
;
; adressetal(Dadr):= s1;
;
; Mærkning kan foretages.
;
;
gsdm: rmo ra,rx ;
gs: ran re,rx ;
lda æ s1 ;
lla 4 ;
ara 4 ;
sta æx+c0 ;
rmo rl,rp ;
;\f
;GI Indikatorens indhold (på nær KA og KB) lagres i pos. 0-9
; i celle c, mens resten af cellen er uforandret:
;
; adressetal(c):= indikator;
;
; Mærkning kan foretages.
;
;GI D Indikatorens indhold (på nær KA og KB) lagres i pos. 0-9
; i den celle, der angives ved D-adressen, mens resten af
; cellen er uændret:
;
; adressetal(Dadr):= indikator;
;
; Mærkning kan foretages.
;
;
gidm: rmo ra,rx ;
gi: ran re,rx ;
lda =-4 ;
and æ in ;
lla 4 ;
ara 4 ;
sta æx+c0 ;
rmo rl,rp ;
;\f
;GK Indholdet af by-registeret samt kanalregisteret lagres i
; adresse- og tællepositionerne i celle c, mens resten af
; cellen er uændret:
;
; adressetal(c):= by;
; tælletal(c):= tk;
;
; Mærkning kan foretages.
;
;GK D Som ovenfor, idet lagringen sker i den celle, der angives
; ved D-adressen:
;
; adressetal(Dadr):= by;
; tælletal(Dadr):= tk;
;
; Mærkning kan foretages.
;
;
gkdm: rmo ra,rx ;
gk: ran re,rx ;
lda æ by ;
lla 4 ;
ara 4 ;
lde æ tkr ;
dst æx+c0 ;
rmo rl,rp ;
;\f
;GG Gruppereristerets indhold lagres i pos. 0-9 i celle c, mens
; resten af cellen er uforandret:
;
; adressetal(c):= g;
;
; Mærkning kan foretages.
;
;GG D Som ovenfor, idet lagringen sker i den celle, der angives
; ved D-adressen:
;
; adressetal(Dadr):= g;
;
; Mærkning kan foretages.
;
;
ggdm: rmo ra,rx ;
gg: ran re,rx ;
lda æ g ;
sta æx+c0 ;
rmo rl,rp ;
;\f
;IS IS-ordren har kun virkning, hvis s indgår i adresseberegningen
; for den umiddelbart følgende ordre og kun første gang s indgår.
; Virkningen vil da være, at den resulterende adresse i IS-ordren
; anvendes som s-værdi ved adresseberegningen i den følgende ordre
; uanset sekvensregisterets øjeblikkelige indhold (og dette er
; uændret efter operationen):
;
; s2:= c;
; comment: Denne sætning erstatter sætningen s2:= s1 i adresse-
; bereregningen for den umiddelbart følgende ordre;
;
; NB! Den umiddelbart følgende ordre bør (af hensyn til overvåg-
; ningsprogrammer) ikke være en hopordre eller en V-variant.
; Indicering er virkningsløs.
; X og V-variant i IS-ordren er virkningsløse.
;
;IS D Ordrens D-adresse anvendes som s-værdi i den umiddelbart
; følgende ordre. I øvrigt som IS-ordren.
;
; NB! Se under IS-ordren.
;
;
isdm: rmo ra,rx ;
is: ran re,rx ;
brl is0 ;
rmo ra,rb ;
rmo ra,rs ;
rmo rx,rm ;
bru æ ais ;
is0: rmo rs,ra ;
tmbo 14,F+3 ;
bru k+3 ;
tmbo 0,in ;
add = 4 ;
sabz 3 ;
rmo rl,rp ;
;\f
;NS Ordrens resulterende adresse med modsat fortegn anvendes som
; s-værdi i den umiddelbart følgende ordre. I øvrigt som
; IS-ordren:
;
; s2:= -c;
; comment: Denne sætning erstatter sætningen s2:= s1 i adresse-
; beregningen for den umiddelbart følgende ordre;
;
; NB! Se under IS-ordren.
;
;NS D Ordrens D-adresse med modsat fortegn anvendes som s-værdi i
; den umiddelbart følgende ordre. I øvrigt som NS-ordren.
;
; NB! Se under IS-ordren.
;
;
nsdm: rmo ra,rx ;
ns: rco rx,rx ;
bru is ;
;\f
;IT Ordrens resulterende adresse anvendes som tælletal i den
; umiddelbart følgende ordre uanset denne ordres eventuelle
; tælletal (som er uændret efter operationen):
;
; Ftæl:= c;
; comment: Denne sætning erstatter sætningerne Ftæl:= 0 og
; Ftæl:= tælletal(r2) i adresseberegningen for den
; umiddelbart følgende ordre;
;
; NB! Den umiddelbart følgende ordre bør (af hensyn til overvåg-
; ningsprogrammer) ikke være en hopordre eller en V-variant.
; X- og V-variant i IT ordren er virkningsløse.
; Indicering er virkningsløs.
; Hvis IT-ordren er en venstre halvordsordre, bør den tilhø-
; rende højre halvordsordre være statisk eller parentesmærket;
; i modsat fald ændres IT-ordrens adressetal.
;
;IT D Ordrens D-adresse anvendes som tælletal i den umiddelbart
; følgende ordre. I øvrigt som IT-ordren.
;
; NB! Se under IT-ordren.
;
;
itdm: rmo ra,rx ;
it: ran re,rx ;
stx = F+1 ;
brl is0 ;
rmo ra,rs ;
rmo ra,rb ;
ldm æ s1 ;
lda b.c0+3 ;
tabo 14 ;
bru it2 ;
lde = 3 ;
ran ra,re ;
tmbz 0,in ;
bru it0 ;
smbo 0,in ;
lda b.c0+2 ;
dst = F+2 ;
rmo rx,re ;
ldx b.c0 ;
bru it1 ;
it0: smbz 0,in ;
reo re,ra ;
dst = F+2 ;
rmo rx,re ;
ldx b.c0+1 ;
lda æ r1 ;
add = 4 ;
sabz 3 ;
sta = r1 ;
lda b.c0+2 ;
it1: brl æ am ;
bru æ ait1 ;
it2: rmo ra,re ;
lda b.c0+2 ;
dst = F+2 ;
bru æ ait0 ;
;\f
;NT Ordrens resulterende adresse med modsat fortegn anvendes som
; tælletal i den umiddelbart følgende ordre. I øvrigt som IT-
; ordren:
;
; Ftæl:= -c;
; comment: Denne sætning erstatter sætningerne Ftæl:= 0 og
; Ftæl:= tælletal(r2) i adresseberegningen for den
; umiddelbart følgende ordre;
;
; NB! Se under IT-ordren.
;
;NT D Ordrens D-adresse med modsat fortegn anvendes som tælletal
; i den umiddelbart følgende ordre. I øvrigt som NT-ordren.
;
; NB! Se under IT-ordren.
;
;
ntdm: rmo ra,rx ;
nt: rco rx,rx ;
bru it ;
;\f
;BT Idet ordrens resulterende adresse c og dens tælletal t
; begge opfattes som tal i intervallet -512 <= x <= 511,
; udføres den ordre (eller de ordrer), der findes til og
; med den følgende højre halvcelle, kun såfremt c > t.
; Ellers overspringes denne ordre (eller disse ordrer):
;
; if c <= Ftæl then
; begin
; højrehalvord:= false;
; r1:= r1+1
; end;
;
; NB! For en halvordsordre sættes tælletallet t=0.
; Hvis BT-ordren er V-mærket, gælder den beskrevne virk-
; ning ordren (ordrene) i celle r+2, idet cellen umid-
; delbart efter BT-ordren da altid overspringes.
;
;BT D Ordren har betingende virkning nøjagtig som BT, blot
; sammenlignes D-adressen med tælletallet:
;
; if Dadr <= Ftæl then
; begin
; højrehalvord:= false;
; r1:= r1+1
; end;
;
; NB! V-variant: Som ved BT.
;
;\f
;BS Idet ordrens modificerede adresse m og dens tælletal t
; begge opfattes som tal i intervallet -512 <= x <= 511,
; udføres den ordre (eller de ordrer), der findes til og
; med den følgende højre halvcelle, kun såfremt m > t.
; Ellers overspringes denne ordre (eller disse ordrer):
;
; if m <= Ftæl then
; begin
; højrehalvord:= false;
; r1:= r1+1
; end;
;
; NB! Ordren er statisk.
; For en halvordsordre sættes tælletallet t=0.
; V-variant: Som ved BT.
;
;BS D Ordren har en betingende virkning nøjagtig som BS, blot
; sammenlignes D-adressen med tælletallet:
;
; if Dadr <= Ftæl then
; begin
; højrehalvord:= false;
; r1:= r1+1
; end;
;
; NB! Ordren er statisk.
; V-variant: Som ved BT.
;
;
btdm:
bsdm: rmo ra,rx ;
bt:
bs: ran rx,re ;
lda æ F+1 ;
lld 4 ;
rca re,ra ;
sle ;
rin rl,rp ;
smbz 0,in ;
lda æ r1 ;
add = 4 ;
sabz 3 ;
sta = r1 ;
rin rl,rp ;
;\f
;CA Den ordre (eller de ordrer), der findes til og med den
; følgende højre halvcelle, udføres kun, når den resulterende
; adresse er lig med adressetallet i R. Ellers overspringes
; denne ordre (eller disse ordrer):
;
; if c <> Radr then
; begin
; højrehalvord:= false;
; r1:= r1 + 1
; end;
;
; NB! c beregnes med 11 bits i pos. 00-9 af H-registeret, og
; derpå sammenlignes indholdet i pos 0-9 med de tilsvarende
; bits i R.
; V-variant: Som ved BT.
;
;CA D Samme virkning som CA, idet dog D-adressen sammenlignes med
; adressetallet i R:
;
; if Dadr <> Radr then
; begin
; højrehalvord:= false;
; r1:= r1 + 1
; end;
;
; NB! V-variant: Som ved BT.
;
;
cadm: rmo ra,rx ;
ca: ran re,rx ;
lda æ R ;
ran re,ra ;
rcl rx,ra ;
sne ;
rin rl,rp ;
smbz 0,in ;
lda æ r1 ;
add = 4 ;
sabz 3 ;
sta = r1 ;
rin rl,rp ;
;\f
;NC Den ordre (eller de ordrer), der findes til og med den
; følgende højre halvcelle, udføres kun når den resulterende
; adresse er forskellig fra adressetallet i R. Ellers over-
; springes denne ordre (eller disse ordrer):
;
; if c = Radr then
; begin
; højrehalvord:= false;
; r1:= r1 + 1
; end;
;
; NB! c beregnes som ved CA-ordren.
; V-variant: Som ved BT.
;
;NC D Samme virkning som NC, idet dog D-adressen sammenlignes med
; adressetallet i R:
;
; if Dadr = Radr then
; begin
; højrehalvord:= false;
; r1:= r1 + 1
; end;
;
; NB! V-variant: som ved BT.
;
;
ncdm: rmo ra,rx ;
nc: ran re,rx ;
lda æ R ;
ran re,ra ;
rcl rx,ra ;
seq ;
rin rl,rp ;
smbz 0,in ;
lda æ r1 ;
add = 4 ;
sabz 3 ;
sta = r1 ;
rin rl,rp ;
;\f
;CM Den ordre (eller de ordrer) findes til og med den følgende
; højre halvcelle, udføres kun når indholdet i celle c ikke
; er identisk med R i de positioner, hvor de tilsvarende posi-
; tioner i M indeholder ettaller:
;
; coinc:= true;
; for i:= 0 step 1 until 39 do
; coinc:= coinc and (pos(i,c) and Mpos(i)
; == Rpos(i) and Mpos(i));
; if coinc then
; begin
; højrehalvord:= false;
; r1:= r1 + 1
; end;
;
; Mærkning registreres.
;
; NB! R00 indgår ikke i coincidens-undersøgelsen.
; V-variant: Som ved BT.
;
;CM D Samme virkning som CM, idet dog selve den resulterende
; adresse c efterfulgt af 30 nuller sammenlignes med R
; (med M som maske).
;
; NB! R00 indgår ikke i coincidens-undersøgelsen.
; V-variant: Som ved BT.
;
;
cm: ran re,rx ;
lde æ R+3 ;
lrd 2 ;
lda æx+c0+3 ;
cra 2 ;
cld 2 ;
ste = R+3 ;
reo re,ra ;
and æ M+3 ;
sze ra ;
rin rl,rp ;
lde æ R+2 ;
lda æx+c0+2 ;
reo re,ra ;
and æ M+2 ;
sze ra ;
rin rl,rp ;
lde æ R+1 ;
lda æx+c0+1 ;
reo re,ra ;
and æ M+1 ;
sze ra ;
rin rl,rp ;
lde æ R ;
lda æx+c0 ;
reo re,ra ;
and æ M ;
and æ= 4092 ;
sze ra ;
rin rl,rp ;
smbz 0,in ;
lda æ r1 ;
add = 4 ;
sabz 3 ;
sta = r1 ;
rin rl,rp ;
cmdm: lda æ R ;
reo rx,ra ;
and æ M ;
and æ= 4092 ;
sze ra ;
rin rl,rp ;
lda æ R+1 ;
and æ M+1 ;
sze ra ;
rin rl,rp ;
lda æ R+2 ;
and æ M+2 ;
sze ra ;
rin rl,rp ;
lda æ R+3 ;
and æ M+3 ;
sze ra ;
rin rl,rp ;
smbz 0,in ;
lda æ r1 ;
add = 4 ;
sabz 3 ;
sta = r1 ;
rin rl,rp ;
;\f
;HV Næste ordre hentes i celle c; er der to halvordsordrer
; i celle c, udføres først den venstre:
;
; højrehalvord:= false;
; r1:= c;
;
; NB! Er ordren en V-variant, hentes næste ordre i celle c+1.
;
;HV D Næste ordre hentes i den celle, der angives ved D-adressen.
; I øvrigt som HV-ordren.
;
;
hvdm: rmo ra,rx ;
hv: ran re,rx ;
smbz 0,in ;
hv0: rcl rl,rp ;
sgt ;
bru hv1 ;
stx = r1 ;
rin rl,rp ;
hv1: lda æ ud4 ;
rmo ra,rb ;
sub = 4 ;
and æ= 4092 ;
sta = r1 ;
rmo rx,ra ;
tmbo 5,F+3 ;
bru k+4 ;
add = 4 ;
smbz 5,F+3 ;
lla 4 ;
ara 4 ;
sta b.c0 ;
rin rl,rp ;
;\f
;HH Næste ordre hentes i celle c; er der to halvordsordrer
; i celle c, udføres kun den højre:
;
; højrehalvord:= true;
; r1:= c;
;
; NB! Er ordren en V-variant, hentes næste ordre i celle c+1;
;
;HH D Næste ordre hentes i den celle, der angives ved D-adressen.
; I øvrigt som HH-ordren.
;
;
hhdm: rmo ra,rx ;
hh: ran re,rx ;
smbo 0,in ;
bru hv0 ;
;\f
;HS Næste ordre hentes i den celle, der angives ved den modi-
; ficerede adresse m; indeholder denne celle to halvordsordrer,
; udføres først den venstre. HS-ordrens adresse lagres i sekvens-
; registeret, og hvis det er en helordsordre, lagres i dennes
; tællepositioner det tidligere indhold i sekvensregisteret:
;
; if -,Fpos(40) then tælletal(r):= s1;
; s1:= r;
; højrehalvord:= false;
; r1:= m;
;
; NB! Ordren er statisk.
; Er ordren en V-variant, hentes næste ordre i celle m+1.
; Benyttes flere undersekvenser "inden i hinanden", bør HS-
; ordrene altid være helordsordrer, undtagen i den yderste
; blok.
;
;HS D Samme virkning som HS. Blot hentes næste ordre i den celle,
; der angives ved D-adressen.
;
; NB! Ordren er statisk.
;
;
hsdm: rmo ra,rx ;
hs: ran re,rx ;
smbz 0,in ;
rmo rs,ra ;
lde æ s1 ;
sta = s1 ;
tmbz 14,F+3 ;
bru hv0 ;
rmo ra,rb ;
ste b.c0+1 ;
bru hv0 ;
;\f
;HR Næste ordre hentes i celle c. Indeholder denne celle to
; halvordsordrer, udføres først den venstre. Desuden overføres
; tælletallet fra celle s til sekvensregisteret:
;
; s1:= tælletal(s2);
; højrehalvord:= false;
; r1:= c;
;
; NB! Er ordren en V-variant, hentes næste ordre i celle c+1.
; Benyttes flere undersekvenser "inden i hinanden", må
; der benyttes et HR-hop svarende til hvert HS-hop, hvis
; sekvensmekanismen skal fungere korrekt.
;
;HR D Samme virkning som HR, men næste ordre hentes i den celle,
; der angives ved D-adressen.
;
;
hrdm: rmo ra,rx ;
hr: ran re,rx ;
smbz 0,in ;
rmo rm,rb ;
lda b.c0+1 ;
sta = s1 ;
bru hv0 ;
;\f
;HK Hvis der ikke er en tromletransport i gang, har ordren
; samme virkning som HS. Ellers har ordren ingen virkning
; (dog udføres altid en eventuel S-variant).
;
; NB! Ordren er statisk.
;
;HK D Hvis der ikke er en tromletransport i gang, har ordren
; samme virkning som HS D. Ellers har ordren ingen virkning
; (dog udføres altid en eventuel S-variant).
;
; NB! Ordren er statisk.
;
;
hkdm: rmo ra,rx ;
hk: ran re,rx ;
lde æ kbuf ;
snz re ;
bru (k+2) ;
trap 5 ;
hs+1 ;
rin rl,rp ;
;\f
;VK Den tromlekanal, der angives ved den resulterende adresse,
; tilkobles ferritlageret (men der sker ingen overførsel):
;
; tk:= c;
;
; NB! VK-ordren udføres først, når en eventuel igangværende
; tromletransport er afsluttet.
;
;VK D Den tromlekanal, der angives ved D-adressen, tilkobles
; ferritlageret (men der sker ingen overførsel).
;
; NB! Se under VK.
;
;
vkdm: rmo ra,rx ;
vk: ran re,rx ;
rmo rx,ra ;
ldx = svar ;
lde æ vbuf ;
snz re ;
bru k+2 ;
trap 4 ;
lde æ kbuf ;
snz re ;
bru vk0 ;
trap 4 ;
lde æ svar ;
snz re ;
bru vk0 ;
ste = fejl ;
bru æ a ;
vk0: sta æ tkr ;
ste = kbuf ;
sub æ= 3840 ;
smi ra ;
bru vk1 ;
lda = 2 ;
sta = kbes ;
ldx = kbes ;
trap 3 ;
ste = vbuf ;
snz re ;
trap 2 ;
rin rl,rp ;
vk1: sta = g ;
ste = vbuf ;
rin rl,rp ;
;\f
;LK Den i forvejen tilkoblede tromlekanal overføres til ferrit-
; lageret i 40 konsekutive celler, således at kanalens første
; ord lagres i celle c. R og M berøres ikke.
;
; NB! LK-ordren udføres først, når en eventuel igangværende
; tromletransport er afsluttet.
;
;LK D Samme virkning som LK, idet blot D-adressen træder i stedet
; for den resulterende adresse c.
;
; NB! Se under LK.
;
;
lkdm: rmo ra,rx ;
lk: ran re,rx ;
rmo rx,ra ;
lde æ kbuf ;
snz re ;
bru lk0 ;
ldx = svar ;
trap 4 ;
lde æ svar ;
snz re ;
bru lk0 ;
ste = fejl ;
bru æ a ;
lk0: sta = ta ;
lda = 3 ;
sta = kbes ;
ldx = kbes ;
trap 3 ;
ste = kbuf ;
snz re ;
trap 2 ;
rin rl,rp ;
;\f
;SK På den i forvejen tilkoblede tromlekanal lagres indholdet af
; 40 konsekutive celler fra ferritlageret; den første af disse
; celler er celle c, der lagres som det første ord på tromle-
; kanalen. R og M berøres ikke.
;
; NB! SK-ordren udføres først, når en eventuel igangværende
; tromletransport er afsluttet.
; Visse kanaler er låset for skrivning. En SK-ordre, der
; refererer til en af disse kanaler, negligeres.
;
;SK D Samme virkning som SK, idet blot D-adressen træder i stedet
; for den resulterende adresse c.
;
; NB! Se under SK.
;
;
skdm: rmo ra,rx ;
sk: ran re,rx ;
rmo rx,ra ;
lde æ kbuf ;
snz re ;
bru sk0 ;
ldx = svar ;
trap 4 ;
lde æ svar ;
snz re ;
bru sk0 ;
ste = fejl ;
bru æ a ;
sk0: sta = ta ;
lda = 4 ;
sta = kbes ;
ldx = kbes ;
trap 3 ;
ste = kbuf ;
snz re ;
trap 2 ;
rin rl,rp ;
;\f
;VY Den modificerede adresse anbringes i by-registeret med
; ordrens tælletal som maske, idet de positioner, der er
; angivet ved ettaller i ordrens tælletal (binært), ikke
; ændres:
;
; for i:= 0 step 1 until 9 do
; by(i):= (by(i) and Ftæl(i)) or (Hpos(i) and -,Ftæl(i));
;
; NB! Ordren er statisk.
; Står VY-ordren som halvordsordre, opfattes tælletallet
; som 0, d.v.s. at hele den modificerede adresse overføres
; til by-registeret.
;
;VY D Samme virkning som VY, idet blot D-adressen træder i
; stedet for den modificerede adresse m.
;
; NB! Ordren er statisk.
; Normalt uden interesse.
;
;
vydm: rmo ra,rx ;
vy: ran re,rx ;
lda æ F+1 ;
riv ra,re ;
and æ by ;
ran rx,re ;
ror re,ra ;
sta = by ;
rin rl,rp ;
;\f
;LY Et tegn læses fra en ydre enhed til adressepositionerne i R og
; i celle c således, at tegnets bitkombination (bortset fra pari-
; tetsmærket) anbringes i pos. 3-9. Pos 0-2 (samt R00) nulstilles,
; og pos 10-39 er uændrede.
; by-registerets pos. 7-9 bestemmer, fra hvilken ydre enhed der
; indlæses:
;
; by7-9 = 000: strimmellæser
; by7-9 = 001: skrivemaskine
; by7-9 = 010: hulkortlæser
; by7-9 = 011: strimmellæser uden stop ved lige paritet
;
; NB! Tegnet overføres via bufferregistret bl til cellen og R.
; Ved lige paritet standser GIER efter overførsel af tegnet
; fra bl til R og cellen, hvis by pos. 7-9 = 000, og man har
; da mulighed for at rette i R og cellen. Er by pos. 7-9
; = 011, sættes R pos. 00 = r pos. 0 = 1 ved lige paritet,
; og GIER standser ikke. Blank strimmel overspringes altid,
; og All Holes indlæses altid uden stop med henholdsvis
; talværdi 127, hvis by pos 7-9 = 000, og talværdi -385,
; hvis by pos 7-9 = 011.
;
;LY D Samme virkning som LY, idet blot D-adressen træder i stedet
; for den resulterende adresse c.
;
; NB! Se under LY.
;
;
lydm: rmo ra,rx ;
ly: ran re,rx ;
rmo rx,rb ;
lda = 5 ;
sta = ybes ;
ldx = ybes ;
trap 3 ;
trap 4 ;
lda æ bl ;
sta = R ;
sta b.c0 ;
rin rl,rp ;
;\f
;SY De 7 bageste cifre i den resulterende adresse c (pos. 3-9)
; udskrives i overensstemmelse med flexowriterkoden (uden
; hensyn til paritetsmærke). Ved udlæsning til strimmel sættes
; derefter paritetsmærke på rette plads. De 7 bageste cifre
; i c skiftes 10 positioner til højre og adderes til indholdet
; i celle 1023 i pos. 0-19.
; by-registerets pos 4-5 bestemmer, hvilke ydre enheder der
; skrives på:
;
; by(6) = 1: linieskriver
; by(5) = 1: skrivemaskine
; by(4) = 1: perforator
; by(3) = 1: plotter
;
; NB! I celle 1023, pos. 0-19, dannes summen af de udlæste
; "tegn", og indholdet kan derfor bruges som checksum
; for udskrift.
; Udskriftsenhederne kan tilsluttes uafhængigt af hinanden
; og af indlæseenheder.
;
;SY D Samme virkning som SY, idet blot D-adressen træder i stedet
; for den resulterende adresse c.
;
; NB! Se under SY.
; Normalt uden interesse.
;
;
sydm: rmo ra,rx ;
sy: stx = bsr ;
lda = 6 ;
sta = ybes ;
ldx = ybes ;
trap 3 ;
trap 4 ;
lda æ bsr ;
add æ c0+4093 ;
cpl æ= 1<12 ;
sabz 3 ;
sta æ c0+4093 ;
sle ;
rin rl,rp ;
lda = 4 ;
add æ c0+4092 ;
lla 4 ;
ara 4 ;
sta æ c0+4092 ;
rin rl,rp ;
;\f
;QQ Ingen grundoperation, men alle ønskede modifikationer
; (adresseberegning, X-variant etc.) udføres.
;
; NB! Da talværdien for QQ er 0, bevirker ordren QQ 0 under
; indlæsningen nulstilling af en celle (eller af et
; halvord).
; Adressen er irrelevant for ordrens udførelse.
;
;
qq: rin rl,rp ;
;\f
;ZQ Efter at have udført alle modifikationer stopper GIER.
; En eventuel igangværende tromletransport afsluttes dog før
; stoppet. Ved tryk på NORMAL START fortsætter GIER med
; næste ordre (eller den næste igen, hvis ZQ-ordren er for-
; synet med et V).
;
; NB! Adressen i ZQ-ordren er irrelevant.
;
;
zq: smbo 7,fejl ;
rin rl,rp ;
;\f
;XR Indholdet af R og M ombyttes (idet R00 ikke medtages):
;
; H:= M;
; M:= R;
; comment exclusive R00;
; R:= H;
;
; Fortegn kan indiceres.
;
; NB! Adressen i XR-ordren er irrelevant.
; Det fortegn, der kan indiceres, er det resulterende
; fortegn i R, d.v.s. fortegnet for indholdet i M før
; operationen.
;
;
xr: lda æ R+3 ;
ran ra,re ;
and = 3 ;
ior æ M+3 ;
sta = R+3 ;
lda æ R+2 ;
ldx æ M+2 ;
dst = M+2 ;
stx = R+2 ;
dld æ R ;
ldx æ M+1 ;
ste = M+1 ;
stx = R+1 ;
lde æ M ;
rmo re,rs ;
cld 4 ;
ara 4 ;
cre 4 ;
sta = M ;
ste = R ;
rmo rs,ra ;
rin rl,rp ;
;\f
;UD En af de ordrer, der står i celle c, udføres med den dergældende
; r-værdi og (hvis s-mekanismen benyttes korrekt) med den dergæld-
; ende s-værdi.
; Af nedenstående skema aflæses virkningerne af samspillet mellem
; placeringen af UD-ordren og af ordren (ordrerne) i celle c.
; Er ordren i celle c en sattellitordre (IS, NS, IT eller NT),
; udføres hele sattellitkæden, d.v.s. sattellitordren (evt. or-
; drerne) samt den ordre, der påvirkes af den sidste sattellit-
; ordre. Samtidig øges r tilsvarende. (Er den sidste ordre i sat-
; tellitkæden en hopordre, udføres denne).
;
; NB! X- og V-varianter i UD-ordren er virkningsløse.
;
;UD D Samme virkning som UD, idet c overalt erstattes med D-adressen.
;
; NB! Normalt uden interesse.
; X- og V-varianter i UD D-ordren er virkningsløse.
;\f
; ! UD-ordren i celle r er et
; I celle c ! ! !
; ! helord ! venstre halvord ! højre halvord
;------------!------------------!------------------!------------------
;To halvord ! ! !
; ! ! !
; Ingen ! ! !
; hopordrer!Højre halvord i !Venstre halvord i !Højre halvord i
; !celle c udføres, !celle c udføres, !celle c udføres,
; !og derefter ordren!og derefter højre !og derefter ordren
; !i celle r+1. !halvord i celle r.!i celle r+1.
; ! ! !
; Hopordre !Som når der ingen !Res. adresse af !Som når der ingen
; i venstre!hopordrer er i !venstre halvord !hopordrer er i
; halvord !celle c. !lagres som adres- !celle c.
; ! !setal i celle r. !
; ! !Dernæst udføres !
; ! !venstre eller høj-!
; ! !re halvord i celle!
; ! !r-1 eftersom hop- !
; ! !ordren er HV (HS, !
; ! !HR, HK) eller HH. !
; ! ! !
; Hopordre !Res. adresse af !Som når der ingen !Res. adresse af
; i højre !højre halvord lag-!hopordrer er i !højre halvord lag-
; halvord !res som adressetal!celle c. !res som adressetal
; !i celle r. Dernæst! !i celle r. Dernæst
; !udføres venstre ! !udføres venstre
; !eller højre halv- ! !eller højre halv-
; !ord i celle r-1 ! !ord i celle r-1
; !eftersom hopordren! !eftersom hopordren
; !er HV (HS, HR, HK)! !er HV (HS, HR, HK)
; !eller HH. ! !eller HH.
; ! ! !
;------------!--------------------------------------------------------
;Et helord !
; !
; Ikke hop-!
; ordre, !
; uden V !Ordren i celle c udføres, og derefter ordren i celle r+1.
; !
; Ikke hop-!
; ordre, !
; med V !Ordren i celle c udføres, og derefter ordren i celle r+2.
; !
; Hopordre !Res. adresse af ordren i celle c lagres som adressetal i
; !celle r. Dernæst udføres venstre eller højre halvord i
; !celle r-1 eftersom hopordren er HV (HS, HR, HK) eller HH.
; !
;
;
uddm: rmo ra,rx ;
ud: ran re,rx ;
rmo rx,rb ;
rex rx,rs ;
rcl rl,rp ;
sgt ;
stx ud4 ;
lda b.c0+3 ;
tabo 14 ;
bru ud2 ;
lde = 3 ;
ran ra,re ;
tmbo 0,in ;
bru ud0 ;
lda b.c0+2 ;
ldx b.c0 ;
bru ud1 ;
ud0: reo re,ra ;
ldx b.c0+1 ;
ud1: dst = F+2 ;
lde = 0 ;
ste = F+1 ;
brl æ am0 ;
tabz 10 ;
brl (ud5) ;
lra 5 ;
and = 126 ;
lde æ= 4092 ;
rex ra,rb ;
brl (b.o0) ;
bru (k+2) ;
bru æ a ;
ud2: sta = F+3 ;
tmbo 0,in ;
bru ud3 ;
smbz 0,in ;
lda æ r1 ;
add = 4 ;
sabz 3 ;
sta = r1 ;
lda b.c0+3 ;
ud3: tabz 7 ;
brl (ud6) ;
dld b.c0+1 ;
dst = F+1
rex ra,re ;
tmbz 6,F+3 ;
brl (ud7) ;
brl (ud8) ;
tabz 10 ;
brl (ud5) ;
lra 5 ;
and = 126 ;
tmbz 6,F+3 ;
add = 1 ;
lde æ= 4092 ;
rex ra,rb ;
brl (b.o0) ;
bru (ud9) ;
rmo ra,rs ;
lda æ F+3 ;
rmo ra,rm ;
brl æ vxm ;
bru æ ii ;
ud4: 0 ;
ud5: snm ;
ud6: iln ;
ud7: amd ;
ud8: am ;
ud9: im ;
;\f
;IL
;US
;GC
;PC
;ZJ
;ZL Illegale ordrer, der bevirker, at GIER stopper på
; tærsklen til næste ordre med TO-fejl lampen tændt.
;
;
il:
us:
gc:
pc:
zj:
zl: smbo 0,fejl ;
bru æ a ;
▶EOF◀