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

⟦6cfc91834⟧ COMAL_SAVE

    Length: 4400 (0x1130)
    Types: COMAL_SAVE
    Notes: ENSPLT11
    Names: »ENSPLT11«

Derivation

└─⟦714f3848e⟧ Bits:30006597 ALM Copy 24.9.79
    └─ ⟦this⟧ »BASIC::ENSPLT11« 

UPAS Segment

SAVE filename: "CLPRG111"

 0010 REM  CB ENKELTSPALTE LAGERANALYSE / ALLE MODULER I OMRÅDE / 12.12.79 «so»CLPRG111«nul»_
 0020 REM  KØRT 12.12.79 KL CA 18 / PL«nul» 
 0040 CONNECT "ASS" , 2610
 0045 PAGE = 0
 0050 PRINT "<12>" ;
 0060 PROC RADIX
 0070   FOR II = 4 + ( RA = 10 ) TO 1 STEP - 1
 0080     LET RAD$ ( II ) = CHR ( RA0 MOD RA + ( RA0 MOD RA > 9 ) * 7 + 48 - 16 * ( SP = 1 ) * ( RA0 = 0 ) ) ; RA0 = RA0 DIV RA
 0090   NEXT 
 0100 ENDPROC
 0110 PROC FIND
 0120   LET MIN = 1 ; MAX = EA * ( \ = 1 ) + PA * ( \ = 2 ) ; MIDT = MAX * ( ] > ADR ( \ , 1 ) ) DIV ( 2 - ( ] >= ADR ( \ , MAX ) ) ) ; JUMP = 0
 0130   IF ] <= ADR ( \ , 1 ) OR ] >= ADR ( \ , MAX ) THEN GOTO 0170
 0140   WHILE ADR ( \ , MIDT ) >= ] OR ADR ( \ , MIDT + 1 ) < ] DO
 0150     LET W = ( ] > ADR ( \ , MIDT ) ) ; S = NOT W ; MIN = MIN * S + MIDT * W ; MAX = MAX * W + MIDT * S ; MIDT = ( MIN + MAX ) DIV 2
 0160   ENDWHILE
 0170   IF ADR ( \ , MIDT + 1 ) <> ] THEN GOTO 0200
 0180   READ FILE ( [FAIL RENDER FUNC READ 8bf87ff941100000f18df97f41100000f792f193e2f9][8bf87ff941100000f18df97f41100000f792f193e2f9]
 0190   LET JUMP = 1 ; UD$ = UD$ ( 1 , 5 + ( \ = 2 ) * ( LEN ( UD$ ) - 5 ) )
 0200 ENDPROC
 0210 REM  MAINPROC START  LAGERUD  // CB 12.11.79«nul»
 0220 CLOSE
 0230 PAGE = 0
 0240 DIM DAT$ ( 8 ) , UD$ ( 15 ) , UDSKRIFT$ ( 80 ) , UDSK$ ( 13 ) , T$ ( 12 , 8 ) , HJ[LP$ ( 10 ) , RAD$ ( 5 ) , PIL$ ( 5 ) , ADR ( 2 , 280 )
 0250 DEF FNB ( VAR98 ) = ABS ( S ) MOD 10 ^ [LVAR]  DIV 10 ^ ( [LVAR]  - 1 ) + 48 - 16 * ( ABS ( S ) DIV 10 ^ ( [LVAR]  - 1 ) = 0 ) * ( [LVAR]  <> 1 )
 0260 LET EA = 279 ; PA = 138 ; RAD$ = "     " ; UDSK$ = "                                 "
 0270 OPEN FILE ( 0 , 4 ) "CO10.ENT"
 0280 OPEN FILE ( 1 , 4 ) "CO...PSE"
 0290 OPEN FILE ( 3 , 4 ) "CO...STA"
 0300 OPEN FILE ( 4 , 4 ) "CO...USE"
 0310 FOR S = 1 TO EA + 1
 0320   READ FILE ( 0 , S ) ADR ( 1 , S )
 0330   IF S <= PA THEN READ FILE ( 1 , S ) ADR ( 2 , S )
 0340   IF S <= 12 THEN READ T$ ( S )
 0350 NEXT 
 0360 DATA " ZOC" , " LRS" , " SCP" , "BNBZDNDZ" , "    " , ",SKP" , ",SZC" , ",SNC" , ",SZR" , ",SNR" , ",SEZ" , ",SBN"
 0369 RESTORE 2001
 0370 READ STS , SLS
 0371 LET OS = 1 ; UUU = OS
 0372 PRINT "<12>" ;
 0380 PROC HEAD
 0385   PRINT
 0390   PRINT TAB ( 36 ) ; "_____________________      __________________"
 0400   PRINT "   ADR INDHOLD      INSTRUKTION    !AC0 !AC1 !AC2 !AC3 !      ! ADR ! INDHOLD"
 0410   PRINT "  ---------------------------------!----!----!----!----!------!-----!-----------"
 0415   PRINT "                                   !____!____!____!____!      !_____!___________"
 0420 ENDPROC
 0430 FOR III = 1 TO UUU
 0440   LET POS = 0
 0450   REPEAT 
 0460     LET POS = POS + 1
 0470   UNTIL ADR ( 1 , POS ) >= STS
 0480   IF POS < 280 THEN READ FILE ( 0 , POS ) PIL , PIL$
 0490   EXEC HEAD
 0500   LET B = STS - 1 + ( STS = 0 )
 0510   CALL "GMEM" , B , B
 0520   LET CA = ( B = 3232 ) * ( STS <> 0 )
 0530   FOR ADRR = STS TO SLS
 0540     LET JUMP = 0 ; UDSK$ = "               "
 0550     CALL "GMEM" , ADRR , B
 0560     LET B1 = B DIV 256 ; B2 = B MOD 256 ; SP = 1 ; RA = 10 ; RA0 = B
 0570     EXEC RADIX
 0580     LET UDSK$ ( 9 , 13 ) = RAD$
 0590     IF ADRR <> PIL THEN
 0600       LET SP = 0 ; RA0 = ADRR
 0610       EXEC RADIX
 0620       LET UDSK$ ( 3 , 7 ) = RAD$
 0630     ENDIF 
 0640     IF ADRR < 22169 THEN GOTO 0700
 0650     LET UD$ = "               "
 0660     IF ADRR > 23172 AND ADRR < 23259 THEN GOTO 0700
 0670     IF ADRR > 22168 AND ADRR < 23173 THEN GOTO 1060
 0680     LET S = B1 ; UD$ = "." , CHR ( FNB ( 3 ) ) , CHR ( FNB ( 2 ) ) , CHR ( FNB ( 1 ) ) , "." ; S = B2 ; UD$ = UD$ , CHR ( FNB ( 3 ) ) , CHR ( FNB ( 2 ) ) , CHR ( FNB ( 1 ) ) , "."
 0690     GOTO 1060
 0700     WHILE ADRR = PIL DO
 0710       IF OS AND STS <> ADRR THEN EXEC HEAD
 0720       LET UDSK$ ( 1 , 5 ) = PIL$ , "   " ; UDSK$ ( 6 , 8 ) = "   " ; POS = POS + 1
 0730       READ FILE ( 0 , POS ) PIL , PIL$
 0740     ENDWHILE
 0750     IF CA THEN
 0760       LET \ = 1 ; ] = B
 0770       EXEC FIND
 0780     ENDIF 
 0790     IF NOT ( JUMP = 0 AND CA OR B < 256 OR ADRR < 311 ) THEN GOTO 0830
 0800     LET JUMP = 1 ; SP = ( B < 256 OR ADRR < 311 ) ; RA = 10 ; RA0 = B
 0810     EXEC RADIX
 0820     LET UD$ = RAD$
 0830     LET CA = ( B = 3232 ) ; \ = 2 ; ] = B
 0840     IF JUMP THEN GOTO 1060
 0850     EXEC FIND
 0860     IF JUMP THEN GOTO 1060
 0870     REM    ALMEN OVERSÆTTELSE«nul»
 0880     READ FILE ( 3 , B1 + 1 ) UD$
 0890     IF UD$ = "FEJL" THEN GOTO 0800
 0900     IF B1 > 127 THEN
 0910       LET UD$ ( 4 ) = T$ ( 1 , B MOD 64 DIV 16 + 1 ) ; UD$ ( 4 + ( UD$ ( 4 ) <> " " ) ) = T$ ( 2 , B2 DIV 64 + 1 )
 0920       LET UD$ ( 11 , 14 ) = T$ ( B MOD 8 + 5 ) ; UD$ ( 6 ) = CHR ( 32 + B MOD 16 DIV 8 * 3 )
 0930     ELSE 
 0940       IF B1 > 95 THEN
 0950         IF UD$ ( 1 ) <> "S" THEN LET S = B2 MOD 64 ; UD$ ( 4 ) = T$ ( 3 , B2 DIV 64 + 1 ) ; UD$ ( 10 , 11 ) = CHR ( FNB ( 2 ) ) , [FAIL RENDER FUNC LET f242f27f41100000f6f6e200][f242f27f41100000f6f6e200]
 0960         IF UD$ ( 1 ) = "S" THEN LET S = B2 MOD 64 ; UD$ ( 4 , 5 ) = T$ ( 4 , ( B2 DIV 64 ) * 2 + 1 , ( B2 DIV 64 ) * 2 + 2 )
 0970         IF UD$ ( 1 ) = "S" OR UD$ ( 1 ) = "N" THEN LET UD$ ( 8 , 15 ) = CHR ( FNB ( 2 ) ) , [FAIL RENDER FUNC LET f242f27f41100000f6f6f1e90f202020202020202020202020202020e220][f242f27f41100000f6f6f1e90f202020202020202020202020202020e220]
 0980       ELSE 
 0990         LET S = B2 - ( B MOD 1024 DIV 256 <> 0 ) * ( B2 > 127 ) * 256 ; LS = 2 * ( B1 DIV 32 <> 0 )
 1000         LET UD$ ( 8 + LS , 11 + LS ) = CHR ( 43 + 2 * ( S < 0 ) ) , [FAIL RENDER FUNC LET f242f27f41300000f6f6f16ef242f27f41200000f6f6f16ef242f27f41100000f6f6e220][f242f27f41300000f6f6f16ef242f27f41200000f6f6f16ef242f27f41100000f6f6e220]
 1010         IF B1 < 8 OR S < 11 OR S > 111 OR B MOD 1024 DIV 256 <> 3 OR ADRR < 4012 THEN GOTO 1040
 1020         READ FILE ( 4 , S ) HJ[LP$
 1030         LET UD$ ( 8 + LS , 15 ) = HJ[LP$ , "           "
 1040       ENDIF 
 1050     ENDIF 
 1060     REM «nul»
 1070     LET UD$ = UD$ , "               " ; UDSKRIFT$ = UDSK$ , "      " , UD$ , " !____!____!____!____!      !_____!___________"
 1080     PRINT UDSKRIFT$
 1090   NEXT 
 1100 NEXT 
 1110 GOTO 0370
 2000 DATA 6614 6645 6646 6687 6688 6742 6743 6774
 2001 DATA 6614 6645 6646 6687 6688 6727 6728 6774
 2010 DATA 6775 6806 6807 6839 6840 6881 6882 6925

UDAS Segment

    FNA definition = 0x0000
    FNB definition = 0x01c7
    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] = 0x04c2
      stack[1] = 0x0000
      stack[2] = 0x0000
      stack[3] = 0x0000
      stack[4] = 0x0000
      stack[5] = 0x0000
      stack[6] = 0x0000
    FOR-NEXT stack pointer = 0x0000
      Var# = 0x009f
      Loop Top = 0x033f
      To Val = 1   (0x41100000)
      Step Val = 1   (0x41100000)
      Var# = 0x00a4
      Loop Top = 0x038c
      To Val = 6925   (0x441b0d00)
      Step Val = 1   (0x41100000)
      Var# = 0x0082
      Loop Top = 0x006b
      To Val = 1   (0x41100000)
      Step Val = -1   (0xc1100000)
      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] = 0x0347
      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] = 0x00d2
      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] = 0x0001
      stack[2] = 0x0000
      stack[3] = 0x0000
      stack[4] = 0x0000
      stack[5] = 0x0000
      stack[6] = 0x0000
Variables:
    0x80 0xffff 0x00 
    0x81 0xffff 0x00 RADIX
    0x82 0xffff 0x00 II
    0x83 0xffff 0x00 RA
    0x84 0xffff 0x02 RAD$
    0x85 0xffff 0x00 RA0
    0x86 0xffff 0x00 SP
    0x87 0xffff 0x00 FIND
    0x88 0xffff 0x00 MIN
    0x89 0xffff 0x00 MAX
    0x8a 0xffff 0x00 EA
    0x8b 0xffff 0x00 \
    0x8c 0xffff 0x00 PA
    0x8d 0xffff 0x00 MIDT
    0x8e 0xffff 0x00 ]
    0x8f 0xffff 0x00 ADR
    0x90 0xffff 0x00 JUMP
    0x91 0xffff 0x00 W
    0x92 0xffff 0x00 S
    0x93 0xffff 0x02 UD$
    0x94 0xffff 0x02 DAT$
    0x95 0xffff 0x02 UDSKRIFT$
    0x96 0xffff 0x02 UDSK$
    0x97 0xffff 0x02 T$
    0x98 0xffff 0x02 HJ[LP$
    0x99 0xffff 0x02 PIL$
    0x9a 0xffff 0x00 STS
    0x9b 0xffff 0x00 SLS
    0x9c 0xffff 0x00 UUU
    0x9d 0xffff 0x00 OS
    0x9e 0xffff 0x00 HEAD
    0x9f 0xffff 0x00 III
    0xa0 0xffff 0x00 POS
    0xa1 0xffff 0x00 PIL
    0xa2 0xffff 0x00 B
    0xa3 0xffff 0x00 CA
    0xa4 0xffff 0x00 ADRR
    0xa5 0xffff 0x00 B1
    0xa6 0xffff 0x00 B2
    0xa7 0xffff 0x00 LS

Wrapper

.magic = 0x5356
.u_pas = 0x0759  // Length of UPAS in words
.u_das = 0x0130  // Length of UDAS in words
.u_dvs = 0x0130  // Start på savede variabel indhold (word adr)
.u_nds = 0x0042  // Address på næste prog.sætning (word adr)
.u_cps = 0x007b  // Address på curr prog.sætning (word adr)
.u_tll = 0x0000  // 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)