DataMuseum.dk

Presents historical artifacts from the history of:

RegneCentralen RC3600/RC7000

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

See our Wiki for more about RegneCentralen RC3600/RC7000

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦890d3e997⟧ TextFile

    Length: 17408 (0x4400)
    Types: TextFile
    Names: »B23«

Derivation

└─⟦6dbcc9c03⟧ Bits:30000463 DOMUS disk image
    └─⟦this⟧ 

TextFile

 0010 REM *********************************************************************   ▶08◀▶08◀▶08◀▶08◀▶08◀
 0020 REM *********************************************************************   ▶08◀▶08◀▶08◀▶08◀▶08◀
 0030 REM **                                                                 **   ▶08◀▶08◀▶08◀▶08◀▶08◀
 0040 REM ** PROGRAM NAME: SCOREUP.                                          **   ▶08◀▶08◀▶08◀▶08◀▶08◀
 0050 REM ** VERSION: 81.11.01.                                              **   ▶08◀▶08◀▶08◀▶08◀▶08◀
 0060 REM **                                                                 **   ▶08◀▶08◀▶08◀▶08◀▶08◀
 0070 REM ** THE PROGRAM LISTS ON DISPLAY AND/OR PRINTER THE CONTENTS OF THE **
 0080 REM ** FILE "SCORE" (SCORE-TABLE FOR GAME "XANDO").                    **
 0090 REM ** THE PROGRAM CAN ALSO PERFORM SELECTIVE UPDATING OF THE "SCORE"  **
 0100 REM ** FILE.                                                           **
 0110 REM **                                                                 **   ▶08◀▶08◀▶08◀▶08◀▶08◀
 0120 REM ** THIS PROGRAM WAS CREATED BY BQRGE E. LARSEN, RC COMPUTER.       **   ▶08◀▶08◀▶08◀▶08◀▶08◀
 0130 REM **                                                                 **
 0140 REM *********************************************************************
 0150 REM *********************************************************************   ▶08◀▶08◀▶08◀▶08◀▶08◀
 0160 REM 
 0170 REM 
 0180 NUL=0
 0190 DIM BUF$(128),BBUF$(128),INIT$(5),BINIT$(5),UPDINIT$(5),PAS$(5),BPAS$(5)
 0200 DIM NEWPAS$(5)
 0210 ON ESC STOP 
 0220 REPEAT 
 0230   EXEC MENU(S)
 0240   IF S=49 OR S=50 THEN EXEC LIST(S)
 0250   REM ..1.......2.....
 0260   IF S=51 OR S=52 THEN EXEC UPDAT(S)
 0270   REM ..3.......4.....
 0280   IF S=53 OR S=54 THEN EXEC SCORMOD(S)
 0290   REM ..5.......6....
 0300 UNTIL S=55 OR S=81 OR S=113
 0310 REM .....7......'Q'.....'Q'.....
 0320 PRINT CHR(12)
 0330 STOP 
 0340 REM ____________________________________________________________________
 0350 REM 
 0360 PROC MENU(SS)
 0370   PRINT CHR(12)
 0380   EXEC YX(2,37)
 0390   PRINT "MENU"
 0400   EXEC YX(3,37)
 0410   PRINT "===="
 0420   EXEC YX(6,1)
 0430   PRINT "1: LISTING OF MEMBERS IN SCORE-TABLE."
 0440   PRINT 
 0450   PRINT "2: LISTING WITH PRINTING OF MEMBERS IN SCORE-TABLE."
 0460   PRINT 
 0470   PRINT "3: INSERTION, UPDATING OR DELETION OF SELECTED MEMBERS."
 0480   PRINT 
 0490   PRINT "4: LISTING, UPDATING OR DELETION, MEMBER BY MEMBER."
 0500   PRINT 
 0510   PRINT "5: CREATION OF NEW (EMPTY) SCORE-TABLE."
 0520   PRINT 
 0530   PRINT "6: CHANGE LENGHT OF EXISTING SCORE-TABLE."
 0540   PRINT 
 0550   PRINT "7: EXIT FROM THE PROGRAM."
 0560   PRINT 
 0570   PRINT 
 0580   PRINT "KEY IN THE NUMBER OF THE SELECTED OPERATION: "
 0590   EXEC YX(21,47)
 0600   S=KEY(0)
 0610 ENDPROC MENU
 0620 REM ____________________________________________________________________
 0630 REM 
 0640 REM PROCEDURE LIST FOR LISTING AND/OR PRINTING OF MEMBERS OF SCORE-TABLE.   ▶08◀▶08◀▶08◀▶08◀▶08◀
 0650 REM 
 0660 PROC LIST(SS)
 0670   OPEN "SCORE",F,BUF$,22
 0680   REPEAT 
 0690     REPEAT 
 0700       PRINT CHR(12)
 0710       EXEC YX(8,1)
 0720       PRINT "TO LIST, PRESS DOWN THE SPACE BAR."
 0730       PRINT 
 0740       PRINT 
 0750       PRINT "TO EXIT, KEY IN 'Q'."
 0760       EXEC YX(16,1)
 0770       PRINT "ENTER YOUR COMMAND: "
 0780       EXEC YX(16,22)
 0790       Y=KEY(0)
 0800     UNTIL Y=32 OR Y=81 OR Y=113
 0810     REM ...<SP>.....'Q'.....'Q'...
 0820     IF Y=32 THEN 
 0830       I=1; J=4
 0840       IF SS=50 THEN EXEC INITPRT
 0850       PRINT CHR(12)
 0860       EXEC YX(1,10)
 0870       PRINT "INITIALS:   PASSWORD:   GAMES:   WON:   LOST:"
 0880       EXEC YX(2,10)
 0890       PRINT "=========   =========   ======   ====   ====="
 0900       REPEAT 
 0910         GET F,I : INIT$,PAS$,GAMES,WON,LOST
 0920         EXEC YX(J,12)
 0930         PRINT INIT$; TAB(12); PAS$; TAB(22); 
 0940         PRINT USING "####    ####    ####" : GAMES,LOST,WON
 0950         J=J+(J<24)*1
 0960         IF J=24 THEN 
 0970           J=J-1
 0980           PRINT CHR(10)
 0990           EXEC YX(1,10)
 1000           PRINT "INITIALS:   PASSWORD:   GAMES:   WON:   LOST:"
 1010           EXEC YX(2,10)
 1020           PRINT "=========   =========   ======   ====   ====="
 1030         ENDIF 
 1040         IF SS=50 THEN 
 1050           OUTPUT P
 1060           PRINT TAB(12); INIT$; TAB(24); PAS$; TAB(34); 
 1070           PRINT USING "####    ####    ####" : GAMES,LOST,WON
 1080           OUTPUT C
 1090         ENDIF 
 1100         I=I+1
 1110         Z=KEY(0)
 1120       UNTIL Z<>32 OR INIT$="XXXXX"
 1130       PRINT TAB(9); "============================================="
 1140       IF SS=50 THEN 
 1150         OUTPUT P
 1160         PRINT 
 1170         PRINT TAB(10); "============================================="
 1180         OUTPUT C
 1190       ENDIF 
 1200     ENDIF 
 1210   UNTIL Y=81 OR Y=113
 1220   CLOSE F
 1230 ENDPROC LIST
 1240 REM ____________________________________________________________________
 1250 REM 
 1260 REM PROCEDURE UPDAT FOR UPDATING OF ONE OR MORE MEMBERS OF
 1270 REM SCORE-TABLE.
 1280 REM 
 1290 PROC UPDAT(SS)
 1300   SIZEFLAG=0
 1310   OPEN "SCORE",F,BUF$,22
 1320   IF SS=51 THEN 
 1330     PRINT CHR(12)
 1340     EXEC YX(3,22)
 1350     PRINT "UPDATING OR INSERTION OF MEMBER(S)."
 1360     EXEC YX(4,22)
 1370     PRINT "==================================="
 1380     LOOP 
 1390       REPEAT 
 1400         EXEC YX(7,0)
 1410         PRINT CHR(31)
 1420         EXEC YX(10,1)
 1430         PRINT "SELECT FUNCTION:"
 1440         PRINT 
 1450         PRINT "    'SPACE': UPDATE OR DELETE MEMBER."
 1460         PRINT 
 1470         PRINT "     I     : INSERT NEW MEMBER."
 1480         PRINT 
 1490         PRINT "     Q     : EXIT."
 1500         PRINT 
 1510         PRINT 
 1520         PRINT "INPUT THE SELECTED FUNCTION CODE: "
 1530         EXEC YX(19,35)
 1540         Y=KEY(0)
 1550       UNTIL Y=32 OR Y=73 OR Y=105 OR Y=81 OR Y=113
 1560       REM ...'SP'....'I'......'I'.....'Q'......'Q'....
 1570       IF Y=81 OR Y=113 THEN EXIT 
 1580       EXEC YX(6,2)
 1590       REPEAT 
 1600         PRINT CHR(31)
 1610         EXEC YX(12,2)
 1620         PRINT "INPUT INITIALS FOR THE MEMBER"
 1630         INPUT " WHICH IS TO BE UPDATED, DELETED OR INSERTED: ",UPDINIT$
 1640         IF UPDINIT$="XXXXX" THEN 
 1650           EXEC YX(8,10)
 1660           PRINT "'XXXXX' NOT ALLOWED AS INITIALS!!!"
 1670         ENDIF 
 1680       UNTIL UPDINIT$<>"XXXXX"
 1690       IGET=0; IPUT=0
 1700       REPEAT 
 1710         IGET=IGET+1; IPUT=IPUT+1
 1720         GET F,IGET : INIT$,PAS$,GAMES,WON,LOST
 1730       UNTIL INIT$=UPDINIT$ OR INIT$="XXXXX"
 1740       IF INIT$="XXXXX" THEN 
 1750         IF Y=73 OR Y=105 THEN 
 1760           SIZEFLAG=((IGET+1)>GAMES+1)
 1770           IF SIZEFLAG=1 THEN 
 1780             EXEC YX(7,0)
 1790             PRINT CHR(31)
 1800             EXEC YX(10,10)
 1810             PRINT "NO MORE SPACE IN SCORE-TABLE!!!!"
 1820             EXEC YX(12,10)
 1830             PRINT "BEFORE INSERTION OF NEW MEMBER,"
 1840             EXEC YX(13,10)
 1850             PRINT "THE LENGHT OF SCORE-TABLE SHOULD BE EXTENDED."
 1860             EXEC YX(15,10)
 1870             PRINT "THE PRESENT LENGHT OF SCORE-TABLE IS"; GAMES; "MEMBERS."
 1880             EXEC YX(20,5)
 1890             PRINT "TO GET A NEW MENU, PRESS ANY KEY: "
 1900             EXEC YX(20,39)
 1910             Y=KEY(0)
 1920             EXIT 
 1930           ENDIF 
 1940           REPEAT 
 1950             EXEC YX(7,1)
 1960             PRINT CHR(31)
 1970             PRINT "INSERT NEW MEMBER '"; UPDINIT$; "' ? (Y/N): "
 1980             EXEC YX(8,35)
 1990             Z=KEY(0)
 2000           UNTIL Z=89 OR Z=121 OR Z=78 OR Z=110
 2010           REM ...'Y'......'Y'.....'N'......'N'.....
 2020           IF Z=78 OR Z=110 THEN EXIT 
 2030           EXEC YX(12,1)
 2040           INPUT "INPUT PASSWORD FOR NEW MEMBER: ",NEWPAS$
 2050           EXEC INSERTNEW
 2060         ELSE 
 2070           EXEC YX(6,2)
 2080           IF UPDINIT$<>"XXXXX" THEN PRINT "MEMBER NOT FOUND!!!"
 2090         ENDIF 
 2100         IF SIZEFLAG=1 THEN EXIT 
 2110       ELSE 
 2120         EXEC UPDMEMB(IGET,IPUT,SS)
 2130       ENDIF 
 2140       IF SIZEFLAG=1 THEN EXIT 
 2150       EXEC YX(6,0)
 2160       PRINT CHR(31)
 2170     ENDLOOP 
 2180   ELSE 
 2190     PRINT CHR(12)
 2200     EXEC YX(2,30)
 2210     PRINT "UPDATE MEMBER"
 2220     EXEC YX(3,30)
 2230     PRINT "============="
 2240     IGET=1; IPUT=1
 2250     REPEAT 
 2260       GET F,IGET : INIT$,PAS$,GAMES,WON,LOST
 2270       IF INIT$="XXXXX" THEN 
 2280         PUT F,IPUT : INIT$,PAS$,GAMES,WON,LOST
 2290         SS=0
 2300         EXEC UPDMEMB(0,0,SS)
 2310         PRINT 
 2320       ELSE 
 2330         EXEC UPDMEMB(IGET,IPUT,SS)
 2340         IGET=IGET+1; IPUT=IPUT+1
 2350       ENDIF 
 2360     UNTIL INIT$="XXXXX"
 2370   ENDIF 
 2380   CLOSE F
 2390 ENDPROC UPDAT
 2400 REM ____________________________________________________________________
 2410 REM 
 2420 REM PROCEDURE UPDMEMB FOR UPDATING OF A SELECTED MEMBER.
 2430 REM 
 2440 PROC UPDMEMB(IIGET,IIPUT,SSS)
 2450   EXEC YX(4,0)
 2460   PRINT CHR(31)
 2470   EXEC YX(7,1)
 2480   PRINT "MEMBER DATA:"
 2490   EXEC YX(9,10)
 2500   PRINT "INITIALS:   PASSWORD:   GAMES:   WON:   LOST:"
 2510   EXEC YX(10,10)
 2520   PRINT "=========   =========   ======   ====   ====="
 2530   PRINT 
 2540   PRINT TAB(11); INIT$; TAB(23); PAS$; TAB(33); 
 2550   PRINT USING "####    ####    ####" : GAMES,LOST,WON
 2560   PRINT 
 2570   IF SSS=0 AND IGET=1 THEN 
 2580     PRINT 
 2590     PRINT 
 2600     PRINT 
 2610     PRINT "NO MEMBERS IN SCORE-TABLE"
 2620     PRINT "  (- EXCEPT FOR THE SYSTEM RECORD XXXXX) !!!"
 2630     PRINT 
 2640     PRINT 
 2650     PRINT "- TO GET THE MENU, PRESS ANY KEY."
 2660     Y=KEY(0)
 2670   ENDIF 
 2680   IF SSS=0 THEN EXIT 
 2690   PRINT 
 2700   PRINT "PLEASE SELECT OPERATION: "
 2710   PRINT 
 2720   PRINT "    'SPACE': NO CHANGE OF MEMBER DATA."
 2730   PRINT 
 2740   PRINT "    'D'    : DELETE MEMBER."
 2750   PRINT 
 2760   PRINT "    'P'    : CHANGE PASSWORD."
 2770   REPEAT 
 2780     EXEC YX(23,2)
 2790     PRINT "OPERATION: "
 2800     EXEC YX(23,15)
 2810     Y=KEY(0)
 2820   UNTIL Y=32 OR Y=68 OR Y=100 OR Y=80 OR Y=112
 2830   REM ..."SP"...."D"......"D"....."P"......"P"....
 2840   IF Y=80 OR Y=112 THEN 
 2850     EXEC YX(12,1)
 2860     PRINT CHR(31)
 2870     EXEC YX(17,1)
 2880     INPUT "KEY IN NEW PASSWORD (MAX. 5 CHAR.): ",PAS$
 2890     PUT F,IIPUT : INIT$,PAS$,GAMES,WON,LOST
 2900   ENDIF 
 2910   IF Y=68 OR Y=100 THEN 
 2920     IIPUT=IIPUT-1
 2930     IF SSS=51 THEN 
 2940       REPEAT 
 2950         IIGET=IIGET+1; IIPUT=IIPUT+1
 2960         GET F,IIGET : INIT$,PAS$,GAMES,WON,LOST
 2970         PUT F,IIPUT : INIT$,PAS$,GAMES,WON,LOST
 2980       UNTIL INIT$="XXXXX"
 2990     ENDIF 
 3000   ENDIF 
 3010 ENDPROC UPDMEMB
 3020 REM ____________________________________________________________________
 3030 REM 
 3040 REM PROCEDURE INSERTNEW FOR INSERTING OF NEW MEMBER IN
 3050 REM ALPHABETICAL ORDER.
 3060 REM 
 3070 PROC INSERTNEW
 3080   IGET=0; IPUT=0
 3090   REPEAT 
 3100     IGET=IGET+1; IPUT=IPUT+1
 3110     GET F,IGET : INIT$,PAS$,GAMES,WON,LOST
 3120     FOR I=1 TO 5 DO 
 3130       A=ORD(INIT$(I : 1))
 3140       B=ORD(UPDINIT$(I : 1))
 3150       IF A=255 THEN A=32
 3160       IF B=255 THEN B=32
 3170       IF A>95 THEN A=A-32.5
 3180       IF B>95 THEN B=B-32.5
 3190       IF A<>B THEN EXIT 
 3200     NEXT I
 3210   UNTIL B<A OR INIT$="XXXXX"
 3220   PUT F,IPUT : UPDINIT$,NEWPAS$,NUL,NUL,NUL
 3230   IGET=IGET+1; IPUT=IPUT+1
 3240   IF INIT$="XXXXX" THEN 
 3250     PUT F,IPUT : INIT$,PAS$,GAMES,NUL,NUL
 3260   ELSE 
 3270     REPEAT 
 3280       GET F,IGET : BINIT$,BPAS$,BGAMES,BWON,BLOST
 3290       PUT F,IPUT : INIT$,PAS$,GAMES,WON,LOST
 3300       IGET=IGET+1; IPUT=IPUT+1
 3310       IF BINIT$="XXXXX" THEN 
 3320         INIT$=BINIT$
 3330         PAS$=BPAS$
 3340         GAMES=BGAMES
 3350         EXIT 
 3360       ENDIF 
 3370       GET F,IGET : INIT$,PAS$,GAMES,WON,LOST
 3380       PUT F,IPUT : BINIT$,BPAS$,BGAMES,BWON,BLOST
 3390       IGET=IGET+1; IPUT=IPUT+1
 3400     UNTIL INIT$="XXXXX"
 3410     PUT F,IPUT : INIT$,PAS$,GAMES,NUL,NUL
 3420   ENDIF 
 3430 ENDPROC INSERTNEW
 3440 REM ____________________________________________________________________
 3450 REM 
 3460 REM PROCEDURE SCORMOD(SS) FOR CREATING NEW "SCORE" TABLE OR
 3470 REM FOR EXTENDING LENGHT OF EXISTING TABLE.
 3480 REM 
 3490 PROC SCORMOD(SS)
 3500   PRINT CHR(12)
 3510   EXEC YX(5,20)
 3520   IF SS=53 THEN 
 3530     PRINT "CREATION OF NEW (EMPTY) SCORE-TABLE."
 3540     EXEC YX(6,20)
 3550     PRINT "===================================="
 3560     EXEC YX(8,10)
 3570     PRINT "ANY EXISTING SCORE-FILE MUST BE DELETED BEFORE"
 3580     EXEC YX(9,10)
 3590     PRINT "A NEW SCORE-FILE CAN BE CREATED!!!"
 3600     EXEC YX(12,5)
 3610     PRINT "SELECT  OPERATION:"
 3620     PRINT 
 3630     PRINT "         D: DELETE EXISTING SCORE-FILE AND CREATE A NEW ONE."
 3640     PRINT 
 3650     PRINT "         N: CREATE NEW SCORE-FILE. NO FILE WITH NAME 'SCORE'"
 3660     PRINT "            EXISTS ON THE DISKETTE."
 3670     PRINT 
 3680     PRINT "         Q: EXIT."
 3690     PRINT 
 3700     PRINT 
 3710     PRINT "    INPUT THE SELECTED OPERATION: "
 3720     REPEAT 
 3730       EXEC YX(22,37)
 3740       Y=KEY(0)
 3750     UNTIL Y=68 OR Y=100 OR Y=78 OR Y=110 OR Y=81 OR Y=113
 3760     REM ...'D'......'D'.....'N'......'N'.....'Q'......'Q'...
 3770     IF Y=81 OR Y=113 THEN EXIT 
 3780     IF Y=68 OR Y=100 THEN DELETE "SCORE"
 3790     EXEC YX(8,1)
 3800     PRINT CHR(31)
 3810     EXEC MEMBSINP(MEMBS)
 3820     PRINT "CREATING NEW SCORE-TABLE WITH"; MEMBS; "MEMBERS."
 3830     RECS=MEMBS+1
 3840     CREATE "SCORE",F,BUF$,22,RECS
 3850     INIT$="XXXXX"
 3860     PAS$="     "
 3870     PUT F,1 : INIT$,PAS$,MEMBS,NUL,NUL
 3880   ELSE 
 3890     PRINT "CHANGE OF LENGHT OF SCORE-TABLE."
 3900     EXEC YX(6,20)
 3910     PRINT "================================"
 3920     EXEC MEMBSINP(MEMBS)
 3930     PRINT "CHANGING SCORE-TABLE TO ALLOW A MAXIMUM OF"; MEMBS; "MEMBERS."
 3940     RECS=MEMBS+1
 3950     OPEN "SCORE",F,BUF$,22
 3960     CREATE "INTER",FF,BBUF$,22,RECS
 3970     COUNT=1
 3980     REPEAT 
 3990       GET F,COUNT : INIT$,PAS$,GAMES,WON,LOST
 4000       PUT FF,COUNT : INIT$,PAS$,GAMES,WON,LOST
 4010       COUNT=COUNT+1
 4020     UNTIL INIT$="XXXXX" OR COUNT>RECS
 4030     CLOSE F
 4040     DELETE "SCORE"
 4050     CREATE "SCORE",F,BUF$,22,RECS
 4060     COUNT=0
 4070     REPEAT 
 4080       COUNT=COUNT+1
 4090       GET FF,COUNT : INIT$,PAS$,GAMES,WON,LOST
 4100       PUT F,COUNT : INIT$,PAS$,GAMES,WON,LOST
 4110     UNTIL INIT$="XXXXX" OR COUNT=>RECS
 4120     INIT$="XXXXX"
 4130     PAS$="     "
 4140     PUT F,COUNT : INIT$,PAS$,MEMBS,NUL,NUL
 4150     CLOSE FF
 4160     DELETE "INTER"
 4170   ENDIF 
 4180   CLOSE F
 4190 ENDPROC SCORMOD
 4200 REM ____________________________________________________________________
 4210 REM 
 4220 REM PROCEDURE MEMBSINP FOR INPUT AND CHECK OF MAX. NO. OF
 4230 REM MEMBERS IN SCORE-TABLE.
 4240 REM 
 4250 PROC MEMBSINP(MMEMBS)
 4260   REPEAT 
 4270     EXEC YX(12,10)
 4280     INPUT "INPUT MAX. NUMBER OF MEMBERS IN NEW SCORE-TABLE: ",MMEMBS
 4290     EXEC YX(12,0)
 4300     PRINT CHR(31)
 4310     IF MMEMBS<1 THEN 
 4320       EXEC YX(15,10)
 4330       PRINT "NUMBER TOO LOW!!!     (1 IS LOWEST ALLOWABLE VALUE)."
 4340     ENDIF 
 4350     IF MMEMBS>1000 THEN 
 4360       EXEC YX(15,10)
 4370       PRINT "NUMBER TOO HIGH!!!      (1000 IS HIGHEST ALLOWABLE VALUE)."
 4380     ENDIF 
 4390   UNTIL MMEMBS>0 AND MMEMBS<1001
 4400   EXEC YX(12,10)
 4410   PRINT CHR(31)
 4420 ENDPROC MEMBSINP
 4430 REM ____________________________________________________________________
 4440 REM 
 4450 REM PROCEDURE INITPRT FOR INITIALIZING THE PRINTER
 4460 REM 
 4470 PROC INITPRT
 4480   OUTPUT P
 4490   FOR K=1 TO 10
 4500     PRINT 
 4510   NEXT K
 4520   PRINT "          INITIALS:   PASSWORD:   GAMES:   WON:   LOST:"
 4530   PRINT "          =========   =========   ======   ====   ====="
 4540   PRINT 
 4550   OUTPUT C
 4560 ENDPROC INITPRT
 4570 REM ____________________________________________________________________
 4580 REM 
 4590 REM PROCEDURE YX(LINE-NO.,CHAR.-POS) FOR CURSOR POSITIONING
 4600 REM 
 4610 PROC YX(YCOR,XCOR)
 4620   DUMMY=CRT(6)+CRT(95+XCOR-(XCOR>32)*64-(XCOR>64)*64)+CRT(95+YCOR)
 4630 ENDPROC YX
 4640 REM 
 4650 REM **********************************************************************   ▶08◀▶08◀▶08◀▶08◀▶08◀
 4660 REM **********************************************************************
«eof»