Machine Language

Hommage to pocket cyber explorers who decrypted the un-documented machine language of pocket computers. For example Norlin R. who got a dedicated issue of the Pocket Computer Newsletter

… is the result of a truly monumental undertaking by Norlin R. (Iowa). … culmination of months of dedicated labor. In honor of his efforts, PCN proposes to refer to the mnemonics he has devised … as the R. mnemonics.

Here we deal with the (less than) two-hundred-fifty-six operation codes (opcodes) of the SC61860 central processing unit, used in a few generations of S. pocket computers. The abbreviations (short formulas or mnemonics) describe the function of a command encoded by one (or two, three, four) bytes. They have been published in a 1989 handbook by the West-Berlin based F. Verlag. The hex-digits (to base sixteen) of the first byte provide the coordinates in the table: 42 is third in the fifth column. Hovering with the mouse over a mnemonic, you get the more standard ones established by Edgar P. and others. The hyper-links go directly to a list of mnemonics with more information. See also the disclaimer.

Können Maschinen sprechen? Die Faszination des Entschlüsselns … à suivre


0. 1. 2. 3. 4. 5. 6. 7.
.0 I:= #b nn:= #nm A:=p p:=A I+1 p+1 (p) and #b (p)+ #b
.1 J:= #b nl:= #m A:=q q:=A I-1 p-1 (p) or #b (p)- #b
.2 A:= #b p:= #b A:=s s:=A A+1 (nn):=A BIT (p), #b ? #b
.3 B:= #b q:= #b ? ? A-1 (nn):=(p) CMP (p), #b ?
.4 nn:=X+1 (p)+AB A:=(X+1) PUSH (p)+A ? A and #b A+ #b
.5 nn:=X-1 (p)-AB A:=(X-1) (p)I:=(AB)I (p)-A (p):=(nn) A or #b A- #b
.6 nn:=Y+1 ! (Y+1):=A ! (p) and A ? BIT A, #b ?
.7 nn:=Y-1 ! (Y-1):=A RTS (p) or A A:=(nn) CMP A, #b ?
.8 (p)I:=(q)I (p)I:=(nn)I JZC+ #b JZS+ #b K+1 CHN A ? JSR #nm
.9 (q)I==(p)I (nn)I==(p)I JZC- #b JZS- #b K-1 A:=(p) ON: JMP #nm
.A (p)J:=(q)J (p)J:=(nn)J JCC+ #b JCS+ #b M+1 SL A,c ? CASE #b #nm
.B (q)J==(p)J (nn)J==(p)J JCC- #b JCS- #b M-1 POP BIT Ch3, #b !
.C I(p)+A,d SR (p)I JMP+ #b ! A:=Ch1 ! ! JZC #nm
.D I(p)-A,d SL I(p) JMP- #b ! . OUT(5C) ! JCC #nm
.E I(p)+I(q),d (p)I:=A ! ! WAIT #b ! ! JZS #nm
.F I(p)-I(q),d (nn)I:=A LOOP- #b ! WAIT0 OUT(5E) WAIT1 JCS #nm

Was das mit „woerterbeet“ zu tun hat? In den Abkürzungen (mnemonics) darf man vermuten, dass „W“ für etwas wie „Wort“ steht (mehrere Bytes zusammengefasst), während „B“ ein „Beet“ ist (meistens zwei Bytes).


8. 9. A. B. C. D. E. F.
.0 (p):I p:=10 p:=20 p:=30 J+1 SET c JSR 00#m JSR 10#m
.1 (p):J p:=11 p:=21 p:=31 J-1 CLR c JSR 01#m JSR 11#m
.2 (p):A p:=12 p:=22 p:=32 B+1 SR A,c JSR 02#m JSR 12#m
.3 (p):B p:=13 p:=23 p:=33 B-1 ? JSR 03#m JSR 13#m
.4 (p):Xl p:=14 p:=24 p:=34 (p)+A,c (nn) and #b JSR 04#m JSR 14#m
.5 (p):Xh p:=15 p:=25 p:=35 (p)-A,c (nn) or #b JSR 05#m JSR 15#m
.6 (p):Yl p:=16 p:=26 p:=36 BIT (p),A BIT (nn), #b JSR 06#m JSR 16#m
.7 (p):Yh p:=17 p:=27 p:=37 CMP (p),A CMP (nn), #b JSR 07#m JSR 17#m
.8 (p):K p:=18 p:=28 p:=38 L+1 (s):=00 JSR 08#m JSR 18#m
.9 (p):L p:=19 p:=29 p:=39 L-1 ? JSR 09#m JSR 19#m
.A (p):M p:=1A p:=2A p:=3A N+1 B==A JSR 0A#m JSR 1A#m
.B (p):N p:=1B p:=2B p:=3B N-1 (p)==A JSR 0B#m JSR 1B#m
.C p:=0C p:=1C p:=2C p:=3C A:=Ch2 ! JSR 0C#m JSR 1C#m
.D p:=0D p:=1D p:=2D p:=3D ? OUT(5D) JSR 0D#m JSR 1D#m
.E p:=0E p:=1E p:=2E p:=3E . ! JSR 0E#m JSR 1E#m
.F p:=0F p:=1F p:=2F p:=3F ! OUT(5F) JSR 0F#m JSR 1F#m

Advertisements