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

⟦7cded7507⟧ COMAL_SAVE

    Length: 2408 (0x968)
    Types: COMAL_SAVE

Derivation

└─⟦d85593a46⟧ Bits:30000470 DOMUS disk image - User files
    └─ ⟦ce9e77368⟧ »/STORM.STYR1« 
        └─⟦this⟧ 

UPAS Segment

SAVE filename: "STYR1"

 0010 REM   DISKPROGRAM: "STYR.1"«nul»
 0020 REM   INDSÆTTELSESOPGAVER«nul»
 0030 REM   ORD ELLER ENDELSER«nul»«nul»
 0040 REM   DANSK ELLER FREMMEDSPROG«nul»«nul»
 0050 REM   VERSION: 2/780417«nul»
 0060 REM   PROGRAMMØR: SØREN RAVN«nul»G
 0070 REM   SPROG: RC-COMAL«nul»
 0080 REM «nul» 
 0090 DIM B$ ( 72 ) , C$ ( 20 ) , F$ ( 28 ) , R$ ( 28 ) , H$ ( 300 )
 0100 OPEN FILE ( 1 , 0 ) "USTYR"
 0105 READ FILE ( 1 , 2 ) B$
 0110 CLOSE
 0120 OPEN FILE ( 1 , 1 ) B$
 0130 RANDOMIZE 
 0140 ON ESC THEN GOTO 0530
 0150 LET T1 = 0 ; T2 = 0 ; TA = 0
 0160 LET F$ = "NEJ    FORKERTEJ GODTUENIG  "
 0170 LET R$ = "O.K.   I ORDENJA     RIGTIGT"
 0180 LET H$ = ""
 0190 PRINT
 0200 READ FILE ( 1 ) B$
 0210 IF B$ ( 1 , 2 ) <> "H:" THEN GOTO 0240
 0220 LET H$ = H$ , B$ ( 3 , LEN ( B$ ) ) , "/"
 0230 GOTO 0200
 0240 IF B$ = "SLUT" THEN GOTO 0520
 0250 IF B$ = "!" THEN EXEC UDSKRIFT
 0260 IF B$ ( 1 , 1 ) = "*" THEN
 0270   LET T1 = T1 + 1 ; K = INT ( RND ( 0 ) * 4 ) * 7 + 1
 0280   PRINT TAB ( TA ) ;
 0290   INPUT "" , C$ ;
 0300   IF C$ = "" THEN
 0310     LET T4 = T4 + 1
 0320     IF T4 = 1 THEN PRINT "PRØV AT LØSE OPGAVEN"
 0330     IF T4 = 2 THEN PRINT "SVAR ORDENTLIGT!!!"
 0340     IF T4 = 3 THEN CLOSE
 0345     IF T4 = 3 THEN STOP «nul» 
 0350   ELSE        SVAR MODTAGET:«nul» 
 0360     IF B$ ( 2 , LEN ( B$ ) ) <> C$ THEN
 0370       LET T2 = T2 + 1
 0380       PRINT "   " ; F$ ( K , K + 6 )
 0390       DELAY = 2
 0400       IF T2 / 3 = INT ( T2 / 3 ) THEN EXEC HELP
 0410     ELSE 
 0420       PRINT "   " ; R$ ( K , K + 6 )
 0425       DELAY = 2
 0430     ENDIF 
 0440   ENDIF 
 0450   IF C$ = "" THEN GOTO 0280
 0460 ENDIF 
 0470 IF B$ ( 1 , 1 ) <> "*" AND B$ <> "!" THEN
 0480   PRINT "<13><10>" ; B$ ;
 0490   EXEC TABDEF
 0500 ENDIF 
 0510 GOTO 0200
 0520 PRINT "<13><10><10>SLUT FOR DENNE GANG<10>"
 0530 CLOSE
 0540 ON ESC THEN STOP  «nul» 
 0550 EXEC UDSKRIFT
 0560 PRINT "<13><10>TAK FOR I DAG"
 0570 STOP  «nul» 
 0580 PROC HELP
 0590   IF H$ > "" THEN
 0600     LET H = 1
 0610     PRINT
 0620     FOR I = 2 TO LEN ( H$ )
 0630       IF H$ ( I , I ) = "/" THEN
 0640         PRINT H$ ( H , I - 1 )
 0650         LET H = I + 1
 0660       ENDIF 
 0670     NEXT 
 0680     DELAY = 3
 0690     PRINT
 0700   ENDIF             «nul»A 
 0710 ENDPROC
 0720 PROC UDSKRIFT
 0730   PRINT
 0740   IF B$ <> "SLUT" AND B$ <> "!" THEN LET T1 = T1 - 1
 0750   IF T2 = 0 THEN
 0760     PRINT "ALLE " ; T1 ; " OPGAVER RIGTIGT LØST!"
 0770     PRINT "     DET VAR FLOT!"
 0780   ELSE                                           «nul» 
 0790     PRINT "AF " ; T1 ; " OPGAVER HAR"
 0800     PRINT "DU BESVARET " ; T1 - T2 ; " RIGTIGT"
 0810   ENDIF                                           «nul» 
 0820   PRINT
 0830   DELAY = 2
 0840   IF B$ = "!" THEN
 0850     PRINT "HER KOMMER ET NYT SÆT OPGAVER.<13>"
 0860   ENDIF                      «nul» 
 0870   LET T1 = 0 ; T2 = 0
 0880 ENDPROC
 0890 PROC TABDEF
 0900   LET I = 0
 0910   REPEAT                «nul» 
 0920     LET I = I + 1
 0930   UNTIL B$ ( I , I + 1 ) = ".." OR I > LEN ( B$ ) - 2
 0940   IF B$ ( I , I + 1 ) = ".." THEN
 0950     PRINT
 0960     LET TA = I
 0970   ELSE 
 0980     LET TA = LEN ( B$ ) + 3
 0990   ENDIF 
 1000 ENDPROC                «nul»

UDAS Segment

    FNA definition = 0xffff
    FNB definition = 0xffff
    FNC definition = 0xffff
    FND definition = 0xffff
    FNE definition = 0xffff
    FNF definition = 0xffff
    FNG definition = 0xffff
    FNH definition = 0xffff
    FNI definition = 0xffff
    FNJ definition = 0xffff
    FNK definition = 0xffff
    FNL definition = 0xffff
    FNM definition = 0xffff
    FNN definition = 0xffff
    FNO definition = 0xffff
    FNP definition = 0xffff
    FNQ definition = 0xffff
    FNR definition = 0xffff
    FNS definition = 0xffff
    FNT definition = 0xffff
    FNU definition = 0xffff
    FNV definition = 0xffff
    FNW definition = 0xffff
    FNX definition = 0xffff
    FNY definition = 0xffff
    FNZ definition = 0xffff
    FN[ definition = 0xffff
    FN\ definition = 0xffff
    FN] definition = 0xffff
    GOSUB-RETURN stack pointer = 0x0000
      stack[0] = 0x0000
      stack[1] = 0x0000
      stack[2] = 0x0000
      stack[3] = 0x0000
      stack[4] = 0x0000
      stack[5] = 0x0000
      stack[6] = 0x0000
    FOR-NEXT stack pointer = 0x0000
      Var# = 0x0000
      Loop Top = 0x0000
      To Val = 0   (0x00000000)
      Step Val = 0   (0x00000000)
      Var# = 0x0000
      Loop Top = 0x0000
      To Val = 0   (0x00000000)
      Step Val = 0   (0x00000000)
      Var# = 0x0000
      Loop Top = 0x0000
      To Val = 0   (0x00000000)
      Step Val = 0   (0x00000000)
      Var# = 0x0000
      Loop Top = 0x0000
      To Val = 0   (0x00000000)
      Step Val = 0   (0x00000000)
      Var# = 0x0000
      Loop Top = 0x0000
      To Val = 0   (0x00000000)
      Step Val = 0   (0x00000000)
      Var# = 0x0000
      Loop Top = 0x0000
      To Val = 0   (0x00000000)
      Step Val = 0   (0x00000000)
      Var# = 0x0000
      Loop Top = 0x0000
      To Val = 0   (0x00000000)
      Step Val = 0   (0x00000000)
    REPEAT-UNTIL stack pointer = 0x0000
      stack[0] = 0x0000
      stack[1] = 0x0000
      stack[2] = 0x0000
      stack[3] = 0x0000
      stack[4] = 0x0000
      stack[5] = 0x0000
      stack[6] = 0x0000
    WHILE-ENDWHILE stack pointer = 0x0000
      stack[0] = 0x0000
      stack[1] = 0x0000
      stack[2] = 0x0000
      stack[3] = 0x0000
      stack[4] = 0x0000
      stack[5] = 0x0000
      stack[6] = 0x0000
    IF-ELSE stack pointer = 0x0000
      stack[0] = 0x0000
      stack[1] = 0x0000
      stack[2] = 0x0000
      stack[3] = 0x0000
      stack[4] = 0x0000
      stack[5] = 0x0000
      stack[6] = 0x0000
Variables:
    0x80 0x0000 0x00 
    0x81 0xffff 0x02 B$
    0x82 0xffff 0x02 C$
    0x83 0xffff 0x02 F$
    0x84 0xffff 0x02 R$
    0x85 0xffff 0x02 H$
    0x86 0xffff 0x00 T1
    0x87 0xffff 0x00 T2
    0x88 0xffff 0x00 TA
    0x89 0xffff 0x00 UDSKRIFT
    0x8a 0xffff 0x00 K
    0x8b 0xffff 0x00 T4
    0x8c 0xffff 0x00 HELP
    0x8d 0xffff 0x00 TABDEF
    0x8e 0xffff 0x00 H
    0x8f 0xffff 0x00 I

Wrapper

.magic = 0x4e32
.u_pas = 0x03ed  // Length of UPAS in words
.u_das = 0x00b8  // Length of UDAS in words
.u_dvs = 0x00b8  // Start på savede variabel indhold (word adr)
.u_nds = 0x0000  // Address på næste prog.sætning (word adr)
.u_cps = 0x0000  // Address på curr prog.sætning (word adr)
.u_tll = 0x0048  // Page størrelse
.u_tts = 0x000e  // TAP størrelse
.u_ran = 0x0001  // Random tal
.u_cdl = 0x0006  // Current DATA sætning ptr
.u_cdb = 0x0000  // Current DATA byte ptr
.u_esa = 0x0042  // ON ESE (word adr)
.u_era = 0x0000  // ON ERR (word adr)
.u_cas = 0xffff  // CASE dybde
.u_las = 0xffff  // last (-1)