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

⟦0fe659954⟧ COMAL_SAVE

    Length: 7538 (0x1d72)
    Types: COMAL_SAVE

Derivation

└─⟦3d9d2c4f1⟧ Bits:30001780 SG0000 Floppy
    └─ ⟦3ce73156d⟧ »/LAGER « 
        └─⟦this⟧ 

UPAS Segment

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 ) , [FAIL RENDER FUNC LET 012ce2][012ce2]
 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 

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] = 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$

Wrapper

.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)