mirror of
https://github.com/DoctorWkt/unix-jun72.git
synced 2026-04-17 16:44:38 +00:00
- initial import of work.
This commit is contained in:
81
notes.txt
Normal file
81
notes.txt
Normal file
@@ -0,0 +1,81 @@
|
||||
I started with the pdf, using Preview in mac I selected regions and
|
||||
copied and created new doc, saved it as jpeg and then used
|
||||
the online OCR program: http://asv.aso.ecei.tohoku.ac.jp/tesseract/
|
||||
I then manually edited each file.
|
||||
|
||||
The files are named according to the page index in the pdf and the
|
||||
section and page given in the page footer. Page headers and footers
|
||||
were not captured.
|
||||
------------------
|
||||
|
||||
e00-01 to e00-10 (10) - u0 -
|
||||
assigned: tim newsham, complete
|
||||
reviewed:
|
||||
e01-01 to e01-10 (10) - u1 -
|
||||
assigned: Hellwig Geisse
|
||||
reviewed:
|
||||
e02-01 to e02-10 (10) - u2 -
|
||||
assigned: Brantley Coile
|
||||
reviewed:
|
||||
e03-01 to e03-04 (4) - u3 -
|
||||
assigned:
|
||||
reviewed:
|
||||
e04-01 to e04-07 (7) - u4 -
|
||||
assigned:
|
||||
reviewed:
|
||||
e05-01 to e05-06 (6) - u5 -
|
||||
assigned:
|
||||
reviewed:
|
||||
e06-01 to e06-06 (6) - u6 -
|
||||
assigned:
|
||||
reviewed:
|
||||
e07-01 to e07-08 (8) - u7 -
|
||||
assigned:
|
||||
reviewed:
|
||||
e08-01 to e08-09 (9) - u8 -
|
||||
assigned:
|
||||
reviewed:
|
||||
e09-01 to e09-08 (8) - u9 -
|
||||
assigned:
|
||||
reviewed:
|
||||
e10-01 to e10-02 (2) - ux -
|
||||
assigned:
|
||||
reviewed:
|
||||
e11-01 to e11-07 (7) - sh
|
||||
we have a binary for the sh already I think. this may be optional
|
||||
assigned:
|
||||
reviewed:
|
||||
e12-01 to e12-04 (4) - init
|
||||
we have a binary for init already
|
||||
assigned:
|
||||
reviewed:
|
||||
|
||||
|
||||
|
||||
------------------
|
||||
e00-01
|
||||
- I used spaces to line up the comment columns, not tabs. I
|
||||
picked the column distance arbitrarily.
|
||||
- the bottom section looks like it could be tabbed but my tabstops
|
||||
didnt line up with the values given so I used spaces
|
||||
|
||||
e00-02
|
||||
- I used tabs for the start of each asm command but not for the
|
||||
separation between mnemonic and arguments since these didnt line up.
|
||||
with my tab stops.
|
||||
|
||||
e00-03
|
||||
- left "dis addresses" typo in per original
|
||||
|
||||
e00-05
|
||||
- cant tell if the "O" in quotes after 1: is a O or a 0.
|
||||
- left mispelled "mormally" in comment
|
||||
- left "file/etc/init" without space.
|
||||
|
||||
e00-06
|
||||
- left mis-spacing on 5: move r5,r1.
|
||||
|
||||
e00-10
|
||||
- left "/ect/init" typo
|
||||
--------------------
|
||||
|
||||
55
pages/e00-01
Normal file
55
pages/e00-01
Normal file
@@ -0,0 +1,55 @@
|
||||
/ u0 -- unix
|
||||
|
||||
cold = 0
|
||||
orig = 0 . / orig = 0. relocatable
|
||||
|
||||
rkda = 177412 / disk address reg rk03/rk11
|
||||
rkds = 177400 / driv status reg rk03/rk11
|
||||
rkcs = 177404 / control status reg rk03/rk11
|
||||
rcsr = 174000 / receiver status reg dc-11
|
||||
rcbr = 174002 / receiver buffer reg dc-11
|
||||
tcsr = 174004 / xmtr status reg dc-11
|
||||
tcbr = 174006 / xmtr buffer req dc-11
|
||||
tcst = 177340 / dec tape control status tc11/tu56
|
||||
tccm = 177342 / dec tape command reg tc11/tu56
|
||||
tcwc = 177344 / word count tc11/tu56
|
||||
tcba = 177346 / bus addr tc11/tu56
|
||||
tcdt = 177350 / data reg tc11/tu56
|
||||
dcs = 177460 / drum control status rf11/rs11
|
||||
dae = 177470 / drum address extension rf11/rs11
|
||||
lks = 177546 / clock status reg kw11-l
|
||||
prs = 177550 / papertape reader status pc11
|
||||
prb = 177552 / buffer pc11
|
||||
pps = 177554 / punch status pc11
|
||||
ppb = 177556 / punch buffer pc11
|
||||
/lps = 177514 line printer status (future)
|
||||
/lpb = 177516 line printer buffer (future)
|
||||
tks = 177560 / console read status asr-33
|
||||
tkb = 177562 / read buffer asr-33
|
||||
tps = 177564 / punch status asr-33
|
||||
tpb = 177566 / punch buffer asr-33
|
||||
ps = 177776 / processor status
|
||||
|
||||
halt = 0
|
||||
wait = 1
|
||||
rti = 2
|
||||
|
||||
nproc = 16. / number of processes
|
||||
nfilcs = 50.
|
||||
ntty = 8+1
|
||||
nbuf = 6
|
||||
.if cold / ignored if cold = 0
|
||||
nbuf = 2
|
||||
.endif
|
||||
|
||||
core = orig+40000 / specifies beginning of user's core
|
||||
ecore = core+20000 / specifies end of user's core (4096 words)
|
||||
|
||||
/ 4;4 init by copy
|
||||
/ unkni;0 " error
|
||||
/ fpsym;0 " illg in tr
|
||||
unkni;0 / trace and trap (see Sec. B.1 page )
|
||||
unkni;0 / trap
|
||||
panic;0 / pwr
|
||||
rtssym;0 / emt
|
||||
sysent;0 / sys
|
||||
57
pages/e00-02
Normal file
57
pages/e00-02
Normal file
@@ -0,0 +1,57 @@
|
||||
. = orig+60
|
||||
ttyi;240 / interrupt vector tty in ; processor level 5
|
||||
ttyo;240 / interrupt vector tty out
|
||||
ppti;240 / punch papertape in
|
||||
ppto;240 / punch papertape out
|
||||
clock;340 / clock interrupt vector ; processor level 7
|
||||
. = orig+200
|
||||
/ lpto; 240 line printer interrupt ; processor level 5 (future)
|
||||
. = orig+204
|
||||
drum;300 / drum interrupt ; processor level 6
|
||||
. = orig+214
|
||||
tape;300 / dec tape interrupt
|
||||
disk;300 / rk03 interrupt
|
||||
. = orig+300
|
||||
0*4+trcv; 240; 0*4+txmt; 240 / dc11 input;output interrupt vectors
|
||||
1*4+trcv; 240; 1*4+txmt; 240
|
||||
2*4+trcv; 240; 2*4+txmt; 240
|
||||
3*4+trcv; 240; 3*4+txmt; 240
|
||||
4*4+trcv; 240; 4*4+txmt; 240
|
||||
5*4+trcv; 240; 5*4+txmt; 240
|
||||
6*4+trcv; 240; 6*4+txmt; 240
|
||||
7*4+trcv; 240; 7*4+txmt; 240
|
||||
|
||||
. = orig+400
|
||||
/ copy in transfer vectors
|
||||
|
||||
mov $ecore,sp / put pointer to score in the stack pointer
|
||||
jsr r0,copyz; 0; 14 / clear locations 0 to 14 in core
|
||||
mov $4,r0
|
||||
clr r1
|
||||
mov r0,(r1)+ / put value of 4 into location 0
|
||||
mov r0,(r1)+ / put value of 4 into location 2
|
||||
mov $unkni,(r1)+ / put value of unkni into location 4;
|
||||
/ time out, bus error
|
||||
clr (r1)+ / put value of 0 into location 6
|
||||
mov $fpsym,(r1)+ / put value of fpsym into location 10
|
||||
clr (r1)+ / put value of 0 into location 12
|
||||
/ clear core
|
||||
.if cold / ignored if cold = 0
|
||||
halt / halt before initializing rf file system; user has
|
||||
/ last chance to reconsider
|
||||
.endif
|
||||
|
||||
jsr r0,copyz; systm; ecore / clear locations systm to ecore
|
||||
mov $s,chrgt+2,clockp / intlalize clockp
|
||||
/ allocate tty buffers; see H.0 for description
|
||||
mov $buffer,r0
|
||||
mov $tty+6,r1
|
||||
1:
|
||||
mov r0,(r1)
|
||||
add $140.,r0 / tty buffers are 140. bytes long
|
||||
add $8,r1
|
||||
cmp r1,$tty+[ntty*8] / has a buffer been assigned for each tty
|
||||
blo 1b
|
||||
|
||||
/ allocate disk buffers; see H.0 for description
|
||||
|
||||
56
pages/e00-03
Normal file
56
pages/e00-03
Normal file
@@ -0,0 +1,56 @@
|
||||
mov $bufp,r1
|
||||
1:
|
||||
mov r0,(r1)+
|
||||
add $8,r0
|
||||
mov r0,-2(r0) / bus address
|
||||
mov $-256.,-4(r0) / word count
|
||||
add $512.,r0 / buffer space
|
||||
cmp r1,$bufp+nbuf+nbuf
|
||||
blo 1b
|
||||
mov $sb0,(r1)+ / I/O queue entry drum
|
||||
mov $sb1,(r1)+ / I/O queue entry disk (mounted device)
|
||||
mov $swp,(r1)+ / I/O queue entry core image being swapped
|
||||
mov $[systm-inode]\/2,sb0+4 / sets up initial buffers per
|
||||
/ format given in
|
||||
mov $systm,sb0+6 / memory map
|
||||
mov $-512.,sb1+4
|
||||
mov $mount,sb1+6
|
||||
mov $user,swp+6
|
||||
|
||||
/ set devices to interrupt
|
||||
|
||||
mov $100,*$lks / put 100 into clock status register;
|
||||
/ enables clock interrupt
|
||||
|
||||
/ set up time out subroutines
|
||||
|
||||
mov $touts,r0
|
||||
mov $startty,(r0)+ / if toutt = 0 call startty
|
||||
mov $pptito,(r0)+ / if toutt+1 = 0 call pptito
|
||||
tst (r0)+ / add 2 to r0
|
||||
mov $ntty-1,r1
|
||||
1 :
|
||||
mov $xmtto,(r0)+ / if toutt+2 thru toutt+2+ntty=0 call xmtto
|
||||
dec r1
|
||||
bne 1b
|
||||
|
||||
/ free all character blocks; see H.0 for description
|
||||
|
||||
mov $510.,r2
|
||||
mov $-1,r1
|
||||
1:
|
||||
jsr r0,put
|
||||
sub $2,r2
|
||||
bgt 1b
|
||||
|
||||
/ set up drum swap addresses; see H.0 for description
|
||||
|
||||
mov $1024.,-64.,r1 / highest drum address; high 64 blks allocated
|
||||
/ to UNIX
|
||||
mov $p.dska,r2 / p.dska contains dis addresses for processes
|
||||
1 :
|
||||
sub $17.,r1 / 17 blocks per process
|
||||
mov r1,(r2)+
|
||||
cmp r2,$p.dska+nproc+nproc
|
||||
bne 1b
|
||||
|
||||
57
pages/e00-04
Normal file
57
pages/e00-04
Normal file
@@ -0,0 +1,57 @@
|
||||
/ free rest of drum
|
||||
|
||||
.if cold
|
||||
mov $128.,systm / inltialize word 1 of drum superblock image;
|
||||
/ number of bytes in free storage map=128.
|
||||
mov $64.,systm+2+128. / init. wd 66. of superblock image; # of
|
||||
/ bytes in i-node map=64.
|
||||
1:
|
||||
dec r1 / r1=687.,...,34.
|
||||
jsr r0,free / free block 'r1', i.e., set bit 'r1' in free
|
||||
/ storage map in core
|
||||
cmp r1,$34. / first drum address not in i list
|
||||
bgt 1b / if block 34 has been freed, zero i list
|
||||
|
||||
/ zero 1 list
|
||||
|
||||
1:
|
||||
dec r0 / r0=33.,...,1
|
||||
jsr r0,c1ear / zero block 'r1' on fixed head disk
|
||||
tst r1
|
||||
bgt 1b / if blocks 33,...,1 have all been zeroed, done.
|
||||
.endif
|
||||
|
||||
/ make current program a user
|
||||
|
||||
mov $41.,r0 / rootdir set to 41 and never changed
|
||||
mov r0,rootdir / rootdir is i-number of root directory
|
||||
mov r0,u.cd1r / u.cd1r 1s i-number of process current directory
|
||||
mov $1,r0
|
||||
movb r0,u.uno / set process table index for this process to 1
|
||||
mov r0,mpid / initialize mpid to 1
|
||||
mov r0,p.p1d / p.pid identifies process
|
||||
movb r0,p.stat / process status = 1 i.e., active
|
||||
/ = 0 free
|
||||
.if cold / = 2 waiting for a child to die
|
||||
/ = 3 terminated but not yet waited
|
||||
/ for
|
||||
|
||||
/ initialize inodes for special files (inodes 1 to 40.)
|
||||
|
||||
mov $40.,r1 / set r1=i-node-number 40.
|
||||
1:
|
||||
jsr r0,iget / read i-node 'r1' from disk into inode area of
|
||||
/ core and write modified inode out (if any)
|
||||
mov $100017,i.flgs / set flags in core image of inode to indi-
|
||||
/ cate allocated, read (owner, non-owner),
|
||||
/ write (owner, non-owner)
|
||||
movb $1,i.nlks / set no. of links = 1
|
||||
movb $1,i.uid / set user id of owner = 1
|
||||
jsr r0,setimod / set imod=1 to indicate i-node modified, also
|
||||
/ stuff time of modification into i-node
|
||||
dec r1 / next i-node no. = present i-node no.-1
|
||||
bgt 1b / has i-node 1 been initialized; no, branch
|
||||
|
||||
/ initialize i-nodes r1.,...,47. and wr1te the root device, binary, etc.,
|
||||
/ directories onto fixed head disk. user temporary, initialization prog.
|
||||
|
||||
54
pages/e00-05
Normal file
54
pages/e00-05
Normal file
@@ -0,0 +1,54 @@
|
||||
mov $idata,r0 / r0=base addr. of assembled directories.
|
||||
mov $u.off,u.fofp / pointer to u.off in u.fofp (holds file
|
||||
/ offset)
|
||||
1:
|
||||
mov (r0)+,r1/r1=41.,...,47; "0" in the assembled directory
|
||||
/ header signals last
|
||||
beq 1f / assembled directory has been written onto drum
|
||||
jsr r0,imap / locate the inode map bit for i-node 'r1'
|
||||
bisb mq,(r2) / set the bit to indicate the i-node is not
|
||||
/ available
|
||||
jsr r0,iget / read inode 'r1' from disk into inode area of
|
||||
/ core and write modified i-node on drum (if any)
|
||||
mov (r0)+,i.flgs / set flags in core image of inode from
|
||||
/ assembled directories header
|
||||
movb (r0)+,i.nlks / set no. of links from header
|
||||
movb (r0)+,i.uid / set user id of owner from header
|
||||
jsr r0,setimod / set imod=1 to indicate inode modified: also,
|
||||
/ stuff time of modification into i-node
|
||||
mov (r0)+,u.count / set byte count for write call equal to
|
||||
/ size of directory
|
||||
mov r0,u.base / set buffer address for write to top of directory
|
||||
clr u.off / clear file offset used in 'seek' and 'tell'
|
||||
add u.count,r0 / r0 polnts to the header of the next directory
|
||||
jsr r0,writei / write the directory and i-node onto drum
|
||||
br 1b / do next directory
|
||||
.endif
|
||||
|
||||
/ next 2 instructions not executed during cold boot.
|
||||
bis $2000,sb0 / sb0 I/O queue entry for superblock on drum;
|
||||
/ set blt 10 to 1
|
||||
jsr r0,ppoke / read drum superblock
|
||||
1:
|
||||
tstb sb0+1 / has I/O request been honored (for drum)?
|
||||
bne 1b / no, continue to idle.
|
||||
1:
|
||||
decb sysflg / mormally sysflag=0, indicates executing in system
|
||||
sys exec; 2f; 1f / generates trap interrupt; trap vector =
|
||||
/ sysent; 0
|
||||
br panic / execute file/etc/init
|
||||
|
||||
1 :
|
||||
2f;0
|
||||
2:
|
||||
</etc/init\0> / UNIX looks for strings term, noted by nul\0
|
||||
|
||||
panic:
|
||||
clr ps
|
||||
1:
|
||||
dec $0
|
||||
bne 1b
|
||||
dec $5
|
||||
bne 1b
|
||||
jmp *$173700 / rom loader address
|
||||
|
||||
56
pages/e00-06
Normal file
56
pages/e00-06
Normal file
@@ -0,0 +1,56 @@
|
||||
rtssyms:
|
||||
mov r0,-(sp)
|
||||
mov r1,-(sp)
|
||||
mov 4(sp),r0
|
||||
mov -(r0),r0
|
||||
bic $!7,r0
|
||||
asl r0
|
||||
jmp *1f(r0)
|
||||
1:
|
||||
0f;1f;2f;3f;4f;5f;badrts;7f
|
||||
0:
|
||||
mov 2(sp),r0
|
||||
br 1f
|
||||
2:
|
||||
mov r2,r1
|
||||
br 1f
|
||||
3:
|
||||
mov r3,r1
|
||||
br 1f
|
||||
4:
|
||||
mov r4,r1
|
||||
br 1f
|
||||
5:
|
||||
mov r5,r1
|
||||
bf 1f
|
||||
7:
|
||||
mov 8.(sp),r1
|
||||
1:
|
||||
cmp r1,$core
|
||||
blo badrts
|
||||
cmp r1,$ecore
|
||||
bhis badrts
|
||||
bit $1,r1
|
||||
bne badrts
|
||||
tst (r1)
|
||||
beq badrts
|
||||
add $1f,r0
|
||||
mov r0,4(sp)
|
||||
mov (sp)+,r1
|
||||
mov (sp)+,r0
|
||||
rti
|
||||
1:
|
||||
rts r0
|
||||
rts r1
|
||||
rts r2
|
||||
tts r3
|
||||
rts r4
|
||||
rts r5
|
||||
rts sp
|
||||
rts pc
|
||||
|
||||
badrts:
|
||||
mov (sp)+,r1
|
||||
mov (sp)+,r0
|
||||
rpsym:
|
||||
|
||||
57
pages/e00-07
Normal file
57
pages/e00-07
Normal file
@@ -0,0 +1,57 @@
|
||||
jmp unkni
|
||||
|
||||
.if cold
|
||||
|
||||
idata:
|
||||
|
||||
/ root
|
||||
|
||||
41.
|
||||
140016
|
||||
.byte 7,1
|
||||
9f-.-2
|
||||
41.
|
||||
<..\0\0\0\0\0\0>
|
||||
41.
|
||||
<.\0\0\0\0\0\0\0>
|
||||
42.
|
||||
<dev\0\0\0\0\0>
|
||||
43.
|
||||
<bin\0\0\0\0\0>
|
||||
44.
|
||||
<etc\0\0\0\0\0>
|
||||
45.
|
||||
<usr\0\0\0\0\0>
|
||||
46.
|
||||
<tmp\0\0\0\0\0>
|
||||
9:
|
||||
|
||||
/ device directory
|
||||
|
||||
42.
|
||||
140016
|
||||
.byte 2,1
|
||||
9f-.-2
|
||||
41.
|
||||
<..\0\0\0\0\0\0>
|
||||
42.
|
||||
<.\0\0\0\0\0\0\0>
|
||||
01.
|
||||
<tty\0\0\0\0\0>
|
||||
02.
|
||||
<ppt\0\0\0\0\0>
|
||||
03.
|
||||
<mem\0\0\0\0\0>
|
||||
04.
|
||||
<rf0\0\0\0\0\0>
|
||||
05.
|
||||
<rk0\0\0\0\0\0>
|
||||
06.
|
||||
<tap0\0\0\0\0>
|
||||
07.
|
||||
<tap1\0\0\0\0>
|
||||
08.
|
||||
<tap2\0\0\0\0>
|
||||
09.
|
||||
<tap3\0\0\0\0>
|
||||
|
||||
56
pages/e00-08
Normal file
56
pages/e00-08
Normal file
@@ -0,0 +1,56 @@
|
||||
10.
|
||||
<tap4\0\0\0\0>
|
||||
11.
|
||||
<tap5\0\0\0\0>
|
||||
12.
|
||||
<tap6\0\0\0\0>
|
||||
13.
|
||||
<tap7\0\0\0\0>
|
||||
14.
|
||||
<tty0\0\0\0\0>
|
||||
15.
|
||||
<tty1\0\0\0\0>
|
||||
16.
|
||||
<tty2\0\0\0\0>
|
||||
17.
|
||||
<tty3\0\0\0\0>
|
||||
18.
|
||||
<tty4\0\0\0\0>
|
||||
19.
|
||||
<tty5\0\0\0\0>
|
||||
20.
|
||||
<tty6\0\0\0\0>
|
||||
21.
|
||||
<tty7\0\0\0\0>
|
||||
22.
|
||||
<lpr\0\0\0\0\0>
|
||||
01.
|
||||
<tty8\0\0\0\0> / really tty
|
||||
9:
|
||||
|
||||
/ binary directory
|
||||
|
||||
43.
|
||||
140016
|
||||
.byte 2,3
|
||||
9f-.-2
|
||||
41.
|
||||
<..\0\0\0\0\0\0>
|
||||
43.
|
||||
<.\0\0\0\0\0\0\0>
|
||||
9:
|
||||
|
||||
/ etcetra directory
|
||||
|
||||
44.
|
||||
140016
|
||||
.byte 2,3
|
||||
9f-.-2
|
||||
41.
|
||||
<..\0\0\0\0\0\0>
|
||||
44.
|
||||
<.\0\0\0\0\0\0\0>
|
||||
47.
|
||||
<init\0\0\0\0>
|
||||
9:
|
||||
|
||||
57
pages/e00-09
Normal file
57
pages/e00-09
Normal file
@@ -0,0 +1,57 @@
|
||||
/ user directory
|
||||
|
||||
45.
|
||||
140016
|
||||
.byte 2,1
|
||||
9f-.-2
|
||||
41.
|
||||
<..\0\0\0\0\0\0>
|
||||
45.
|
||||
<.\0\0\0\0\0\0\0>
|
||||
9:
|
||||
|
||||
/ temporary directory
|
||||
|
||||
46.
|
||||
140017
|
||||
.byte 2,1
|
||||
9f-.-2
|
||||
41.
|
||||
<..\0\0\0\0\0\0>
|
||||
46.
|
||||
<.\0\0\0\0\0\0\0>
|
||||
9:
|
||||
|
||||
/ initialization program
|
||||
|
||||
47.
|
||||
100036
|
||||
.byte 1,3
|
||||
9f-.-2
|
||||
8:
|
||||
sys break; 0
|
||||
sys open; 6f-8b+core; 0
|
||||
mov r0,r1
|
||||
sys seek; 65.; 0
|
||||
1:
|
||||
mov r1,r0
|
||||
sys read; 9f-8b+core; 512.
|
||||
mov 9f,r5 / size
|
||||
beq 1f
|
||||
sys creat; 9f-8b+core+4; 0
|
||||
mov r0,r2
|
||||
movb 9f+2,0f
|
||||
sys chmod; 9f-8b+core+4; 0:..
|
||||
movb 9f+3,0f
|
||||
sys chown; 9f-8b+core+4; 0:..
|
||||
2:
|
||||
tst r5
|
||||
beq 2f
|
||||
mov r1,r0
|
||||
sys read; 9f-8b+core; 512.
|
||||
mov $512.,0f
|
||||
cmp r5,$512.
|
||||
bhi. 3f
|
||||
mov r5,0f
|
||||
3:
|
||||
|
||||
28
pages/e00-10
Normal file
28
pages/e00-10
Normal file
@@ -0,0 +1,28 @@
|
||||
mov r2,r0
|
||||
sys write; 9f-8b+core; 0:..
|
||||
sub r0,r5
|
||||
br 2b
|
||||
2:
|
||||
mov r2,r0
|
||||
sys close
|
||||
br 1b
|
||||
1:
|
||||
mov r1,r0
|
||||
sys close
|
||||
sys exec; 5f-8b+core; 4f-8b+core
|
||||
sys exit
|
||||
4:
|
||||
5f-8b+core; 0
|
||||
5:
|
||||
</ect/init\0>
|
||||
6:
|
||||
</dev/tap0\0>
|
||||
.even
|
||||
9:
|
||||
|
||||
/ end of initialization data
|
||||
|
||||
0
|
||||
|
||||
.endif
|
||||
|
||||
Reference in New Issue
Block a user