|
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: 3584 (0xe00) Types: COMAL_SAVE Names: »PLRET«
└─⟦cb4367ef8⟧ Bits:30001782 SG0002 Floppy └─⟦this⟧
SAVE filename: "PLRE1" 8000 REM ARBEJDSPROGRAM TIL CALL-INDKØRING pl 7.9.80 kl 24 «so»@.LAGRET«nul»«nul» 8010 REM pl 9.9.80 /kører/ ld:I / uden sætn 8931 ff osse lager16«nul»A 8020 REM PL 7.9.80 lagerudskrivning med rettefacilitet; disass modif af @.lagspe«nul»«nul» 8040 CALL "KODESPEC" 8050 RELEASE 8060 PROC RAD 8070 LET I = 0 8080 REPEAT 8090 LET H = X DIV R C = X MOD R I = I + 1 X = H 8100 LET C = 48 + C + 7 * ( C > 9 ) 8110 LET D$ ( N + 1 - I ) = CHR ( C ) 8120 UNTIL H = 0 OR N < I + 1 8130 ENDPROC 8140 DIM T ( 4 ) , CH ( 3 ) , D$ ( 10 ) , NUL$ ( 2 ) , T$ ( 10 ) 8150 DIM TX$ ( 3 , 3 ) 8160 LET TAB1 = 95 TAB2 = 3 CHVL = 4 DADR = 10 8170 READ T ( 1 ) , T ( 2 ) , T ( 3 ) , T ( 4 ) , CH ( 1 ) , CH ( 2 ) , CH ( 3 ) 8180 DATA 120 76 83 47 10 16 8 8190 LET TX$ ( 1 ) = "dec" TX$ ( 2 ) = "hex" TX$ ( 3 ) = "oct" 8200 CLOSE 8210 PAGE = 80 8220 TAB = 7 8230 REPEAT 8250 INPUT "<10><10><7>udskrivning ønskes fra adr " , ADR1 8260 PRINT "<12>" 8270 GOTO 8290 8280 PRINT " ADR : DEC INSTR (127) HEX OCTAL" 8290 PRINT " adr : dec instr (127) hex octal" 8300 PRINT "----------------------------------------------------------" 8310 FOR ADR = ADR1 TO ADR1 + DADR 8320 CALL "GMEM" , ADR , X 8330 LET D$ = " " DAT = X 8340 IF NOT X THEN 8350 LET D$ = " " 8360 ELSE 8370 IF X < 32768 THEN 8380 IF X > 4095 THEN 8390 LET D$ = D$ , CHR ( T ( X MOD 32768 DIV 8192 + 1 ) ) , CHR ( 48 + X MOD 8192 DIV 2048 ) 8400 ELSE 8410 LET D$ = D$ , CHR ( 32 + 30 * ( X DIV 256 <> 0 ) - 20 * ( X MOD 4096 DIV 2048 ) ) 8420 ENDIF 8430 LET D$ = D$ , CHR ( 32 + 16 * ( X DIV 256 <> 0 ) + X MOD 2048 DIV 256 ) Y = X MOD 256 8440 IF X MOD 1024 DIV 256 THEN 8450 LET D$ = D$ , CHR ( 43 + ( Y DIV 128 ) * 2 ) Y = Y + ( Y DIV 128 ) * ( 256 - 2 * Y ) 8460 LET D$ = D$ , CHR ( 48 + Y DIV 10 + ( Y DIV 10 > 9 ) * 7 ) , CHR ( 48 + Y MOD 10 ) , " " 8470 ELSE 8480 LET D$ = D$ , "+" , CHR ( 32 + 16 * ( Y DIV 100 <> 0 ) + Y DIV 100 ) , CHR ( 48 + Y DIV 10 MOD 10 ) , CHR ( 48 + Y MOD 10 ) , " " 8490 LET NO = ( Y DIV 100 = 0 ) + ( Y DIV 10 = 0 ) 8500 IF NO THEN LET NUL$ = " " NUL$ = NUL$ ( 1 , NO ) 8510 ENDIF 8520 ELSE 8530 LET D$ = D$ , ":" , CHR ( 48 + X MOD 32768 DIV 8192 ) , CHR ( 48 + X MOD 8192 DIV 2048 ) , CHR ( 48 + X MOD 2048 DIV 256 ) 8540 LET D$ = D$ , CHR ( 32 + 16 * ( X MOD 256 <> 0 ) + X MOD 256 DIV 16 + 7 * ( X MOD 256 DIV 16 > 9 ) ) 8550 LET D$ = D$ , CHR ( 32 + 16 * ( X MOD 256 <> 0 ) + X MOD 16 + 7 * ( X MOD 16 > 9 ) ) , " " 8560 ENDIF 8570 ENDIF 8580 PRINT ADR , DAT , D$ , 8590 LET Y = X MOD 256 X = X DIV 256 8600 PRINT "<60>### ><60>### > " , X , Y , 8610 FOR JJ = 1 TO 2 8620 IF JJ = 2 THEN LET X = Y 8630 IF X > 31 AND X < 125 THEN 8640 PRINT CHR ( X ) ; 8650 ELSE 8660 PRINT "~" ; 8670 ENDIF 8680 NEXT 8690 LET R = 16 X = DAT D$ = " 0000 " N = 5 8700 EXEC RAD 8710 PRINT " " ; D$ ; 8720 LET R = 8 X = DAT D$ = " 000000 " N = 9 8730 LET T$ = " " 8740 EXEC RAD 8750 PRINT D$ 8760 NEXT 8770 REPEAT 8780 ON ESC THEN LET T$ = "" 8790 PRINT "<6><19><19>" ; 8800 INPUT "RETTE ADR " , ADRX , " I REPR (1=dec 2=hex 3=oct) " , CHVL 8805 PRINT "<26><26><31>" 8810 IF ADRX * CHVL = 0 OR T$ = "" THEN GOTO 8990 8820 IF ADRX < ADR1 OR ADRX > ADR1 + DADR THEN GOTO 8800 8830 PRINT "<6>" ; CHR ( TAB1 ) ; CHR ( TAB2 + ADRX - ADR1 ) ; TX$ ( CHVL ) ; 8840 INPUT " " , T$ 8850 IF LEN ( T$ ) THEN IF T$ ( 1 ) = " " OR T$ ( LEN ( T$ ) ) = " " THEN GOTO 8840 8860 LET RAD = CH ( CHVL ) C = LEN ( T$ ) Y = 0 8870 PRINT "<6><19><17>" ; 8880 FOR J = C TO 1 STEP - 1 8890 LET X = ORD ( T$ ( J ) ) - 48 - 7 * ( T$ ( J ) > "@" ) 8900 LET Y = Y + X * RAD ^ ( C - J ) 8920 NEXT 8930 PRINT "<6><19><15><31>" ; TX$ ( CHVL ) ; " " ; T$ ; " = dec " ; Y ; " lagres nu" 8931 PRINT "<6><19><15><31>" ; TX$ ( CHVL ) ; " " ; T$ ; " = dec" ; Y ; 8932 IF Y DIV 256 > 31 AND Y DIV 256 < 127 AND ( Y MOD 256 > 31 AND Y MOD 256 < 127 OR Y MOD 256 = 0 ) THEN PRINT " = txt " ; CHR ( Y DIV 256 ) ; CHR ( Y MOD 256 ) ; 8934 PRINT " lagres nu" 8940 ON ESC THEN LET D$ = "N" 8950 INPUT "OK? " , D$ 8960 IF D$ <> "J" THEN GOTO 8790 8970 CALL "SMEM" , ADRX , Y 8980 PRINT "D A T A L A G R E T ! ! !" 8990 UNTIL ADRX = 0 OR CHVL = 0 OR T$ = "" 9000 UNTIL 0 9010 FOR I = 1 TO 127 9020 LET J = 1 9030 PRINT "<6>" ; CHR ( I ) ; CHR ( J ) ; I ; J 9040 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] = 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 RAD 0x82 0xffff 0x00 I 0x83 0xffff 0x00 H 0x84 0xffff 0x00 X 0x85 0xffff 0x00 R 0x86 0xffff 0x00 C 0x87 0xffff 0x02 D$ 0x88 0xffff 0x00 N 0x89 0xffff 0x00 T 0x8a 0xffff 0x00 CH 0x8b 0xffff 0x02 NUL$ 0x8c 0xffff 0x02 T$ 0x8d 0xffff 0x02 TX$ 0x8e 0xffff 0x00 TAB1 0x8f 0xffff 0x00 TAB2 0x90 0xffff 0x00 CHVL 0x91 0xffff 0x00 DADR 0x92 0xffff 0x00 ADR1 0x93 0xffff 0x00 ADR 0x94 0xffff 0x00 DAT 0x95 0xffff 0x00 Y 0x96 0xffff 0x00 NO 0x97 0xffff 0x00 JJ 0x98 0xffff 0x00 ADRX 0x99 0xffff 0x00 J
.magic = 0x4e32 .u_pas = 0x05dc // Length of UPAS in words .u_das = 0x00ea // Length of UDAS in words .u_dvs = 0x00ea // 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)