|
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: 7546 (0x1d7a) Types: COMAL_SAVE Names: »LAGER «
└─⟦3d9d2c4f1⟧ Bits:30001780 SG0000 Floppy └─⟦this⟧ »/LAGER «
SAVE filename: "LAGER" 0005 REM FILNAVN: LIB:LAGER PLFL2:L.UD2 IØVR(SAVET):LUD2«nul» 0010 REM PL 2.11.81 LAGERUDSKRIVNINGSPROGRAM ENSPALTET «so» LUD1«nul». 0030 REM PL 8.11.81 DISASSEMBLER INDLAGT ISTF FORKORTET NOTATION > LUD2«nul» 0050 ON ESC THEN NEW 0060 LET HEAD = 1 ALM = 1 0062 LET ALM = 0 0070 EXEC PRGSTART 0080 LET SIDE = SIDE1 0090 EXEC NYSIDE 0100 FOR ADR1 = INT ( SIDE * PAGIN + 0.2 ) TO INT ( SIDE * PAGIN + LINIER - 0.8 ) 0110 GOTO 0130 0120 IF FIL$ <> "" THEN IF ADR1 MOD 16 = 0 THEN PRINT FILE ( 1 ) 0130 LET L$ = "" 0140 LET ADR = ADR1 0150 IF ADR > 32767 THEN GOTO 0870 0160 CALL "GMEM" , ADR , X 0170 LET XX = X JUMP = 0 UNDT = 0 0180 LET D$ = CHR ( 32 + ( ADR MOD 5 = 0 ) * ( 2 + ADR MOD 10 ) ) NUL$ = "" NO = 0 0190 LET D$ = D$ , " " 0200 FOR TT = 6 TO 3 - ( X > 9999 ) STEP - 1 0210 LET D$ ( TT ) = CHR ( X MOD 10 + 32 + 16 * ( X > 0 ) ) 0220 LET X = X DIV 10 0230 NEXT 0240 LET X = XX L$ = L$ , D$ ( 1 , 6 ) D$ = "" 0250 LET B1 = X DIV 256 B2 = X MOD 256 0260 FOR I = 1 TO 2 0270 IF I = 2 THEN LET B1 = B2 0280 IF B1 = 0 OR B1 = 10 OR B1 = 13 OR B1 = 32 OR B1 > 47 AND B1 < 58 OR B1 > 64 AND B1 < 91 OR BETING AND B1 > 96 AND B1 < 123 THEN 0290 IF B1 < 32 THEN LET B1 = 96 - ( B1 > 1 ) - ( B1 = 10 ) 0300 IF I = 1 THEN LET D$ = D$ , " " , CHR ( B1 ) 0310 IF I = 2 THEN LET D$ = D$ , CHR ( B1 ) , " " 0320 ELSE 0330 LET D$ = D$ , " " 0340 GOTO 0360 0350 LET D$ = D$ , CHR ( 126 + ( B1 DIV 10 - 78 ) * ( B1 DIV 10 <> 0 ) + 39 * ( B1 > 99 ) ) , CHR ( B1 MOD 10 + 48 ) 0360 ENDIF 0370 NEXT 0380 IF HEAD THEN RETURN «nul» 0390 LET L$ = L$ , D$ 0400 REM «so» ......................................«nul» 0480 LET X1 = X DIV 256 X2 = X MOD 256 ASS$ = " " 0482 IF X1 < 96 THEN 0484 LET XINS = X1 DIV 8 * 3 + 1 ASS$ ( 1 , 4 ) = I$ ( XINS , XINS + 2 ) , CHR ( 32 * ( 1 + ( X1 MOD 8 > 3 ) ) ) MINUS = ( X1 MOD 4 <> 0 ) * ( X2 > 127 ) 0486 IF MINUS THEN LET X2 = 256 - X2 0488 LET STED = 6 + 2 * ( X1 > 31 ) - ( X2 < 100 ) 0490 FOR S = STED + 1 TO STED + 3 0492 LET I = STED + 3 - S J = X2 DIV ( 10 ^ I ) Y = J MOD 10 ASS$ ( S ) = CHR ( Y + 16 * ( J <> 0 OR I = 0 ) + 32 ) 0494 NEXT 0496 LET ASS$ ( STED + ( X2 < 100 ) ) = CHR ( 43 + 2 * MINUS ) 0498 IF X1 MOD 4 <> 0 THEN LET ASS$ ( STED + 4 , STED + 5 ) = "," , CHR ( X1 MOD 4 + 48 ) 0500 IF X1 > 31 THEN LET ASS$ ( 6 , 7 ) = CHR ( X1 DIV 8 MOD 4 + 48 ) , "," 0502 IF X1 = 0 THEN LET ASS$ = " " , ASS$ ( 7 , 8 + ( STED = 6 ) ) , " " 0504 ELSE 0506 LET XINS = ( X1 MOD 8 + 12 + 8 * ( X1 > 127 ) ) * 3 + 1 0508 LET ASS$ ( 1 , 3 ) = I$ ( XINS , XINS + 2 ) ASS$ ( 8 ) = "," ASS$ ( 7 + 2 * ( X1 > 127 ) ) = CHR ( X1 DIV 8 MOD 4 + 48 ) 0510 IF X1 < 128 THEN 0512 LET Y = X2 MOD 64 ASS$ ( 9 ) = CHR ( Y DIV 10 + 16 * ( Y DIV 10 <> 0 ) + 32 ) ASS$ ( 10 ) = CHR ( Y MOD 10 + 48 ) 0514 LET STED = 133 - 8 * ( X1 MOD 8 = 7 ) ASS$ ( 4 , 5 ) = I$ ( STED + 2 * ( X2 DIV 64 ) , STED + 1 + 2 * ( X2 DIV 64 ) ) 0516 ELSE 0518 LET ASS$ ( 7 ) = CHR ( X1 DIV 32 MOD 4 + 48 ) ASS$ ( 4 ) = I$ ( 85 + X2 DIV 16 MOD 4 ) ASS$ ( 5 - ( ASS$ ( 4 ) = " " ) ) = I$ ( 89 + ( X2 DIV 64 ) ) 0520 LET ASS$ ( 6 - ( ASS$ ( 5 ) = " " ) ) = CHR ( ( X2 DIV 8 MOD 2 ) * 3 + 32 ) ASS$ ( 10 , 13 ) = I$ ( 93 + 4 * ( X2 MOD 8 ) , 96 + 4 * ( X2 MOD 8 ) ) 0522 ENDIF 0524 ENDIF 0660 REM «so» .....................................«nul» 0670 REM FRA P3BY6 SYMB PAGEZERO-INSTR«nul». 0680 LET X1 = X DIV 256 X2 = X MOD 256 0690 IF ( X1 = 4 OR X1 = 12 ) AND T$ ( X2 * 4 + 1 , X2 * 4 + 4 ) <> " " THEN 0700 LET D$ = D$ ( 1 ) , " " NUL$ = "" 0710 IF T$ ( X2 * 4 + 1 , X2 * 4 + 4 ) <> " " THEN LET D$ ( 2 , 5 ) = T$ ( X2 * 4 + 1 , X2 * 4 + 4 ) 0712 LET ASS$ = ASS$ ( 1 , 10 ) , D$ ( 2 , 8 ) 0720 ENDIF 0730 REM SLUT FRA P3BY6 SYMB PAGEZERO-INSTR«nul» 0740 REM «so».....................................«nul» 0750 REM «nul»«so» 0760 LET L$ = L$ , ASS$ D$ = "" NUL$ = "" 0770 REM «so».....................................«nul» 0780 REM FRA @.LAJ IGEN (FLYTTET)«nul» 0790 LET X = XX 0800 LET Y = X MOD 256 X = X DIV 256 NUL$ = " " 0810 LET D$ = D$ , CHR ( 32 + ( X DIV 100 ) * 14 - ( X DIV 200 ) * 2 ) , CHR ( 32 + ( X DIV 10 <> 0 ) * 16 + X MOD 100 DIV 10 ) , CHR ( 48 + X MOD 10 ) 0820 LET D$ = D$ , CHR ( 32 + ( Y DIV 100 ) * 14 - ( Y DIV 200 ) * 2 ) , CHR ( 32 + ( Y DIV 10 <> 0 ) * 16 + Y MOD 100 DIV 10 ) , CHR ( 48 + Y MOD 10 ) 0830 REM SLUT FRA @.LAJ «nul» 0840 REM «so» .....................................«nul» 0850 REM «nul»«so» 0860 LET L$ = L$ , D$ 0890 PRINT "<6>y" ; CHR ( INT ( ADR1 - SIDE * PAGIN + 1.1 ) ) ; "! " ; L$ ; " !" 0900 NEXT 0920 CLOSE 0930 GOTO 0070 0940 REM «so» .......«nul» 0950 PROC NYSIDE 0960 PAGE = 132 0970 TAB = 25 0980 PRINT "<29>" 1000 PRINT "<6>dB STARTADR" ; SIDE * PAGIN 1210 LET HEAD = 0 BETING = ADR > UDA 1220 ENDPROC 1230 REM «so» .......«nul»- 1240 PROC PRGSTART 1250 RELEASE 1260 REM PL 1981: 7/3 DISKETTEPRG @.LBYTE 12/3 TALOPTION 14/9 INPUTJUSTERINGER«nul»6 1270 REM PL 1981: 4/10 OVERFØRT TIL DIABLO(LBYTE) 13/10 OVERSKR BYTE 16/10 LBYT6 ÆNDR REPR«nul»2 1280 REM PL 1981: 18/10 PAGEZEROSYMB 1/11 SMÅFEJL RETTET«nul»1 1290 REM PL 1981: 2.11.81 UDVIKLING AF LALL PÅ BASIS AF LBYT6 OG @.LAGSP(D)«nul» 1300 IF HEAD AND ALM THEN 1310 PRINT "<12><6>KK L.ALL REV PL 2.11.81 / P3AL1<29>" 1320 PRINT "*************************" 1330 PRINT "* CORELAGERUDSKRIFT *" 1340 PRINT "* TAL/BYTE/TEXT *" 1350 PRINT "* MED SYMB PAGEZEROINST *" 1360 PRINT " OG *" 1370 PRINT "* FULDST. DISASSEMBLING *" 1380 PRINT "*************************<13><10>PL 2.11.81 L.ALL/P3AL1<10>" 1382 PRINT "<10>ENSPALTET VERSION L.UD1" 1390 ENDIF 1400 CALL "GMEM" , 15 , UDA 1410 PAGE = 132 1420 CLOSE 1430 DIM FIL$ ( 5 ) , L$ ( 170 ) , D$ ( 24 ) , NUL$ ( 2 ) 1440 DIM T ( 4 ) , D$ ( 8 ) 1442 REM PL 7/8.11.81 DISASSEMBLER UDEN FILER «so» LDIS1 / P3DIS«nul» 1443 DIM I$ ( 150 ) , ASS$ ( 15 ) , S$ ( 5 ) 1444 LET I$ = "JMPJSRISZDSZLDALDALDALDASTASTASTASTANIODIADOADIBDOBDICDOCSKPCOMNEGMOVINCADCSUBADDAND" 1445 LET I$ = I$ , " ZOC LRS ,SKP,SZC,SNC,SZR,SNR,SEC,SBNBNBZDNDZ S C P " 1450 LET T ( 1 ) = 32 T ( 2 ) = 76 T ( 3 ) = 83 T ( 4 ) = 47 T ( 1 ) = 120 1470 INPUT "STARTADR " , ADR 1480 IF ADR < 0 THEN CHAIN "FILLÆ" 1490 LET KOLON = 1 LINIER = 20 PAGIN = LINIER SIDE1 = ADR / LINIER / KOLON 1530 PAGE = 0 1540 IF HEAD = 1 THEN 1550 DIM T$ ( 9 * 120 + 1 ) 1560 FOR I = 1 TO 9 1570 READ L$ 1580 LET L$ = L$ , " " T$ = T$ , L$ ( 3 , 122 ) 1590 NEXT 1600 IF LEN ( T$ ) <> 9 * 120 THEN PRINT T$ 1610 IF LEN ( T$ ) <> 9 * 120 THEN PRINT "<10><10>FEJL<10>" 1620 ENDIF 1630 LET BETING = 1 1650 ENDPROC 1660 REM FLG ER LAVET AF FACILITET I PRG LDAT3 (SE DENNE)«nul» 1670 DATA " waitwintsmeswanswevesanssearclenbreastopstrtrech " 1680 DATA " " 1690 DATA " " 1700 DATA " noperanscldewope " 1710 DATA " setisetrsetcconbsetbputbmultdivigetrputrwtrareshtraninbloublinchfrshouspouchounlouenoutxouocsetpclosopenwzoninnmmoveintp " 1720 DATA " igiv ibre bidcdcbi ex: ret0ret1ret2*er " 1730 DATA " " 1740 DATA " nwccfrcacdelwsemwchacwanctstcprictousignsigccpascrenloenchenreenicatsetecomocallgotogtad " 1750 DATA " gtpo csmesiggwgenctop " 1760 DATA " " 1770 REM «so» PAGE ZERO UDSKRIFT«nul» 1780 PRINT "<12><14> PAGE ZERO" 1790 PAGE = 132 1800 TAB = 7 1810 REM PL 9.10.81 PRG START SKAL VÆRE KØRT!«nul» 1820 FOR J = 0 TO 63 1830 FOR I = 1 TO 4 1840 LET ADR = ( I - 1 ) * 64 + J 1850 PRINT " " ; 1860 CALL "GMEM" , ADR , D 1870 PRINT "!#### # (#####) #### ##### !" , ADR , CHR ( 32 + ( ADR > 32 AND ADR < 126 ) * ( ADR - 32 ) ) , ADR * 256 , T$ ( ADR * 4 + 1 , ADR * 4 + 4 ) , D ; 1880 NEXT 1890 LET L$ = " " , CHR ( J DIV 10 + 48 ) , CHR ( J MOD 10 + 48 ) , " " 1900 IF J = 0 OR J > 26 AND J < 33 OR J > 34 AND J MOD 2 = 1 OR J > 58 THEN 1910 LET L$ = L$ , CHR ( ( J + 64 ) DIV 10 + 48 + 39 * ( J > 35 ) ) , CHR ( ( J + 64 ) MOD 10 + 48 ) 1920 ELSE 1930 LET L$ = L$ , CHR ( J + 64 ) , "/" 1940 ENDIF 1950 FOR AAA = 8 TO 2 STEP - 6 1960 LET L$ = L$ , " " , CHR ( ( J + AAA ) DIV 10 + 99 + 7 * ( AAA = 2 ) ) , CHR ( ( J + AAA ) MOD 10 + 48 ) 1970 NEXT 1980 PRINT L$ 1990 NEXT
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] = 0x00d4 stack[1] = 0x0621 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 = 3.37355e-80 (0x00010001) Var# = 0x0001 Loop Top = 0x0000 To Val = 0 (0x00000000) Step Val = 0 (0x00000000) Var# = 0x0087 Loop Top = 0x00b1 To Val = 10083 (0x44276300) Step Val = 1 (0x41100000) Var# = 0x009b Loop Top = 0x0170 To Val = 2 (0x41200000) Step Val = 1 (0x41100000) Var# = 0x008c Loop Top = 0x00b7 To Val = 10042 (0x44273a00) Step Val = 20 (0x42140000) REPEAT-UNTIL stack pointer = 0x009b stack[0] = 0x0154 stack[1] = 0x4120 stack[2] = 0x0000 stack[3] = 0x4110 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 HEAD 0x82 0xffff 0x00 PRGSTART 0x83 0xffff 0x00 SIDE 0x84 0xffff 0x00 SIDE1 0x85 0xffff 0x00 SIDE2 0x86 0xffff 0x00 NYSIDE 0x87 0xffff 0x00 ADR1 0x88 0xffff 0x00 PAGIN 0x89 0xffff 0x00 LINIER 0x8a 0xffff 0x02 FIL$ 0x8b 0xffff 0x02 L$ 0x8c 0xffff 0x00 ADR 0x8d 0xffff 0x00 KOLON 0x8e 0xffff 0x00 X 0x8f 0xffff 0x00 XX 0x90 0xffff 0x00 JUMP 0x91 0xffff 0x02 D$ 0x92 0xffff 0x02 NUL$ 0x93 0xffff 0x00 NO 0x94 0xffff 0x00 TAL 0x95 0xffff 0x00 X1 0x96 0xffff 0x00 X2 0x97 0xffff 0x02 T$ 0x98 0xffff 0x00 TT 0x99 0xffff 0x00 B1 0x9a 0xffff 0x00 B2 0x9b 0xffff 0x00 I 0x9c 0xffff 0x00 BRED 0x9d 0xffff 0x00 TABUL 0x9e 0xffff 0x00 UDA 0x9f 0xffff 0x00 J 0xa0 0xffff 0x00 D 0xa1 0xffff 0x00 LISY 0xa2 0xffff 0x00 LIAST 0xa3 0xffff 0x00 LIDT 0xa4 0xffff 0x00 BETING 0xa5 0xffff 0x00 CONNECFT 0xa6 0xffff 0x00 AAA 0xa7 0xffff 0x00 UNDT 0xa8 0xffff 0x00 FIR 0xa9 0xffff 0x00 UN 0xaa 0xffff 0x00 T 0xab 0xffff 0x00 Y 0xac 0xffff 0x00 KOLIN 0xad 0xffff 0x00 ALM 0xae 0xffff 0x02 ASS$ 0xaf 0xffff 0x00 XINS 0xb0 0xffff 0x02 I$ 0xb1 0xffff 0x00 MINUS 0xb2 0xffff 0x00 STED 0xb3 0xffff 0x00 S 0xb4 0xffff 0x02 S$
.magic = 0x4e32 .u_pas = 0x0d39 // Length of UPAS in words .u_das = 0x0171 // Length of UDAS in words .u_dvs = 0x0171 // Start på savede variabel indhold (word adr) .u_nds = 0x0042 // Address på næste prog.sætning (word adr) .u_cps = 0x0000 // Address på curr prog.sætning (word adr) .u_tll = 0x0084 // Page størrelse .u_tts = 0x0019 // 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)