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