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 - metrics - download

⟦8ea13fdff⟧ COMAL_SAVE

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

Derivation

└─⟦d85593a46⟧ Bits:30000470 DOMUS disk image - User files
    └─⟦this⟧ »/IB10« 

UPAS Segment

SAVE filename: "IB10"

 0010 REM  (+ HOVEDPROGRAM UDVIKLET AF IB OLSEN  -  1982 +)«nul»
 0020 PRINT "<27>AF"
 0030 PRINT "<27><12>"
 0040 DELAY = 1
 0050 PRINT TAB ( 10 ) ; "*** NUMERISK LOESNING AF ***"
 0060 PRINT TAB ( 10 ) ; "** DIFFERINTIALLIGNINGER **"
 0070 PRINT
 0080 PRINT
 0090 PRINT "PROGRAMMET KAN LØSE OP TIL TI FORSKELLIGE FØRSTEORDENS DIFFE-"
 0100 PRINT "RINTIALLIGNINGER AF NUMERISK VEJ. RESULTATET KOMMER UD SOM EN GRA-"
 0110 PRINT "FISK MODEL, HVOR SAMTLIGE LIGNINGER VIL BLIVE AFBILDET SOM FUNKTION"
 0120 PRINT "AF PARAMETEREN          AF PRAKTISKE FRUNDE HEDDER PARAMETEREN  "
 0130 PRINT " -T- OG  FUNKTIONSVAERDIEN  V(1....10)"
 0140 PRINT "EKSEMPEL: "
 0150 PRINT "         DX/DT = (A + BY)X"
 0160 PRINT "         DY/DT = (CX + D)Y"
 0170 PRINT "BLIVER:"
 0180 PRINT "         D(1)=(A+B*V(2))*V(1) *DT"
 0190 PRINT "         D(2)=(C*V(1)+D)*V(2) *DT"
 0200 PRINT
 0210 DIM DIF$ ( 30 )
 0220 INPUT "TAST -RETURN- NAR DU ER KLAR PAA OVERSTAAENDE !!" , DIF$
 0230 PRINT "<27><12>"
 0240 DELAY = 1
 0250 INPUT "INDTAST ANTAL DIFFERINTIALLIGNINGER : " , NUMDIF
 0255 EXEC START
 0260 CREATE "GEM" , 0
 0270 EXEC FILWORK
 0280 FOR I = 1 TO NUMDIF
 0290   ON ERR THEN GOTO 0330
 0300   OPEN FILE ( 0 , 3 ) "GEM"
 0310   OPEN FILE ( 0 , 3 ) "GEM"
 0330   ON ERR THEN GOTO 0370
 0340   PRINT "INDTAST D(" ; I ; ") = " ;
 0350   INPUT "" , DIF$
 0355   READ FIR$ , NEX$
 0360   WRITE FILE ( 0 ) " " , FIR$ , "LET D(" , NEX$ , ")=" , DIF$ , "<13><10>"
 0370   CLOSE
 0380   ENTER "GEM"
 0390   IF SYS ( 7 ) <> 42 THEN PRINT "DER  ER FEJL I LIGNINGEN,. PROEV IGEN!"
 0400   IF SYS ( 7 ) <> 42 THEN GOTO 0290
 0410   PRINT "INDTAST STARTVAERDIEN FOR V(" ; I ; "): " ;
 0420   INPUT "" , V ( I )
 0430 NEXT 
 0432 CLOSE
 0434 DELETE "GEM"
 0435 ON ERR THEN STOP «nul»  
 0440 DIM STEPV ( NUMDIF ) , MINV ( NUMDIF ) , A1 ( NUMDIF ) , A2 ( NUMDIF ) , A3 ( NUMDIF )
 0450 INPUT "INDTAST PARAMETEREMNS START- OG SLUT-  VAERDI : " , TBEGIN , TEND
 0460 LET DT = ( TEND - TBEGIN ) / 100
 0470 FOR I = 1 TO NUMDIF
 0480   LET VBEGIN ( I ) = V ( I )
 0490 NEXT 
 0500 FOR T = TBEGIN TO TEND STEP DT
 0510   EXEC MODEL
 0520   FOR I = 1 TO NUMDIF
 0530     LET V ( I ) = V ( I ) + D ( I )
 0540     IF V ( I ) > A1 ( I ) THEN LET A1 ( I ) = V ( I )
 0550     IF V ( I ) < A2 ( I ) THEN LET A2 ( I ) = V ( I )
 0560   NEXT 
 0570 NEXT 
 0580 FOR I = 1 TO NUMDIF
 0590   WHILE A1 ( I ) > 10 AND A2 ( I ) < - 10 DO
 0600     LET A1 ( I ) = A1 ( I ) / 10 A2 ( I ) = A2 ( I ) / 10 A3 ( I ) = A3 ( I ) + 1
 0610   ENDWHILE
 0620 NEXT 
 0630 LET ST = A1 ( 1 ) MI = A2 ( 1 )
 0640 FOR I = 2 TO NUMDIF
 0650   IF A1 ( I ) > ST THEN LET ST = A1 ( I )
 0660   IF A2 ( I ) < MI THEN LET MI = A2 ( I )
 0670 NEXT 
 0680 FOR I = 1 TO NUMDIF
 0690   LET A1 ( I ) = INT ( ST + 1 ) * 10 ^ A3 ( I )
 0700   LET MINV ( I ) = INT ( MI ) * 10 ^ A3 ( I )
 0710 NEXT 
 0720 EXEC RESTART
 0730 LET S = 700 / ( ST - MI )
 0740 FOR I = 1 TO NUMDIF
 0750   LET X = 25 + ( I - 1 ) * 50
 0760   CALL "GRAPH" , X , 60
 0770   CALL "OUTVECT" , X , 760
 0780   CALL "OUTVECT" , X + 4 , 756
 0790   CALL "OUTVECT" , X - 4 , 756
 0800   CALL "OUTVECT" , X , 760
 0810   CALL "GRAPH" , X - 25 , 760
 0820   CALL "ALPHA"
 0830   PRINT A1 ( I )
 0840   FOR J = 760 - S TO 60 STEP - S
 0850     CALL "GRAPH" , X - 4 , J
 0860     CALL "OUTVECT" , X + 4 , J
 0870   NEXT 
 0880   CALL "GRAPH" , X - 25 , 45
 0890   CALL "ALPHA"
 0900   PRINT MINV ( I )
 0910   CALL "GRAPH" , X - 25 , 20
 0920   CALL "ALPHA"
 0930   PRINT "V(" ; I ; ")"
 0940 NEXT 
 0950 LET Y = 60
 0960 IF MI < 0 THEN LET Y = - MI * S + 60
 0970 CALL "GRAPH" , X + 25 , Y
 0980 CALL "OUTVECT" , 1150 , Y
 0990 CALL "OUTVECT" , 1146 , Y - 4
 1000 CALL "OUTVECT" , 1146 , Y + 4
 1010 CALL "OUTVECT" , 1150 , Y
 1020 CALL "GRAPH" , 1155 , Y
 1030 CALL "ALPHA"
 1040 PRINT "T"
 1050 CALL "GRAPH" , 1135 , Y - 15
 1060 CALL "ALPHA"
 1070 PRINT TEND
 1080 LET S = ( 1125 - X ) / ( TEND - TBEGIN ) J = X + 25
 1090 IF TBEGIN < 0 THEN
 1100   LET MI = J - TBEGIN * S
 1110   CALL "GRAPH" , M1 , Y - 4
 1120   CALL "OUTVECT" , MI , Y + 4
 1130   CALL "GRAPH" , MI - 2 , Y - 19
 1140   CALL "ALPHA"
 1150   PRINT "0"
 1160 ENDIF 
 1180 FOR I = 1 TO NUMDIF
 1190   LET STEPV ( I ) = 700 / ( A1 ( I ) - MINV ( I ) )
 1200 NEXT 
 1210 EXEC RUNMODEL
 1220 FOR I = 1 TO NUMDIF
 1230   CALL "GRAPH" , 1150 , ( V ( I ) - MINV ( I ) ) * STEPV ( I ) + 53
 1240   CALL "ALPHA"
 1250   PRINT "V(" ; I ; ")"
 1260 NEXT 
 1270 PRINT "<27>AF"
 1280 END «nul»
 1300 PROC MODEL
 1310   LET D ( 1 ) = SIN ( V ( 1 ) ) * DT
 1320   REM  (*D2*)«nul»
 1330   REM  (*D3*)«nul»
 1340   REM  (*D4*)«nul»
 1350   REM  (*D5*)«nul»
 1360   REM  (*D6*)«nul»
 1370   REM  (*D7*)«nul»
 1380   REM  (*D8*)«nul»
 1390   REM  (*D9*)«nul»
 1400   REM  (*D10*)«nul»)
 1410 ENDPROC
 1500 PROC FILWORK
 1510   DATA "1310" , "1" , "1320" , "2" , "1330" , "3"
 1520   DATA "1340" , "4" , "1350" , "5" , "1360" , "6"
 1530   DATA "1370" , "7" , "1380" , "8" , "1390" , "1400" , "9" , "1410" , "10"
 1540   DIM FIR$ ( 4 ) , NEX$ ( 2 )
 1550 ENDPROC
 2000 PROC REPORT
 2010   FOR I = 1 TO NUMDIF
 2020     LET X = ( TLAST - TBEGIN ) * S + J Y = ( VLAST ( I ) - MINV ( I ) ) * STEPV ( I ) + 60
 2030     CALL "GRAPH" , X , Y
 2040     LET X = ( T - TBEGIN ) * S + J Y = ( V ( I ) - MINV ( I ) ) * STEPV ( I ) + 60
 2050     CALL "OUTVECT" , X , Y
 2060   NEXT 
 2070 ENDPROC +++REPORT+++«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] = 0x03c0
      stack[1] = 0x0302
      stack[2] = 0x02f9
      stack[3] = 0x02f9
      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# = 0x0084
      Loop Top = 0x0398
      To Val = 1   (0x41100000)
      Step Val = 1   (0x41100000)
      Var# = 0x0084
      Loop Top = 0x0302
      To Val = 1   (0x41100000)
      Step Val = 1   (0x41100000)
      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 0x02 DIF$
    0x82 0x0012 0x00 NUMDIF
    0x83 0xffff 0x00 FILWORK
    0x84 0xffff 0x00 I
    0x85 0xffff 0x00 V
    0x86 0xffff 0x00 STEPV
    0x87 0xffff 0x00 MINV
    0x88 0xffff 0x00 A1
    0x89 0xffff 0x00 A2
    0x8a 0xffff 0x00 A3
    0x8b 0xffff 0x00 TBEGIN
    0x8c 0xffff 0x00 TEND
    0x8d 0xffff 0x00 REPINT
    0x8e 0xffff 0x00 VBEGIN
    0x8f 0xffff 0x00 T
    0x90 0xffff 0x00 MODEL
    0x91 0xffff 0x00 D
    0x92 0xffff 0x00 ENDWHILW
    0x93 0xffff 0x00 ST
    0x94 0xffff 0x00 MI
    0x95 0xffff 0x00 RESTART
    0x96 0xffff 0x00 S
    0x97 0xffff 0x00 X
    0x98 0xffff 0x00 J
    0x99 0xffff 0x00 Y
    0x9a 0xffff 0x00 M1
    0x9b 0xffff 0x00 RUNMODEL
    0x9c 0xffff 0x00 REPORT
    0x9d 0xffff 0x00 TLAST
    0x9e 0xffff 0x00 VLAST
    0x9f 0xffff 0x02 FIRST$
    0xa0 0xffff 0x02 FIR$
    0xa1 0xffff 0x02 NEX$
    0xa2 0xffff 0x00 ENDF
    0xa3 0xffff 0x00 DT
    0xa4 0xffff 0x00 LIDST
    0xa5 0xffff 0x00 TT
    0xa6 0xffff 0x00 START

Wrapper

.magic = 0x4e32
.u_pas = 0x06b4  // Length of UPAS in words
.u_das = 0x013f  // Length of UDAS in words
.u_dvs = 0x012b  // Start på savede variabel indhold (word adr)
.u_nds = 0x01eb  // Address på næste prog.sætning (word adr)
.u_cps = 0x01d3  // 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)