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

⟦fd20183c5⟧ COMAL_SAVE

    Length: 2570 (0xa0a)
    Types: COMAL_SAVE
    Notes: ANIMA   , LIB::ANIMA
    Names: »ANIMA«

Derivation

└─⟦43f2224a3⟧ Bits:30007878 (Demostrations diskette af 1981 Frederikshavn Gymnasium Område : LIB Nøgle : 1)
    └─⟦this⟧ 

UPAS Segment

SAVE filename: "ANIMA"

 0010 LET BAK = 1 NIV = 0
 0020 LET FORST = 0
 0030 REM  PROGRAM NAME : ANIMA   77.08.10 «nul»
 0040 DIM SVAR$ ( 15 ) , IND$ ( 30 )
 0050 DIM OUTTEXT$ ( 30 )
 0060 DIM SPRGSML$ ( 600 )
 0070 DIM TRAE ( 100 , 3 )
 0080 LET OPHAV = 1 VENST = 2 H0JRE = 3 MAX = 2 DOMMEDAG = 0
 0090 LET SPRGSML$ = "@ROD@EN DUE@"
 0100 LET TRAE ( 1 , VENST ) = 2 TRAE ( 2 , OPHAV ) = 1
 0120 OPEN FILE ( 1 , 1 ) "ANISTORE"
 0130 READ FILE ( 1 ) OPHAV , MAX , NODE , SLUT , NIV , BAK , FORST
 0140 MAT READ FILE ( 1 ) TRAE
 0150 CLOSE
 0160 READ FILE ( 1 ) SPRGSML$
 0170 REPEAT 
 0180   REPEAT 
 0190     INPUT "TAENKER DU PAA ET DYR ? " , SVAR$
 0200   UNTIL ( SVAR$ = "JA" ) OR ( SVAR$ = "NEJ" ) OR ( SVAR$ = "LIST" )
 0210   IF SVAR$ = "LIST" THEN
 0220     EXEC SKRIVTRE
 0230   ELSE 
 0240     IF SVAR$ = "NEJ" THEN EXEC SLUT
 0250     LET NODE = TRAE ( 1 , VENST ) SLUT = 0
 0260     REPEAT 
 0270       EXEC OUTTEXT
 0280       REPEAT 
 0290         PRINT OUTTEXT$ ;
 0300         INPUT SVAR$
 0310       UNTIL ( SVAR$ = "JA" ) OR ( SVAR$ = "NEJ" )
 0320       IF SVAR$ = "JA" THEN
 0330         IF TRAE ( NODE , VENST ) THEN
 0340           LET NODE = TRAE ( NODE , VENST )
 0350         ELSE 
 0360           LET SLUT = 1
 0370         ENDIF 
 0380       ELSE 
 0390         IF TRAE ( NODE , H0JRE ) THEN
 0400           LET NODE = TRAE ( NODE , H0JRE )
 0410         ELSE 
 0420           EXEC INSNODE
 0430           LET SLUT = 1
 0440         ENDIF 
 0450       ENDIF 
 0460     UNTIL SLUT
 0470   ENDIF 
 0480 UNTIL DOMMEDAG
 0490 END  «nul»
 0500 PROC OUTTEXT
 0510   LET I = 0 J = 0
 0520   REPEAT 
 0530     LET I = I + 1
 0540     IF SPRGSML$ ( I , I ) = "@" THEN LET J = J + 1
 0550   UNTIL J = NODE
 0560   LET F0RST = I + 1
 0570   REPEAT 
 0580     LET I = I + 1
 0590   UNTIL SPRGSML$ ( I , I ) = "@"
 0600   LET OUTTEXT$ = SPRGSML$ ( F0RST , I - 1 )
 0610 ENDPROC
 0620 REM «ff»
«nul»
 0630 REM                                         PAGE 2«nul»«nul»
 0640 PROC INSNODE
 0650   LET MAX = MAX + 1
 0660   LET TRAE ( MAX , OPHAV ) = TRAE ( NODE , OPHAV )
 0670   IF TRAE ( TRAE ( NODE , OPHAV ) , VENST ) = NODE THEN
 0680     LET TRAE ( TRAE ( NODE , OPHAV ) , VENST ) = MAX
 0690   ELSE 
 0700     LET TRAE ( TRAE ( NODE , OPHAV ) , H0JRE ) = MAX
 0710   ENDIF 
 0720   LET TRAE ( NODE , OPHAV ) = MAX
 0730   INPUT "HVAD ER DET SAA ? " , SVAR$
 0740   PRINT "HVAD SKAL JEG SP0RGE OM FOR AT KENDE FORSKEL PAA"
 0750   EXEC OUTTEXT
 0760   PRINT OUTTEXT$ ; " OG " ; SVAR$
 0770   INPUT IND$
 0780   LET SPRGSML$ = SPRGSML$ , IND$ , "@" , SVAR$ , "@"
 0790   PRINT "OG HVAD ER SVARET FOR " ; SVAR$
 0800   INPUT SVAR$
 0810   IF SVAR$ = "JA" THEN
 0820     LET TRAE ( MAX , VENST ) = MAX + 1
 0830     LET TRAE ( MAX , H0JRE ) = NODE
 0840   ELSE 
 0850     LET TRAE ( MAX , VENST ) = NODE
 0860     LET TRAE ( MAX , H0JRE ) = MAX + 1
 0870   ENDIF 
 0880   LET MAX = MAX + 1
 0890   LET TRAE ( MAX , OPHAV ) = MAX - 1
 0900 ENDPROC
 0910 PROC SKRIVTRE
 0920   LET NODE = 1 BAK = 0 S1 = NODE NIV = 0
 0930   PRINT
 0940   REPEAT 
 0950     IF BAK = 0 THEN
 0960       IF TRAE ( NODE , VENST ) THEN
 0970         LET NODE = TRAE ( NODE , VENST ) NIV = NIV + 1
 0980       ELSE 
 0990         EXEC OUTTEXT
 1000         PRINT TAB ( NIV * 5 - 4 ) ; OUTTEXT$
 1010         PRINT
 1020         IF TRAE ( NODE , H0JRE ) THEN
 1030           LET NODE = TRAE ( NODE , H0JRE ) NIV = NIV + 1
 1040         ELSE 
 1050           LET BAK = 1 S1 = NODE NODE = TRAE ( NODE , OPHAV ) NIV = NIV - 1
 1060         ENDIF 
 1070       ENDIF 
 1080     ELSE 
 1090       IF TRAE ( NODE , VENST ) = S1 THEN
 1100         EXEC OUTTEXT
 1110         PRINT TAB ( NIV * 5 - 4 ) ; OUTTEXT$
 1120         PRINT
 1130         IF TRAE ( NODE , H0JRE ) THEN
 1140           LET NODE = TRAE ( NODE , H0JRE ) BAK = 0 NIV = NIV + 1
 1150         ELSE 
 1160           LET BAK = 1 S1 = NODE NODE = TRAE ( NODE , OPHAV ) NIV = NIV - 1
 1170         ENDIF 
 1180       ELSE 
 1190         LET BAK = 1 S1 = NODE NODE = TRAE ( NODE , OPHAV ) NIV = NIV - 1
 1200       ENDIF 
 1210     ENDIF 
 1220   UNTIL ( ( TRAE ( NODE , H0JRE ) = S1 ) OR ( TRAE ( NODE , H0JRE ) = 0 ) ) AND ( NODE = 1 )
 1230   PRINT
 1240 ENDPROC
 1250 PROC SLUT
 1260   OPEN FILE ( 1 , 3 ) "ANISTORE"
 1270   WRITE FILE ( 1 ) OPHAV , MAX , NODE , SLUT , NIV , BAK , FORST
 1280   MAT WRITE FILE ( 1 ) TRAE
 1290   WRITE FILE ( 1 ) SPRGSML$
 1300   CLOSE
 1310   CHAIN "LOOKUP"
 1320 ENDPROC LUT«nul»

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] = 0x013f
      stack[1] = 0x027a
      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] = 0x00f6
      stack[1] = 0x013f
      stack[2] = 0x0145
      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] = 0x0001
      stack[1] = 0x0001
      stack[2] = 0x0001
      stack[3] = 0x0000
      stack[4] = 0x0000
      stack[5] = 0x0000
      stack[6] = 0x0000
Variables:
    0x80 0xffff 0x00 
    0x81 0xffff 0x02 SVAR$
    0x82 0xffff 0x02 IND$
    0x83 0xffff 0x02 OUTTEXT$
    0x84 0xffff 0x02 SPRGSML$
    0x85 0xffff 0x00 TRAE
    0x86 0xffff 0x00 OPHAV
    0x87 0xffff 0x00 VENST
    0x88 0xffff 0x00 H0JRE
    0x89 0xffff 0x00 MAX
    0x8a 0xffff 0x00 DOMMEDAG
    0x8b 0xffff 0x00 SKRIVTRE
    0x8c 0xffff 0x00 NODE
    0x8d 0xffff 0x00 SLUT
    0x8e 0xffff 0x00 OUTTEXT
    0x8f 0xffff 0x00 INSNODE
    0x90 0xffff 0x00 I
    0x91 0xffff 0x00 J
    0x92 0xffff 0x00 F0RST
    0x93 0xffff 0x00 BAK
    0x94 0xffff 0x00 S1
    0x95 0xffff 0x00 NIV
    0x96 0xffff 0x00 FORST
    0x97 0xffff 0x00 LIST1180
    0x98 0xffff 0x00 DOTO

Wrapper

.magic = 0x5356
.u_pas = 0x0411  // Length of UPAS in words
.u_das = 0x00e5  // Length of UDAS in words
.u_dvs = 0x00e5  // Start på savede variabel indhold (word adr)
.u_nds = 0x0042  // Address på næste prog.sætning (word adr)
.u_cps = 0x0042  // Address på curr prog.sætning (word adr)
.u_tll = 0x0048  // Page størrelse
.u_tts = 0x000e  // TAP størrelse
.u_ran = 0x0000  // Random tal
.u_cdl = 0x0042  // Current DATA sætning ptr
.u_cdb = 0x0000  // Current DATA byte ptr
.u_esa = 0xffff  // ON ESE (word adr)
.u_era = 0xffff  // ON ERR (word adr)
.u_cas = 0x0000  // CASE dybde
.u_las = 0xffff  // last (-1)