|
|
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: 8704 (0x2200)
Types: COMAL_SAVE
Names: »KURV«
└─⟦d85593a46⟧ Bits:30000470 DOMUS disk image - User files
└─⟦this⟧ »/KURV«
SAVE filename: "KURV"
0010 DIM A ( 22 , 22 )
0020 EXEC START
0030 EXEC POLYN
0040 PRINT
0050 EXEC IND
0060 EXEC TEGN
0070 EXEC CHOICE
0080 PROC TEGN
0090 PRINT "<27><12>"
0100 DELAY = 1
0110 LET A2 = XAKS * ( XAKS >= 45 ) * ( XAKS <= FELT - 45 ) + 5 * ( XAKS < 45 ) + 5 * ( XAKS > FELT - 45 )
0120 LET A1 = 145 A3 = FELT + 100 A4 = A2 C1 = - 5 C2 = 3 C3 = C1 C4 = - 3 C5 = 8 C6 = 0
0130 LET X0 = INT ( ( XAKS - 45 ) / S ) Y0 = INT ( ( YAKS - 145 ) / S )
0140 LET Y = A2 + 4 START = YAKS - Y0 * S SLUT = START + 11 * S
0150 EXEC KOORD
0160 LET A1 = YAKS * ( YAKS >= 145 ) * ( YAKS <= FELT + 100 ) + 105 * ( YAKS < 145 ) + 105 * ( YAKS > FELT + 100 )
0170 LET A2 = 45 A3 = A1 A4 = FELT C1 = 3 C2 = - 5 C3 = - 3 C4 = C2 C5 = 0 C6 = 8
0180 LET X = A1 + 4 START = XAKS - X0 * S SLUT = START + 11 * S
0190 EXEC KOORD
0200 FOR I = 1 TO N
0210 LET X = KO ( 1 , I ) * XSTEP + YAKS
0220 LET Y = KO ( 2 , I ) * YSTEP + XAKS
0230 CALL "GRAPH" , X - 2 , Y + 2
0240 CALL "OUTVECT" , X + 2 , Y - 2
0250 CALL "OUTVECT" , X - 2 , Y - 2
0260 CALL "OUTVECT" , X + 2 , Y + 2
0270 NEXT
0280 LET DX = ( X2 - X1 ) / 100 VEC = 0
0290 LET T = X1
0300 EXEC MODEL
0310 CALL "GRAPH" , X1 * XSTEP + YAKS , FUNK * YSTEP + XAKS
0320 FOR T = X1 TO X2 STEP DX
0330 EXEC MODEL
0340 LET X = T * XSTEP + YAKS Y = FUNK * YSTEP + XAKS
0350 IF ( X > FELT + 100 ) + ( Y < 45 ) + ( Y > FELT ) THEN
0360 LET VEC = 0
0370 ELSE
0380 CALL "VECTOR" , X , Y , VEC
0390 LET VEC = 1
0400 ENDIF
0410 NEXT
0420 CALL "GRAPH" , 0 , 780
0430 CALL "ALPHA"
0440 ENDPROC
0450 PROC CROSS
0460 ON ERR THEN EXEC OUTERR
0470 LET AFBRYD = 2
0480 PRINT "<29>" ;
0490 INPUT "<27><26>" , G$ ;
0500 IF LEN ( G$ ) = 0 THEN GOTO 0590
0510 PRINT "<31>" ;
0520 LET X = ( ORD ( G$ ( 2 ) ) - 33 ) * 32 + ORD ( G$ ( 3 ) )
0530 LET Y = ( ORD ( G$ ( 4 ) ) - 33 ) * 32 + ORD ( G$ ( 5 ) )
0540 LET XKOR = ( X - YAKS ) / XSTEP YKOR = ( Y - XAKS ) / YSTEP
0550 IF AFBRYD = 3 THEN GOTO 0470
0560 PAGE = 72
0570 PRINT "(" ; XKOR ; "," ; YKOR ; ")"
0580 GOTO 0470
0590 PRINT "<31>"
0600 LET AFBRYD = 1
0610 LET A = 1 / 0
0620 ENDPROC
0630 PROC KOORD
0640 CALL "GRAPH" , A1 , A2
0650 CALL "OUTVECT" , A3 , A4
0660 CALL "OUTVECT" , A3 + C1 , A4 + C2
0670 CALL "OUTVECT" , A3 + C3 , A4 + C4
0680 CALL "OUTVECT" , A3 , A4
0690 FOR T = START TO SLUT STEP S
0700 IF C5 THEN LET X = T
0710 IF C6 THEN LET Y = T
0720 CALL "GRAPH" , X , Y
0730 CALL "OUTVECT" , X - C6 , Y - C5
0740 NEXT
0750 DELAY = 1
0760 ENDPROC
0770 PROC IND
0780 PRINT " INDTAST MINDSTE OG ST0RSTE X-VAERDI: " ;
0790 INPUT "XMIN,XMAX ? " , X1 , X2
0800 IF X1 >= X2 THEN GOTO 0790
0810 PRINT
0820 PRINT " INDTAST MINDSTE OG ST0RSTE Y-VAERDI: " ;
0830 INPUT "YMIN,YMAX ? " , Y1 , Y2
0840 IF Y1 >= Y2 THEN GOTO 0830
0850 LET S = 50 FELT = 650
0860 LET E ( 1 ) = S * ( X2 - X1 ) / FELT E ( 2 ) = S * ( Y2 - Y1 ) / FELT
0870 FOR I = 1 TO 2
0880 LET ENH = 0
0890 IF E ( I ) > 1 THEN
0900 LET D1 = 2.5 D2 = 5 D3 = 7.5 D4 = 10
0910 REPEAT
0920 LET ENH = D1 * ( E ( I ) <= D1 ) + D2 * ( E ( I ) > D1 ) * ( E ( I ) <= D2 ) + D3 * ( E ( I ) > D2 ) * ( E ( I ) <= D3 ) + D4 * ( E ( I ) > D3 ) * ( E ( I ) <= D4 )
0930 LET D1 = 10 * D1 D2 = 10 * D2 D3 = 10 * D3 D4 = 10 * D4
0940 UNTIL ENH
0950 ELSE
0960 LET D1 = 0.1 D2 = 0.25 D3 = 0.5 D4 = 0.75
0970 REPEAT
0980 LET ENH = D2 * ( E ( I ) > D1 ) * ( E ( I ) <= D2 ) + D3 * ( E ( I ) > D2 ) * ( E ( I ) <= D3 ) + D4 * ( E ( I ) > D3 ) * ( E ( I ) <= D4 ) + 10 * D1 * ( E ( I ) > D4 )
0990 LET D1 = D1 / 10 D2 = D2 / 10 D3 = D3 / 10 D4 = D4 / 10
1000 UNTIL ENH
1010 ENDIF
1020 LET E ( I ) = ENH
1030 NEXT
1040 LET XSTEP = S / E ( 1 ) YSTEP = S / E ( 2 )
1050 LET XAKS = - YSTEP * Y1 + 45 YAKS = - XSTEP * X1 + 145
1060 PRINT
1070 PRINT
1080 PRINT " ET INTERVAL PAA X-AKSEN ER LIG " ; E ( 1 )
1090 PRINT " ET INTERVAL PAA Y-AKSEN ER LIG " ; E ( 2 )
1100 PRINT
1110 PRINT
1120 INPUT " NAAR DU ER PARAT, TAST RETURN" , G$
1130 ENDPROC
1140 PRINT "" ;
1150 PROC CHOICE
1160 PRINT "DU HAR F0LGENDE MULIGHEDER (INDTAST TALLET):"
1170 PRINT "1 = KOORDINATS0GNING (KOORDINATERNE TIL KORSET FAAS VED AT"
1180 PRINT " TRYKKE PAA ET BOGSTAV. DU VENDER TILBAGE TIL HOVED-"
1190 PRINT " PROGRAMMET VED AT TASTE RETURN)"
1200 PRINT "2 = DEN NUVAERENDE GRAF TEGNES PAA PLOTTEREN"
1210 PRINT "3 = SAMME FUNKTION I NYT INTERVAL"
1220 PRINT "4 = NYT POLYNOMIUM"
1230 PRINT "5 = STOP"
1240 INPUT Q
1250 LET Q = INT ( Q )
1260 IF ( Q < 1 ) + ( Q > 5 ) THEN GOTO 1240
1270 IF Q = 1 THEN EXEC CROSS
1280 IF Q = 2 THEN
1290 LET S = 60 FELT = 780
1300 LET XSTEP = S / E ( 1 ) YSTEP = S / E ( 2 )
1310 LET XAKS = - YSTEP * Y1 + 45 YAKS = - XSTEP * X1 + 145
1320 PRINT "<27>AE"
1330 EXEC TEGN
1340 PRINT "<27>AF"
1350 ENDIF
1360 IF Q = 3 THEN
1370 PRINT "<27><12>"
1380 DELAY = 1
1390 EXEC IND
1400 EXEC TEGN
1410 ENDIF
1420 IF Q = 4 THEN
1430 EXEC POLYN
1440 EXEC IND
1450 EXEC TEGN
1460 ENDIF
1470 IF Q = 1 THEN GOTO 1240
1480 IF ( Q = 2 ) + ( Q = 3 ) + ( Q = 4 ) THEN GOTO 1160
1490 ENDPROC
1500 PROC START
1510 PRINT "<27>AF"
1520 PRINT "<27><12>"
1530 DELAY = 1
1540 DIM G$ ( 5 )
1550 PRINT
1560 INPUT "ANTAL MAALEPUNKTER =" , N
1570 DIM KO ( 2 , N )
1580 FOR I = 1 TO N STEP 1
1590 PRINT "TALSAET NR " ; I ;
1600 INPUT " X=" , KO ( 1 , I ) , " Y=" , KO ( 2 , I )
1610 NEXT
1620 ENDPROC
1630 PROC POLYN
1640 INPUT "DET APPROXIMERENDE POLYNOMIUMS GRAD " , M
1650 FOR J = 1 TO M + 1
1660 FOR I = 1 TO J
1670 FOR L = 1 TO N
1680 IF KO ( 1 , L ) <> 0 THEN
1690 IF I = 1 THEN LET A ( J , M + 2 ) = A ( J , M + 2 ) * ( L > 1 ) + KO ( 1 , L ) ^ ( J - 1 ) * KO ( 2 , L )
1700 LET A ( J , I ) = A ( J , I ) * ( L > 1 ) + KO ( 1 , L ) ^ ( J + I - 2 )
1710 ENDIF
1750 NEXT
1760 NEXT
1770 NEXT
1780 FOR J = 1 TO M + 1
1790 FOR I = 1 TO J
1800 LET A ( I , J ) = A ( J , I )
1810 NEXT
1820 NEXT
1830 FOR J = 1 TO M + 1
1840 LET I = J
1850 IF A ( I , J ) <> 0 THEN GOTO 1900
1860 LET I = I + 1
1870 IF I <= M + 1 THEN GOTO 1850
1880 PRINT "INGEN ENTYDIG L0SNING."
1890 END «nul»
1900 FOR K = 1 TO M + 2
1910 LET X = A ( J , K ) A ( J , K ) = A ( I , K ) A ( I , K ) = X
1920 NEXT
1930 LET Y = 1 / A ( J , J )
1940 FOR K = 1 TO M + 2
1950 LET A ( J , K ) = Y * A ( J , K )
1960 NEXT
1970 FOR I = 1 TO M + 1
1980 IF I = J THEN GOTO 2030
1990 LET Y = - A ( I , J )
2000 FOR K = 1 TO M + 2
2010 LET A ( I , K ) = A ( I , K ) + Y * A ( J , K )
2020 NEXT
2030 NEXT
2040 NEXT
2050 LET AFBRYD = 1
2060 DIM E ( 2 )
2070 ENDPROC
2080 PROC OUTERR
2090 LET FUNK = 0
2100 IF AFBRYD = 1 THEN GOTO 2130
2110 ON ERR THEN EXEC OUTERR
2120 LET AFBRYD = 3
2130 ENDPROC
2140 PROC MODEL
2150 LET FUNK = 0
2160 FOR J = 1 TO M + 1
2170 IF T <> 0 THEN
2180 LET FUNK = FUNK + A ( J , M + 2 ) * T ^ ( J - 1 )
2190 ELSE
2200 LET FUNK = FUNK + A ( 1 , M + 2 )
2210 ENDIF
2220 NEXT
2230 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 = 0x0002
stack[0] = 0x005e
stack[1] = 0x0589
stack[2] = 0x01bc
stack[3] = 0x0000
stack[4] = 0x0000
stack[5] = 0x0000
stack[6] = 0x0000
FOR-NEXT stack pointer = 0x0000
Var# = 0x03aa
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 = 5.14756e-85 (0x00000001)
Step Val = 0 (0x00000000)
Var# = 0x0000
Loop Top = 0x0000
To Val = 0 (0x00000000)
Step Val = 0 (0x00000000)
Var# = 0x00a2
Loop Top = 0x01b3
To Val = 12 (0x41c00000)
Step Val = 0.12 (0x401eb852)
Var# = 0x00b6
Loop Top = 0x0865
To Val = 3 (0x41300000)
Step Val = 1 (0x41100000)
Var# = 0x00b8
Loop Top = 0x07e6
To Val = 4 (0x41400000)
Step Val = 1 (0x41100000)
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 0x0627 0x00 START
0x82 0xffff 0x00 IND
0x83 0xffff 0x00 TEGN
0x84 0xffff 0x00 CHOICE
0x85 0x060f 0x00 A2
0x86 0x060b 0x00 XAKS
0x87 0x05fb 0x00 FELT
0x88 0x0611 0x00 A1
0x89 0x0613 0x00 A3
0x8a 0x0615 0x00 A4
0x8b 0x0617 0x00 C1
0x8c 0x0619 0x00 C2
0x8d 0x061b 0x00 C3
0x8e 0x061d 0x00 C4
0x8f 0x061f 0x00 C5
0x90 0x0621 0x00 C6
0x91 0x0623 0x00 X0
0x92 0x05f9 0x00 S
0x93 0x0625 0x00 Y0
0x94 0x060d 0x00 YAKS
0x95 0x05e4 0x00 Y
0x96 0x0629 0x00 SLUT
0x97 0xffff 0x00 KOORD
0x98 0x05e2 0x00 X
0x99 0x05d8 0x00 I
0x9a 0x05b5 0x00 N
0x9b 0x05b7 0x01 KO
0x9c 0x0607 0x00 XSTEP
0x9d 0x0609 0x00 YSTEP
0x9e 0x062d 0x00 DX
0x9f 0x05f3 0x00 X2
0xa0 0x05f1 0x00 X1
0xa1 0x062f 0x00 VEC
0xa2 0x062b 0x00 T
0xa3 0xffff 0x00 MODEL
0xa4 0x0631 0x00 FUNK
0xa5 0xffff 0x00 CROSS
0xa6 0xffff 0x00 OUTERR
0xa7 0x05e6 0x00 AFBRYD
0xa8 0x05af 0x02 G$
0xa9 0x0635 0x00 XKOR
0xaa 0x0637 0x00 YKOR
0xab 0x0000 0x01 A
0xac 0x05f5 0x00 Y1
0xad 0x05f7 0x00 Y2
0xae 0x05e8 0x01 E
0xaf 0x05fd 0x00 ENH
0xb0 0x05ff 0x00 D1
0xb1 0x0601 0x00 D2
0xb2 0x0603 0x00 D3
0xb3 0x0605 0x00 D4
0xb4 0x0633 0x00 Q
0xb5 0x05da 0x00 M
0xb6 0x05dc 0x00 J
0xb7 0x05de 0x00 L
0xb8 0x05e0 0x00 K
0xb9 0xffff 0x00 OUTESC
0xba 0xffff 0x00 POLYN
.magic = 0x4e32 .u_pas = 0x087b // Length of UPAS in words .u_das = 0x07c8 // Length of UDAS in words .u_dvs = 0x018f // Start på savede variabel indhold (word adr) .u_nds = 0x0819 // 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)