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

⟦0a87d89bf⟧ COMAL_SAVE

    Length: 3500 (0xdac)
    Types: COMAL_SAVE

Derivation

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

UPAS Segment

SAVE filename: "CALC"

 0010 PRINT "<27><12>"
 0020 DELAY = 1
 0030 DIM Q1$ ( 75 ) , Q2$ ( 75 )
 0040 ENTER "LGNN"
 0050 PRINT
 0060 LET AFBRYD = 0
 0070 ON ESC THEN EXEC OUTESC
 0080 OPEN FILE ( 0 , 1 ) "ANT"
 0090 READ FILE ( 0 ) MQZ5 , NQZ5 , CQZ5
 0095 CLOSE FILE ( 0 )
 0100 DIM S$ ( MQZ5 + NQZ5 , 10 )
 0110 DIM XQZ5 ( MQZ5 ) , YQZ5 ( NQZ5 )
 0140 OPEN FILE ( 1 , 1 ) "PRNT"
 0145 PRINT "SYMBOLER:"
 0146 PRINT
 0150 FOR I = 1 TO MQZ5 + NQZ5
 0160   READ FILE ( 1 ) S$ ( I ) , Q1$
 0165   IF S$ ( I ) = "" THEN GOTO 0175
 0168   IF Q1$ = "" THEN PRINT S$ ( I )
 0170   IF ( S$ ( I ) <> "" ) * ( Q1$ <> "" ) THEN PRINT S$ ( I ) ; ": " ; Q1$
 0175 NEXT 
 0176 PRINT
 0181 PRINT "FORMLER/BEREGNINGSUDTRYK:"
 0182 PRINT
 0183 FOR I = 1 TO NQZ5
 0186   READ FILE ( 1 ) Q1$ , Q2$
 0187   IF LEN ( Q2$ ) < 2 THEN LET Q2$ = "  "
 0188   IF Q1$ = "QWZQ" THEN LET Q1$ = "" ; Q2$ = Q2$ ( 2 , LEN ( Q2$ ) )
 0190   PRINT "(" ; I ; ")    " ; Q1$ ; Q2$
 0200 NEXT 
 0210 CLOSE FILE ( 1 )
 0220 LET AFBRYD = 1
 0230 PRINT
 0232 PRINT "0NSKER DU NYE BEREGNINGER PAA GRUNDLAG AF GAMLE MAALERESULTATER"
 0234 INPUT "INDTAST 0. ELLERS ET VILKAARLIGT ANDET TAL." , Q
 0235 PRINT
 0236 IF Q = 0 THEN
 0237   LET AFBRYD = 0
 0238   EXEC CALC0
 0240 ELSE 
 0245   PRINT "EFTER HVERT HELT TALSAET DU INDTASTER, VISER COMPUTEREN ET SPR0RGS-"
 0250   PRINT "MAALSTEGN. TAST  RETURN , HVIS DU HAR FLERE TALSAET. SKRIV  "
 0260   PRINT "  SLET , HVIS DU HAR BEGAAET EN FEJL OG 0NSKER AT SLETTE FORE-"
 0270   PRINT "GAAENDE TAELSAET. SKRIV  END , HVIS DU ER FAERDIG."
 0280   PRINT
 0290   INPUT "NAAR DU ER PARAT, TAST RETURN." , Q1$
 0295   LET AFBRYD = 0
 0300   EXEC CALC
 0310   LET AFBRYD = 1
 0320 ENDIF 
 0470 PRINT
 0500 CHAIN "RTAB"
 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   REM «nul»
 0960 ENDPROC
 1010 ON ESC THEN EXEC OUTESC
 1020 ON ERR THEN EXEC OUTERR
 1040 PROC CALC
 1050   OPEN FILE ( 0 , 3 ) "STORE"
 1090   LET CQZ5 = 0
 1100   REPEAT 
 1110     LET CQZ5 = CQZ5 + 1
 1120     FOR I = 1 TO MQZ5
 1130       PRINT "  " ; S$ ( I ) ; " = " ;
 1135       IF I < MQZ5 THEN
 1140         INPUT XQZ5 ( I ) ;
 1142       ELSE 
 1145         INPUT XQZ5 ( I )
 1148       ENDIF 
 1150     NEXT 
 1160     EXEC MODEL
 1162     FOR I = 1 TO MQZ5
 1164       WRITE FILE ( 0 ) XQZ5 ( I )
 1166     NEXT 
 1170     FOR I = 1 TO NQZ5
 1180       WRITE FILE ( 0 ) YQZ5 ( I )
 1190     NEXT 
 1200     INPUT Q1$
 1205   UNTIL ( Q1$ = "END" )
 1210   CLOSE FILE ( 0 )
 1250   OPEN FILE ( 1 , 3 ) "ANT"
 1260   WRITE FILE ( 1 ) MQZ5 , NQZ5 , CQZ5
 1270   CLOSE FILE ( 1 )
 1300 ENDPROC
 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 "STOR2"
 2120 CREATE "STOR2" , INT ( ( 2 * 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
 2300 PROC CALC0
 2302 IF CQZ5 = 0 THEN GOTO 2520
 2305 DIM ZQZ5 ( CQZ5 , NQZ5 ) , WQZ5 ( CQZ5 , MQZ5 )
 2310 OPEN FILE ( 0 , 1 ) "STORE"
 2320 FOR JQZ5 = 1 TO CQZ5
 2330   FOR I = 1 TO MQZ5 + NQZ5
 2340     READ FILE ( 0 ) A
 2345     IF I <= MQZ5 THEN
 2350       LET XQZ5 ( I ) = A ; WQZ5 ( JQZ5 , I ) = XQZ5 ( I )
 2358     ENDIF 
 2360   NEXT 
 2370   EXEC MODEL
 2380   FOR I = 1 TO NQZ5
 2390     LET ZQZ5 ( JQZ5 , I ) = YQZ5 ( I )
 2395   NEXT 
 2400 NEXT 
 2410 CLOSE FILE ( 0 )
 2420 OPEN FILE ( 0 , 3 ) "STORE"
 2430 FOR JQZ5 = 1 TO CQZ5
 2440   FOR I = 1 TO MQZ5 + NQZ5
 2450     IF I <= MQZ5 THEN
 2460       WRITE FILE ( 0 ) WQZ5 ( JQZ5 , I )
 2470     ELSE 
 2480       WRITE FILE ( 0 ) ZQZ5 ( JQZ5 , I - MQZ5 )
 2489     ENDIF 
 2490   NEXT 
 2500 NEXT 
 2510 CLOSE FILE ( 0 )
 2520 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 0x02 S$
    0x9c 0xffff 0x02 B$
    0x9d 0xffff 0x02 F$
    0x9e 0xffff 0x00 R
    0x9f 0xffff 0x00 CALC
    0xa0 0xffff 0x00 COUNT
    0xa1 0xffff 0x00 Y
    0xa2 0xffff 0x02 Q1$
    0xa3 0xffff 0x02 Q2$
    0xa4 0xffff 0x00 XQZ5
    0xa5 0xffff 0x00 YQZ5
    0xa6 0xffff 0x00 S4
    0xa7 0xffff 0x00 MQZ5
    0xa8 0xffff 0x00 NQZ5
    0xa9 0xffff 0x00 CQZ5
    0xaa 0xffff 0x00 NQZW
    0xab 0xffff 0x00 CALC0
    0xac 0xffff 0x00 ZQZ5
    0xad 0xffff 0x00 JQZ5
    0xae 0xffff 0x00 A
    0xaf 0xffff 0x00 J
    0xb0 0xffff 0x00 WQZ5

Wrapper

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