|
|
DataMuseum.dkPresents historical artifacts from the history of: RegneCentralen RC3600/RC7000 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RegneCentralen RC3600/RC7000 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 6144 (0x1800)
Types: COMAL_SAVE
Names: »NDIF2«
└─⟦d85593a46⟧ Bits:30000470 DOMUS disk image - User files
└─⟦this⟧ »/NDIF2«
SAVE filename: "NDIF2"
0010 DIM Q$ ( 150 )
0020 PRINT "<27><12>"
0030 DELAY = 1
0040 PRINT
0050 PRINT
0060 PRINT " *** NUMERISK L0SNING AF N 2-ORDENS DIFFERENTIALLIGNINGER ***"
0070 PRINT
0080 PRINT
0090 PRINT " DIFFERENTIALLIGNINGERNE (H0JST 9) SKAL ANF0RES PAA FORMEN"
0100 PRINT
0110 PRINT " D2X(I)= FUNKTION AF X(1),...,X(N),DX(1),...,DX(N),T"
0120 PRINT
0130 PRINT "HVOR H0JRESIDEN DEFINERES AF BRUGEREN. X(I), DX(I), D2X(I) OG T"
0140 PRINT "(I=1,...,N) BETEGNER DE S0GTE FUNKTIONER, DERES TO AFLEDEDE OG"
0150 PRINT "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),DX(I) OG T, OG DE KAN BENYTTES I DIFFERENTIALLIGNINGERNES"
0190 PRINT "H0JRESIDER."
0200 PRINT
0210 PRINT
0220 PRINT " EKSEMPEL (KEPLERBEVAEGELSE):"
0230 PRINT
0240 PRINT " H(1)= SQR(X(1)^2+X(2)^2)"
0250 PRINT
0260 PRINT " D2X(1)= -X(1)/H(1)^3"
0270 PRINT " D2X(2)= -X(2)/H(1)^3"
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 ) "DIM2"
0400 READ FILE ( 0 ) N , M
0410 CLOSE FILE ( 0 )
0420 OPEN FILE ( 1 , 1 ) "PRNT2"
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 "D2X(" ; 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 "INT2"
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 "NGRF2"
0930 IF Q = 2 THEN CHAIN "NTAB2"
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 "D2X(" ; I ; ")=" ;
1150 INPUT F$ ( I )
1160 NEXT
1170 ENDPROC
1180 PROC PRNT
1190 OPEN FILE ( 1 , 1 ) "PRNT2"
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$ = "D2X(" , I$ , ")"
1450 IF Q$ = G$ THEN
1460 PRINT "D2X(" ; 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 ) "DIM2"
1590 WRITE FILE ( 0 ) N , M
1600 CLOSE FILE ( 0 )
1610 RESTORE 0000
1620 OPEN FILE ( 0 , 3 ) "LGNN2"
1630 OPEN FILE ( 1 , 3 ) "PRNT2"
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 D2X(" , 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
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
.magic = 0x4e32 .u_pas = 0x0745 // Length of UPAS in words .u_das = 0x00e5 // Length of UDAS in words .u_dvs = 0x00e5 // 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)