DataMuseum.dk

Presents historical artifacts from the history of:

CR80 Hard and Floppy Disks

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about CR80 Hard and Floppy Disks

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦97c7c8104⟧ TextFile

    Length: 3054 (0xbee)
    Types: TextFile
    Names: »SWL_A.S«

Derivation

└─⟦b8af24a88⟧ Bits:30005796 CR80 Disc Pack ( MINICAMPS )
    └─ ⟦this⟧ »OJG.D!SWL_A.S« 

TextFile

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»