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

⟦92614a4c4⟧ COMAL_SAVE

    Length: 3266 (0xcc2)
    Types: COMAL_SAVE

Derivation

└─⟦d85593a46⟧ Bits:30000470 DOMUS disk image - User files
    └─ ⟦729ea2ed0⟧ »/LIB.INT1« 
        └─⟦this⟧ 

UPAS Segment

SAVE filename: "INT1"

 0010 PRINT "<27><12>"
 0020 DELAY = 1
 0030 DIM Q$ ( 150 )
 0040 ENTER "LGNN1"
 0050 PRINT
 0060 LET AFBRYD = 0
 0070 ON ESC THEN EXEC OUTESC
 0080 OPEN FILE ( 0 , 1 ) "DIM1"
 0090 READ FILE ( 0 ) N , M
 0100 CLOSE FILE ( 0 )
 0110 DIM H ( M + ( M = 0 ) )
 0120 DIM X ( N ) , DX ( N )
 0130 DIM L ( 4 , N )
 0140 OPEN FILE ( 1 , 1 ) "PRNT1"
 0150 FOR I = 1 TO M + N
 0160   READ FILE ( 1 ) Q$
 0170   IF I <= M THEN PRINT "H(" ; I ; ")=" ; Q$
 0180   IF I = M THEN PRINT
 0190   IF I > M THEN PRINT "DX(" ; I - M ; ")=" ; Q$
 0200 NEXT 
 0210 CLOSE FILE ( 1 )
 0220 LET AFBRYD = 1
 0230 PRINT
 0240 PRINT "INDTAST BEGYNDELSESVAERDIER:"
 0250 PRINT
 0260 FOR I = 1 TO N
 0270   PRINT "X(" ; I ; ")=" ;
 0280   INPUT X ( I )
 0310 NEXT 
 0320 PRINT
 0330 INPUT "BEGYNDELSESVAERDIEN FOR T= " , TSTART
 0340 INPUT "SLUTVAERDIEN FOR T= " , TSLUT
 0350 IF TSLUT <= TSTART THEN GOTO 0340
 0360 PRINT
 0370 INPUT "STEPLAENGDE VED INTEGRATIONEN= " , DT
 0380 IF DT <= 0 THEN GOTO 0370
 0390 LET T = TSTART
 0400 PRINT
 0410 PRINT "VED TRYK PAA RETURN GAAR INTEGRATIONEN IGANG. MAN B0R IKKE S0GE"
 0420 INPUT "AT AFBRYDE DEN UNDERVEJS. FORTRYDER DU, TRYK ESCAPE NU." , Q$
 0430 LET AFBRYD = 0
 0440 PRINT "INTEGRATIONEN ER IGANG."
 0450 EXEC INTEG
 0460 LET AFBRYD = 1
 0470 PRINT
 0480 PRINT "INTEGRATIONEN ER SLUT"
 0490 PRINT "0NSKER DU RESULTATERNE UNDERS0GT GRAFISK, INDTAST 1."
 0500 PRINT "0NSKER DU RESULTATERNE TABELLAGT, INDTAST 2."
 0510 INPUT Q
 0520 IF Q = 1 THEN CHAIN "NGRF1"
 0530 IF Q = 2 THEN CHAIN "NTAB1"
 0540 END «nul»
 0800 PROC MODEL
 0810   REM  ** I LINIE 810 TIL 850«nul»
 0820   REM  ** SKRIVES HJAELPEFUNK-«nul»«nul»
 0830   REM  ** TIONERNE UNDER K0RS-«nul»«nul»
 0840   REM  ** LEN.«nul»R
 0850   REM «nul»*
 0860   REM  ** I LINIE 860 TIL 940«nul»
 0870   REM  ** SKRIVES DIFFERENTIAL-«nul»
 0880   REM  ** LIGNINGERNE UNDER«nul»
 0890   REM  ** K0RSLEN.«nul»N
 0900   REM «nul»*
 0910   REM «nul»*
 0920   REM «nul»*
 0930   REM «nul»*
 0940   REM «nul»*
 0950 ENDPROC
 1000 PROC INTEG
 1020   ON ERR THEN EXEC OUTERR
 1030   DELETE "STOR1"
 1040   CREATE "STOR1" , INT ( ( N + 1 ) * ( TSLUT - TSTART ) / DT / 100 + 1 )
 1050   OPEN FILE ( 0 , 3 ) "STOR1"
 1060   WRITE FILE ( 0 ) TSLUT , TSTART
 1070   FOR I = 1 TO N
 1080     WRITE FILE ( 0 ) X ( I )
 1090   NEXT 
 1095   REPEAT 
 1100     EXEC MODEL
 1110     FOR I = 1 TO N
 1130       LET L ( 1 , I ) = DX ( I )
 1140     NEXT 
 1150     LET T = T + DT / 2
 1160     FOR I = 1 TO N
 1180       LET X ( I ) = X ( I ) + L ( 1 , I ) * DT / 2
 1190     NEXT 
 1200     EXEC MODEL
 1210     FOR I = 1 TO N
 1230       LET L ( 2 , I ) = DX ( I )
 1240     NEXT 
 1250     FOR I = 1 TO N
 1270       LET X ( I ) = X ( I ) - L ( 1 , I ) * DT / 2 + L ( 2 , I ) * DT / 2
 1280     NEXT 
 1290     EXEC MODEL
 1300     FOR I = 1 TO N
 1320       LET L ( 3 , I ) = DX ( I )
 1330     NEXT 
 1340     LET T = T + DT / 2
 1350     FOR I = 1 TO N
 1370       LET X ( I ) = X ( I ) - L ( 2 , I ) * DT / 2 + L ( 3 , I ) * DT
 1380     NEXT 
 1390     EXEC MODEL
 1400     FOR I = 1 TO N
 1420       LET L ( 4 , I ) = DX ( I )
 1430     NEXT 
 1440     FOR I = 1 TO N
 1460       LET X ( I ) = X ( I ) + ( L ( 1 , I ) / 6 + L ( 2 , I ) / 3 - L ( 3 , I ) * 2 / 3 + L ( 4 , I ) / 6 ) * DT
 1470     NEXT 
 1480     WRITE FILE ( 0 ) T
 1490     FOR I = 1 TO N
 1500       WRITE FILE ( 0 ) X ( I )
 1510     NEXT 
 1520   UNTIL T >= TSLUT
 1530   CLOSE FILE ( 0 )
 1540 ENDPROC
 2000 PROC OUTESC
 2010   ON ESC THEN EXEC OUTESC
 2020   IF AFBRYD THEN
 2030     PRINT
 2040     PRINT "PROGRAMMET AFBRUDT"
 2050     END «nul»
 2060   ENDIF 
 2070 ENDPROC
 2080 PROC OUTERR
 2090   IF SYS ( 7 ) = 100 THEN GOTO 2240
 2100   CLOSE
 2110   DELETE "STOR1"
 2120   CREATE "STOR1" , INT ( ( N + 1 ) * ( TSLUT - TSTART ) / DT / 100 + 1 )
 2130   IF ( SYS ( 7 ) = 16 ) + ( SYS ( 7 ) = 34 ) THEN
 2140     PRINT
 2150     PRINT "DER ER OPSTAAET FEJL UNDER INTEGRATIONEN. UNDERS0G OM DINE FUNK-"
 2155     PRINT "TIONER ER VELDEFINEREDE I HELE T-INTERVALLET."
 2160     PRINT "AF PROGRAMTEKNISKE GRUNDE ER BEREGNINGERNE SLETTET."
 2170   ENDIF 
 2180   IF ( SYS ( 7 ) = 17 ) + ( SYS ( 7 ) = 31 ) + ( SYS ( 7 ) = 38 ) THEN
 2190     PRINT
 2200     PRINT "DER ER BENYTTET ET ELLER FLERE FORKERTE UDTRYK I LIGNINGERNE."
 2210     PRINT "START FORFRA OG PR0V AT FINDE FEJLEN."
 2220   ENDIF 
 2230   END «nul»%
 2240 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 0x02 Q$
    0x82 0xffff 0x00 N
    0x83 0xffff 0x00 M
    0x84 0xffff 0x00 H
    0x85 0xffff 0x00 X
    0x86 0xffff 0x00 DX
    0x87 0xffff 0x00 D2X
    0x88 0xffff 0x00 K
    0x89 0xffff 0x00 L
    0x8a 0xffff 0x00 I
    0x8b 0xffff 0x00 PRHINT
    0x8c 0xffff 0x00 TSTART
    0x8d 0xffff 0x00 TSLUT
    0x8e 0xffff 0x00 DT
    0x8f 0xffff 0x00 T
    0x90 0xffff 0x00 INTEG
    0x91 0xffff 0x00 Q
    0x92 0xffff 0x00 OUTESC
    0x93 0xffff 0x00 OUTERR
    0x94 0xffff 0x00 CLSE
    0x95 0xffff 0x00 PN
    0x96 0xffff 0x00 LIIS
    0x97 0xffff 0x00 MODEL
    0x98 0xffff 0x00 AFBRYD
    0x99 0xffff 0x00 LIST400
    0x9a 0xffff 0x00 LISS
    0x9b 0xffff 0x00 LST

Wrapper

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