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

⟦6e356b1b9⟧ COMAL_SAVE

    Length: 4608 (0x1200)
    Types: COMAL_SAVE
    Names: »KURV0«

Derivation

└─⟦d85593a46⟧ Bits:30000470 DOMUS disk image - User files
    └─⟦this⟧ 

UPAS Segment

SAVE filename: "KURV0"

 0010 EXEC START
 0020 PRINT
 0030 EXEC IND
 0040 EXEC TEGN
 0050 EXEC CHOICE
 0060 PROC TEGN
 0070   PRINT "<27><12>"
 0080   DELAY = 1
 0090   LET A2 = XAKS * ( XAKS >= 45 ) * ( XAKS <= FELT - 45 ) + 5 * ( XAKS < 45 ) + 5 * ( XAKS > FELT - 45 )
 0100   LET A1 = 145 A3 = FELT + 100 A4 = A2 C1 = - 5 C2 = 3 C3 = C1 C4 = - 3 C5 = 8 C6 = 0
 0110   LET X0 = INT ( ( XAKS - 45 ) / S ) Y0 = INT ( ( YAKS - 145 ) / S )
 0120   LET Y = A2 + 4 START = YAKS - Y0 * S SLUT = START + 11 * S
 0130   EXEC KOORD
 0140   LET A1 = YAKS * ( YAKS >= 145 ) * ( YAKS <= FELT + 100 ) + 105 * ( YAKS < 145 ) + 105 * ( YAKS > FELT + 100 )
 0150   LET A2 = 45 A3 = A1 A4 = FELT C1 = 3 C2 = - 5 C3 = - 3 C4 = C2 C5 = 0 C6 = 8
 0160   LET X = A1 + 4 START = XAKS - X0 * S SLUT = START + 11 * S
 0170   EXEC KOORD
 0172   LET VEC = 0
 0174   CALL "GRAPH" , KO ( 1 , 1 ) * XSTEP + YAKS , KO ( 2 , 1 ) * YSTEP + XAKS
 0180   FOR I = 1 TO N
 0190     LET X = KO ( 1 , I ) * XSTEP + YAKS
 0200     LET Y = KO ( 2 , I ) * YSTEP + XAKS
 0330     IF ( X > FELT + 100 ) + ( Y < 45 ) + ( Y > FELT ) THEN
 0340       LET VEC = 0
 0350     ELSE 
 0360       CALL "VECTOR" , X , Y , VEC
 0370       LET VEC = 1
 0380     ENDIF 
 0390   NEXT 
 0400   CALL "GRAPH" , 0 , 780
 0410   CALL "ALPHA"
 0420 ENDPROC
 0430 PROC CROSS
 0440   ON ERR THEN EXEC OUTERR
 0450   LET AFBRYD = 2
 0460   PRINT "<29>" ;
 0470   INPUT "<27><26>" , G$ ;
 0480   IF LEN ( G$ ) = 0 THEN GOTO 0570
 0490   PRINT "<31>" ;
 0500   LET X = ( ORD ( G$ ( 2 ) ) - 33 ) * 32 + ORD ( G$ ( 3 ) )
 0510   LET Y = ( ORD ( G$ ( 4 ) ) - 33 ) * 32 + ORD ( G$ ( 5 ) )
 0520   LET XKOR = ( X - YAKS ) / XSTEP YKOR = ( Y - XAKS ) / YSTEP
 0530   IF AFBRYD = 3 THEN GOTO 0450
 0540   PAGE = 72
 0550   PRINT "(" ; XKOR ; "," ; YKOR ; ")"
 0560   GOTO 0450
 0570   PRINT "<31>"
 0580   LET AFBRYD = 1
 0590   LET A = 1 / 0
 0600   LET DX = ( X2 - X1 ) / 250 VEC = 0
 0610   PROC KOORD
 0620     CALL "GRAPH" , A1 , A2
 0630     CALL "OUTVECT" , A3 , A4
 0640     CALL "OUTVECT" , A3 + C1 , A4 + C2
 0650     CALL "OUTVECT" , A3 + C3 , A4 + C4
 0660     CALL "OUTVECT" , A3 , A4
 0670     FOR T = START TO SLUT STEP S
 0680       IF C5 THEN LET X = T
 0690       IF C6 THEN LET Y = T
 0700       CALL "GRAPH" , X , Y
 0710       CALL "OUTVECT" , X - C6 , Y - C5
 0720     NEXT 
 0730     DELAY = 1
 0740   ENDPROC
 0750   PROC IND
 0760     PRINT "   INDTAST MINDSTE OG ST0RSTE X-VAERDI: " ;
 0770     INPUT "XMIN,XMAX ? " , X1 , X2
 0780     IF X1 >= X2 THEN GOTO 0770
 0790     PRINT
 0800     PRINT "   INDTAST MINDSTE OG ST0RSTE Y-VAERDI: " ;
 0810     INPUT "YMIN,YMAX ? " , Y1 , Y2
 0820     IF Y1 >= Y2 THEN GOTO 0810
 0830     LET S = 50 FELT = 650
 0840     LET E ( 1 ) = S * ( X2 - X1 ) / FELT E ( 2 ) = S * ( Y2 - Y1 ) / FELT
 0850     FOR I = 1 TO 2
 0860       LET ENH = 0
 0870       IF E ( I ) > 1 THEN
 0880         LET D1 = 2.5 D2 = 5 D3 = 7.5 D4 = 10
 0890         REPEAT 
 0900           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 )
 0910           LET D1 = 10 * D1 D2 = 10 * D2 D3 = 10 * D3 D4 = 10 * D4
 0920         UNTIL ENH
 0930       ELSE 
 0940         LET D1 = 0.1 D2 = 0.25 D3 = 0.5 D4 = 0.75
 0950         REPEAT 
 0960           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 )
 0970           LET D1 = D1 / 10 D2 = D2 / 10 D3 = D3 / 10 D4 = D4 / 10
 0980         UNTIL ENH
 0990       ENDIF 
 1000       LET E ( I ) = ENH
 1010     NEXT 
 1020     LET XSTEP = S / E ( 1 ) YSTEP = S / E ( 2 )
 1030     LET XAKS = - YSTEP * Y1 + 45 YAKS = - XSTEP * X1 + 145
 1040     PRINT
 1050     PRINT
 1060     PRINT "   ET INTERVAL PAA X-AKSEN ER LIG " ; E ( 1 )
 1070     PRINT "   ET INTERVAL PAA Y-AKSEN ER LIG " ; E ( 2 )
 1080     PRINT
 1090     PRINT
 1100     INPUT "   NAAR DU ER PARAT, TAST RETURN" , G$
 1110   ENDPROC
 1120   PRINT "" ;
 1130   PROC CHOICE
 1140     PRINT "DU HAR F0LGENDE MULIGHEDER (INDTAST TALLET):"
 1150     PRINT "1 = KOORDINATS0GNING (KOORDINATERNE TIL KORSET FAAS VED AT"
 1160     PRINT "    TRYKKE PAA ET BOGSTAV. DU VENDER TILBAGE TIL HOVED-"
 1170     PRINT "    PROGRAMMET VED AT TASTE RETURN)"
 1180     PRINT "2 = DEN NUVAERENDE GRAF TEGNES PAA PLOTTEREN"
 1190     PRINT "3 = SAMME FUNKTION I NYT INTERVAL"
 1205     PRINT "5 = STOP"
 1210     INPUT Q
 1220     LET Q = INT ( Q )
 1230     IF ( Q < 1 ) + ( Q > 5 ) THEN GOTO 1210
 1240     IF Q = 1 THEN EXEC CROSS
 1250     IF Q = 2 THEN
 1260       LET S = 60 FELT = 780
 1270       LET XSTEP = S / E ( 1 ) YSTEP = S / E ( 2 )
 1280       LET XAKS = - YSTEP * Y1 + 45 YAKS = - XSTEP * X1 + 145
 1290       PRINT "<27>AE"
 1300       EXEC TEGN
 1310       PRINT "<27>AF"
 1320     ENDIF 
 1330     IF Q = 3 THEN
 1340       PRINT "<27><12>"
 1350       DELAY = 1
 1360       EXEC IND
 1370       EXEC TEGN
 1380     ENDIF 
 1382     IF Q = 4 THEN
 1384       EXEC POLYN
 1386       EXEC IND
 1387       EXEC TEGN
 1389     ENDIF 
 1390     IF Q = 1 THEN GOTO 1210
 1400     IF ( Q = 2 ) + ( Q = 3 ) + ( Q = 4 ) THEN GOTO 1140
 1410   ENDPROC
 1420   PROC START
 1430     PRINT "<27>AF"
 1440     PRINT "<27><12>"
 1450     DELAY = 1
 1460     DIM G$ ( 5 )
 1470     PRINT
 1480     INPUT "ANTAL MAALEPUNKTER =" , N
 1490     DIM KO ( 2 , N )
 1510     FOR I = 1 TO N STEP 1
 1520       PRINT "TALSAET NR " ; I ;
 1530       INPUT "    X=" , KO ( 1 , I ) , "    Y=" , KO ( 2 , I )
 1540     NEXT 
 1910     ON ESC THEN EXEC OUTESC
 1920     LET AFBRYD = 1
 1930     IF SYS ( 7 ) <> 0 THEN STOP «nul»«nul» 
 1940     DIM E ( 2 )
 1950   ENDPROC
 1960   PROC OUTESC
 1970     ON ESC THEN EXEC OUTESC
 1980     IF AFBRYD THEN
 1990       END «nul»
 2000     ENDIF 
 2010   ENDPROC
 2020   PROC OUTERR
 2030     LET FUNK = 0
 2040     IF AFBRYD = 1 THEN GOTO 2070
 2050     ON ERR THEN EXEC OUTERR
 2060     LET AFBRYD = 3
 2070   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 IND
    0x83 0xffff 0x00 TEGN
    0x84 0xffff 0x00 CHOICE
    0x85 0xffff 0x00 A2
    0x86 0xffff 0x00 XAKS
    0x87 0xffff 0x00 FELT
    0x88 0xffff 0x00 A1
    0x89 0xffff 0x00 A3
    0x8a 0xffff 0x00 A4
    0x8b 0xffff 0x00 C1
    0x8c 0xffff 0x00 C2
    0x8d 0xffff 0x00 C3
    0x8e 0xffff 0x00 C4
    0x8f 0xffff 0x00 C5
    0x90 0xffff 0x00 C6
    0x91 0xffff 0x00 X0
    0x92 0xffff 0x00 S
    0x93 0xffff 0x00 Y0
    0x94 0xffff 0x00 YAKS
    0x95 0xffff 0x00 Y
    0x96 0xffff 0x00 SLUT
    0x97 0xffff 0x00 KOORD
    0x98 0xffff 0x00 X
    0x99 0xffff 0x00 VEC
    0x9a 0xffff 0x00 KO
    0x9b 0xffff 0x00 XSTEP
    0x9c 0xffff 0x00 YSTEP
    0x9d 0xffff 0x00 I
    0x9e 0xffff 0x00 N
    0x9f 0xffff 0x00 CROSS
    0xa0 0xffff 0x00 OUTERR
    0xa1 0xffff 0x00 AFBRYD
    0xa2 0xffff 0x02 G$
    0xa3 0xffff 0x00 XKOR
    0xa4 0xffff 0x00 YKOR
    0xa5 0xffff 0x00 A
    0xa6 0xffff 0x00 DX
    0xa7 0xffff 0x00 X2
    0xa8 0xffff 0x00 X1
    0xa9 0xffff 0x00 T
    0xaa 0xffff 0x00 Y1
    0xab 0xffff 0x00 Y2
    0xac 0xffff 0x00 E
    0xad 0xffff 0x00 ENH
    0xae 0xffff 0x00 D1
    0xaf 0xffff 0x00 D2
    0xb0 0xffff 0x00 D3
    0xb1 0xffff 0x00 D4
    0xb2 0xffff 0x00 Q
    0xb3 0xffff 0x00 POLYN
    0xb4 0xffff 0x00 OUTESC
    0xb5 0xffff 0x00 FUNK

Wrapper

.magic = 0x4e32
.u_pas = 0x0688  // 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)