mirror of
https://github.com/pkimpel/retro-b5500.git
synced 2026-02-12 03:07:30 +00:00
159 lines
14 KiB
Plaintext
159 lines
14 KiB
Plaintext
$ SET $ LIST PRT DEBUGN 00000100
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%00000200
|
|
%% %%00000300
|
|
%% RETRO-B5500 EMULATOR CHARACTER MODE TESTS %%00000400
|
|
%% %%00000500
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%00000600
|
|
% 2013-01-26 P.KIMPEL 00000700
|
|
% ORIGINAL VERSION 00000800
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%00099900
|
|
00100000
|
|
BEGIN 00100100
|
|
INTEGER I; 00100200
|
|
REAL R; 00100300
|
|
ARRAY S[16]:= 00100400
|
|
"01234567","89ABCDEF","GHIJKLMN","OPQRSTUV","WXYZ +-/", 00100500
|
|
"NOW IS T","HE TIME ","FOR ALL ","GOOD MEN"," TO COME", 00100600
|
|
" TO THE ","AID OF T","HEIR PAR","TY. ","1234567Q","12345678"; 00100700
|
|
ARRAY D[16]; 00100800
|
|
LABEL ENTRY, START; 00100900
|
|
00400000
|
|
ENTRY:@20: GO TO START; 00400100
|
|
00500000
|
|
START:*: 00500100
|
|
00500200
|
|
D[0]:= 76543210; 00500300
|
|
00520000
|
|
STREAM(R:=-D[0] : COUNT:=0, S:=S, D:=D); 00520100
|
|
BEGIN 00520200
|
|
SI:= S; 00520300
|
|
SI:= SI+51; 00520400
|
|
DI:= DI+6; 00520500
|
|
DS:= 5 CHR; 00520600
|
|
00520700
|
|
SI:= LOC R; 00520800
|
|
DI:= D; 00520900
|
|
DI:= DI+17; 00521000
|
|
DS:= 8 DEC; 00521100
|
|
00521200
|
|
SI:= D; 00521300
|
|
2(SI:= SI+7); 00521400
|
|
SI:= SI+3; 00521500
|
|
DI:= LOC R; 00521600
|
|
DS:= 8 OCT; 00521700
|
|
00521800
|
|
DI:= D; 00521900
|
|
DI:= DI+9; 00522000
|
|
COUNT:= DI; 00522100
|
|
DS:= 9 LIT "ADGJMPSV7"; 00522200
|
|
00522300
|
|
SI:= COUNT; 00522400
|
|
DS:= 9 ZON; 00522500
|
|
00522600
|
|
SI:= COUNT; 00522700
|
|
DS:= 9 NUM; 00522800
|
|
00522900
|
|
SI:= COUNT; 00523000
|
|
DI:= COUNT; 00523100
|
|
DI:= DI+11; 00523200
|
|
TALLY:= 3; 00523300
|
|
COUNT:= TALLY; 00523400
|
|
DS:= COUNT WDS; 00523500
|
|
00523600
|
|
DI:= D; 00523700
|
|
DI:= DI+9; 00523800
|
|
DS:= 9 FILL; 00523900
|
|
00524000
|
|
SI:= S; 00524100
|
|
IF SC > "A" THEN 00524200
|
|
DS:= SET; 00524300
|
|
IF SC } "A" THEN 00524400
|
|
DS:= SET; 00524500
|
|
IF SC = "A" THEN 00524600
|
|
DS:= SET; 00524700
|
|
IF SC { "A" THEN 00524800
|
|
DS:= SET; 00524900
|
|
IF SC < "A" THEN 00525000
|
|
DS:= SET; 00525100
|
|
IF SC ! "A" THEN 00525200
|
|
DS:= SET; 00525300
|
|
IF SC = ALPHA THEN 00525400
|
|
DS:= SET; 00525500
|
|
00525600
|
|
SI:= S; 00525700
|
|
DI:= D; 00525800
|
|
IF 9 SC > DC THEN 00525900
|
|
TALLY:= TALLY+1; 00526000
|
|
SI:= S; 00526100
|
|
DI:= D; 00526200
|
|
IF 9 SC } DC THEN 00526300
|
|
TALLY:= TALLY+1; 00526400
|
|
SI:= S; 00526500
|
|
DI:= D; 00526600
|
|
IF 9 SC = DC THEN 00526700
|
|
TALLY:= TALLY+1; 00526800
|
|
SI:= S; 00526900
|
|
DI:= D; 00527000
|
|
IF 9 SC { DC THEN 00527100
|
|
TALLY:= TALLY+1; 00527200
|
|
SI:= S; 00527300
|
|
DI:= D; 00527400
|
|
IF 9 SC < DC THEN 00527500
|
|
TALLY:= TALLY+1; 00527600
|
|
SI:= S; 00527700
|
|
DI:= D; 00527800
|
|
IF 9 SC ! DC THEN 00527900
|
|
TALLY:= TALLY+1; 00528000
|
|
00528100
|
|
3(IF SB THEN JUMP OUT ELSE SKIP SB); 00528200
|
|
2(IF SB THEN 00528300
|
|
SKIP SB 00528400
|
|
ELSE 00528500
|
|
BEGIN 00528600
|
|
SKIP 2 SB; 00528700
|
|
JUMP OUT; 00528800
|
|
END; 00528900
|
|
); 00529000
|
|
00529100
|
|
SI:= SC; 00529200
|
|
DI:= DC; 00529300
|
|
00529400
|
|
SI:= S; 00529500
|
|
DI:= D; 00529600
|
|
DI:= DI+8; 00529700
|
|
SKIP 40 SB; 00529800
|
|
SKIP 40 DB; 00529900
|
|
TALLY:= 10; 00530000
|
|
COUNT:= TALLY; 00530100
|
|
COUNT( 00530200
|
|
IF SB THEN DS:= SET ELSE DS:= RESET; 00530300
|
|
SKIP SB; 00530400
|
|
); 00530500
|
|
00530600
|
|
DI:= D; 00530700
|
|
DS:= 9 LIT "00000123M"; 00530800
|
|
DS:= 9 LIT "765432100"; 00530900
|
|
SI:= D; 00531000
|
|
DI:= D; 00531100
|
|
DI:= DI+9; 00531200
|
|
DS:= 9 ADD; 00531300
|
|
00531400
|
|
DI:= D; 00531500
|
|
DS:= 9 LIT "00000123M"; 00531600
|
|
DS:= 9 LIT "765432100"; 00531700
|
|
SI:= D; 00531800
|
|
DI:= D; 00531900
|
|
DI:= DI+9; 00532000
|
|
DS:= 9 SUB; 00532100
|
|
00532200
|
|
COUNT:= CI; 00532300
|
|
CI:= COUNT; % SINCE RCA INCREMENTS L, THIS SHOULD BE OK 00532400
|
|
TALLY:= COUNT; 00532500
|
|
00532600
|
|
END STREAM; 00549900
|
|
00550000
|
|
P(DEL); % EAT THE WORD LEFT BELOW MSCW BY THE STREAM 00550100
|
|
00999700
|
|
GO TO START; 00999800
|
|
END. 00999900
|