|
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 - download
Length: 5632 (0x1600) Types: COMAL_SAVE Names: »BRL1«
└─⟦d85593a46⟧ Bits:30000470 DOMUS disk image - User files └─⟦this⟧
SAVE filename: "BRL1" 0010 DIM Q$ ( 3 ) 0020 PRINT "<27>AF" 0030 PRINT "<27><12>" 0040 DELAY = 1 0050 PRINT 0060 PRINT " BEDSTE RETTE LINIE" 0070 INPUT "ANTAL MAALEPUNKTER =" , N 0080 DIM KO ( 2 , N ) 0090 LET SUMX = 0 0100 LET SUMY = 0 0110 LET SUMXY = 0 0120 LET SUMX2 = 0 0130 FOR I = 1 TO N STEP 1 0140 PRINT "TALSAET NR " ; I ; 0150 INPUT " X=" , KO ( 1 , I ) , " Y=" , KO ( 2 , I ) 0160 NEXT 0170 EXEC RETTE 0180 FOR I = 1 TO N STEP 1 0190 LET SUMX = SUMX + KO ( 1 , I ) 0200 LET SUMY = SUMY + KO ( 2 , I ) 0210 LET SUMXY = SUMXY + KO ( 1 , I ) * KO ( 2 , I ) 0220 LET SUMX2 = SUMX2 + KO ( 1 , I ) ^ 2 0230 NEXT 0240 LET EX = SUMX / N 0250 LET EY = SUMY / N 0260 LET EXY = SUMXY / N 0270 LET EX2 = SUMX2 / N 0280 LET VARX = EX2 - EX ^ 2 0290 IF VARX = 0 THEN 0300 LET P = ( KO ( 2 , N ) - KO ( 2 , 1 ) ) / ( KO ( 1 , 1 ) - KO ( 1 , N ) ) 0310 LET Q = KO ( 2 , 1 ) - P * KO ( 1 , 1 ) 0320 ELSE 0330 LET P = ( EXY - EX * EY ) / VARX 0340 LET Q = ( EX2 * EY - EX * EXY ) / VARX 0350 ENDIF 0360 PRINT "HAELDNINGSKOEFFICIENT= " ; P 0370 PRINT "SKAERING MED Y-AKSEN= " ; Q 0380 DELAY = 5 0390 EXEC KOVALG 0400 EXEC GRAF 0410 EXEC CHOICE 0420 PROC KOVALG 0430 PRINT "<27><12>" 0440 DELAY = 1 0450 INPUT "HOEJKANT SKRIV 0,VANDRET SKRIV 1" , J 0460 LET XOMS = 25 YOMS = 25 0470 LET XMAX = 395 + J * 217 YMAX = 608 - J * 188 0480 PRINT "ANF0R BEGYNDELSESPUNKTETS PLACERING PAA PAPI-" 0490 PRINT "RET MAALT I CM VANDRET OG CM LODRET FRA NEDERSTE VENSTRE" 0500 PRINT "HJ0ERNE." 0510 INPUT "CM VANDRET " , XO , " CM LODRET " , YO 0520 INPUT "1 CM PAA X-AKSEN SKAL SVARE TIL" , X1 0530 INPUT "1 CM PAA Y-AKSEN SKAL SVARE TIL" , Y1 0540 ENDPROC 0550 PROC GRAF 0560 PRINT "<27><12>" 0570 DELAY = 1 0580 LET X0 = XOMS * XO Y0 = YOMS * YO 0590 CALL "GRAPH" , X0 , 0 0600 CALL "OUTVECT" , X0 , YMAX 0610 CALL "OUTVECT" , X0 - 4 * ( X0 >= 4 ) , YMAX - 4 0620 CALL "OUTVECT" , X0 + 4 , YMAX - 4 0630 CALL "OUTVECT" , X0 , YMAX 0640 CALL "GRAPH" , 0 , Y0 0650 CALL "OUTVECT" , XMAX , Y0 0660 CALL "OUTVECT" , XMAX - 4 , Y0 + 4 0670 CALL "OUTVECT" , XMAX - 4 , Y0 - 4 * ( Y0 >= 4 ) 0680 CALL "OUTVECT" , XMAX , Y0 0690 FOR I = 1 TO 23 - 7 * J 0700 CALL "GRAPH" , X0 - 2 * ( X0 >= 2 ) , I * YOMS 0710 CALL "OUTVECT" , X0 + 2 , I * YOMS 0720 NEXT 0730 FOR I = 1 TO 15 + 8 * J 0740 CALL "GRAPH" , I * XOMS , Y0 - 2 * ( Y0 > 2 ) 0750 CALL "OUTVECT" , I * XOMS , Y0 + 2 0760 NEXT 0770 FOR I = 1 TO N 0780 LET X = X0 + XOMS * KO ( 1 , I ) / X1 0790 LET Y = Y0 + YOMS * KO ( 2 , I ) / Y1 0800 IF ( X < 2 ) + ( X > 1021 ) + ( Y < 2 ) + ( Y > YMAX - 2 ) THEN GOTO 0850 0810 CALL "GRAPH" , X - 2 , Y + 2 0820 CALL "OUTVECT" , X + 2 , Y - 2 0830 CALL "GRAPH" , X - 2 , Y - 2 0840 CALL "OUTVECT" , X + 2 , Y + 2 0850 NEXT 0860 ON ERR THEN LET XNEDRE = 0 0870 LET XNEDRE = X0 + ( - Y0 * Y1 / YOMS - Q ) * XOMS / P / X1 0880 ON ERR THEN LET X0VRE = XMAX 0890 LET X0VRE = X0 + ( ( YMAX - Y0 ) * Y1 / YOMS - Q ) * XOMS / X1 / P 0900 LET YVENSTRE = Y0 + ( - X0 * X1 * P / XOMS + Q ) * YOMS / Y1 0910 LET YH0JRE = Y0 + ( ( XMAX - X0 ) * X1 * P / XOMS + Q ) * YOMS / Y1 0920 LET XSTART = XNEDRE * ( XNEDRE >= 0 ) * ( P >= 0 ) + X0VRE * ( X0VRE >= 0 ) * ( P < 0 ) 0930 LET YSTART = YVENSTRE * ( XSTART = 0 ) + YMAX * ( XSTART <> 0 ) * ( P < 0 ) 0940 LET XSLUT = ( X0VRE * ( X0VRE <= XMAX ) + XMAX * ( X0VRE > XMAX ) ) * ( P >= 0 ) + ( XNEDRE * ( XNEDRE <= XMAX ) + XMAX * ( XNEDRE > XMAX ) ) * ( P < 0 ) 0950 LET YSLUT = YH0JRE * ( XSLUT = XMAX ) + YMAX * ( XSLUT <> XMAX ) * ( P > 0 ) 0960 CALL "GRAPH" , XSTART , YSTART 0970 CALL "OUTVECT" , XSLUT , YSLUT 0980 CALL "GRAPH" , 0 , 765 0990 CALL "ALPHA" 1000 ENDPROC 1010 PROC GRAFH 1020 PRINT "<27><12>" 1030 DELAY = 1 1040 LET X0 = YO * XOMS Y0 = 783 - XO * YOMS 1050 CALL "GRAPH" , X0 , 779 1060 CALL "OUTVECT" , X0 , 779 - YMAX 1070 CALL "OUTVECT" , X0 - 4 * ( X0 >= 4 ) , 783 - YMAX 1080 CALL "OUTVECT" , X0 + 4 , 783 - YMAX 1090 CALL "OUTVECT" , X0 , 779 - YMAX 1100 CALL "GRAPH" , 0 , Y0 1110 CALL "OUTVECT" , XMAX , Y0 1120 CALL "OUTVECT" , XMAX - 4 , Y0 + 4 * ( Y0 <= 775 ) 1130 CALL "OUTVECT" , XMAX - 4 , Y0 - 4 1140 CALL "OUTVECT" , XMAX , Y0 1150 FOR I = 1 TO 16 1160 CALL "GRAPH" , X0 - 2 * ( X0 >= 2 ) , 783 - I * YOMS 1170 CALL "OUTVECT" , X0 + 2 , 783 - I * YOMS 1180 NEXT 1190 FOR I = 1 TO 23 1200 CALL "GRAPH" , I * XOMS , Y0 - 2 1210 CALL "OUTVECT" , I * XOMS , Y0 + 2 * ( Y0 <= 775 ) 1220 NEXT 1230 FOR I = 1 TO N 1240 LET X = X0 + XOMS * KO ( 2 , I ) / Y1 1250 LET Y = Y0 - YOMS * KO ( 1 , I ) / X1 1260 IF ( X < 2 ) + ( X > 1021 ) + ( Y > 777 ) + ( Y < 777 - YMAX ) THEN GOTO 1310 1270 CALL "GRAPH" , X - 2 , Y + 2 1280 CALL "OUTVECT" , X + 2 , Y - 2 1290 CALL "OUTVECT" , X - 2 , Y - 2 1300 CALL "OUTVECT" , X + 2 , Y + 2 1310 NEXT 1320 LET XSTARTH = YSTART * XOMS / 25 YSTARTH = 783 - XSTART * YOMS / 25 1330 LET XSLUTH = YSLUT * XOMS / 25 YSLUTH = 783 - XSLUT * YOMS / 25 1340 IF YSTARTH > 779 THEN 1350 LET YSTARTH = 779 1360 LET XSTARTH = ( YSTART + 100 * P * X1 / Y1 / YOMS ) * XOMS / 25 1370 ENDIF 1380 IF YSLUTH > 779 THEN 1390 LET YSLUTH = 779 1400 LET XSLUTH = ( YSLUT + 100 * P * X1 / Y1 / YOMS ) * XOMS / 25 1410 ENDIF 1420 CALL "GRAPH" , XSTARTH , YSTARTH 1430 CALL "OUTVECT" , XSLUTH , YSLUTH 1440 CALL "GRAPH" , 0 , 765 1450 CALL "ALPHA" 1460 ENDPROC 1470 PROC RETTE 1480 PRINT "HVIS ET TAELSAET SKAL RETTES, INDTAST DETS NR. ELLERS INDTAST 0" 1490 INPUT I 1500 IF I = 0 THEN GOTO 1590 1510 ON ERR THEN EXEC OUTERR 1520 PRINT "TAELSAET NR " , I ; 1530 INPUT " X=" , KO ( 1 , I ) , " Y=" , KO ( 2 , I ) 1540 GOTO 1480 1550 PROC OUTERR 1560 PRINT 1570 PRINT "FORKERT NUMMERANGIVELSE!" 1580 ENDPROC 1590 ENDPROC 1600 PROC CHOICE 1610 DIM Q$ ( 1 ) 1620 PRINT "HVIS DENNE GRAF 0NSKES TEGNET, INDTAST T" 1630 PRINT "HVIS DER 0NSKES NYT KOORDINATSYSTEM, INDTAST K" 1640 PRINT "PROGRAMMET AFBRYDES VED AT INDTASTE S" 1650 INPUT Q$ 1660 IF ( Q$ <> "T" ) * ( Q$ <> "K" ) * ( Q$ <> "S" ) THEN GOTO 1650 1670 IF Q$ = "T" THEN 1680 LET XOMS = 41.8 YOMS = 43.5 1690 LET XMAX = 1023 YMAX = 730 1700 PRINT "<27>AE" 1710 IF J THEN 1720 EXEC GRAF 1730 ELSE 1740 EXEC GRAFH 1750 ENDIF 1760 PRINT "<27>AF" 1770 PRINT "HVIS GRAFEN 0NSKES TEGNET IGEN, INDTAST T" 1780 ENDIF 1790 IF Q$ = "K" THEN 1800 EXEC KOVALG 1810 EXEC GRAF 1820 PRINT "HVIS DENNE GRAF 0NSKES TEGNET, INDTAST T" 1830 ENDIF 1840 IF Q$ <> "S" THEN GOTO 1630 1850 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 = 0x0001 stack[0] = 0x00c9 stack[1] = 0x06f7 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 = 5.14756e-85 (0x00000001) Var# = 0x0000 Loop Top = 0x0001 To Val = 3.3735e-80 (0x00010000) Step Val = 0 (0x00000000) Var# = 0x0087 Loop Top = 0x0097 To Val = 2 (0x41200000) Step Val = 1 (0x41100000) 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 0xffff 0x00 0x81 0x0005 0x00 N 0x82 0x0007 0x01 KO 0x83 0x0016 0x00 SUMX 0x84 0x0018 0x00 SUMY 0x85 0x001a 0x00 SUMXY 0x86 0x001c 0x00 SUMX2 0x87 0x001e 0x00 I 0x88 0xffff 0x00 EX 0x89 0xffff 0x00 EY 0x8a 0xffff 0x00 EXY 0x8b 0xffff 0x00 EX2 0x8c 0xffff 0x00 VARX 0x8d 0xffff 0x00 P 0x8e 0xffff 0x00 Q 0x8f 0xffff 0x00 LIST10 0x90 0xffff 0x00 LISTT 0x91 0xffff 0x00 LIIST 0x92 0xffff 0x00 LIST50 0x93 0xffff 0x00 VANDRET 0x94 0xffff 0x00 XO 0x95 0xffff 0x00 YO 0x96 0xffff 0x00 X1 0x97 0xffff 0x00 Y1 0x98 0xffff 0x00 XO0 0x99 0xffff 0x00 X0 0x9a 0xffff 0x00 Y0 0x9b 0xffff 0x00 I1 0x9c 0xffff 0x00 I2 0x9d 0xffff 0x00 I3 0x9e 0xffff 0x00 I4 0x9f 0xffff 0x00 CM 0xa0 0xffff 0x00 LIST450 0xa1 0xffff 0x00 X 0xa2 0xffff 0x00 XNED 0xa3 0xffff 0x00 XOP 0xa4 0xffff 0x00 LISTLIST 0xa5 0xffff 0x00 Y 0xa6 0xffff 0x00 XNEDRE 0xa7 0xffff 0x00 X0VRE 0xa8 0xffff 0x00 YNEDRE 0xa9 0xffff 0x00 Y0VRE 0xaa 0xffff 0x00 LIST300 0xab 0xffff 0x00 ST 0xac 0xffff 0x00 LIST200 0xad 0xffff 0x00 J 0xae 0xffff 0x00 XOMS 0xaf 0xffff 0x00 YOMS 0xb0 0xffff 0x00 LIST400 0xb1 0xffff 0x00 XMAX 0xb2 0xffff 0x00 YMAX 0xb3 0xffff 0x00 X0MS 0xb4 0xffff 0x00 LLIST 0xb5 0xffff 0x00 LIST305 0xb6 0xffff 0x00 YVENSTRE 0xb7 0xffff 0x00 YH0JRE 0xb8 0xffff 0x00 XSTART 0xb9 0xffff 0x00 O 0xba 0xffff 0x00 XSLUT 0xbb 0xffff 0x00 YSTART 0xbc 0xffff 0x00 LISLIST 0xbd 0xffff 0x00 YSLUT 0xbe 0xffff 0x00 NUL 0xbf 0xffff 0x00 YSTOP 0xc0 0xffff 0x00 PRNT 0xc1 0xffff 0x00 KOVALG 0xc2 0xffff 0x00 LINIE 0xc3 0xffff 0x00 GRAF 0xc4 0xffff 0x02 G$ 0xc5 0xffff 0x02 K$ 0xc6 0xffff 0x00 RUNRUN 0xc7 0xffff 0x00 UN 0xc8 0xffff 0x00 LIST1000 0xc9 0xffff 0x00 RTUN 0xca 0x0000 0x02 Q$ 0xcb 0xffff 0x00 TALSAET 0xcc 0xffff 0x00 Z 0xcd 0xffff 0x00 RETTE 0xce 0xffff 0x00 GRAF1 0xcf 0xffff 0x00 GRAFH 0xd0 0xffff 0x00 GRAFH0J 0xd1 0xffff 0x00 XSLUTH 0xd2 0xffff 0x00 YSLUTH 0xd3 0xffff 0x00 XSTARTH 0xd4 0xffff 0x00 YSTARTH 0xd5 0xffff 0x00 LIAT 0xd6 0xffff 0x00 YALUTH 0xd7 0xffff 0x00 LIST1600 0xd8 0xffff 0x00 CHOICE 0xd9 0xffff 0x00 WHWN 0xda 0xffff 0x00 OUTERR
.magic = 0x4e32 .u_pas = 0x0801 // Length of UPAS in words .u_das = 0x024f // Length of UDAS in words .u_dvs = 0x022f // Start på savede variabel indhold (word adr) .u_nds = 0x06ca // Address på næste prog.sætning (word adr) .u_cps = 0x06c7 // 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)