|
|
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: »GRAFT«
└─⟦d85593a46⟧ Bits:30000470 DOMUS disk image - User files
└─⟦this⟧ »/GRAFT«
SAVE filename: "GRAFT"
0010 EXEC START
0100 PRINT
0290 REM I DENNE LINIE DEFINERES FUNKTIONEN UNDER K0RSEL«nul»
0302 EXEC IND
0304 EXEC TEGN
0306 EXEC CHOICE
0450 PROC TEGN
0460 PRINT "<27><12>"
0470 DELAY = 1
0480 LET A2 = XAKS * ( XAKS >= 45 ) * ( XAKS <= FELT - 45 ) + 5 * ( XAKS < 45 ) + 5 * ( XAKS > FELT - 45 )
0482 LET A1 = 145 A3 = FELT + 100 A4 = A2 C1 = - 5 C2 = 3 C3 = C1 C4 = - 3 C5 = 8 C6 = 0
0487 LET X0 = INT ( ( XAKS - 45 ) / S ) Y0 = INT ( ( YAKS - 145 ) / S )
0490 LET Y = A2 + 4 START = YAKS - Y0 * S SLUT = START + 11 * S
0500 EXEC KOORD
0502 LET A1 = YAKS * ( YAKS >= 145 ) * ( YAKS <= FELT + 100 ) + 105 * ( YAKS < 145 ) + 105 * ( YAKS > FELT + 100 )
0510 LET A2 = 45 A3 = A1 A4 = FELT C1 = 3 C2 = - 5 C3 = - 3 C4 = C2 C5 = 0 C6 = 8
0520 LET X = A1 + 4 START = XAKS - X0 * S SLUT = START + 11 * S
0530 EXEC KOORD
0540 LET A1 = 650
0550 IF YAKS > 640 THEN LET A1 = 150
0560 CALL "GRAPH" , A1 , FELT - 40
0570 CALL "ALPHA"
0580 PRINT "Y=" ; GEM$
0600 LET DX = ( X2 - X1 ) / 250 VEC = 0
0610 CALL "GRAPH" , X1 * XSTEP + YAKS , FNY ( X1 ) * YSTEP + XAKS
0620 FOR T = X1 TO X2 STEP DX
0630 LET X = T * XSTEP + YAKS Y = FNY ( T ) * YSTEP + XAKS
0640 IF ( X > FELT + 100 ) + ( Y < 45 ) + ( Y > FELT ) THEN
0650 LET VEC = 0
0660 ELSE
0670 CALL "VECTOR" , X , Y , VEC
0680 LET VEC = 1
0690 ENDIF
0700 NEXT
0710 CALL "GRAPH" , 0 , 780
0730 CALL "ALPHA"
0732 ENDPROC
0738 PROC CROSS
0740 ON ERR THEN EXEC OUTERR
0741 LET AFBRYD = 2
0742 PRINT "<29>" ;
0746 INPUT "<27><26>" , G$ ;
0748 IF LEN ( G$ ) = 0 THEN GOTO 0810
0749 PRINT "<31>" ;
0750 LET X = ( ORD ( G$ ( 2 ) ) - 33 ) * 32 + ORD ( G$ ( 3 ) )
0752 LET Y = ( ORD ( G$ ( 4 ) ) - 33 ) * 32 + ORD ( G$ ( 5 ) )
0770 LET XKOR = ( X - YAKS ) / XSTEP YKOR = ( Y - XAKS ) / YSTEP
0775 IF AFBRYD = 3 THEN GOTO 0741
0790 PAGE = 72
0800 PRINT "(" ; XKOR ; "," ; YKOR ; ")"
0802 GOTO 0741
0810 PRINT "<31>"
0820 LET AFBRYD = 1
0830 LET A = 1 / 0
0840 ENDPROC
0930 PROC KOORD
0940 CALL "GRAPH" , A1 , A2
0950 CALL "OUTVECT" , A3 , A4
0960 CALL "OUTVECT" , A3 + C1 , A4 + C2
0970 CALL "OUTVECT" , A3 + C3 , A4 + C4
0980 CALL "OUTVECT" , A3 , A4
0990 FOR T = START TO SLUT STEP S
1000 IF C5 THEN LET X = T
1010 IF C6 THEN LET Y = T
1020 CALL "GRAPH" , X , Y
1030 CALL "OUTVECT" , X - C6 , Y - C5
1040 NEXT
1050 DELAY = 1
1060 ENDPROC
1110 PROC IND
1120 PRINT " INDTAST MINDSTE OG ST0RSTE X-VAERDI: " ;
1130 INPUT "XMIN,XMAX ? " , X1 , X2
1140 IF X1 >= X2 THEN GOTO 1130
1150 PRINT
1160 PRINT " INDTAST MINDSTE OG ST0RSTE Y-VAERDI: " ;
1170 INPUT "YMIN,YMAX ? " , Y1 , Y2
1180 IF Y1 >= Y2 THEN GOTO 1170
1190 LET S = 50 FELT = 650
1202 LET E ( 1 ) = S * ( X2 - X1 ) / FELT E ( 2 ) = S * ( Y2 - Y1 ) / FELT
1210 FOR I = 1 TO 2
1215 LET ENH = 0
1220 IF E ( I ) > 1 THEN
1230 LET D1 = 2.5 D2 = 5 D3 = 7.5 D4 = 10
1240 REPEAT
1250 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 )
1260 LET D1 = 10 * D1 D2 = 10 * D2 D3 = 10 * D3 D4 = 10 * D4
1270 UNTIL ENH
1280 ELSE
1300 LET D1 = 0.1 D2 = 0.25 D3 = 0.5 D4 = 0.75
1310 REPEAT
1320 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 )
1330 LET D1 = D1 / 10 D2 = D2 / 10 D3 = D3 / 10 D4 = D4 / 10
1340 UNTIL ENH
1345 ENDIF
1350 LET E ( I ) = ENH
1360 NEXT
1362 LET XSTEP = S / E ( 1 ) YSTEP = S / E ( 2 )
1364 LET XAKS = - YSTEP * Y1 + 45 YAKS = - XSTEP * X1 + 145
1365 PRINT
1368 PRINT
1370 PRINT " ET INTERVAL PAA X-AKSEN ER LIG " ; E ( 1 )
1375 PRINT " ET INTERVAL PAA Y-AKSEN ER LIG " ; E ( 2 )
1380 PRINT
1381 PRINT
1382 INPUT " NAAR DU ER PARAT, TAST RETURN" , G$
1390 ENDPROC
1983 PRINT "" ;
2000 PROC CHOICE
2010 PRINT "DU HAR F0LGENDE MULIGHEDER (INDTAST TALLET):"
2020 PRINT "1 = KOORDINATS0GNING (KOORDINATERNE TIL KORSET FAAS VED AT"
2022 PRINT " TRYKKE PAA ET BOGSTAV. DU VENDER TILBAGE TIL HOVED-"
2024 PRINT " PROGRAMMET VED AT TASTE RETURN)"
2030 PRINT "2 = DEN NUVAERENDE GRAF TEGNES PAA PLOTTEREN"
2035 PRINT "3 = SAMME FUNKTION I NYT INTERVAL"
2040 PRINT "4 = STOP"
2050 INPUT Q
2060 LET Q = INT ( Q )
2070 IF ( Q < 1 ) + ( Q > 4 ) THEN GOTO 2050
2080 IF Q = 1 THEN EXEC CROSS
2130 IF Q = 2 THEN
2140 LET S = 60 FELT = 780
2141 LET XSTEP = S / E ( 1 ) YSTEP = S / E ( 2 )
2142 LET XAKS = - YSTEP * Y1 + 45 YAKS = - XSTEP * X1 + 145
2150 PRINT "<27>AE"
2160 EXEC TEGN
2170 PRINT "<27>AF"
2200 ENDIF
2210 IF Q = 3 THEN
2220 PRINT "<27><12>"
2230 DELAY = 1
2240 EXEC IND
2250 EXEC TEGN
2260 ENDIF
2262 IF Q = 1 THEN GOTO 2050
2264 IF ( Q = 2 ) + ( Q = 3 ) THEN GOTO 2010
2290 ENDPROC
2300 PROC START
2310 PRINT "<27>AF"
2320 PRINT "<27><12>"
2330 DELAY = 1
2335 DIM G$ ( 5 )
2336 DIM GEM$ ( 100 )
2340 PRINT TAB ( 20 ) ; "*** GRAFTEGNER ***"
2350 PRINT
2360 PRINT " PROGRAMMET TEGNER GRAFEN FOR ENHVER FUNKTION Y=F(X) I ET"
2370 PRINT "VILKAARLIGT INTERVAL I DEFINITIONSOMRAADET. I TVIVLSTILFAEL-"
2380 PRINT "DE, SE DEN SAERLIGE VEJLEDNING I PROGRAMMAPPEN."
2390 PRINT
2400 PRINT
2451 LET AFBRYD = 0
2452 ON ESC THEN EXEC OUTESC
2460 CREATE "GEM" , 1
2470 OPEN FILE ( 0 , 2 ) "GEM"
2480 PRINT " INDTAST FUNKTIONEN: " ;
2490 INPUT "Y=" , GEM$
2500 WRITE FILE ( 0 ) " 290 DEF FNY(X)=" , GEM$ , "<13><10>"
2510 CLOSE
2520 ENTER "GEM"
2530 CLOSE
2540 DELETE "GEM"
2570 LET AFBRYD = 1
2575 IF SYS ( 7 ) <> 0 THEN STOP «nul»
2580 DIM E ( 2 )
2600 ENDPROC
2800 PROC OUTESC
2810 ON ESC THEN EXEC OUTESC
2820 IF AFBRYD THEN
2830 END «nul»
2840 ENDIF
2850 ENDPROC
3000 PROC OUTERR
3010 IF AFBRYD = 1 THEN GOTO 3030
3020 ON ERR THEN EXEC OUTERR
3025 LET AFBRYD = 3
3030 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 GEM$
0x82 0xffff 0x00 E
0x83 0xffff 0x00 IND
0x84 0xffff 0x00 TEGN
0x85 0xffff 0x00 CHOICE
0x86 0xffff 0x00 A2
0x87 0xffff 0x00 XAKS
0x88 0xffff 0x00 FELT
0x89 0xffff 0x00 A1
0x8a 0xffff 0x00 A3
0x8b 0xffff 0x00 A4
0x8c 0xffff 0x00 C1
0x8d 0xffff 0x00 C2
0x8e 0xffff 0x00 C3
0x8f 0xffff 0x00 C4
0x90 0xffff 0x00 C5
0x91 0xffff 0x00 C6
0x92 0xffff 0x00 X0
0x93 0xffff 0x00 S
0x94 0xffff 0x00 Y0
0x95 0xffff 0x00 YAKS
0x96 0xffff 0x00 Y
0x97 0xffff 0x00 START
0x98 0xffff 0x00 SLUT
0x99 0xffff 0x00 KOORD
0x9a 0xffff 0x00 X
0x9b 0xffff 0x00 DX
0x9c 0xffff 0x00 X2
0x9d 0xffff 0x00 X1
0x9e 0xffff 0x00 VEC
0x9f 0xffff 0x00 YSTEP
0xa0 0xffff 0x00 T
0xa1 0xffff 0x00 XSTEP
0xa2 0xffff 0x00 CROSS
0xa3 0xffff 0x00 XKOR
0xa4 0xffff 0x00 YKOR
0xa5 0xffff 0x02 G$
0xa6 0xffff 0x00 ERR2
0xa7 0xffff 0x00 Y1
0xa8 0xffff 0x00 Y2
0xa9 0xffff 0x00 I
0xaa 0xffff 0x00 ENH
0xab 0xffff 0x00 D1
0xac 0xffff 0x00 D2
0xad 0xffff 0x00 D3
0xae 0xffff 0x00 D4
0xaf 0xffff 0x00 Q
0xb0 0xffff 0x00 AFBRYD
0xb1 0xffff 0x00 OUTERR
0xb2 0xffff 0x00 A
0xb3 0xffff 0x00 ENPROC
0xb4 0xffff 0x00 OUTER
0xb5 0xffff 0x00 ONESC
0xb6 0xffff 0x00 OUTESC
0xb7 0xffff 0x00 L502
0xb8 0xffff 0x02 Q$
.magic = 0x4e32 .u_pas = 0x0722 // Length of UPAS in words .u_das = 0x0185 // Length of UDAS in words .u_dvs = 0x0185 // 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)