|
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 - download
Length: 4664 (0x1238) Types: COMAL_SAVE Names: »CLPRG «
└─⟦3d9d2c4f1⟧ Bits:30001780 SG0000 Floppy └─⟦this⟧
SAVE filename: "CLPRG" 0010 REM 22.12.81 273 SM Morten Marquard 2vmf ** BASIC ** CLPRG ** se iøvrigt andre prg ** «so» CLPRG«nul»«nul» 0020 REM CB 12.11 - 15.11.79 «so»LAGERANALYSE M. PS ... "CLPRG"«nul» 0030 REM SPECIALVERSION MED EN SPALTE TIL BRUG VED MANUEL ANALYSE CB.11.12.79«nul» 0040 PAGE = 82 0050 CONNECT "ASS" , 9 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 ) + AD * ( \ = 3 ) 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 ) + ( \ = 3 ) ) * ( LEN ( UD$ ) - 5 ) ) 0200 ENDPROC 0210 CLOSE 0220 PAGE = 0 0230 DIM DAT$ ( 8 ) , UDD$ ( 50 ) , UD$ ( 17 ) , UDSKRIFT$ ( 81 ) , UDSK$ ( 13 ) , T$ ( 12 , 8 ) , HJ[LP$ ( 10 ) , RAD$ ( 5 ) , ADR ( 3 , 200 ) , CA ( 2 ) , B$ ( 20 ) 0240 DEF FNB ( VAR98 ) = ABS ( S ) MOD 10 ^ [LVAR] DIV 10 ^ ( [LVAR] - 1 ) + 48 - 16 * ( ABS ( S ) DIV 10 ^ ( [LVAR] - 1 ) = 0 ) * ( [LVAR] <> 1 ) 0250 LET EA = 20 PA = 140 AD = 195 RAD$ = " " UDSK$ = " " 0260 OPEN FILE ( 0 , 4 ) "R.ENT" 0270 OPEN FILE ( 1 , 4 ) "R.PSE" 0280 OPEN FILE ( 2 , 4 ) "R.ADR" 0290 OPEN FILE ( 3 , 4 ) "R.STA" 0300 OPEN FILE ( 4 , 4 ) "R.DSE" 0310 OPEN FILE ( 7 , 4 ) "CAL25" 0320 READ FILE ( 7 , 32 ) CUR 0330 READ FILE ( 7 , CUR + 50 ) CTOP 0340 READ FILE ( 7 , CUR + 55 ) FCTOP 0350 FOR S = 1 TO AD + 1 0360 IF S <= EA THEN READ FILE ( 0 , S ) ADR ( 1 , S ) 0370 IF S <= PA THEN READ FILE ( 1 , S ) ADR ( 2 , S ) 0380 IF S <= 12 THEN READ T$ ( S ) 0390 NEXT 0400 DATA " ZOC" , " LRS" , " SCP" , "BNBZDNDZ" , " " , ",SKP" , ",SZC" , ",SNC" , ",SZR" , ",SNR" , ",SEZ" , ",SBN" 0410 INPUT "START SIDE " , STS , "<13><10>SLUT SIDE " , SLS 0420 FOR III = STS TO SLS 0430 PRINT "<12>" 0440 PRINT TAB ( 38 ) ; "_____________________ _________________" 0450 PRINT " ADR INDHOLD INSTRUKTION !AC0 !AC1 !AC2 !AC3 ! ! ADR ! INDHOLD" 0460 PRINT " -----------------------------------!----!----!----!----!------!----------------" 0470 READ FILE ( 7 , III * 60 ) B 0480 LET CA ( 1 ) = ( B = 3232 ) CA ( 2 ) = ( B = 3236 ) 0490 FOR ADRR = III * 64 TO III * 64 + 63 0500 LET JUMP = 0 UDSK$ = " " 0510 READ FILE ( 7 , ADRR ) B 0520 LET UDD$ = " !____!____!____!____! !_____!______________" 0530 LET B1 = B DIV 256 B2 = B MOD 256 SP = 1 RA = 10 RA0 = B 0540 EXEC RADIX 0550 LET UDSK$ ( 9 , 13 ) = RAD$ 0560 LET SP = 0 RA0 = ADRR 0570 LET \ = 3 ] = ADRR 0580 EXEC FIND 0590 IF JUMP THEN LET RAD$ = UD$ 0600 IF NOT JUMP THEN EXEC RADIX 0610 LET UDSK$ ( 3 , 7 ) = RAD$ 0620 IF ADRR < CUR THEN GOTO 0680 0630 LET UD$ = " " 0640 IF ADRR > CTOP AND ADRR < FCTOP THEN GOTO 0680 0650 IF ADRR > CUR AND ADRR < CTOP THEN GOTO 1070 0660 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 ) ) , "." 0670 GOTO 1070 0680 IF CA ( 1 ) THEN 0690 LET \ = 1 ] = B 0700 EXEC FIND 0701 IF JUMP = 0 THEN LET UD$ = RAD$ , " " JUMP = 1 0710 ENDIF 0720 IF CA ( 2 ) THEN 0730 READ FILE ( 1 , B + 142 ) UD$ 0731 LET JUMP = 1 0740 ENDIF 0750 IF NOT ( JUMP = 0 AND CA ( 1 ) AND CA ( 2 ) OR B < 256 OR ADRR < 311 ) THEN GOTO 0790 0760 LET JUMP = 1 SP = ( B < 256 OR ADRR < 311 ) RA = 10 RA0 = B 0770 EXEC RADIX 0780 LET UD$ = RAD$ 0790 LET CA ( 1 ) = ( B = 3232 ) CA ( 2 ) = ( B = 3236 ) \ = 2 ] = B 0800 IF JUMP THEN GOTO 1070 0810 EXEC FIND 0820 IF JUMP THEN GOTO 1070 0830 READ FILE ( 3 , B1 + 1 ) UD$ 0840 LET UD$ = UD$ , " " 0850 IF UD$ ( 1 , 4 ) = "FEJL" THEN GOTO 0760 0860 IF B1 > 127 THEN 0870 LET UD$ ( 4 ) = T$ ( 1 , B MOD 64 DIV 16 + 1 ) UD$ ( 4 + ( UD$ ( 4 ) <> " " ) ) = T$ ( 2 , B2 DIV 64 + 1 ) 0880 LET UD$ ( 11 , 14 ) = T$ ( B MOD 8 + 5 ) UD$ ( 6 ) = CHR ( 32 + B MOD 16 DIV 8 * 3 ) 0890 ELSE 0900 IF B1 > 95 THEN 0910 IF UD$ ( 1 ) <> "S" THEN LET S = B2 MOD 64 UD$ ( 4 ) = T$ ( 3 , B2 DIV 64 + 1 ) UD$ ( 9 , 10 ) = CHR ( FNB ( 2 ) ) , CHR ( FNB ( 1 ) ) 0920 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 ) 0930 IF UD$ ( 1 ) = "S" OR UD$ ( 1 ) = "N" THEN LET UD$ ( 7 , 10 ) = CHR ( FNB ( 2 ) ) , CHR ( FNB ( 1 ) ) , " " 0940 IF S > 2 THEN IF S < 65 THEN 0950 READ FILE ( 3 , 508 + S ) B$ 0960 LET B$ = B$ ( 1 , 5 ) 0970 LET UD$ ( 9 - 2 * ( ( B1 = 96 ) + ( B1 = 103 ) ) , 8 - 2 * ( ( B1 = 96 ) + ( B1 = 103 ) ) + LEN ( B$ ) ) = B$ 0980 ENDIF 0990 ELSE 1000 LET S = B2 - ( B MOD 1024 DIV 256 <> 0 ) * ( B2 > 127 ) * 256 LS = 2 * ( B1 DIV 32 <> 0 ) 1010 LET UD$ ( 6 + LS , 9 + LS ) = CHR ( 43 + 2 * ( S < 0 ) ) , CHR ( FNB ( 3 ) ) , CHR ( FNB ( 2 ) ) , CHR ( FNB ( 1 ) ) 1020 IF B1 > 7 AND S > 10 AND S < 112 AND B1 MOD 4 = 3 THEN 1030 READ FILE ( 4 , S ) HJ[LP$ 1040 LET UD$ ( 6 + LS , 15 ) = HJ[LP$ , ",3 " 1045 ENDIF 1050 ENDIF 1060 ENDIF 1070 REM «nul» 1080 LET UD$ = UD$ , " " UDSKRIFT$ = UDSK$ , " " 1081 LET UDSKRIFT$ = UDSKRIFT$ , CHR ( 32 + ( B1 - 32 ) * ( B1 > 31 AND B1 < 127 ) ) 1082 LET UDSKRIFT$ = UDSKRIFT$ , CHR ( 32 + ( B2 - 32 ) * ( B2 > 31 AND B2 < 127 ) ) 1083 LET UDSKRIFT$ = UDSKRIFT$ , " " , UD$ , UDD$ 1090 PRINT UDSKRIFT$ 1100 NEXT 1110 NEXT 1120 CLOSE 1130 END «nul»
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 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 AD 0x8e 0xffff 0x00 MIDT 0x8f 0xffff 0x00 ] 0x90 0xffff 0x00 ADR 0x91 0xffff 0x00 JUMP 0x92 0xffff 0x00 W 0x93 0xffff 0x00 S 0x94 0xffff 0x02 UD$ 0x95 0xffff 0x02 DAT$ 0x96 0xffff 0x02 UDD$ 0x97 0xffff 0x02 UDSKRIFT$ 0x98 0xffff 0x02 UDSK$ 0x99 0xffff 0x02 T$ 0x9a 0xffff 0x02 HJ[LP$ 0x9b 0xffff 0x00 CA 0x9c 0xffff 0x02 B$ 0x9d 0xffff 0x00 CUR 0x9e 0xffff 0x00 CTOP 0x9f 0xffff 0x00 FCTOP 0xa0 0xffff 0x00 STS 0xa1 0xffff 0x00 SLS 0xa2 0xffff 0x00 III 0xa3 0xffff 0x00 B 0xa4 0xffff 0x00 ADRR 0xa5 0xffff 0x00 B1 0xa6 0xffff 0x00 B2 0xa7 0xffff 0x00 LS
.magic = 0x4e32 .u_pas = 0x07d9 // 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 = 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)