|
|
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: 4664 (0x1238)
Types: COMAL_SAVE
Names: »CLPRG «
└─⟦3d9d2c4f1⟧ Bits:30001780 SG0000 Floppy
└─⟦this⟧ »/CLPRG «
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)