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

⟦f94641885⟧ COMAL_SAVE

    Length: 5456 (0x1550)
    Types: COMAL_SAVE

Derivation

└─⟦d85593a46⟧ Bits:30000470 DOMUS disk image - User files
    └─ ⟦5f6b189fc⟧ »/RAPP« 
        └─⟦this⟧ 

UPAS Segment

SAVE filename: "RAPP"

 0010 PRINT "<27><12>"
 0020 DELAY = 1
 0030 PRINT
 0040 PRINT
 0050 PRINT "DU HAR F0LGENDE VALGMULIGHEDER (INDTAST TALLET):"
 0060 PRINT "1 = NYE BEREGNINGER"
 0070 PRINT "2 = GAMLE FORMLER OG RESULTATER SKREVET PAA TABELFORM"
 0080 INPUT Q
 0090 IF ( Q <> 1 ) * ( Q <> 2 ) * ( Q <> 3 ) THEN GOTO 0080
 0100 IF Q = 2 THEN CHAIN "RTAB"
 0110 PRINT "<27><12>"
 0120 DELAY = 1
 0125 ON ERR THEN EXEC OUTERR
 0130 DIM Q1$ ( 75 ) , Q2$ ( 75 )
 0140 PRINT
 0150 PRINT "F0LGENDE SYMBOLER OG FORMLER LIGGER I 0JEBLIKKET I PROGRAMMET:"
 0160 PRINT
 0170 PRINT
 0180 LET AFBRYD = 0
 0190 ON ESC THEN EXEC OUTESC
 0200 OPEN FILE ( 0 , 1 ) "ANT"
 0210 READ FILE ( 0 ) M , N , C
 0220 CLOSE FILE ( 0 )
 0230 OPEN FILE ( 1 , 1 ) "PRNT"
 0240 PRINT "SYMBOLER:"
 0250 PRINT
 0260 FOR I = 1 TO M + N
 0270   READ FILE ( 1 ) Q1$ , Q2$
 0280   IF Q1$ = "" THEN GOTO 0310
 0290   IF Q2$ = "" THEN PRINT Q1$
 0300   IF ( Q1$ <> "" ) * ( Q2$ <> "" ) THEN PRINT Q1$ ; ": " ; Q2$
 0310 NEXT 
 0320 PRINT
 0330 PRINT
 0340 PRINT "FORMLER/REGNEUDTRYK:"
 0350 PRINT
 0360 FOR I = 1 TO N
 0370   READ FILE ( 1 ) Q1$ , Q2$
 0390   IF Q1$ = "QWZQ" THEN LET Q1$ = "" ; Q2$ = Q2$ ( 2 , LEN ( Q2$ ) )
 0400   PRINT "(" ; I ; ")    " ; Q1$ ; Q2$
 0410 NEXT 
 0420 CLOSE FILE ( 1 )
 0430 LET AFBRYD = 1
 0440 PRINT
 0450 EXEC FILWORK
 0460 PRINT "HVIS DU 0NSKER AT BENYTTE OVENSTAAENDE (EVT. MED RETTELSER)"
 0470 PRINT "INDTAST 0. 0NSKER DU HELT NYE SYMBOLER, INDTAST ET VILKAARLIGT"
 0480 PRINT "ANDET TAL."
 0490 INPUT Q
 0500 IF Q THEN
 0510   LET C = 0
 0520   INPUT "ANTAL MAALTE ST0RRELSER (MAX 10): " , M
 0530   LET M = INT ( M )
 0540   IF ( M < 0 ) + ( M > 10 ) THEN GOTO 0520
 0550   INPUT "ANTAL FORMLER/BEREGNINGSUDTRYK (MAX 5):" , N
 0560   LET N = INT ( N )
 0570   IF ( N < 0 ) + ( N > 5 ) THEN GOTO 0550
 0580   DIM S1$ ( M , 10 ) , B1$ ( M , 75 ) , S2$ ( N , 10 ) , B2$ ( N , 75 ) , S3$ ( N , 10 ) , F$ ( N , 75 )
 0590   PRINT "<27><12>"
 0600   DELAY = 1
 0610   PRINT
 0620   PRINT "INDF0R SYMBOLER (BESTAAENDE AF ET BOGSTAV, EVT. EFTERFULGT AF OP"
 0630   PRINT "TIL 9 BOGSTAVER OG/ELLER TAL):"
 0640   PRINT
 0650   PRINT "MAALTE ST0RRELSER:"
 0660   LET A = 0
 0670   FOR I = 1 TO M
 0680     LET A = A + 1
 0690     INPUT "SYMBOL: " , S1$ ( A )
 0700     INPUT "SYMBOLETS BETYDNING: " , B1$ ( A )
 0710     IF S1$ ( A ) = "" THEN LET A = A - 1
 0720     PRINT
 0730   NEXT 
 0740   LET M = A
 0750   PRINT
 0760   PRINT "BEREGNEDE ST0RRELSER (HVIS DU IKKE HAR MERE AT ANF0RE, KAN DU"
 0770   PRINT "<34>SPRINGE OVER<34> VED AT TASTE RETURN):"
 0780   LET A = 0
 0790   FOR I = 1 TO N
 0800     LET A = A + 1
 0810     INPUT "SYMBOL: " , S2$ ( A )
 0820     INPUT "SYMBOLETS BETYDNING: " , B2$ ( A )
 0830     IF S2$ ( A ) = "" THEN LET A = A - 1
 0840     PRINT
 0850   NEXT 
 0860   PRINT "FORMLER/BEREGNINGSUDTRYK:"
 0870   PRINT
 0880   LET A = 0
 0890   FOR I = 1 TO N
 0900     LET A = A + 1
 0910     PRINT "FORMEL ELLER UDTRYK (" ; I ; ")    " ;
 0920     INPUT Q1$
 0930     IF Q1$ = "" THEN LET A = A - 1
 0940     IF Q1$ = "" THEN GOTO 1050
 0950     LET L = LEN ( Q1$ )
 0960     LET K = 0
 0970     FOR J = 1 TO L
 0980       IF Q1$ ( J ) = "=" THEN LET K = J
 0990     NEXT 
 1000     IF K = 0 THEN
 1010       LET S3$ ( A ) = "QWZQ" ; F$ ( A ) = "=" , Q1$
 1020     ELSE 
 1030       LET S3$ ( A ) = Q1$ ( 1 , K - 1 ) ; F$ ( A ) = Q1$ ( K , L )
 1040     ENDIF 
 1050   NEXT 
 1060   LET N = A
 1070   PRINT "HVIS DU 0NSKER AT RETTE I SYMBOLER OG/ELLER FORMLER, INDTAST 0."
 1080   PRINT "ELLERS ET VILKAARLIGT ANDET TAL."
 1090   INPUT R
 1100   IF R = 0 THEN EXEC RET
 1110   EXEC GEM
 1120 ELSE 
 1130   PRINT "HVIS DU 0NSKER AT RETTE, INDTAST ET TAL FORSKELLIGT FRA 0."
 1140   INPUT "ELLERS INDTAST 0. " , R
 1150   IF R = 0 THEN GOTO 1300
 1160   DIM S1$ ( M , 10 ) , B1$ ( M , 75 ) , S2$ ( N , 10 ) , B2$ ( N , 75 ) , S3$ ( N , 10 ) , F$ ( N , 75 )
 1170   OPEN FILE ( 0 , 1 ) "PRNT"
 1180   FOR I = 1 TO M
 1190     READ FILE ( 0 ) S1$ ( I ) , B1$ ( I )
 1200   NEXT 
 1210   FOR I = 1 TO N
 1220     READ FILE ( 0 ) S2$ ( I ) , B2$ ( I )
 1230   NEXT 
 1240   FOR I = 1 TO N
 1250     READ FILE ( 0 ) S3$ ( I ) , F$ ( I )
 1260   NEXT 
 1270   CLOSE FILE ( 0 )
 1280   EXEC RET
 1290   EXEC GEM
 1300 ENDIF 
 1310 CHAIN "CALC"
 1320 END «nul»
 1330 PROC FILWORK
 1340   DATA "810" , "1" , "820" , "2" , "830" , "3" , "840" , "4" , "850" , "5"
 1350   DATA "860" , "6" , "870" , "7" , "880" , "8" , "890" , "9" , "900" , "10"
 1360   DATA "910" , "1" , "915" , "920" , "2" , "925" , "930" , "3" , "935"
 1370   DATA "940" , "4" , "945" , "950" , "5" , "955"
 1380   DIM LNUM$ ( 3 ) , I$ ( 2 )
 1390 ENDPROC
 1400 PROC RET
 1410   PRINT "INDTAST S, HVIS DU 0NSKER AT RETTE ET SYMBOL. F, HVIS DU 0N-"
 1420   PRINT "SKER AT AENDRE I EN FORMEL."
 1430   INPUT Q1$
 1440   IF ( Q1$ <> "S" ) * ( Q1$ <> "F" ) THEN GOTO 1430
 1450   IF Q1$ = "S" THEN
 1460     INPUT "INDTAST DET SYMBOL, DER 0NSKES RETTET." , Q2$
 1470     FOR I = 1 TO M
 1480       IF Q2$ = S1$ ( I ) THEN
 1485         LET C = 0
 1490         INPUT "NYE SYMBOL: " , S1$ ( I )
 1500         INPUT "SYMBOLETS BETYDNING: " , B1$ ( I )
 1510       ENDIF 
 1520     NEXT 
 1530     FOR I = 1 TO N
 1540       IF Q2$ = S2$ ( I ) THEN
 1550         INPUT "NYE SYMBOL: " , S2$ ( I )
 1560         INPUT "SYMBOLETS BETYDNING: " , B2$ ( I )
 1570       ENDIF 
 1580     NEXT 
 1590   ELSE 
 1600     PRINT "INDTAST FORMLEN/REGNEUDTRYKKETS NR. (DE NYE FORMLER KAN BE-"
 1605     PRINT "NYTTES SAMMEN MED EVT. TIDLIGERE INDTASTEDE MAALERESULTATER)."
 1610     INPUT I
 1620     LET I = INT ( I )
 1630     IF ( I < 1 ) + ( I > N ) THEN GOTO 1610
 1640     INPUT "NYE FORMEL/UDTRYK: " , Q2$
 1650     LET L = LEN ( Q2$ )
 1660     LET K = 0
 1670     FOR J = 1 TO L
 1680       IF Q2$ ( J ) = "=" THEN LET K = J
 1690     NEXT 
 1700     IF K = 0 THEN
 1710       LET S3$ ( I ) = "QWZQ" ; F$ ( I ) = "=" , Q2$
 1720     ELSE 
 1730       LET S3$ ( I ) = Q2$ ( 1 , K - 1 ) ; F$ ( I ) = Q2$ ( K , L )
 1740     ENDIF 
 1750   ENDIF 
 1760   PRINT "HVIS DU 0NSKER AT RETTE MERE, INDTAST 0. ELLERS ET ANDET"
 1770   INPUT "TAL. " , R
 1780   IF R = 0 THEN GOTO 1410
 1790 ENDPROC
 1800 PROC GEM
 1810   PRINT "DU KAN STADIG NAA AT FORTRYDE RETTELSERNE VED AT TRYKKE"
 1820   INPUT "ESCAPE. ELLERS RETURN." , Q1$
 1830   LET AFBRYD = 0
 1840   OPEN FILE ( 0 , 3 ) "ANT"
 1850   WRITE FILE ( 0 ) M , N , C
 1860   CLOSE FILE ( 0 )
 1870   RESTORE 0000
 1880   OPEN FILE ( 0 , 3 ) "LGNN"
 1890   OPEN FILE ( 1 , 3 ) "PRNT"
 1900   FOR I = 1 TO M
 1910     READ LNUM$ , I$
 1920     WRITE FILE ( 0 ) LNUM$ , "LET" , S1$ ( I ) , "=XQZ5(" , I$ , ")" , "<13><10>"
 1930     WRITE FILE ( 1 ) S1$ ( I ) , B1$ ( I )
 1940   NEXT 
 1950   FOR I = 1 TO N
 1960     WRITE FILE ( 1 ) S2$ ( I ) , B2$ ( I )
 1970   NEXT 
 1980   FOR I = M + 1 TO 10
 1990     READ LNUM$ , I$
 2000   NEXT 
 2010   FOR I = 1 TO N
 2020     READ LNUM$ , I$
 2030     WRITE FILE ( 0 ) LNUM$ , "LET" , S3$ ( I ) , F$ ( I ) , "<13><10>"
 2040     READ LNUM$
 2050     WRITE FILE ( 0 ) LNUM$ , "LET YQZ5(" , I$ , ")=" , S3$ ( I ) , "<13><10>"
 2060     WRITE FILE ( 1 ) S3$ ( I ) , F$ ( I )
 2070   NEXT 
 2080   CLOSE FILE ( 0 )
 2090   CLOSE FILE ( 1 )
 2100 ENDPROC
 2110 PROC OUTESC
 2120   ON ESC THEN EXEC OUTESC
 2130   IF AFBRYD THEN
 2140     PRINT "PROGRAMMET AFBRUDT. DE GAMLE LIGNINGER OG DATA ER BEVARET."
 2150     END «nul»:
 2160   ENDIF 
 2170 ENDPROC
 2180 LET S3$ ( I ) = "QWZQ=" ; F$ ( I ) = Q1$
 2300 PROC OUTERR
 2305   IF SYS ( 7 ) = 102 THEN GOTO 2330
 2310   CLOSE
 2315   CHAIN "RAPP" THEN GOTO 0110
 2330   PRINT "PROGRAMMET SPAERRES AF EN ANDEN BRUGER. VAER VENLIG AT VENTE."
 2340   PRINT
 2350   INPUT "DU KAN FORS0GE IGEN VED AT TASTE RETURN." , Q1$
 2360   CHAIN "RAPP" THEN GOTO 0110
 2370 ENDPROC

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 G$
    0x82 0xffff 0x02 Q$
    0x83 0xffff 0x00 N
    0x84 0xffff 0x00 M
    0x85 0xffff 0x00 I
    0x86 0xffff 0x00 FILWORK
    0x87 0xffff 0x00 Q
    0x88 0xffff 0x02 F$
    0x89 0xffff 0x00 HJLP
    0x8a 0xffff 0x00 IN2
    0x8b 0xffff 0x00 RETL
    0x8c 0xffff 0x00 GEML
    0x8d 0xffff 0x00 R
    0x8e 0xffff 0x02 K$
    0x8f 0xffff 0x00 PRNT
    0x90 0xffff 0x02 LNUM$
    0x91 0xffff 0x02 I$
    0x92 0xffff 0x00 IND
    0x93 0xffff 0x00 RET
    0x94 0xffff 0x00 GEM
    0x95 0xffff 0x00 OUTESC
    0x96 0xffff 0x00 WXEC
    0x97 0xffff 0x00 AFBRYD
    0x98 0xffff 0x00 LIAT
    0x99 0xffff 0x02 Q1$
    0x9a 0xffff 0x02 Q2$
    0x9b 0xffff 0x02 S1$
    0x9c 0xffff 0x02 B$
    0x9d 0xffff 0x02 S2$
    0x9e 0xffff 0x00 L
    0x9f 0xffff 0x00 J
    0xa0 0xffff 0x00 LT
    0xa1 0xffff 0x00 S2
    0xa2 0xffff 0x00 K
    0xa3 0xffff 0x02 B2$
    0xa4 0xffff 0x02 B1$
    0xa5 0xffff 0x02 S3$
    0xa6 0xffff 0x00 RFELE
    0xa7 0xffff 0x00 LILIST
    0xa8 0xffff 0x00 LIST100
    0xa9 0xffff 0x00 LIS
    0xaa 0xffff 0x00 C
    0xab 0xffff 0x00 MNY
    0xac 0xffff 0x00 A
    0xad 0xffff 0x00 A0
    0xae 0xffff 0x00 OUTERR
    0xaf 0xffff 0x00 E

Wrapper

.magic = 0x4e32
.u_pas = 0x0941  // Length of UPAS in words
.u_das = 0x0158  // Length of UDAS in words
.u_dvs = 0x0158  // 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)