1
0
mirror of https://github.com/pkimpel/retro-b5500.git synced 2026-02-12 11:17:29 +00:00
Files
pkimpel.retro-b5500/webUI/tools/tests/CHARMODE.esp_m

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