# build --- create new version of Pascal boostrap 'p4c' in =lbin= declare _search_rule = "^int,^var,=lbin=/&,=bin=/&" declare KIND = unshared # to build a shared version, # declare KIND = shared # set KIND = shared # Convert Pascal code to Fortran: # (This step takes a very long time.) # cat p4c1.p p4c2.p p4c3.p p4c4.p | p4c >p4c.l >p4c.f # Compile the resulting Fortran: fc p4c.f case [KIND] # Load the compiler using SEG when unshared ld -ud _ -c 4000 _ -s "s/sy mp 4000 700" _ -s "s/sy sp 4000 701" _ -s "s/sy ep 4000 702" _ -s "s/sy np 4000 703" _ -s "s/sy cstore 4004 0" _ p4c.b _ -l p4clib _ -t -m _ -o p4c when shared # Use 'swtseg' to produce run file and two shared code files: >> cto | change SEGMENT [cat segment] | x edb p4c.b brief omitet open p4c_rest.b copy main top open p4c_main.b omitet find main c all quit open p4c.m 15 2 open 15 10 swtseg vload #p4c s/sy mp 4000 700 s/sy sp 4000 701 s/sy ep 4000 702 s/sy np 4000 703 s/sy cstore 4001 0 s/sy swt$cm 4040 40000 s/sy swt$tp 2030 120000 co ab 4000 mixup on s/lo p4c_main.b 0 4000 4000 s/lo p4c_rest.b 0 SEGMENT 4000 s/li p4clib 0 SEGMENT 4000 s/li vswtlb 0 SEGMENT 4000 s/li 0 SEGMENT 4000 ma 3 ma $f 3 ma $f 7 ma $f save return share pc delete quit -EOF cn pc4000 p4c del p4c_main.b p4c_rest.b out error "KIND must be either 'shared' or 'unshared'!" esac