|
|
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: 2560 (0xa00)
Types: COMAL_SAVE
Names: »REP50«
└─⟦466f46364⟧ Bits:30001785 SG0005 Floppy
└─⟦this⟧ »/REP50«
SAVE filename: "REP50" 0010 REM 830201PHK RE BINARY FILE DISASSSEMBLER«nul» 0020 LET WORDA = 1 0030 PROC WORD 0040 IF WORDA THEN 0050 READ FILE ( 1 ) WORDB 0060 CALL "FIX" , WORDB , WORDC , WORDD 0070 LET A = WORDC DIV 256 + 256 * ( WORDC MOD 256 ) WORDA = 0 0080 ELSE 0090 LET A = WORDD DIV 256 + 256 * ( WORDD MOD 256 ) WORDA = 1 0100 ENDIF 0110 ENDPROC 0120 DIM HEX4$ ( 16 ) 0130 LET HEX4$ = "0123456789ABCDEF" 0140 PROC HEX4 0150 PRINT HEX4$ ( A DIV 4096 + 1 ) ; HEX4$ ( A DIV 256 MOD 16 + 1 ) ; HEX4$ ( A DIV 16 MOD 16 + 1 ) ; HEX4$ ( A MOD 16 + 1 ) ; 0160 ENDPROC 0170 PROC HEX2 0180 PRINT HEX4$ ( A DIV 16 MOD 16 + 1 ) ; HEX4$ ( A MOD 16 + 1 ) ; 0190 ENDPROC 0200 DIM FIL$ ( 5 ) 0210 DIM RELOC ( 3 ) 0220 DIM RELOC$ ( 8 ) 0230 LET RELOC$ = " '<34>-=$*~" 0240 DIM ADR$ ( 1 ) 0250 DIM DAT$ ( 1 ) 0260 LET A = 0 0270 READ B , FIL$ 0280 IF B = - 1 THEN GOTO 0310 0290 LET A = A + 1 0300 GOTO 0270 0310 LET SYMMAX = A 0320 DIM SYMB ( SYMMAX ) , SYMB$ ( SYMMAX , 5 ) 0330 RESTORE 0000 0340 FOR A = 1 TO SYMMAX 0350 READ SYMB ( A ) , SYMB$ ( A ) 0360 NEXT 0370 INPUT "<12><6>`<10>INPUT FILENAME OF COPS TO DISASSEMBLE:" , FIL$ 0380 CLOSE 0390 OPEN FILE ( 1 , 1 ) FIL$ 0400 LET ENDF = 0 0410 REPEAT 0420 EXEC WORD 0430 LET BLKTP = A 0440 EXEC WORD 0450 LET LENGTH = A 0460 CASE BLKTP OF 0470 PRINT "UNPROCESSED BLOCK. TYPE:" ; 0480 LET A = BLKTP 0490 EXEC HEX4 0500 PRINT 0510 FOR B = LENGTH TO 65539 0520 EXEC WORD 0530 NEXT 0540 WHEN 0 0550 LET ENDF = 1 0560 WHEN 2 0570 FOR B = 1 TO 3 0580 EXEC WORD 0590 LET RELOC ( B ) = A 0600 NEXT 0610 EXEC WORD 0620 EXEC WORD 0630 LET ADR = A 0640 LET ADR$ = RELOC$ ( RELOC ( 1 ) DIV 8192 ) 0650 FOR B = LENGTH TO 65534 0660 LET A = ADR C = B - LENGTH + 1 0670 EXEC HEX4 0680 PRINT ADR$ ; " " ; 0690 EXEC WORD 0700 EXEC HEX4 0710 LET DAT$ = RELOC$ ( RELOC ( C DIV 5 + 1 ) / 2 DIV 8 ^ ( 4 - C MOD 5 ) MOD 8 ) 0720 PRINT DAT$ ; " " ; 0730 CASE DAT$ OF 0740 REM «nul» 0750 WHEN " " 0760 LET C = A DIV 256 C = 32 + ( ( C - 32 ) * ( C > 32 AND C < 127 ) ) D = A MOD 256 D = 32 + ( D - 32 ) * ( D > 32 AND D < 127 ) 0770 PRINT CHR ( C ) ; CHR ( D ) ; " " ; 0780 FOR C = 1 TO SYMMAX 0790 IF A = SYMB ( C ) THEN 0800 PRINT SYMB$ ( C ) ; 0810 LET C = SYMMAX D = 0 0820 ENDIF 0830 NEXT 0840 IF NOT D THEN GOTO 0960 0850 PRINT "INSTR" ; 0860 WHEN "'" 0870 PRINT " " ; 0880 EXEC HEX4 0890 PRINT "'" ; 0900 WHEN "<34>" 0910 PRINT " " ; 0920 LET A = A / 2 0930 EXEC HEX4 0940 PRINT "'*2" ; 0950 ENDCASE «nul» 0960 LET ADR = ADR + 1 0970 PRINT 0980 NEXT 0990 WHEN 6 1000 FOR B = 1 TO 5 1010 EXEC WORD 1020 NEXT 1030 PRINT "ENTRYPOINT:" ; 1040 EXEC HEX4 1050 PRINT 1060 ENDCASE «nul» 1070 UNTIL ENDF 1080 DATA 0 "0" 1090 DATA 3232 "EXECU" 1100 DATA - 1 " "
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 = 0x0001
stack[0] = 0x0244
stack[1] = 0x0000
stack[2] = 0x0000
stack[3] = 0x0000
stack[4] = 0x0000
stack[5] = 0x0000
stack[6] = 0x0000
FOR-NEXT stack pointer = 0x0001
Var# = 0x01a7
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 = 3.08853e-84 (0x00000006)
Var# = 0x0082
Loop Top = 0x0222
To Val = 65534 (0x44fffe00)
Step Val = 1 (0x41100000)
Var# = 0x0084
Loop Top = 0x02b2
To Val = 2 (0x41200000)
Step Val = 1 (0x41100000)
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 0xffff 0x00
0x81 0xffff 0x00 WORD
0x82 0x0030 0x00 B
0x83 0x002e 0x00 A
0x84 0x005a 0x00 C
0x85 0x005c 0x00 D
0x86 0x0000 0x00 WORDA
0x87 0x004e 0x00 WORDB
0x88 0x0050 0x00 WORDC
0x89 0x0052 0x00 WORDD
0x8a 0xffff 0x00 HEX4
0x8b 0x0002 0x02 HEX4$
0x8c 0xffff 0x00 HEX2
0x8d 0x000d 0x02 FIL$
0x8e 0x004c 0x00 ENDF
0x8f 0x0054 0x00 BLKTP
0x90 0x0056 0x00 LENGTH
0x91 0x0013 0x01 RELOC
0x92 0x001f 0x02 RELOC$
0x93 0x0026 0x02 ADR$
0x94 0x0058 0x00 ADR
0x95 0x002a 0x02 DAT$
0x96 0x0032 0x00 SYMMAX
0x97 0x0034 0x01 SYMB
0x98 0x003d 0x03 SYMB$
.magic = 0x4e32 .u_pas = 0x0364 // Length of UPAS in words .u_das = 0x0143 // Length of UDAS in words .u_dvs = 0x00e5 // Start på savede variabel indhold (word adr) .u_nds = 0x00eb // Address på næste prog.sætning (word adr) .u_cps = 0x00be // Address på curr prog.sætning (word adr) .u_tll = 0x0000 // 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 = 0x035b // ON ESE (word adr) .u_era = 0x06b4 // ON ERR (word adr) .u_cas = 0xffff // CASE dybde .u_las = 0xffff // last (-1)