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

⟦4fb19a4fe⟧ COMAL_SAVE

    Length: 3584 (0xe00)
    Types: COMAL_SAVE
    Names: »GRAFT«

Derivation

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

UPAS Segment

SAVE filename: "GRAFT"

 0010 REM  (+UDVIKLET AF IB I. OLSEN  -  1982+)«nul»
 0020 PRINT "<27>AF"
 0030 PRINT "<27><12>"
 0040 DELAY = 1
 0050 PRINT TAB ( 20 ) ; "***   GRAFTEGNER   ***"
 0060 PRINT
 0065 TAB = 10
 0070 PRINT "" , "GRAFTEGNEREN KAN TEGNE EN ENKELT FUNKTION"
 0080 PRINT "" , " BAGEFTER ER DET MULIGT AT LAVE KOORDINAT-"
 0090 PRINT "" , "SOEGNING VED HJAELP AF KORSET, SOM FREMKOMMER."
 0100 PRINT "" , "KORSET  INDSTILLES V.H.A. DE TO KNAPPER I"
 0110 PRINT "" , "HOEJRE SIDE AF TASTATURET. NAAR KORSET ER INDSTIL-"
 0120 PRINT "" , "LET OVER DEN SOEGTE KOORDINAT TRYKKES DER PAA ET BOG-"
 0130 PRINT "" , "STAV.  NAAR SOEGNINGEN ER FORBI TRYKKES PAA  -RETURN-"
 0135 PRINT
 0140 DIM GEM$ ( 40 )
 0150 ON ERR THEN GOTO 0190
 0160 CREATE "GEM" , 0
 0170 OPEN FILE ( 0 , 2 ) "GEM"
 0180 OPEN FILE ( 0 , 2 ) "GEM"
 0190 ON ERR THEN GOTO 0250
 0200 PRINT "" , "INDTAST FUNKTIONEN : " ;
 0210 INPUT "Y=" , GEM$
 0220 WRITE FILE ( 0 ) " 290 DEF FNY(X)=" , GEM$ , "<13><10>"
 0230 CLOSE
 0240 ENTER "GEM"
 0250 CLOSE
 0260 DELETE "GEM"
 0270 IF SYS ( 7 ) <> 42 THEN PRINT "DER ER EN FEJL I DIN LIGNING. PROEV IGEN!"
 0280 IF SYS ( 7 ) <> 42 THEN GOTO 0150
 0290 DEF FNY ( VAR98 ) = SIN ( [LVAR]  ) / COS ( [LVAR]  ^ 2 )
 0300 PRINT
 0310 PRINT "" , "INDTAST STOERSTE OG MINDSTE X-VAERDI: " ;
 0320 INPUT "XMIN,XMAX ? " , X1 , X2
 0330 PRINT
 0340 PRINT "" , "INDTAST STOERSTE OG MINDSTE Y-VAERDI: " ;
 0350 INPUT "YMIN,YMAX ? " , Y1 , Y2
 0360 IF X1 > 0 THEN LET X1 = 0
 0370 IF Y1 > 0 THEN LET Y1 = 0
 0380 IF X2 < 0 THEN LET X2 = 0
 0390 IF Y2 < 0 THEN LET Y2 = 0
 0400 LET X1 = INT ( X1 ) Y1 = INT ( Y1 )
 0410 IF INT ( X2 ) < X2 THEN LET X2 = INT ( X2 + 1 )
 0420 IF INT ( Y2 ) < Y2 THEN LET Y2 = INT ( Y2 + 1 )
 0430 LET XSTEP = 770 / ( X2 - X1 ) YSTEP = 770 / ( Y2 - Y1 )
 0440 LET XAKS = - YSTEP * Y1 + 4 YAKS = - XSTEP * X1 + 125
 0450 PRINT "<27>AE"
 0460 PRINT "<27><12>"
 0470 DELAY = 1
 0480 LET A1 = 125 A2 = XAKS A3 = 895 A4 = A2 C1 = - 5 C2 = 3 C3 = C1 C4 = - 3 C5 = 8 C6 = 0
 0490 LET S = XSTEP Y = XAKS + 4 START = ( X2 - X1 ) * XSTEP + 125 SLUT = 125
 0500 EXEC KOORD
 0510 LET A1 = YAKS A2 = 4 A3 = A1 A4 = 774 C1 = 3 C2 = - 5 C3 = - 3 C4 = C2 C5 = 0 C6 = 8
 0520 LET S = YSTEP X = YAKS + 4 START = ( Y2 - Y1 ) * YSTEP + 4 SLUT = 4
 0530 EXEC KOORD
 0540 LET A1 = 520
 0550 IF YAKS > 510 THEN LET A1 = 120
 0560 CALL "GRAPH" , A1 , 760
 0570 CALL "ALPHA"
 0580 PRINT "Y=" ; GEM$
 0590 ON ERR THEN EXEC ERR2
 0600 LET S = ( X2 - X1 ) / 1000 VEC = 0
 0610 CALL "GRAPH" , 125 , FNY ( X1 ) * YSTEP + XAKS
 0620 FOR T = X1 TO X2 STEP S
 0630   LET X = T * XSTEP + YAKS Y = FNY ( T ) * YSTEP + XAKS
 0640   IF Y < 4 OR Y > 774 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 , 100
 0720 PRINT "<27>AF"
 0730 CALL "ALPHA"
 0740 REPEAT 
 0750   PRINT "<29>" ;
 0760   EXEC CROSS
 0770   LET XKOR = ( X - 125 ) * ( X2 - X1 ) / 770 + X1 YKOR = ( Y - 4 ) * ( Y2 - Y1 ) / 770 + Y1
 0780   PRINT "<31>" ;
 0790   PAGE = 72
 0800   PRINT "(" ; XKOR ; "," ; YKOR ; ")"
 0810 UNTIL 0
 0820 PROC CROSS
 0830   DIM G$ ( 5 )
 0840   ON ERR THEN GOTO 0840
 0850   INPUT "<27><26>" , G$ ;
 0860   IF LEN ( G$ ) = 0 THEN
 0870     PRINT "<31>"
 0880     END «nul»
 0890   ENDIF 
 0900   LET X = ( ORD ( G$ ( 2 ) ) - 33 ) * 32 + ORD ( G$ ( 3 ) )
 0910   LET Y = ( ORD ( G$ ( 4 ) ) - 33 ) * 32 + ORD ( G$ ( 5 ) )
 0920 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 - S 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
 1070 PROC ERR2
 1080   ON ERR THEN EXEC ERR2
 1090   LET VEC = 0
 1100 ENDPROC
 1110 PROC INFO
 1120   PRINT
 1130   PRINT "JEG SKAL LIGE FINDE PAA NOGET !!??"
 1140   ENTER "PLOIN"
 1150   EXEC PLOIN
 1160 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 = 0x01e5
    FNZ definition = 0xffff
    FN[ definition = 0xffff
    FN\ definition = 0xffff
    FN] definition = 0xffff
    GOSUB-RETURN stack pointer = 0x0000
      stack[0] = 0x03d8
      stack[1] = 0x032f
      stack[2] = 0x0000
      stack[3] = 0x0000
      stack[4] = 0x0000
      stack[5] = 0x0000
      stack[6] = 0x0000
    FOR-NEXT stack pointer = 0x0000
      Var# = 0x03cd
      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# = 0x009c
      Loop Top = 0x03a1
      To Val = 4   (0x41400000)
      Step Val = 0.008   (0x3f20c49c)
      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 0xffff 0x02 GEM$
    0x82 0xffff 0x00 X1
    0x83 0xffff 0x00 X2
    0x84 0xffff 0x00 Y1
    0x85 0xffff 0x00 Y2
    0x86 0xffff 0x00 XSTEP
    0x87 0xffff 0x00 YSTEP
    0x88 0xffff 0x00 XAKS
    0x89 0xffff 0x00 YAKS
    0x8a 0xffff 0x00 A1
    0x8b 0xffff 0x00 A2
    0x8c 0xffff 0x00 A3
    0x8d 0xffff 0x00 A4
    0x8e 0xffff 0x00 C1
    0x8f 0xffff 0x00 C2
    0x90 0xffff 0x00 C3
    0x91 0xffff 0x00 C4
    0x92 0xffff 0x00 C5
    0x93 0xffff 0x00 C6
    0x94 0xffff 0x00 S
    0x95 0xffff 0x00 Y
    0x96 0xffff 0x00 START
    0x97 0xffff 0x00 SLUT
    0x98 0xffff 0x00 KOORD
    0x99 0xffff 0x00 X
    0x9a 0xffff 0x00 ERR2
    0x9b 0xffff 0x00 VEC
    0x9c 0xffff 0x00 T
    0x9d 0xffff 0x00 CROSS
    0x9e 0xffff 0x02 G$
    0x9f 0xffff 0x00 XKOR
    0xa0 0xffff 0x00 YKOR
    0xa1 0xffff 0x00 LIST200
    0xa2 0xffff 0x00 INFO
    0xa3 0xffff 0x00 PLOIN

Wrapper

.magic = 0x4e32
.u_pas = 0x0504  // Length of UPAS in words
.u_das = 0x011c  // Length of UDAS in words
.u_dvs = 0x011c  // Start på savede variabel indhold (word adr)
.u_nds = 0x007b  // 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 = 0x000a  // 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)