|
|
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: »NGRF2«
└─⟦d85593a46⟧ Bits:30000470 DOMUS disk image - User files
└─⟦this⟧ »/NGRF2«
SAVE filename: "NGRF2"
0010 PRINT "<27>AF"
0020 LET AFBRYD = 1
0030 ON ESC THEN EXEC OUTESC
0040 ON ERR THEN EXEC OUTERR
0050 EXEC START
0060 EXEC KOVALG
0070 EXEC GRAF
0080 EXEC CHOICE
0090 END «nul»
0800 PROC MODEL
0810 REM MELLEM 800 OG 900«nul»
0815 REM SKRIVES DE FUNK-«nul»«nul»
0820 REM TIONER, DER 0NSKES«nul»E
0825 REM AFBILDET. DETTE SKER«nul»L
0830 REM AUTOMATISK UNDER«nul»K
0835 REM K0RSLEN.«nul»K
0840 REM «nul»
0845 REM «nul»
0850 REM «nul»
0855 REM «nul»
0860 REM «nul»
0865 REM «nul»
0870 REM «nul»
0875 REM «nul»
0880 REM «nul»
0885 REM «nul»
0890 REM «nul»
0895 REM «nul»
0900 ENDPROC
1000 PROC KOVALG
1010 PRINT "<27><12>"
1020 DELAY = 1
1030 PRINT "HVIS DU 0NSKER KOORDINATSYSTEMET PAA H0JKANT, INDTAST 0."
1040 PRINT "0NSKER DU VANDRET KOORDINATSYSTEM, INDTAST 1."
1050 INPUT J
1060 IF ( J <> 0 ) * ( J <> 1 ) THEN GOTO 1050
1070 LET XOMS = 25 YOMS = 25
1080 LET XMAX = 395 + J * 217 YMAX = 608 - J * 188
1090 PRINT "ANF0R BEGYNDELSESPUNKTETS PLACERING PAA PAPI-"
1100 PRINT "RET MAALT I CM VANDRET OG CM LODRET FRA NEDERSTE VENSTRE"
1110 PRINT "HJ0ERNE."
1120 INPUT "CM VANDRET " , XO , " CM LODRET " , YO
1130 DIM X1 ( NG ) , Y1 ( NG )
1140 FOR IG = 1 TO NG
1150 PRINT
1160 PRINT " FOR GRAF" ; IG ; ":"
1170 INPUT "1 CM PAA X-AKSEN SKAL SVARE TIL " , X1 ( IG )
1180 INPUT "1 CM PAA Y-AKSEN SKAL SVARE TIL " , Y1 ( IG )
1190 PRINT "HVIS DU 0NSKER AT RETTE I DETTE, INDTAST 0. ELLERS ET ANDET"
1200 INPUT "TAL. " , R
1210 IF R = 0 THEN GOTO 1160
1220 NEXT
1230 ENDPROC
1240 PROC GRAF
1250 LET AFBRYD = 2
1260 PRINT "<27><12>"
1270 DELAY = 1
1280 LET X0 = XOMS * XO Y0 = YOMS * YO
1290 CALL "GRAPH" , X0 , 0
1300 CALL "OUTVECT" , X0 , YMAX
1310 CALL "OUTVECT" , X0 - 4 * ( X0 >= 4 ) , YMAX - 4
1320 CALL "OUTVECT" , X0 + 4 , YMAX - 4
1330 CALL "OUTVECT" , X0 , YMAX
1340 CALL "GRAPH" , 0 , Y0
1350 CALL "OUTVECT" , XMAX , Y0
1360 CALL "OUTVECT" , XMAX - 4 , Y0 + 4
1370 CALL "OUTVECT" , XMAX - 4 , Y0 - 4 * ( Y0 >= 4 )
1380 CALL "OUTVECT" , XMAX , Y0
1390 FOR I = 1 TO 23 - 7 * J
1400 CALL "GRAPH" , X0 - 2 * ( X0 >= 2 ) , I * YOMS
1410 CALL "OUTVECT" , X0 + 2 , I * YOMS
1420 NEXT
1430 FOR I = 1 TO 15 + 8 * J
1440 CALL "GRAPH" , I * XOMS , Y0 - 2 * ( Y0 > 2 )
1450 CALL "OUTVECT" , I * XOMS , Y0 + 2
1460 NEXT
1470 FOR IG = 1 TO NG
1480 OPEN FILE ( 0 , 1 ) "STOR2"
1490 READ FILE ( 0 ) TSLUT
1500 LET R = 1 VEC = 0
1510 REPEAT
1520 READ FILE ( 0 ) T
1530 FOR I = 1 TO N
1540 READ FILE ( 0 ) X ( I ) , DX ( I )
1550 NEXT
1560 EXEC MODEL
1570 LET XG = X0 + XOMS * F1 ( IG ) / X1 ( IG )
1580 LET YG = Y0 + YOMS * F2 ( IG ) / Y1 ( IG )
1590 LET VEC = VEC * ( XG >= 0 ) * ( XG <= XMAX ) * ( YG >= 0 ) * ( YG <= YMAX )
1600 IF R = 1 THEN CALL "GRAPH" , XG , YG
1610 CALL "VECTOR" , XG , YG , VEC
1620 LET R = R + 1 VEC = ( XG >= 0 ) * ( XG <= XMAX ) * ( YG >= 0 ) * ( YG <= YMAX )
1630 UNTIL ( T >= TSLUT ) + ( AFBRYD = 3 )
1640 CLOSE FILE ( 0 )
1650 NEXT
1660 CALL "ALPHA"
1670 CALL "GRAPH" , 0 , 780
1680 CALL "ALPHA"
1690 LET AFBRYD = 1
1700 ENDPROC
1710 PROC GRAFH
1720 LET AFBRYD = 2
1730 PRINT "<27><12>"
1740 DELAY = 1
1750 LET X0 = YO * XOMS Y0 = 783 - XO * YOMS
1760 CALL "GRAPH" , X0 , 779
1770 CALL "OUTVECT" , X0 , 779 - YMAX
1780 CALL "OUTVECT" , X0 - 4 * ( X0 >= 4 ) , 783 - YMAX
1790 CALL "OUTVECT" , X0 + 4 , 783 - YMAX
1800 CALL "OUTVECT" , X0 , 779 - YMAX
1810 CALL "GRAPH" , 0 , Y0
1820 CALL "OUTVECT" , XMAX , Y0
1830 CALL "OUTVECT" , XMAX - 4 , Y0 + 4 * ( Y0 <= 775 )
1840 CALL "OUTVECT" , XMAX - 4 , Y0 - 4
1850 CALL "OUTVECT" , XMAX , Y0
1860 FOR I = 1 TO 16
1870 CALL "GRAPH" , X0 - 2 * ( X0 >= 2 ) , 783 - I * YOMS
1880 CALL "OUTVECT" , X0 + 2 , 783 - I * YOMS
1890 NEXT
1900 FOR I = 1 TO 23
1910 CALL "GRAPH" , I * XOMS , Y0 - 2
1920 CALL "OUTVECT" , I * XOMS , Y0 + 2 * ( Y0 <= 775 )
1930 NEXT
1940 FOR IG = 1 TO NG
1950 OPEN FILE ( 0 , 1 ) "STOR2"
1960 READ FILE ( 0 ) TSLUT
1970 LET R = 1 VEC = 0
1980 REPEAT
1990 READ FILE ( 0 ) T
2000 FOR I = 1 TO N
2010 READ FILE ( 0 ) X ( I ) , DX ( I )
2020 NEXT
2030 EXEC MODEL
2040 LET XG = X0 + XOMS * F2 ( IG ) / Y1 ( IG )
2050 LET YG = Y0 - YOMS * F1 ( IG ) / X1 ( IG )
2060 LET VEC = VEC * ( XG >= 0 ) * ( XG <= XMAX ) * ( YG >= 777 - YMAX ) * ( YG <= 777 )
2070 IF R = 1 THEN CALL "GRAPH" , XG , YG
2080 CALL "VECTOR" , XG , YG , VEC
2090 LET R = R + 1 VEC = ( XG >= 0 ) * ( XG <= XMAX ) * ( YG >= 777 - YMAX ) * ( YG <= 777 )
2100 UNTIL ( T >= TSLUT ) + ( AFBRYD = 3 )
2110 CLOSE FILE ( 0 )
2120 NEXT
2130 CALL "ALPHA"
2140 CALL "GRAPH" , 0 , 200
2150 CALL "ALPHA"
2160 LET AFBRYD = 1
2170 ENDPROC
2180 PROC CHOICE
2190 PRINT "DU HAR F0LGENDE VALGMULIGHEDER (INDTAST TALLET):"
2200 PRINT "1=GRAFEN TEGNES PAA PLOTTEREN"
2210 PRINT "2=NYT KOORDINATSYSTEM MED SAMME FUNKTIONER"
2220 PRINT "3=NYT KOORDINATSYSTEM MED ANDRE FUNKTIONER"
2230 PRINT "4=TABEL"
2240 PRINT "5=NY INTEGRATION MED DISSE ELLER ANDRE LIGNINGER"
2250 PRINT "6=STOP"
2260 INPUT Q
2270 LET Q = INT ( Q )
2280 IF ( Q < 1 ) + ( Q > 6 ) THEN GOTO 2260
2290 IF Q = 1 THEN
2300 LET XOMS = 41.8 YOMS = 43.5
2310 LET XMAX = 1023 YMAX = 730
2320 PRINT "<27>AE"
2330 IF J THEN
2340 EXEC GRAF
2350 ELSE
2360 EXEC GRAFH
2370 ENDIF
2380 PRINT "<27>AF"
2390 ENDIF
2400 IF Q = 2 THEN
2410 EXEC KOVALG
2420 EXEC GRAF
2430 ENDIF
2440 IF Q = 3 THEN CHAIN "NGRF2"
2450 IF Q = 4 THEN CHAIN "NTAB2"
2460 IF Q = 5 THEN CHAIN "NDIF2" THEN GOTO 0300
2470 IF Q <> 6 THEN GOTO 2190
2480 ENDPROC
2490 PROC START
2500 DIM Q$ ( 150 )
2510 PRINT "<27><12>"
2520 DELAY = 1
2530 OPEN FILE ( 0 , 1 ) "DIM2"
2540 READ FILE ( 0 ) N , M
2550 CLOSE FILE ( 0 )
2560 PRINT "VED DEN GRAFISKE AFBILDNING, KAN DU I DET F0LGENDE BENYTTE AL-"
2570 PRINT "LE FUNKTIONERNE X(1),...,X(N),DX(1),...,DX(N),T OG KOMBINATIO-"
2580 PRINT "NER AF DISSE."
2590 PRINT
2600 DIM X ( N ) , DX ( N )
2610 PRINT "HVOR MANGE GRAFER 0NSKES TEGNET (I SAMME KOORDINATSYSTEM)?"
2620 INPUT "INDTAST ANTALLET. " , NG
2630 LET NG = INT ( NG )
2640 IF NG > 10 THEN GOTO 2620
2650 DIM F1$ ( NG , 150 ) , F2$ ( NG , 150 ) , F1 ( NG ) , F2 ( NG )
2660 FOR I = 1 TO NG
2670 PRINT
2680 PRINT "GRAF " ; I
2690 INPUT "PAA X-AKSEN 0NSKES (FUNKTION):" , F1$ ( I )
2700 INPUT "PAA Y-AKSEN 0NSKES (FUNKTION):" , F2$ ( I )
2710 PRINT "HVIS DU 0NSKER AT RETTE I DETTE, INDTAST 0. ELLERS ET ANDET"
2720 INPUT "TAL. " , R
2730 IF R = 0 THEN GOTO 2680
2740 NEXT
2750 DIM LNUM$ ( 3 ) , I$ ( 2 )
2760 LET AFBRYD = 0
2770 CREATE "GRF" , 1
2780 OPEN FILE ( 0 , 3 ) "GRF"
2790 RESTORE 0000
2800 FOR I = 1 TO NG
2810 READ LNUM$ , I$
2820 WRITE FILE ( 0 ) LNUM$ , "LET F1(" , I$ , ")=" , F1$ ( I ) , "<13><10>"
2830 READ LNUM$
2840 WRITE FILE ( 0 ) LNUM$ , "LET F2(" , I$ , ")=" , F2$ ( I ) , "<13><10>"
2850 NEXT
2860 CLOSE FILE ( 0 )
2870 ENTER "GRF"
2880 DELETE "GRF"
2890 IF SYS ( 7 ) = 2 THEN STOP «nul»
2900 LET AFBRYD = 1
2910 DATA "810" , "1" , "815" , "820" , "2" , "825" , "830" , "3" , "835" , "840" , "4" , "845"
2920 DATA "850" , "5" , "855" , "860" , "6" , "865" , "870" , "7" , "875" , "880" , "8" , "885"
2930 DATA "890" , "9" , "895"
2940 ENDPROC
2950 PROC OUTESC
2960 ON ESC THEN EXEC OUTESC
2970 IF AFBRYD = 1 THEN
2980 PRINT
2990 PRINT "PROGRAMMET AFBRUDT."
3000 END «nul»
3010 ENDIF
3020 IF AFBRYD = 2 THEN LET AFBRYD = 3
3030 ENDPROC
3040 PROC OUTERR
3050 CLOSE
3060 CALL "ALPHA"
3070 CALL "GRAPH" , 0 , 780
3080 CALL "ALPHA"
3090 PRINT
3100 IF ( SYS ( 7 ) = 16 ) + ( SYS ( 7 ) = 34 ) THEN
3110 PRINT "DER ER OPSTAAET FEJL. DE BENYTTEDE FUNKTIONER ER IKKE OVER-"
3120 PRINT "ALT VELDEFINEREDE. START FORFRA."
3130 ENDIF
3140 IF ( SYS ( 7 ) = 17 ) + ( SYS ( 7 ) = 31 ) + ( SYS ( 7 ) = 38 ) THEN
3150 PRINT "DER ER BENYTTET ET ELLER FLERE FORKERTE UDTRYK I FUNKTIONER-"
3160 PRINT "NE. START FORFRA."
3170 ENDIF
3180 PRINT
3190 PRINT "FEJLKODE " ; SYS ( 7 ) ; ". SE MANUAL FOR YDERLIGERE OPLYSNINGER."
3200 END «nul»
3210 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 0x00 AFBRYD
0x82 0xffff 0x00 OUTESC
0x83 0xffff 0x00 OUTERR
0x84 0xffff 0x00 START
0x85 0xffff 0x00 KOVALG
0x86 0xffff 0x00 GRAF
0x87 0xffff 0x00 CHOICE
0x88 0xffff 0x00 MODEL
0x89 0xffff 0x00 J
0x8a 0xffff 0x00 XOMS
0x8b 0xffff 0x00 YOMS
0x8c 0xffff 0x00 XMAX
0x8d 0xffff 0x00 YMAX
0x8e 0xffff 0x00 XO
0x8f 0xffff 0x00 YO
0x90 0xffff 0x00 X1
0x91 0xffff 0x00 NG
0x92 0xffff 0x00 Y1
0x93 0xffff 0x00 IG
0x94 0xffff 0x00 R
0x95 0xffff 0x00 X0
0x96 0xffff 0x00 Y0
0x97 0xffff 0x00 I
0x98 0xffff 0x00 TSLUT
0x99 0xffff 0x00 VEC
0x9a 0xffff 0x00 T
0x9b 0xffff 0x00 N
0x9c 0xffff 0x00 X
0x9d 0xffff 0x00 DX
0x9e 0xffff 0x00 XG
0x9f 0xffff 0x00 F1
0xa0 0xffff 0x00 YG
0xa1 0xffff 0x00 F2
0xa2 0xffff 0x00 GRAFH
0xa3 0xffff 0x00 Q
0xa4 0xffff 0x02 Q$
0xa5 0xffff 0x00 M
0xa6 0xffff 0x02 F1$
0xa7 0xffff 0x02 F2$
0xa8 0xffff 0x02 LNUM$
0xa9 0xffff 0x02 I$
0xaa 0xffff 0x00 LIAT
0xab 0xffff 0x00 FEJL
0xac 0xffff 0x00 FEJL0
0xad 0xffff 0x00 LIST2850
.magic = 0x4e32 .u_pas = 0x0a1e // Length of UPAS in words .u_das = 0x014e // Length of UDAS in words .u_dvs = 0x014e // 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)