|
|
DataMuseum.dkPresents historical artifacts from the history of: CR80 Hard and Floppy Disks |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CR80 Hard and Floppy Disks Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 3054 (0xbee)
Types: TextFile
Names: »SWL_A.S«
└─⟦b8af24a88⟧ Bits:30005796 CR80 Disc Pack ( MINICAMPS )
└─⟦this⟧ »OJG.D!SWL_A.S«
MAINMODULE CPRNR;
%NOLIST
%SOURCE @**GENS.D*SWELLPREFIX.D*GENERALPARAMS.S
%SOURCE @**GENS.D*SWELLPREFIX.D*MONITORNAMES.S
%SOURCE @**GENS.D*SWELLPREFIX.D*IOSPARAMS.S
%SOURCE @**UTILITYHELP.I
%LIST
TYPE
CH_TYPE=(I_ERROR, I_SPACE, I_DIGIT, I_LETTER, I_OTHER);
DIGIT_ARR = ARRAY [1..10] OF INTEGER;
VAR
CPR_NR :DIGIT_ARR;
BEGIN
ACCEPTFILES(R6);
READSYSPARAMS(R6);
CLOSESTREAM(ADDRESS(PFILETYPE)=>R4,R6);
DISMANTLEFILE(R4,R6);
OPENSTREAM(ADDRESS(CINFILETYPE)=>R4,INPUT_MODE=>R3,R6);
MON(STREAM,OUTTEXTB,COUTFILETYPE.S=>R4,ADDRESS('ENTER CPRNR:(:0:)')=>R6,R7);
MON(STREAM, FLUSH, COUTFILETYPE.S=>R4,R7);
0=>R6;
REPEAT
SWITCH
MON ( STREAM, INTYPE, CINFILETYPE.S=>R4,R7): CH_TYPE
TO
I_ERROR,
I_SPACE : BEGIN MON ( STREAM, OUTTEXTB,COUTFILETYPE.S=>R4,
ADDRESS ('(:10:) ERROR IN INPUT(:10:)(:0:)')=>R6,R7);
MON (STREAM,FLUSH,COUTFILETYPE.S=>R4,R7);
#EE=>R7;
0=>R6
END;
I_DIGIT : BEGIN
R6+1;
IF R6=11 THEN BEGIN
MON (STREAM, OUTTEXTB, COUTFILETYPE.S=>R4,
ADDRESS ('(:10:) TO LONG NUMBER(:10:)(:0:)')=>R6,R7);
MON(STREAM, FLUSH, COUTFILETYPE.S=>R4,R7);
#EE=>R7;
0=>R6
END
ELSE BEGIN R3=>CPR_NR[R6];
#AA=>R7
END
END; "END DIGIT"
I_LETTER: BEGIN IF R3='Q' THEN #FF =>R7
ELSE
BEGIN MON (STREAM, OUTTEXTB, COUTFILETYPE.S=>R4,
ADDRESS('(:10:) DO NOT USE LETTERS IN CPR_NR(:10:)(:0:)')=>R6,R7);
MON (STREAM, FLUSH,COUTFILETYPE.S=>R4,R7);
#EE => R7;
0 => R6
END
END; "END LETTER"
I_OTHER : BEGIN
IF R6=10 LOGAND R3='(:10:)'
THEN #FE=>R6
ELSE BEGIN
MON (STREAM, OUTTEXTB,COUTFILETYPE.S=>R4,
ADDRESS ('(:10:) DO NOT USE SPECIAL CHARACTERS IN CPR_NR(:10:)(:0:)')=>R6,R7);
MON (STREAM,FLUSH,COUTFILETYPE.S=>R4,R7);
#EE => R7;
0 => R6
END
END
END; "END SWITCH"
IF R7= #EE THEN BEGIN
MON (STREAM,OUTTEXTB,COUTFILETYPE.S=>R4,
ADDRESS('(:10:) WILLYOU TRY AGAIN?? TYPE Q TO QUIT(:10:)(:0:)')=>R6,R7);
MON (STREAM,OUTTEXTB,COUTFILETYPE.S=>R4,
ADDRESS(' NEW CPR_NR: (:0:)')=>R6,R7);
MON (STREAM,FLUSH,COUTFILETYPE.S=>R4,R7);
0 => R6
END
UNTIL R2=#FF;
MON (STREAM, OUTTEXTB, COUTFILETYPE.S=>R4,
ADDRESS ('(:10:) THE NUMBER IS OK(:10:)(:0:)')=>R6, R7);
MON (STREAM, FLUSH,COUTFILETYPE.S=>R4,R7);
CLOSESTREAM(ADDRESS(COUTFILETYPE)=>R4,R6);
DISMANTLEFILE(R4,R6);
DISMANTLEFILE(ADDRESS(CINFILETYPE)=>R4,R6);
MON(TERMINATE,0=>R0=>R1,R7);
END
ENDMODULE «a5»