DataMuseum.dk

Presents historical artifacts from the history of:

RegneCentralen RC3600/RC7000

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about RegneCentralen RC3600/RC7000

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦3dfe04d55⟧ COMAL_SAVE

    Length: 4938 (0x134a)
    Types: COMAL_SAVE

Derivation

└─⟦d85593a46⟧ Bits:30000470 DOMUS disk image - User files
    └─ ⟦220c4597a⟧ »/LIB.NGRF1« 
        └─⟦this⟧ 

UPAS Segment

SAVE filename: "NGRF1"

 0010 EXEC START
 0230 EXEC KOVALG
 0240 EXEC GRAF
 0250 EXEC CHOICE
 0800 PROC MODEL
 0810   REM «nul»
 0815   REM «nul»
 0820   REM «nul»
 0825   REM «nul»
 0830   REM «nul»
 0835   REM «nul»
 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   REM «nul»«nul»
 0905   REM «nul»«nul»
 0910 ENDPROC
 1000 PROC KOVALG
 1010   PRINT "<27><12>"
 1020   DELAY = 1
 1030   INPUT "HOEJKANT SKRIV 0,VANDRET SKRIV 1" , J
 1040   LET XOMS = 25 ; YOMS = 25
 1050   LET XMAX = 395 + J * 217 ; YMAX = 608 - J * 188
 1060   PRINT "ANF0R BEGYNDELSESPUNKTETS PLACERING PAA PAPI-"
 1070   PRINT "RET MAALT I CM VANDRET OG CM LODRET FRA NEDERSTE VENSTRE"
 1080   PRINT "HJ0ERNE."
 1090   INPUT "CM VANDRET " , XO , "     CM LODRET " , YO
 1092   DIM X1 ( NG ) , Y1 ( NG )
 1094   FOR IG = 1 TO NG
 1095     PRINT " FOR GRAF" ; IG ; ":"
 1096     INPUT "1 CM PAA X-AKSEN SKAL SVARE TIL " , X1 ( IG )
 1100     INPUT "1 CM PAA Y-AKSEN SKAL SVARE TIL " , Y1 ( IG )
 1105   NEXT 
 1120 ENDPROC
 1130 PROC GRAF
 1135   ON ESC THEN GOTO 5000
 1140   PRINT "<27><12>"
 1150   DELAY = 1
 1160   LET X0 = XOMS * XO ; Y0 = YOMS * YO
 1170   CALL "GRAPH" , X0 , 0
 1180   CALL "OUTVECT" , X0 , YMAX
 1190   CALL "OUTVECT" , X0 - 4 * ( X0 >= 4 ) , YMAX - 4
 1200   CALL "OUTVECT" , X0 + 4 , YMAX - 4
 1210   CALL "OUTVECT" , X0 , YMAX
 1220   CALL "GRAPH" , 0 , Y0
 1230   CALL "OUTVECT" , XMAX , Y0
 1240   CALL "OUTVECT" , XMAX - 4 , Y0 + 4
 1250   CALL "OUTVECT" , XMAX - 4 , Y0 - 4 * ( Y0 >= 4 )
 1260   CALL "OUTVECT" , XMAX , Y0
 1270   FOR I = 1 TO 23 - 7 * J
 1280     CALL "GRAPH" , X0 - 2 * ( X0 >= 2 ) , I * YOMS
 1290     CALL "OUTVECT" , X0 + 2 , I * YOMS
 1300   NEXT 
 1310   FOR I = 1 TO 15 + 8 * J
 1320     CALL "GRAPH" , I * XOMS , Y0 - 2 * ( Y0 > 2 )
 1330     CALL "OUTVECT" , I * XOMS , Y0 + 2
 1340   NEXT 
 1342   FOR IG = 1 TO NG
 1345     OPEN FILE ( 0 , 1 ) "STOR1"
 1346     READ FILE ( 0 ) TSLUT
 1348     LET R = 1 ; VEC = 0
 1349     REPEAT 
 1350       READ FILE ( 0 ) T
 1351       FOR I = 1 TO N
 1352         READ FILE ( 0 ) X ( I )
 1354       NEXT 
 1358       EXEC MODEL
 1360       LET XG = X0 + XOMS * F1 ( IG ) / X1 ( IG )
 1370       LET YG = Y0 + YOMS * F2 ( IG ) / Y1 ( IG )
 1380       LET VEC = VEC * ( XG >= 0 ) * ( XG <= XMAX ) * ( YG >= 0 ) * ( YG <= YMAX )
 1385       IF R = 1 THEN CALL "GRAPH" , XG , YG
 1390       CALL "VECTOR" , XG , YG , VEC
 1400       LET R = R + 1 ; VEC = ( XG >= 0 ) * ( XG <= XMAX ) * ( YG >= 0 ) * ( YG <= YMAX )
 1410     UNTIL T >= TSLUT
 1415     CLOSE FILE ( 0 )
 1420   NEXT 
 1440   CALL "ALPHA"
 1560   CALL "GRAPH" , 0 , 780
 1570   CALL "ALPHA"
 1580 ENDPROC
 1590 PROC GRAFH
 1600   PRINT "<27><12>"
 1610   DELAY = 1
 1620   LET X0 = YO * XOMS ; Y0 = 783 - XO * YOMS
 1630   CALL "GRAPH" , X0 , 779
 1640   CALL "OUTVECT" , X0 , 779 - YMAX
 1650   CALL "OUTVECT" , X0 - 4 * ( X0 >= 4 ) , 783 - YMAX
 1660   CALL "OUTVECT" , X0 + 4 , 783 - YMAX
 1670   CALL "OUTVECT" , X0 , 779 - YMAX
 1680   CALL "GRAPH" , 0 , Y0
 1690   CALL "OUTVECT" , XMAX , Y0
 1700   CALL "OUTVECT" , XMAX - 4 , Y0 + 4 * ( Y0 <= 775 )
 1710   CALL "OUTVECT" , XMAX - 4 , Y0 - 4
 1720   CALL "OUTVECT" , XMAX , Y0
 1730   FOR I = 1 TO 16
 1740     CALL "GRAPH" , X0 - 2 * ( X0 >= 2 ) , 783 - I * YOMS
 1750     CALL "OUTVECT" , X0 + 2 , 783 - I * YOMS
 1760   NEXT 
 1770   FOR I = 1 TO 23
 1780     CALL "GRAPH" , I * XOMS , Y0 - 2
 1790     CALL "OUTVECT" , I * XOMS , Y0 + 2 * ( Y0 <= 775 )
 1800   NEXT 
 1810   FOR I = 1 TO N
 1820     LET X = X0 + XOMS * KO ( 2 , I ) / Y1
 1830     LET Y = Y0 - YOMS * KO ( 1 , I ) / X1
 1840     IF ( X < 2 ) + ( X > 1021 ) + ( Y > 777 ) + ( Y < 777 - YMAX ) THEN GOTO 1890
 1850     CALL "GRAPH" , X - 2 , Y + 2
 1860     CALL "OUTVECT" , X + 2 , Y - 2
 1870     CALL "OUTVECT" , X - 2 , Y - 2
 1880     CALL "OUTVECT" , X + 2 , Y + 2
 1890   NEXT 
 1900   LET XSTARTH = YSTART * XOMS / 25 ; YSTARTH = 783 - XSTART * YOMS / 25
 1910   LET XSLUTH = YSLUT * XOMS / 25 ; YSLUTH = 783 - XSLUT * YOMS / 25
 1920   IF YSTARTH > 779 THEN
 1930     LET YSTARTH = 779
 1940     LET XSTARTH = ( YSTART + 100 * P * X1 / Y1 / YOMS ) * XOMS / 25
 1950   ENDIF 
 1960   IF YSLUTH > 779 THEN
 1970     LET YSLUTH = 779
 1980     LET XSLUTH = ( YSLUT + 100 * P * X1 / Y1 / YOMS ) * XOMS / 25
 1990   ENDIF 
 2000   CALL "GRAPH" , XSTARTH , YSTARTH
 2010   CALL "OUTVECT" , XSLUTH , YSLUTH
 2020   CALL "GRAPH" , 0 , 765
 2030   CALL "ALPHA"
 2040 ENDPROC
 2170 ENDPROC
 2180 PROC CHOICE
 2190 PRINT "DU HAR F0LGENDE VALGMULIGHEDER (INDTAST TALLET):"
 2195 PRINT "1=GRAFEN TEGNES PAA PLOTTEREN"
 2200 PRINT "2=NYT KOORDINATSYSTEM MED SAMME FUNKTIONER"
 2205 PRINT "3=NYT KOORDINATSYSTEM MED ANDRE FUNKTIONER"
 2210 PRINT "4=TABEL"
 2215 PRINT "5=NY INTEGRATION MED DISSE ELLER ANDRE LIGNINGER"
 2220 PRINT "6=STOP"
 2225 INPUT Q
 2227 LET Q = INT ( Q )
 2229 IF ( Q < 1 ) + ( Q > 5 ) THEN GOTO 2225
 2235 IF Q = 1 THEN
 2260   LET XOMS = 41.8 ; YOMS = 43.5
 2270   LET XMAX = 1023 ; YMAX = 730
 2280   PRINT "<27>AE"
 2290   IF J THEN
 2300     EXEC GRAF
 2310   ELSE 
 2320     EXEC GRAFH
 2330   ENDIF 
 2340   PRINT "<27>AF"
 2360 ENDIF 
 2370 IF Q = 2 THEN
 2380   EXEC KOVALG
 2390   EXEC GRAF
 2410 ENDIF 
 2415 IF Q = 3 THEN CHAIN "NGRF1"
 2420 IF Q = 4 THEN CHAIN "NTAB1"
 2425 IF Q = 5 THEN CHAIN "NDIF1"
 2426 IF Q = 6 THEN STOP «nul» 
 2428 GOTO 2190
 2430 ENDPROC
 2525 IF Q = 5 THEN CHAIN "NDIF1" THEN GOTO 0300
 2790 PROC START
 2800 DIM Q$ ( 150 )
 2810 PRINT "<27><12>"
 2820 DELAY = 1
 2830 OPEN FILE ( 0 , 1 ) "DIM1"
 2840 READ FILE ( 0 ) N , M
 2850 CLOSE FILE ( 0 )
 2860 DIM X ( N )
 2870 PRINT "HVOR MANGE GRAFER 0NSKES TEGNET (I SAMME KOORDINATSYSTEM)?"
 2880 INPUT "INDTAST ANTALLET. " , NG
 2890 LET NG = INT ( NG )
 2900 IF NG > 10 THEN GOTO 2880
 2910 DIM F1$ ( NG , 150 ) , F2$ ( NG , 150 ) , F1 ( NG ) , F2 ( NG )
 3010 FOR I = 1 TO NG
 3020   PRINT "GRAF " ; I
 3030   INPUT "PAA X-AKSEN 0NSKES (FUNKTION):" , F1$ ( I )
 3040   INPUT "PAA Y-AKSEN 0NSKES (FUNKTION):" , F2$ ( I )
 3050 NEXT 
 3060 PRINT "HVIS DU 0NSKER AT RETTE, INDTAST 0. ELLERS ET ANDET TAL."
 3070 INPUT Q
 3080 IF Q = 0 THEN EXEC RETTE
 3090 DIM LNUM$ ( 3 ) , I$ ( 2 )
 3500 CREATE "GRF" , 1
 3510 OPEN FILE ( 0 , 3 ) "GRF"
 3530 RESTORE 0000
 3540 FOR I = 1 TO NG
 3550   READ LNUM$ , I$
 3560   WRITE FILE ( 0 ) LNUM$ , "LET F1(" , I$ , ")=" , F1$ ( I ) , "<13><10>"
 3570   READ LNUM$
 3580   WRITE FILE ( 0 ) LNUM$ , "LET F2(" , I$ , ")=" , F2$ ( I ) , "<13><10>"
 3590 NEXT 
 3600 CLOSE FILE ( 0 )
 3610 ENTER "GRF"
 3620 DELETE "GRF"
 4010 DATA "810" , "1" , "815" , "820" , "2" , "825" , "830" , "3" , "835" , "840" , "4" , "845"
 4020 DATA "850" , "5" , "855" , "860" , "6" , "865" , "870" , "7" , "875" , "880" , "8" , "885"
 4050 ENDPROC
 5000 CLOSE
 5010 CALL "ALPHA"
 5020 CALL "GRAPH" , 0 , 780
 5030 CALL "ALPHA"
 6000 ENDPROC

UDAS Segment

    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 START
    0x82 0xffff 0x00 KOVALG
    0x83 0xffff 0x00 GRAF
    0x84 0xffff 0x00 CHOICE
    0x85 0xffff 0x00 MODEL
    0x86 0xffff 0x00 J
    0x87 0xffff 0x00 XOMS
    0x88 0xffff 0x00 YOMS
    0x89 0xffff 0x00 XMAX
    0x8a 0xffff 0x00 YMAX
    0x8b 0xffff 0x00 XO
    0x8c 0xffff 0x00 YO
    0x8d 0xffff 0x00 X1
    0x8e 0xffff 0x00 NG
    0x8f 0xffff 0x00 Y1
    0x90 0xffff 0x00 IG
    0x91 0xffff 0x00 X0
    0x92 0xffff 0x00 Y0
    0x93 0xffff 0x00 I
    0x94 0xffff 0x00 TSLUT
    0x95 0xffff 0x00 R
    0x96 0xffff 0x00 VEC
    0x97 0xffff 0x00 T
    0x98 0xffff 0x00 N
    0x99 0xffff 0x00 X
    0x9a 0xffff 0x00 DX
    0x9b 0xffff 0x00 XG
    0x9c 0xffff 0x00 F1
    0x9d 0xffff 0x00 YG
    0x9e 0xffff 0x00 F2
    0x9f 0xffff 0x00 GRAFH
    0xa0 0xffff 0x00 KO
    0xa1 0xffff 0x00 Y
    0xa2 0xffff 0x00 XSTARTH
    0xa3 0xffff 0x00 YSTART
    0xa4 0xffff 0x00 YSTARTH
    0xa5 0xffff 0x00 XSTART
    0xa6 0xffff 0x00 XSLUTH
    0xa7 0xffff 0x00 YSLUT
    0xa8 0xffff 0x00 YSLUTH
    0xa9 0xffff 0x00 XSLUT
    0xaa 0xffff 0x00 P
    0xab 0xffff 0x00 Q
    0xac 0xffff 0x02 Q$
    0xad 0xffff 0x00 M
    0xae 0xffff 0x02 F1$
    0xaf 0xffff 0x02 F2$
    0xb0 0xffff 0x00 RETTE
    0xb1 0xffff 0x02 LNUM$
    0xb2 0xffff 0x02 I$
    0xb3 0xffff 0x00 O
    0xb4 0xffff 0x00 LST
    0xb5 0xffff 0x00 N9

Wrapper

.magic = 0x4e32
.u_pas = 0x0820  // Length of UPAS in words
.u_das = 0x0176  // Length of UDAS in words
.u_dvs = 0x0176  // 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)