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

⟦24ad9c8ab⟧ COMAL_SAVE

    Length: 4262 (0x10a6)
    Types: COMAL_SAVE

Derivation

└─⟦d85593a46⟧ Bits:30000470 DOMUS disk image - User files
    └─ ⟦408a77807⟧ »/LIB.NDIF1« 
        └─⟦this⟧ 

UPAS Segment

SAVE filename: "NDIF1"

 0010 DIM Q$ ( 150 )
 0020 PRINT "<27><12>"
 0030 DELAY = 1
 0040 PRINT
 0050 PRINT
 0060 PRINT " *** NUMERISK L0SNING AF N 1-ORDENS DIFFERENTIALLIGNINGER ***"
 0070 PRINT
 0080 PRINT
 0090 PRINT "  DIFFERENTIALLIGNINGERNE (H0JST 9) SKAL ANF0RES PAA FORMEN"
 0100 PRINT
 0110 PRINT "        DX(I)= FUNKTION AF X(1),...,X(N),T"
 0120 PRINT
 0130 PRINT "HVOR H0JRESIDEN DEFINERES AF BRUGEREN.   X(I), DX(I) OG T"
 0140 PRINT "(I=1,...,N) BETEGNER DE S0GTE FUNKTIONER, DERES F0RSTE AFLE-"
 0150 PRINT "DEDE OG DEN UAFHAENGIGE VARIABEL (TIDEN?)."
 0160 PRINT "  DET ER ENDVIDERE MULIGT AT DEFINERE OP TIL 5 HJAELPEFUNKTIONER"
 0170 PRINT "H(1),...,H(M). DISSE KAN VAERE KONSTANTER ELLER KOMBINATIONER AF"
 0180 PRINT "X(I) OG T, OG DE KAN BENYTTES I DIFFERENTIALLIGNINGERNES H0JRE-"
 0190 PRINT "SIDER."
 0200 PRINT
 0210 PRINT
 0220 PRINT "  EKSEMPEL (RADIOAKTIVT HENFALD. MODERKERNEN HAR HENFALDSKONSTANT H(1)"
 0225 PRINT "OG DATTERKERNEN ER OGSAA USTABIL MED HENFALDSKONSTANT H(2)):"
 0230 PRINT
 0240 PRINT "    H(1)=2.2E-3"
 0245 PRINT "    H(2)=1.6E-2"
 0250 PRINT
 0260 PRINT "   DX(1)=-H(1)*X(1)"
 0270 PRINT "   DX(2)=-H(2)*X(2)+H(1)*X(1)"
 0280 PRINT
 0290 INPUT "  NAAR DU ER PARAT, TAST RETURN." , Q$
 0300 PRINT "<27><12>"
 0310 DELAY = 1
 0320 DIM G$ ( 10 )
 0330 DIM Q$ ( 150 )
 0340 PRINT
 0350 PRINT "F0LGENDE LIGNINGER LIGGER I 0JEBLIKKET I PROGRAMMET:"
 0360 PRINT
 0370 LET AFBRYD = 0
 0380 ON ESC THEN EXEC OUTESC
 0390 OPEN FILE ( 0 , 1 ) "DIM1"
 0400 READ FILE ( 0 ) N , M
 0410 CLOSE FILE ( 0 )
 0420 OPEN FILE ( 1 , 1 ) "PRNT1"
 0430 FOR I = 1 TO M + N
 0440   READ FILE ( 1 ) Q$
 0450   IF I <= M THEN PRINT "H(" ; I ; ")=" ; Q$
 0460   IF I = M THEN PRINT
 0470   IF I > M THEN PRINT "DX(" ; I - M ; ")=" ; Q$
 0480 NEXT 
 0490 CLOSE FILE ( 1 )
 0500 LET AFBRYD = 1
 0510 PRINT
 0520 EXEC FILWORK
 0530 PRINT "HVIS DU 0NSKER AT BENYTTE DISSE LIGNINGER (EVT. MED RETTELSER)"
 0540 PRINT "INDTAST 0. ELLERS ET VILKAARLIGT ANDET TAL."
 0550 INPUT Q
 0560 IF Q THEN
 0570   INPUT "ANTAL LIGNINGER " , N
 0580   DIM F$ ( N , 150 )
 0590   PRINT "INDTAST ANTALLET AF HJAELPEFUNKTIONER (0,1,...,5)"
 0600   INPUT M
 0610   LET M = INT ( M )
 0620   IF ( M < 0 ) + ( M > 5 ) THEN GOTO 0600
 0630   IF M THEN EXEC HJLP
 0640   EXEC IND
 0650   PRINT "HVIS DU 0NSKER AT RETTE I LIGNING(ERNE), INDTAST 0. ELLERS ET"
 0660   PRINT "ANDET TAL"
 0670   INPUT R
 0680   IF R = 0 THEN EXEC RET
 0690   EXEC GEM
 0700 ELSE 
 0710   PRINT "HVIS DU 0NSKER AT BENYTTE GAMLE BEREGNINGSDATA, INDTAST 0. ELLERS ET"
 0720   PRINT "VILKAARLIGT ANDET TAL."
 0730   INPUT Q
 0740   IF Q THEN
 0750     PRINT "HVIS DU 0NSKER AT RETTE I LIGNING(ERNE), INDTAST 0. ELLERS ET"
 0760     PRINT "ANDET TAL."
 0770     INPUT R
 0780     IF R THEN GOTO 0850
 0790     DIM F$ ( N , 150 )
 0800     DIM K$ ( M + ( M = 0 ) , 150 )
 0810     LET AFBRYD = 0
 0820     EXEC PRNT
 0830     EXEC RET
 0840     EXEC GEM
 0850   ENDIF 
 0860 ENDIF 
 0870 IF Q THEN CHAIN "INT1"
 0880 PRINT
 0890 PRINT "0NSKER DU RESULTATERNE UNDERS0GT GRAFISK, INDTAST 1."
 0900 PRINT "0NSKER DU TABEL, INDTAST 2."
 0910 INPUT Q
 0920 IF Q = 1 THEN CHAIN "NGRF1"
 0930 IF Q = 2 THEN CHAIN "NTAB1"
 0940 END «nul»
 0950 PROC FILWORK
 0960   DATA "810" , "1" , "820" , "2" , "830" , "3" , "840" , "4" , "850" , "5"
 0970   DATA "860" , "1" , "870" , "2" , "880" , "3" , "890" , "4" , "900" , "5"
 0980   DATA "910" , "6" , "920" , "7" , "930" , "8" , "940" , "9"
 0990   DIM LNUM$ ( 3 ) , I$ ( 2 )
 1000 ENDPROC
 1010 PROC HJLP
 1020   PRINT "<27><12>"
 1030   DELAY = 1
 1040   DIM K$ ( M , 150 )
 1050   FOR I = 1 TO M
 1060     PRINT "H(" ; I ; ")=" ;
 1070     INPUT K$ ( I )
 1080   NEXT 
 1090 ENDPROC
 1100 PROC IND
 1110   PRINT "<27><12>"
 1120   DELAY = 1
 1130   FOR I = 1 TO N
 1140     PRINT "DX(" ; I ; ")=" ;
 1150     INPUT F$ ( I )
 1160   NEXT 
 1170 ENDPROC
 1180 PROC PRNT
 1190   OPEN FILE ( 1 , 1 ) "PRNT1"
 1200   FOR I = 1 TO M
 1210     READ FILE ( 1 ) K$ ( I )
 1220   NEXT 
 1230   FOR I = 1 TO N
 1240     READ FILE ( 1 ) F$ ( I )
 1250   NEXT 
 1260   CLOSE FILE ( 1 )
 1270 ENDPROC
 1280 PROC RET
 1290   INPUT "I HVILKET UDTRYK (H(I), D2X(I)) 0NSKES RETTET? " , Q$
 1300   RESTORE 0000
 1310   FOR I = 1 TO M
 1320     READ LNUM$ , I$
 1330     LET G$ = "H(" , I$ , ")"
 1340     IF Q$ = G$ THEN
 1350       PRINT "H(" ; I$ ; ")=" ;
 1360       INPUT K$ ( I )
 1370     ENDIF 
 1380   NEXT 
 1390   FOR I = M + 1 TO 5
 1400     READ LNUM$ , I$
 1410   NEXT 
 1420   FOR I = 1 TO N
 1430     READ LNUM$ , I$
 1440     LET G$ = "DX(" , I$ , ")"
 1450     IF Q$ = G$ THEN
 1460       PRINT "DX(" ; I$ ; ")=" ;
 1470       INPUT F$ ( I )
 1480     ENDIF 
 1490   NEXT 
 1500   PRINT "HVIS DU 0NSKER AT RETTE MERE, INDTAST 0. ELLERS ET ANDET"
 1510   INPUT "TAL. " , R
 1520   IF R = 0 THEN GOTO 1290
 1530 ENDPROC
 1540 PROC GEM
 1550   PRINT "DU KAN STADIG NAA AT FORTRYDE RETTELSERNE VED AT TRYKKE"
 1560   INPUT "ESCAPE. ELLERS RETURN." , Q$
 1570   LET AFBRYD = 0
 1580   OPEN FILE ( 0 , 3 ) "DIM1"
 1590   WRITE FILE ( 0 ) N , M
 1600   CLOSE FILE ( 0 )
 1610   RESTORE 0000
 1620   OPEN FILE ( 0 , 3 ) "LGNN1"
 1630   OPEN FILE ( 1 , 3 ) "PRNT1"
 1640   FOR I = 1 TO M
 1650     READ LNUM$ , I$
 1660     WRITE FILE ( 0 ) LNUM$ , "LET H(" , I$ , ")=" , K$ ( I ) , "<13><10>"
 1670     WRITE FILE ( 1 ) K$ ( I )
 1680   NEXT 
 1690   FOR I = M + 1 TO 5
 1700     READ LNUM$ , I$
 1710   NEXT 
 1720   FOR I = 1 TO N
 1730     READ LNUM$ , I$
 1740     WRITE FILE ( 0 ) LNUM$ , "LET DX(" , I$ , ")=" , F$ ( I ) , "<13><10>"
 1750     WRITE FILE ( 1 ) F$ ( I )
 1760   NEXT 
 1770   CLOSE FILE ( 0 )
 1780   CLOSE FILE ( 1 )
 1790 ENDPROC
 1800 PROC OUTESC
 1810   ON ESC THEN EXEC OUTESC
 1820   IF AFBRYD THEN
 1830     PRINT "PROGRAMMET AFBRUDT. DE GAMLE LIGNINGER OG DATA ER BEVARET."
 1840     END «nul»:
 1850   ENDIF 
 1860 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 Q$
    0x82 0xffff 0x02 G$
    0x83 0xffff 0x00 AFBRYD
    0x84 0xffff 0x00 OUTESC
    0x85 0xffff 0x00 N
    0x86 0xffff 0x00 M
    0x87 0xffff 0x00 I
    0x88 0xffff 0x00 FILWORK
    0x89 0xffff 0x00 Q
    0x8a 0xffff 0x02 F$
    0x8b 0xffff 0x00 HJLP
    0x8c 0xffff 0x00 IND
    0x8d 0xffff 0x00 R
    0x8e 0xffff 0x00 RET
    0x8f 0xffff 0x00 GEM
    0x90 0xffff 0x02 K$
    0x91 0xffff 0x00 PRNT
    0x92 0xffff 0x02 LNUM$
    0x93 0xffff 0x02 I$
    0x94 0xffff 0x00 LST

Wrapper

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