|
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 - 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◀