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

⟦d49e0da40⟧ COMAL_SAVE

    Length: 2646 (0xa56)
    Types: COMAL_SAVE

Derivation

└─⟦d85593a46⟧ Bits:30000470 DOMUS disk image - User files
    └─ ⟦3a88c98c2⟧ »/JT1U.JT07« 
        └─⟦this⟧ 

UPAS Segment

SAVE filename: "JT07"

 0001 REM  ***HENRIK LUND ANDREASEN.   DATO:24-11-81«nul»«nul»
 0030 PRINT "<10><10>"
 0070 PRINT
 0080 INPUT "ANTAL FUNKTIONER ?" , ANTFKT
 0090 PRINT
 0100 PRINT "FUNKTIONERNE DEFINERES I LINIE 140-180"
 0105 PRINT
 0110 REM  TAST CON NAAR DU HAR DEFINERET FUNKTIONERNE«nul»«nul»
 0115 PRINT
 0120 PRINT "PROGRAMMET STOPPES VED TRYK PAA <34>RETURN<34>"
 0130 STOP «nul»( 
 0140 DEF FNA ( VAR98 ) = [LVAR]  ^ 3 - ( 2 * [LVAR]  ^ 2 ) + ( 3 * [LVAR]  ) + 1
 0150 DEF FNB ( VAR98 ) = 3 * COS ( 2 * [LVAR]  )
 0160 DEF FNC ( VAR98 ) = [LVAR]  ^ 2 + 5
 0170 DEF FND ( VAR98 ) = ABS ( COS ( [LVAR]  ) )
 0180 DEF FNE ( VAR98 ) = [LVAR]  ^ 4 - 2 * [LVAR]  ^ 2 - 8 * SIN ( [LVAR]  )
 0190 PRINT "<10><10>"
 0200 INPUT "INTERVAL PAA X-AKSEN " , A , B
 0210 PRINT
 0220 INPUT "INTERVAL PAA Y-AKSEN " , C , D
 0230 PRINT
 0240 INPUT "STEPLAENGDEN     " , STP
 0245 PRINT "<27>AE"
 0250 PRINT "<27><12>"
 0260 DELAY = 1
 0280 REM  (** AKSETEGNING **)«nul»
 0290 IF A >= 0 AND C >= 0 THEN LET X1 = 5 ; Y1 = 5
 0300 IF A >= 0 AND C < 0 THEN LET X1 = 5 ; Y1 = 390
 0310 IF A < 0 AND C >= 0 THEN LET X1 = 512 ; Y1 = 5
 0320 IF A < 0 AND C < 0 THEN LET X1 = 512 ; Y1 = 390
 0330 DELAY = 1
 0350 CALL "GRAPH" , 5 , 5
 0352 CALL "VECTOR" , 1023 , 5 , 1
 0360 CALL "VECTOR" , 1023 , 779 , 1
 0370 CALL "VECTOR" , 5 , 779 , 1
 0380 CALL "VECTOR" , 5 , 5 , 1
 0390 REM  (** X-AKSEN **)«nul»P
 0400 CALL "GRAPH" , 5 , Y1
 0410 CALL "VECTOR" , 1023 , Y1 , 1
 0420 CALL "VECTOR" , 1018 , Y1 + 5 , 1
 0430 CALL "VECTOR" , 1018 , Y1 - 5 , 1
 0440 CALL "VECTOR" , 1023 , Y1 , 1
 0450 REM  (** Y-AKSEN **)«nul»
 0460 DELAY = 1
 0470 CALL "GRAPH" , X1 , 5
 0480 CALL "VECTOR" , X1 , 779 , 1
 0490 CALL "VECTOR" , X1 - 5 , 774 , 1
 0500 CALL "VECTOR" , X1 + 5 , 774 , 1
 0510 CALL "VECTOR" , X1 , 779 , 1
 0520 DELAY = 1
 0540 REM  (** ENHEDER **)«nul»
 0550 LET EN = ( ( 1024 / ABS ( B - A ) ) - ABS ( 5 / B ) )
 0560 LET ENH = ( ( 779 / ABS ( D - C ) ) - ABS ( 5 / D ) )
 0570 FOR X2 = 5 TO 1024 STEP EN
 0580   CALL "GRAPH" , X2 , Y1 + 5
 0590   CALL "VECTOR" , X2 , Y1 - 5 , 1
 0600 NEXT 
 0610 DELAY = 1
 0620 FOR Y2 = 5 TO 779 STEP ENH
 0630   CALL "GRAPH" , X1 + 5 , Y2
 0640   CALL "VECTOR" , X1 - 5 , Y2 , 1
 0650 NEXT 
 0660 REM «nul»
 0670 REM  (** TEGNING AF GRAF **)«nul»«nul»
 0680 FOR GRAFNR = 1 TO ANTFKT
 0690   CASE GRAFNR OF
 0700   WHEN 1
 0710     DEF FNT ( VAR98 ) = FNA ( [LVAR]  )
 0720   WHEN 2
 0730     DEF FNT ( VAR98 ) = FNB ( [LVAR]  )
 0740   WHEN 3
 0750     DEF FNT ( VAR98 ) = FNC ( [LVAR]  )
 0760   WHEN 4
 0770     DEF FNT ( VAR98 ) = FND ( [LVAR]  )
 0780   WHEN 5
 0790     DEF FNT ( VAR98 ) = FNE ( [LVAR]  )
 0800   ENDCASE «nul» 
 0810   REPEAT 
 0815     ON ERR THEN GOTO 0997
 0820     LET A = A + STP ; T = ( A * EN ) + X1 ; T1 = ( FNT ( A ) * ENH ) + Y1
 0830   UNTIL ( T >= 0 ) OR ( T <= 1023 ) OR ( T1 >= 0 ) OR ( T1 <= 779 )
 0840   CALL "GRAPH" , T , T1
 0850   FOR X = A TO B STEP STP
 0860     LET X2 = ( X * EN ) + X1 ; Y2 = ( FNT ( X ) * ENH ) + Y1
 0870     IF ( X2 < 0 ) OR ( X2 > 1023 ) OR ( Y2 < 0 ) OR ( Y2 > 779 ) THEN GOTO 0890
 0880     CALL "VECTOR" , X2 , Y2 , 1
 0890   NEXT 
 0900 NEXT 
 0905 PRINT "<27>AF"
 0910 PRINT ;
 0920 CALL "ALPHA"
 0930 DIM G$ ( 1 )
 0940 INPUT " " , G$ ;
 0950 IF LEN ( G$ ) = 0 THEN
 0960   STOP «nul» 
 0970 ENDIF 
 0997 CALL "GRAPH" , 10 , 10
 0998 PRINT ;
 0999 CALL "ALPHA"
 1000 PRINT "DENNE FUNKTION KAN IKKE KLARES"
 1001 GOTO 0130

UDAS Segment

    FNA definition = 0x00c4
    FNB definition = 0x00dd
    FNC definition = 0x00e9
    FND definition = 0x00f4
    FNE definition = 0x00fc
    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 = 0x0357
    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# = 0x0378
      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# = 0x008d
      Loop Top = 0x032d
      To Val = 1   (0x41100000)
      Step Val = 1   (0x41100000)
      Var# = 0x0090
      Loop Top = 0x03ae
      To Val = 10   (0x41a00000)
      Step Val = 0.1   (0x4019999a)
      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 0x0000 0x00 ANTFKT
    0x82 0xffff 0x00 A
    0x83 0xffff 0x00 B
    0x84 0xffff 0x00 C
    0x85 0xffff 0x00 D
    0x86 0xffff 0x00 STP
    0x87 0xffff 0x00 X1
    0x88 0xffff 0x00 Y1
    0x89 0xffff 0x00 EN
    0x8a 0xffff 0x00 ENH
    0x8b 0xffff 0x00 X2
    0x8c 0xffff 0x00 Y2
    0x8d 0xffff 0x00 GRAFNR
    0x8e 0xffff 0x00 T
    0x8f 0xffff 0x00 T1
    0x90 0xffff 0x00 X
    0x91 0xffff 0x02 G$

Wrapper

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