1
0
mirror of https://github.com/DoctorWkt/pdp7-unix.git synced 2026-02-09 18:01:25 +00:00

Merge pull request #211 from philbudne/chartable

Build Graphic II character table, include in boot track
This commit is contained in:
Tom Everett
2020-01-15 18:11:49 -05:00
committed by GitHub
7 changed files with 611 additions and 570 deletions

View File

@@ -78,8 +78,8 @@ coldboot.rim: $(COLDBOOT)
$(AS) -n -f list -o a.lst $(COLDBOOT)
# Filesystem image
image.fs: cmd others
$(MKFS) -k a.out proto
image.fs: cmd others a.out chrtbl.out
$(MKFS) -k a.out -c chrtbl.out proto
$(FSCK) image.fs
# Alternate filesystem image: . and .. but no dd
@@ -87,8 +87,20 @@ alt/image.fs: altcmd altothers
$(MKFS) -1 -2 -3 -o alt/image.fs -k alt/a.out alt/proto
$(FSCK) -3 alt/image.fs
# character table: assemble output of cas.s
chrtbl.out: cas.out ../src/other/chrtbl.s
$(AS) -f ptr --no-label-warnings -o chrtbl.out ../src/other/chrtbl.s cas.out
# run cas.s under a7out: needs local file!
cas.out: bin/cas ../src/sys/cas.in
rm -f cas.in
ln -s ../src/sys/cas.in .
$(A7OUT) bin/cas cas.out cas.in
rm -f cas.in
clean:
rm -f boot.rim image.fs a.lst n.out a.out
rm -f cas cas.in cas.out chrtbl.out
rm -f alt/image.fs alt/a.out alt/a.lst
rm -rf $(BINDIR) $(TESTDIR)
rm -rf $(BINARIES)

View File

@@ -1,551 +0,0 @@
:ca
v
af
nl
x
hd
v
hi
x
mn
r
:cb
x
ga
v
gi
ik
kk
mi
ma
aa
ai
ck
ek
gi
x
mn
r
:cc
x
kk
v
mi
mc
ka
ca
ac
ai
dl
x
mn
r
:cd
v
aa
ai
ck
kk
mi
ma
x
mn
r
:ce
x
mk
v
ma
aa
ak
x
gh
v
ga
x
mn
r
:cf
v
aa
ak
x
gh
v
ga
x
mn
r
:cg
x
gf
v
gk
nk
x
kk
v
mi
mc
ka
ca
ac
ai
dl
x
mn
r
:ch
x
aa
v
na
x
gb
v
gk
x
ak
v
nk
x
mn
r
:ci
x
md
v
mi
x
lf
v
af
x
ad
v
ai
x
mn
r
:cj
x
ka
v
mc
mg
ki
ai
x
ag
v
al
x
mn
r
:ck
x
aa
v
na
x
ak
v
ia
x
mk
v
fe
x
mn
r
:cl
x
aa
v
ma
mk
x
mn
r
:cm
v
aa
hf
ak
nk
x
mn
r
:cn
x
ak
v
mk
aa
na
x
mn
r
:co
x
ai
v
ch
ei
ck
ai
ac
ca
ka
mc
mi
kk
ck
x
mn
r
:cp
v
aa
ai
ck
ek
gi
ga
x
mn
r
:cq
x
mc
v
ka
ca
ac
ai
ck
kk
mi
mc
x
jh
v
nl
x
mn
r
:cr
v
aa
ai
ck
ek
gi
ga
x
mk
v
gf
x
mn
r
:cs
x
ka
v
mc
mi
kk
ik
gi
gc
ea
ca
ac
ai
dl
x
mn
r
:ct
x
aa
v
al
x
mf
v
af
x
mn
r
:cu
x
aa
v
ka
mc
mi
kk
x
ak
v
lk
x
mn
r
:cv
x
aa
v
mf
x
ak
v
mf
x
mn
r
:cw
x
aa
v
mc
af
x
ak
v
mi
af
x
mn
r
:cx
v
gf
x
ak
v
gf
x
aa
v
nl
x
mn
r
:cy
x
aa
v
if
x
ak
v
if
nf
x
mn
r
:cz
x
aa
v
ak
ma
ml
x
mn
r
:c0
x
ck
v
ai
ac
ca
ka
mc
mi
kk
ck
x
mn
r
:c1
x
ce
v
af
mf
x
md
v
mi
x
mn
r
:c2
x
ca
v
ac
ai
ck
ek
gi
gc
ia
ma
ml
x
mn
r
:c3
x
aa
v
ak
fe
fi
hk
kk
mi
mc
x
ka
v
nd
x
mn
r
:c4
x
mh
v
ah
ia
il
x
mn
r
:c5
x
ak
v
aa
fa
fi
hk
kk
mi
mc
x
ka
v
nd
x
mn
r
:c6
x
ck
v
ai
ac
ca
ka
mc
mi
kk
hk
fi
fc
ha
x
mn
r
:c7
x
aa
v
ak
nb
x
mn
r
:c8
x
gc
v
ea
ca
ac
ai
ck
ek
gi
gc
ia
ka
mc
mi
kk
ik
gi
x
mn
r
:c9
x
ka
v
mc
mi
kk
ck
ai
ac
ca
fa
hc
hi
fk
x
mn
r

24
src/other/chrtbl.s Normal file
View File

@@ -0,0 +1,24 @@
" PLB 2020-01-05
" start of a file to assemble output of cas.s
" base. maybe AFTER table??
b:
" 128-word dispatch table for ASCII
null; null; null; null; null; null; null; null
null; null; null; null; null; null; null; null
null; null; null; null; null; null; null; null
null; null; null; null; null; null; null; null
space; excla; quote; number; dollar; percent; amper; accl
lparn; rparn; aster; plus; comma; minus; period; sla
c0; c1; c2; c3; c4; c5; c6; c7
c8; c9; colon; semcln; less; equal; great; quest
at; ca; cb; cc; cd; ce; cf; cg
ch; ci; cj; ck; cl; cm; cn; co
cp; cq; cr; cs; ct; cu; cv; cw
cx; cy cz; lbk; bsla; rbk; cmflx; under
accr; la; lb; lc; ld; le; lf; lg
lh; li; lj; lk; ll; lm; ln; lo
lp; lq; lr; ls; lt; lu; lv; lw
lx; ly lz; lbr; or; rbr; tild; null

View File

@@ -9,25 +9,18 @@
caf " reset cpu
dscs " clear disk status
" code from maksys (altered to read instead of write):
-3072; dslw
" code orignally from maksys
" altered to read full 4K (system + char table)
" instead of write:
-4096; dslw
cla; dslm
lac track; alss 8; xor o300000; dsld
lac o2000; dsls
dssf; jmp .-1
dsrs; spa; hlt
-1024; dslw
lac d3072; dslm
lac track; alss 8; xor o300110; dsld
lac o2000; dsls
dssf; jmp .-1
dsrs; spa; hlt
jmp 0100
o2000: 02000
d3072: 3072
o300000: 0300000
o300110: 0300110
track: 0 " get 0-9 from switches!!!

View File

@@ -1,3 +1,554 @@
:ca
v
af
nl
x
hd
v
hi
x
mn
r
:cb
x
ga
v
gi
ik
kk
mi
ma
aa
ai
ck
ek
gi
x
mn
r
:cc
x
kk
v
mi
mc
ka
ca
ac
ai
dl
x
mn
r
:cd
v
aa
ai
ck
kk
mi
ma
x
mn
r
:ce
x
mk
v
ma
aa
ak
x
gh
v
ga
x
mn
r
:cf
v
aa
ak
x
gh
v
ga
x
mn
r
:cg
x
gf
v
gk
nk
x
kk
v
mi
mc
ka
ca
ac
ai
dl
x
mn
r
:ch
x
aa
v
na
x
gb
v
gk
x
ak
v
nk
x
mn
r
:ci
x
md
v
mi
x
lf
v
af
x
ad
v
ai
x
mn
r
:cj
x
ka
v
mc
mg
ki
ai
x
ag
v
al
x
mn
r
:ck
x
aa
v
na
x
ak
v
ia
x
mk
v
fe
x
mn
r
:cl
x
aa
v
ma
mk
x
mn
r
:cm
v
aa
hf
ak
nk
x
mn
r
:cn
x
ak
v
mk
aa
na
x
mn
r
:co
x
ai
v
ch
ei
ck
ai
ac
ca
ka
mc
mi
kk
ck
x
mn
r
:cp
v
aa
ai
ck
ek
gi
ga
x
mn
r
:cq
x
mc
v
ka
ca
ac
ai
ck
kk
mi
mc
x
jh
v
nl
x
mn
r
:cr
v
aa
ai
ck
ek
gi
ga
x
mk
v
gf
x
mn
r
:cs
x
ka
v
mc
mi
kk
ik
gi
gc
ea
ca
ac
ai
dl
x
mn
r
:ct
x
aa
v
al
x
mf
v
af
x
mn
r
:cu
x
aa
v
ka
mc
mi
kk
x
ak
v
lk
x
mn
r
:cv
x
aa
v
mf
x
ak
v
mf
x
mn
r
:cw
x
aa
v
mc
af
x
ak
v
mi
af
x
mn
r
:cx
v
gf
x
ak
v
gf
x
aa
v
nl
x
mn
r
:cy
x
aa
v
if
x
ak
v
if
nf
x
mn
r
:cz
x
aa
v
ak
ma
ml
x
mn
r
:c0
x
ck
v
ai
ac
ca
ka
mc
mi
kk
ck
x
mn
r
:c1
x
ce
v
af
mf
x
md
v
mi
x
mn
r
:c2
x
ca
v
ac
ai
ck
ek
gi
gc
ia
ma
ml
x
mn
r
:c3
x
aa
v
ak
fe
fi
hk
kk
mi
mc
x
ka
v
nd
x
mn
r
:c4
x
mh
v
ah
ia
il
x
mn
r
:c5
x
ak
v
aa
fa
fi
hk
kk
mi
mc
x
ka
v
nd
x
mn
r
:c6
x
ck
v
ai
ac
ca
ka
mc
mi
kk
hk
fi
fc
ha
x
mn
r
:c7
x
aa
v
ak
nb
x
mn
r
:c8
x
gc
v
ea
ca
ac
ai
ck
ek
gi
gc
ia
ka
mc
mi
kk
ik
gi
x
mn
r
:c9
x
ka
v
mc
mi
kk
ck
ai
ac
ca
fa
hc
hi
fk
x
mn
r
:la
x
fb

View File

@@ -15,14 +15,14 @@
jmp error
dscs
-3072; dslw
lac bufp; dslm
-3072; dslw // word count: 3K
lac bufp; dslm // transfer from buf
lac track; alss 8; xor o300000; dsld
lac o3000; dsls
dssf; jmp .-1
dsrs; spa; jmp error
-1024; dslw
lac d3072; dslm
-1024; dslw // word count: 1K
lac d3072; dslm // transfer from 3K mark (06000)
lac track; alss 8; xor o300110; dsld
lac o3000; dsls
dssf; jmp .-1

View File

@@ -675,7 +675,7 @@ sub usage {
### MAIN PROGRAM
my ( $format, $output, $kernelfile ) = ( "simh", "image.fs" );
my ( $format, $output, $kernelfile, $chartable ) = ( "simh", "image.fs" );
GetOptions(
'debug|d' => \$debug,
@@ -685,6 +685,7 @@ GetOptions(
'format|f=s' => \$format,
'output|o=s' => \$output,
'kernel|k=s' => \$kernelfile,
'chars|c=s' => \$chartable,
) or usage();
usage() if ( @ARGV < 1 );
@@ -696,10 +697,21 @@ dprint("\n");
# If we were given a kernel image, write that to track 80
# which is block number 6400.
# (maksys.s can write to tracks 80-89)
my $bootblock = 6400;
if ($kernelfile) {
dprint("Adding kernel $kernelfile to track 80\n");
my @buf= read_file($kernelfile);
write_file(6400, @buf);
write_file($bootblock, @buf);
}
# If we were given a character table, write that
# so it gets loaded at the 3K mark
# maksys.s writes the contents of memory at 3K to the boot track!
if ($chartable) {
dprint("Adding character table $chartable to track 80\n");
my @buf= read_file($chartable);
# XXX truncate to 1K, or at least complain??
write_file($bootblock + 3072/WORDSPERBLK, @buf);
}
dump_image( $format, $output );
exit(0);