|
|
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: 4608 (0x1200)
Types: COMAL_SAVE
Names: »IB10«
└─⟦d85593a46⟧ Bits:30000470 DOMUS disk image - User files
└─⟦this⟧ »/IB10«
SAVE filename: "IB10"
0010 REM (+ HOVEDPROGRAM UDVIKLET AF IB OLSEN - 1982 +)«nul»
0020 PRINT "<27>AF"
0030 PRINT "<27><12>"
0040 DELAY = 1
0050 PRINT TAB ( 10 ) ; "*** NUMERISK LOESNING AF ***"
0060 PRINT TAB ( 10 ) ; "** DIFFERINTIALLIGNINGER **"
0070 PRINT
0080 PRINT
0090 PRINT "PROGRAMMET KAN LØSE OP TIL TI FORSKELLIGE FØRSTEORDENS DIFFE-"
0100 PRINT "RINTIALLIGNINGER AF NUMERISK VEJ. RESULTATET KOMMER UD SOM EN GRA-"
0110 PRINT "FISK MODEL, HVOR SAMTLIGE LIGNINGER VIL BLIVE AFBILDET SOM FUNKTION"
0120 PRINT "AF PARAMETEREN AF PRAKTISKE FRUNDE HEDDER PARAMETEREN "
0130 PRINT " -T- OG FUNKTIONSVAERDIEN V(1....10)"
0140 PRINT "EKSEMPEL: "
0150 PRINT " DX/DT = (A + BY)X"
0160 PRINT " DY/DT = (CX + D)Y"
0170 PRINT "BLIVER:"
0180 PRINT " D(1)=(A+B*V(2))*V(1) *DT"
0190 PRINT " D(2)=(C*V(1)+D)*V(2) *DT"
0200 PRINT
0210 DIM DIF$ ( 30 )
0220 INPUT "TAST -RETURN- NAR DU ER KLAR PAA OVERSTAAENDE !!" , DIF$
0230 PRINT "<27><12>"
0240 DELAY = 1
0250 INPUT "INDTAST ANTAL DIFFERINTIALLIGNINGER : " , NUMDIF
0255 EXEC START
0260 CREATE "GEM" , 0
0270 EXEC FILWORK
0280 FOR I = 1 TO NUMDIF
0290 ON ERR THEN GOTO 0330
0300 OPEN FILE ( 0 , 3 ) "GEM"
0310 OPEN FILE ( 0 , 3 ) "GEM"
0330 ON ERR THEN GOTO 0370
0340 PRINT "INDTAST D(" ; I ; ") = " ;
0350 INPUT "" , DIF$
0355 READ FIR$ , NEX$
0360 WRITE FILE ( 0 ) " " , FIR$ , "LET D(" , NEX$ , ")=" , DIF$ , "<13><10>"
0370 CLOSE
0380 ENTER "GEM"
0390 IF SYS ( 7 ) <> 42 THEN PRINT "DER ER FEJL I LIGNINGEN,. PROEV IGEN!"
0400 IF SYS ( 7 ) <> 42 THEN GOTO 0290
0410 PRINT "INDTAST STARTVAERDIEN FOR V(" ; I ; "): " ;
0420 INPUT "" , V ( I )
0430 NEXT
0432 CLOSE
0434 DELETE "GEM"
0435 ON ERR THEN STOP «nul»
0440 DIM STEPV ( NUMDIF ) , MINV ( NUMDIF ) , A1 ( NUMDIF ) , A2 ( NUMDIF ) , A3 ( NUMDIF )
0450 INPUT "INDTAST PARAMETEREMNS START- OG SLUT- VAERDI : " , TBEGIN , TEND
0460 LET DT = ( TEND - TBEGIN ) / 100
0470 FOR I = 1 TO NUMDIF
0480 LET VBEGIN ( I ) = V ( I )
0490 NEXT
0500 FOR T = TBEGIN TO TEND STEP DT
0510 EXEC MODEL
0520 FOR I = 1 TO NUMDIF
0530 LET V ( I ) = V ( I ) + D ( I )
0540 IF V ( I ) > A1 ( I ) THEN LET A1 ( I ) = V ( I )
0550 IF V ( I ) < A2 ( I ) THEN LET A2 ( I ) = V ( I )
0560 NEXT
0570 NEXT
0580 FOR I = 1 TO NUMDIF
0590 WHILE A1 ( I ) > 10 AND A2 ( I ) < - 10 DO
0600 LET A1 ( I ) = A1 ( I ) / 10 A2 ( I ) = A2 ( I ) / 10 A3 ( I ) = A3 ( I ) + 1
0610 ENDWHILE
0620 NEXT
0630 LET ST = A1 ( 1 ) MI = A2 ( 1 )
0640 FOR I = 2 TO NUMDIF
0650 IF A1 ( I ) > ST THEN LET ST = A1 ( I )
0660 IF A2 ( I ) < MI THEN LET MI = A2 ( I )
0670 NEXT
0680 FOR I = 1 TO NUMDIF
0690 LET A1 ( I ) = INT ( ST + 1 ) * 10 ^ A3 ( I )
0700 LET MINV ( I ) = INT ( MI ) * 10 ^ A3 ( I )
0710 NEXT
0720 EXEC RESTART
0730 LET S = 700 / ( ST - MI )
0740 FOR I = 1 TO NUMDIF
0750 LET X = 25 + ( I - 1 ) * 50
0760 CALL "GRAPH" , X , 60
0770 CALL "OUTVECT" , X , 760
0780 CALL "OUTVECT" , X + 4 , 756
0790 CALL "OUTVECT" , X - 4 , 756
0800 CALL "OUTVECT" , X , 760
0810 CALL "GRAPH" , X - 25 , 760
0820 CALL "ALPHA"
0830 PRINT A1 ( I )
0840 FOR J = 760 - S TO 60 STEP - S
0850 CALL "GRAPH" , X - 4 , J
0860 CALL "OUTVECT" , X + 4 , J
0870 NEXT
0880 CALL "GRAPH" , X - 25 , 45
0890 CALL "ALPHA"
0900 PRINT MINV ( I )
0910 CALL "GRAPH" , X - 25 , 20
0920 CALL "ALPHA"
0930 PRINT "V(" ; I ; ")"
0940 NEXT
0950 LET Y = 60
0960 IF MI < 0 THEN LET Y = - MI * S + 60
0970 CALL "GRAPH" , X + 25 , Y
0980 CALL "OUTVECT" , 1150 , Y
0990 CALL "OUTVECT" , 1146 , Y - 4
1000 CALL "OUTVECT" , 1146 , Y + 4
1010 CALL "OUTVECT" , 1150 , Y
1020 CALL "GRAPH" , 1155 , Y
1030 CALL "ALPHA"
1040 PRINT "T"
1050 CALL "GRAPH" , 1135 , Y - 15
1060 CALL "ALPHA"
1070 PRINT TEND
1080 LET S = ( 1125 - X ) / ( TEND - TBEGIN ) J = X + 25
1090 IF TBEGIN < 0 THEN
1100 LET MI = J - TBEGIN * S
1110 CALL "GRAPH" , M1 , Y - 4
1120 CALL "OUTVECT" , MI , Y + 4
1130 CALL "GRAPH" , MI - 2 , Y - 19
1140 CALL "ALPHA"
1150 PRINT "0"
1160 ENDIF
1180 FOR I = 1 TO NUMDIF
1190 LET STEPV ( I ) = 700 / ( A1 ( I ) - MINV ( I ) )
1200 NEXT
1210 EXEC RUNMODEL
1220 FOR I = 1 TO NUMDIF
1230 CALL "GRAPH" , 1150 , ( V ( I ) - MINV ( I ) ) * STEPV ( I ) + 53
1240 CALL "ALPHA"
1250 PRINT "V(" ; I ; ")"
1260 NEXT
1270 PRINT "<27>AF"
1280 END «nul»
1300 PROC MODEL
1310 LET D ( 1 ) = SIN ( V ( 1 ) ) * DT
1320 REM (*D2*)«nul»
1330 REM (*D3*)«nul»
1340 REM (*D4*)«nul»
1350 REM (*D5*)«nul»
1360 REM (*D6*)«nul»
1370 REM (*D7*)«nul»
1380 REM (*D8*)«nul»
1390 REM (*D9*)«nul»
1400 REM (*D10*)«nul»)
1410 ENDPROC
1500 PROC FILWORK
1510 DATA "1310" , "1" , "1320" , "2" , "1330" , "3"
1520 DATA "1340" , "4" , "1350" , "5" , "1360" , "6"
1530 DATA "1370" , "7" , "1380" , "8" , "1390" , "1400" , "9" , "1410" , "10"
1540 DIM FIR$ ( 4 ) , NEX$ ( 2 )
1550 ENDPROC
2000 PROC REPORT
2010 FOR I = 1 TO NUMDIF
2020 LET X = ( TLAST - TBEGIN ) * S + J Y = ( VLAST ( I ) - MINV ( I ) ) * STEPV ( I ) + 60
2030 CALL "GRAPH" , X , Y
2040 LET X = ( T - TBEGIN ) * S + J Y = ( V ( I ) - MINV ( I ) ) * STEPV ( I ) + 60
2050 CALL "OUTVECT" , X , Y
2060 NEXT
2070 ENDPROC +++REPORT+++«nul»
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] = 0x03c0
stack[1] = 0x0302
stack[2] = 0x02f9
stack[3] = 0x02f9
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# = 0x0084
Loop Top = 0x0398
To Val = 1 (0x41100000)
Step Val = 1 (0x41100000)
Var# = 0x0084
Loop Top = 0x0302
To Val = 1 (0x41100000)
Step Val = 1 (0x41100000)
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 0xffff 0x00
0x81 0x0000 0x02 DIF$
0x82 0x0012 0x00 NUMDIF
0x83 0xffff 0x00 FILWORK
0x84 0xffff 0x00 I
0x85 0xffff 0x00 V
0x86 0xffff 0x00 STEPV
0x87 0xffff 0x00 MINV
0x88 0xffff 0x00 A1
0x89 0xffff 0x00 A2
0x8a 0xffff 0x00 A3
0x8b 0xffff 0x00 TBEGIN
0x8c 0xffff 0x00 TEND
0x8d 0xffff 0x00 REPINT
0x8e 0xffff 0x00 VBEGIN
0x8f 0xffff 0x00 T
0x90 0xffff 0x00 MODEL
0x91 0xffff 0x00 D
0x92 0xffff 0x00 ENDWHILW
0x93 0xffff 0x00 ST
0x94 0xffff 0x00 MI
0x95 0xffff 0x00 RESTART
0x96 0xffff 0x00 S
0x97 0xffff 0x00 X
0x98 0xffff 0x00 J
0x99 0xffff 0x00 Y
0x9a 0xffff 0x00 M1
0x9b 0xffff 0x00 RUNMODEL
0x9c 0xffff 0x00 REPORT
0x9d 0xffff 0x00 TLAST
0x9e 0xffff 0x00 VLAST
0x9f 0xffff 0x02 FIRST$
0xa0 0xffff 0x02 FIR$
0xa1 0xffff 0x02 NEX$
0xa2 0xffff 0x00 ENDF
0xa3 0xffff 0x00 DT
0xa4 0xffff 0x00 LIDST
0xa5 0xffff 0x00 TT
0xa6 0xffff 0x00 START
.magic = 0x4e32 .u_pas = 0x06b4 // Length of UPAS in words .u_das = 0x013f // Length of UDAS in words .u_dvs = 0x012b // Start på savede variabel indhold (word adr) .u_nds = 0x01eb // Address på næste prog.sætning (word adr) .u_cps = 0x01d3 // 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)