DataMuseum.dk

Presents historical artifacts from the history of:

RC4000/8000/9000

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

See our Wiki for more about RC4000/8000/9000

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦1ee0b4451⟧ TextFile

    Length: 3840 (0xf00)
    Types: TextFile
    Names: »cpcconvert«

Derivation

└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ.  Detaljer om "HC8000" projekt.
    └─⟦0364f57e3⟧ 
        └─⟦this⟧ »cpcconvert« 

TextFile

      program convert
1     format(1a1)
99    format(/1x)
999   format(///a3)
2     format(1x,3h***,1a1)
      external readerr
      integer readerr, eof, i, j, k, char, maxofline
      integer l(80)
      zone readf(128,1,stderror)
      zone writef(128,1,stderror)
      call zassign(readf,1)
      call zassign(writef,7)
      call open(readf,4,'inf',0)
      call open(writef,4,'outf',0)
      i=10
      char=10
      maxofline=0
      a='0'
      write(7,2) a

c  indlæseløkke - skip af kommentarlinier
10    i=i+1
      if(i.lt.maxofline) goto 20
      a='1'
      write(7,2) a
      i=1
12    read(1,1) l(i)
      write(7,2) l(i)
      char=readerr.shift.(-8)
      if(char.eq.25) goto 1000
      if(char.eq.10) goto 14
      i=i+1
      goto 12
14    continue
c  linien er indlæst
      maxofline=i
c  kommentarlinie
      if(l(1).eq.'C') goto 16
      i=0
      goto 10
16    do 18 k=1,maxofline
18    write(7,1) l(k)
      write(7,99)
      i=maxofline
      goto 10

c  ' '
20    continue
      a=2
      write(7,2) a

      if(l(i).ne.' ') goto 30
      write(7,1) l(i)
      goto 10
c  'DO' eller 'DABS' eller 'DSQRT'
30    continue
      a=3
      write(7,2) a

      if(l(i).ne.'D') goto 40
      if(L(i+1).eq.'0') goto 32
      if(l(i+1).eq.'A'.and.l(i+2).eq.'B'.and.l(i+3).eq.'S') goto 34
      if(l(i+1).eq.'S'.and.l(i+2).eq.'Q'.and.l(i+3).eq.'R'.and.
     1       l(i+4).eq.'T') goto 36
32    l(i)='E'
      do 33 j=0,1
33    write(7,1) l(i+j)
      i=i+1
      goto 10
34    do 35 j=1,2
35    write(7,1) l(i+j)
      i=i+3
      goto 10
36    do 37 j=1,3
37    write(7,1) l(i+j)
      i=i+4
      goto 10
c  'IMPLI'
40    continue
      a='4'
      write(7,2) a

      if(l(i).ne.'I') goto 50
      if(l(i+1).eq.'M'.and.l(i+2).eq.'P'.and.l(i+3).eq.'L'.and.
     1    l(i+4).eq.'I') goto 42
      write(7,1) l(i)
      goto 10
42    write(7,99)
      l(1)='C'
      do 44 i=1,72
44    write(7,1) l(i)
      goto 10
c  'LOGICAL'
50    continue
      a='5'
      write(7,2) a

      if(l(i).ne.'L') goto 60
      if(l(i+1).eq.'0'.and.l(i+2).eq.'G'.and.l(i+3).eq.'I'.and.
     1      l(i+4).eq.'C'.and.l(i+5).eq.'A'.and.l(i+6).eq.'L'.and.
     2      l(i+7).eq.'*') goto 52
      write(7,1) l(i)
      goto 10
52    do 54 j=1,7
54    write(7,1) l(i+j)
      i=i+8
      goto 10
c  'REAL*8'
60    continue
      a='6'
      write(7,2) a

      if(l(i).ne.'R') goto 70
      if(l(i+1).eq.'E'.and.l(i+2).eq.'A'.and.l(i+3).eq.'L'.and.
     1     l(i+4).eq.'*'.and.l(i+5).eq.'8') goto 62
      write(7,1) l(i)
      goto 10
62    do 64 j=0,3
64    write(7,1) l(i+j)
      i=i+5
      goto 10
c  'STOP'
70    continue
      a='7'
      write(7,2) a

      if(l(i).ne.'S') goto 80
      if(l(i+1).eq.'T'.and.l(i+2).eq.'O'.and.l(i+3).eq.'P') goto 72
      write(7,1) l(i)
      goto 10
72    l(i)='c'
      l(i+1)='a'
      l(i+2)='l'
      l(i+3)='l'
      l(i+4)=' '
      l(i+5)='e'
      l(i+6)='x'
      l(i+7)='i'
      l(i+8)='t'
      do 74 j=0,8
74    write(7,1) l(i+j)
      write(7,99)
      i=72
      goto 10

80    continue


1000  continue
      a='9'
      write(7,2) a
      eof=25.shift.16+25.shift.8+25
      write (7,999)
      call close(writef,.true.)
      stop
      end
▶EOF◀