|
DataMuseum.dkPresents historical artifacts from the history of: RegneCentralen RC3600/RC7000 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RegneCentralen RC3600/RC7000 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 4400 (0x1130) Types: COMAL_SAVE Notes: BASIC::ENSPLT11, ENSPLT11 Names: »ENSPLT11«
└─⟦714f3848e⟧ Bits:30006597 ALM Copy 24.9.79 └─⟦this⟧ »BASIC::ENSPLT11«
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 ( \ - 1 , MIDT + 1 ) S , UD$ 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 ) ) , CHR ( FNB ( 1 ) ) 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 ) ) , CHR ( FNB ( 1 ) ) , " " 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 ) ) , CHR ( FNB ( 3 ) ) , CHR ( FNB ( 2 ) ) , CHR ( FNB ( 1 ) ) 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
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
.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)