DataMuseum.dk

Presents historical artifacts from the history of:

RegneCentralen RC3600/RC7000

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about RegneCentralen RC3600/RC7000

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦edf319264⟧ COMAL_SAVE

    Length: 6450 (0x1932)
    Types: COMAL_SAVE

Derivation

└─⟦3d9d2c4f1⟧ Bits:30001780 SG0000 Floppy
    └─ ⟦5b6bce948⟧ »/P3BY6 « 
        └─⟦this⟧ 

UPAS Segment

SAVE filename: "P3BY6"

 0020 REM  «so»  L B Y T 6«nul»
 0022 REM  PL 1.11.81 LAGERDUMP/KOLONNER: TAL/BYTE/TEXT JMP/JSR/PAGEZEROSYMB«nul»G
 0030 LET HEAD = 1
 0032 EXEC PRGSTART
 0034 FOR SIDE = SIDE1 TO SIDE2
 0036   EXEC NYSIDE
 0038   FOR ADR1 = INT ( SIDE * PAGIN + 0.2 ) TO INT ( SIDE * PAGIN + LINIER - 0.8 )
 0040     GOTO 0044
 0042     IF FIL$ <> "" THEN IF ADR1 MOD 16 = 0 THEN PRINT FILE ( 1 )
 0044     LET L$ = ""
 0046     FOR ADR = ADR1 TO ADR1 + ( KOLON - 1 ) * LINIER STEP LINIER
 0048       IF ADR > 32767 THEN GOTO 0140
 0050       CALL "GMEM" , ADR , X
 0052       LET XX = X ; JUMP = 0 ; UNDT = 0
 0054       LET D$ = CHR ( 32 + ( ADR MOD 5 = 0 ) * ( 2 + ADR MOD 10 ) ) ; NUL$ = "" ; NO = 0
 0056       REM  ON ESC «nul»
 0058       LET X1 = X DIV 256 ; X2 = X MOD 256
 0060       IF X1 = 1 OR X1 = 4 OR X1 = 5 OR X1 > 11 AND X1 < 16 THEN
 0062         IF TAL = 9 THEN LET L$ = L$ , D$ ; D$ = "" ; UNDT = 1
 0064         IF X1 > 13 AND ( X2 < 59 OR X2 > 101 ) OR ADR < 311 THEN GOTO 0086
 0065         LET UNDT = 0
 0066         LET D$ = CHR ( 62 - 20 * ( X1 > 7 ) ) , [FAIL RENDER FUNC LET f295fd7f41800000f97f42300000f6f16ef27fed422b0000f97f41200000fbf295fd7f3541400000ea4000e896eb7f00427f0000f6f6e200][f295fd7f41800000f97f42300000f6f16ef27fed422b0000f97f41200000fbf295fd7f3541400000ea4000e896eb7f00427f0000f6f6e200]
 0068         IF X1 <> 4 AND X1 <> 12 AND X2 > 127 THEN LET X2 = 256 - X2
 0070         LET D$ = D$ , CHR ( 48 + X2 DIV 10 + 7 * ( X2 DIV 10 > 9 ) ) , CHR ( 48 + X2 MOD 10 ) , "     " ; D$ = D$ ( 1 , 5 )
 0072         IF X1 MOD 8 = 4 THEN
 0074           IF T$ ( X2 * 4 + 1 , X2 * 4 + 4 ) <> "    " THEN LET D$ ( 2 , 5 ) = T$ ( X2 * 4 + 1 , X2 * 4 + 4 )
 0076         ENDIF 
 0078         LET L$ = L$ , D$ ; D$ = "" ; JUMP = 1
 0080         REM  ;D$«nul»
 0082         IF TAL = 9 THEN GOTO 0086
 0084       ELSE 
 0086         IF TAL AND NOT JUMP THEN
 0088           LET D$ = D$ , "    "
 0090           FOR TT = 5 + ( TAL = 9 ) - UNDT TO 2 - ( X > 9999 ) + ( TAL = 9 ) - UNDT STEP - 1
 0092             LET D$ ( TT ) = CHR ( X MOD 10 + 32 + 16 * ( X > 0 ) )
 0094             LET X = X DIV 10
 0096           NEXT 
 0098           IF TAL = 9 THEN GOTO 0102
 0100         ELSE 
 0102           IF TAL = 9 THEN LET D$ = D$ , CHR ( 32 + ( ADR MOD 5 = 0 ) * ( 2 + ADR MOD 10 = 0 ) )
 0104           LET X = XX
 0106           LET B1 = X DIV 256 ; B2 = X MOD 256
 0108           FOR I = 1 TO 2
 0110             IF I = 2 THEN LET B1 = B2
 0112             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
 0114               IF B1 < 32 THEN LET B1 = 96 - ( B1 > 1 ) - ( B1 = 10 )
 0116               IF I = 1 THEN LET D$ = D$ , CHR ( 32 + 15 * ( B1 <> 96 ) ) , CHR ( B1 )
 0118               IF I = 2 THEN LET D$ = D$ , CHR ( B1 ) , CHR ( 32 + 15 * ( B1 <> 96 ) )
 0120             ELSE 
 0122               GOTO 0126
 0124               ON ESC THEN IF TAL < 2 THEN LET TAL = NOT TAL
 0126               LET D$ = D$ , CHR ( 126 + ( B1 DIV 10 - 78 ) * ( B1 DIV 10 <> 0 ) + 39 * ( B1 > 99 ) ) , CHR ( B1 MOD 10 + 48 )
 0128             ENDIF 
 0130           NEXT 
 0132           IF HEAD THEN RETURN «nul»
 0134         ENDIF 
 0136         LET L$ = L$ , D$
 0138       ENDIF 
 0140     NEXT 
 0142     IF FIL$ <> "" THEN IF ADR1 MOD 16 = 0 THEN LET L$ = L$ , "--"
 0144     IF FIL$ <> "" THEN PRINT FILE ( 1 ) L$
 0146     PRINT L$
 0148   NEXT 
 0150 NEXT 
 0152 CLOSE
 0154 GOTO 0032
 0156 REM  «so» .......«nul»
 0158 PROC NYSIDE
 0160   PAGE = 132
 0162   TAB = 10 + ( TAL = 9 )
 0164   PRINT "<29>"
 0166   IF FIL$ <> "" THEN PRINT FILE ( 1 ) "<12>" ;
 0168   FOR I = SIDE * LINIER * KOLON TO ( SIDE + 1 ) * LINIER * KOLON - LINIER STEP 2 * LINIER
 0170     IF FIL$ <> "" THEN PRINT FILE ( 1 ) I ,
 0172     IF FIL$ <> "" THEN IF TAL = 9 THEN PRINT FILE ( 1 ) I + LINIER ,
 0174     IF FIL$ = "" THEN PRINT I ,
 0176     IF FIL$ = "" THEN IF TAL = 9 THEN PRINT I + LINIER ,
 0178   NEXT 
 0180   PRINT
 0182   IF FIL$ <> "" THEN PRINT FILE ( 1 ) "<13>"
 0184   FOR X = SIDE * LINIER * KOLON TO ( SIDE + 1 ) * LINIER * KOLON - LINIER STEP LINIER
 0186     LET HEAD = 1 ; D$ = ""
 0188     GOSUB 0106
 0190     IF FIL$ <> "" THEN PRINT FILE ( 1 ) D$ ; " " ;
 0192     IF FIL$ = "" THEN PRINT D$ ; " " ;
 0194     IF FIL$ <> "" AND TAL = 9 THEN PRINT FILE ( 1 ) "      " ;
 0195     IF FIL$ = "" AND TAL = 9 THEN PRINT "      " ;
 0196   NEXT 
 0198   PRINT
 0200   PAGE = 0
 0202   IF FIL$ <> "" THEN
 0204     PRINT FILE ( 1 )
 0206     FOR I = 1 TO BRED * ( 1 + ( TAL = 9 ) )
 0208       PRINT FILE ( 1 ) "-" ;
 0210     NEXT 
 0212     PRINT FILE ( 1 )
 0214   ENDIF 
 0216   LET HEAD = 0 ; BETING = ADR > UDA
 0218 ENDPROC
 0220 REM  «so» .......«nul»-
 0222 PROC PRGSTART
 0224   RELEASE 
 0226   REM  PL 1981: 7/3 DISKETTEPRG @.LBYTE 12/3 TALOPTION 14/9 INPUTJUSTERINGER«nul»6
 0228   REM  PL 1981: 4/10 OVERFØRT TIL DIABLO(LBYTE) 13/10 OVERSKR BYTE 16/10 LBYT6 ÆNDR REPR«nul»2
 0230   REM  PL 1981: 18/10 PAGEZEROSYMB 1/11 SMÅFEJL RETTET«nul»1
 0231   IF HEAD THEN
 0232     PRINT "*         LBYT6         *"
 0233     PRINT "*   CORELAGERUDSKRIFT   *"
 0234     PRINT "*     TAL/BYTE/TEXT     *"
 0235     PRINT "* JMP/JSR/PAGEZEROSYMB. *<10>"
 0236   ENDIF 
 0238   REM  ORIG REPR T.O.M. LBYT5:«nul»
 0240   REM  byte   0 = ü0     byte 33 = 33       byte 67 = C     byte 97  = a«nul»B
 0242   REM  byte  17 = 17     byte 49 = 1        byte 95 = 95    byte 255 = p5 (p=25)«nul»«nul»
 0244   REM  ÆNDRET 16.10.81 VERSION LBYT6 SÅLEDES:«nul»
 0246   REM  BYTE=0,10,13 REPR VED `,^,_ OG NU KUN TAL OG BOGST FØR Æ SOM TEXT«nul»æ
 0248   REM «nul»B
 0250   LET TAL = 0 ; TAL = 9 ; TAL = 1 ; BETING = 0
 0252   LET TAL = 0
 0253   LET TAL = 9
 0254   REM  .........OPTION TAL= 0 / 1 / 9«nul»
 0256   IF TAL = 9 THEN PRINT "BÅDE TAL & BYTE / BREDDE MAX 120/72"
 0258   DIM NUL$ ( 1 )
 0260   PAGE = 132
 0262   CLOSE
 0264   DIM FIL$ ( 8 ) , L$ ( 170 ) , D$ ( 20 )
 0266   IF HEAD THEN INPUT "EVT UDKRIFT PÅ FIL " , FIL$
 0268   INPUT "BREDDE 132/80 ELLER 120/72 " , BRED , "<13><10>ADR I 1. KOLONNE " , ADR , "<13><10>ANTAL SIDER (MAX 45/25/20 VED 120/132) " , SIDE2
 0270   IF TAL = 9 THEN LET BRED = BRED DIV 2
 0272   LET KOLON = BRED DIV 5 ; TABUL = 5 ; LINIER = 64 - 44 * ( FIL$ = "" AND BRED < 81 )
 0274   LET PAGIN = LINIER * KOLON ; SIDE1 = ADR DIV LINIER / KOLON ; SIDE2 = SIDE1 + SIDE2 - 1
 0276   IF FIL$ <> "" THEN OPEN FILE ( 1 , 11 ) FIL$
 0278   PRINT "<12>"
 0280   PAGE = 0
 0282   IF HEAD = 1 THEN
 0284     DIM NUL$ ( 1 ) , T$ ( 1100 )
 0286     FOR I = 1 TO 9
 0288       READ L$
 0290       LET L$ = L$ , "       " ; T$ = T$ , L$ ( 3 , 122 )
 0292     NEXT 
 0294     PRINT T$
 0296     IF LEN ( T$ ) <> 9 * 120 THEN PRINT "<10><10>FEJL<10>"
 0298   ENDIF 
 0300   CALL "GMEM" , 15 , UDA
 0302 ENDPROC
 0304 REM  FLG ER LAVET AF FACILITET I PRG LDAT3 (SE DENNE)«nul»
 0306 DATA "          waitwintsmeswanswevesanssearclenbreastopstrtrech                                                               "
 0308 DATA "                                                                                                                         "
 0310 DATA "                                                                                                                         "
 0312 DATA "                                                                                                          noperanscldewope "
 0314 DATA "  setisetrsetcconbsetbputbmultdivigetrputrwtrareshtraninbloublinchfrshouspouchounlouenoutxouocsetpclosopenwzoninnmmoveintp "
 0316 DATA "  igiv    ibre    bidcdcbi                ex: ret0ret1ret2*er                                                            "
 0318 DATA "                                                                                                                         "
 0320 DATA "                                  nwccfrcacdelwsemwchacwanctstcprictousignsigccpascrenloenchenreenicatsetecomocallgotogtad "
 0322 DATA "  gtpo            csmesiggwgenctop                                                                                       "
 0324 DATA "                                                                                                                         "
 0326 REM  «so» PAGE ZERO UDSKRIFT«nul»
 0328 PRINT "<12><14> PAGE ZERO"
 0330 PAGE = 132
 0332 TAB = 7
 0334 REM  PL 9.10.81 PRG START SKAL VÆRE KØRT!«nul»
 0336 FOR J = 0 TO 63
 0338   FOR I = 1 TO 4
 0340     LET ADR = ( I - 1 ) * 64 + J
 0342     PRINT "  " ;
 0344     CALL "GMEM" , ADR , D
 0346     PRINT "!#### # (#####) #### ##### !" , ADR , CHR ( 32 + ( ADR > 32 AND ADR < 126 ) * ( ADR - 32 ) ) , ADR * 256 , T$ ( ADR * 4 + 1 , ADR * 4 + 4 ) , D ;
 0348   NEXT 
 0350   LET L$ = " " , CHR ( J DIV 10 + 48 ) , CHR ( J MOD 10 + 48 ) , " "
 0352   IF J = 0 OR J > 26 AND J < 33 OR J > 34 AND J MOD 2 = 1 OR J > 58 THEN
 0354     LET L$ = L$ , CHR ( ( J + 64 ) DIV 10 + 48 + 39 * ( J > 35 ) ) , CHR ( ( J + 64 ) MOD 10 + 48 )
 0356   ELSE 
 0358     LET L$ = L$ , CHR ( J + 64 ) , "/"
 0360   ENDIF 
 0362   FOR AAA = 8 TO 2 STEP - 6
 0364     LET L$ = L$ , " " , CHR ( ( J + AAA ) DIV 10 + 99 + 7 * ( AAA = 2 ) ) , CHR ( ( J + AAA ) MOD 10 + 48 )
 0366   NEXT 
 0368   PRINT L$
 0370 NEXT 

UDAS Segment

    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] = 0x008c
      stack[1] = 0x0448
      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 = 5.14756e-85   (0x00000001)
      Var# = 0x0001
      Loop Top = 0x0000
      To Val = 0   (0x00000000)
      Step Val = 0   (0x00000000)
      Var# = 0x0083
      Loop Top = 0x0089
      To Val = 23.4286   (0x42176db7)
      Step Val = 1   (0x41100000)
      Var# = 0x0087
      Loop Top = 0x0091
      To Val = 10559   (0x44293f00)
      Step Val = 1   (0x41100000)
      Var# = 0x008c
      Loop Top = 0x00bc
      To Val = 10943   (0x442abf00)
      Step Val = 64   (0x42400000)
    REPEAT-UNTIL stack pointer = 0x009b
      stack[0] = 0x02a7
      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

Wrapper

.magic = 0x4e32
.u_pas = 0x0b50  // Length of UPAS in words
.u_das = 0x013a  // Length of UDAS in words
.u_dvs = 0x013a  // Start på savede variabel indhold (word adr)
.u_nds = 0x0042  // Address på næste prog.sætning (word adr)
.u_cps = 0x0042  // Address på curr prog.sætning (word adr)
.u_tll = 0x0084  // Page størrelse
.u_tts = 0x000b  // 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)