1
0
mirror of https://github.com/PDP-10/stacken.git synced 2026-02-19 13:55:12 +00:00
Files
PDP-10.stacken/files/stacken-tape-backup/dskb:10_335/foo.mac
Lars Brinkhoff 6e18f5ebef Extract files from tape images.
Some tapes could not be extracted.
2021-01-29 10:47:33 +01:00

149 lines
2.3 KiB
Plaintext

title foo
.text "/symseg:low/locals"
search jobdat, uuosym, macten
t1==1
t2==2
p==17
arg: block ^D9
buffer: block ^D579/4
reply: asciz "Gurkmacka tangorabatt.
"
pdl: block <pdllen==^D100>
vector: exp indone
block 3
foo: jfcl
reset
open 1,[
exp .iobyt+uu.aio
sixbit "udp"
xwd 0,0]
halt
movei 1,vector
piini. 1,
halt
move 1,[
ps.fac+ps.fon+[
exp 1
xwd 0,ps.rid
exp 0]]
pisys. 1,
halt
movei 1,1
movem 1,arg+0 ;Function code.
movem 1,arg+1 ;Channel.
setom arg+4 ;ARGH, this is a bug.
movem 1,arg+6 ;ARGH, this is a bug.
movei 1,^D69 ;TFTP port number.
movem 1,arg+5
movei 1,arg
call 1,[sixbit "udp."]
halt
loop: movx 0,<hb.rio+^D10000>
hiber 0,
halt
jrst loop
prdec: idivi 1,^D10
push p,2
skipe 1
pushj p,prdec
pop p,2
addi 2,"0"
outchr 2
popj p,
pripa: push p,1
ldb 1,[point 8,(p),7]
pushj p,prdec
pushj p,prper
ldb 1,[point 8,(p),15]
pushj p,prdec
pushj p,prper
ldb 1,[point 8,(p),23]
pushj p,prdec
pushj p,prper
ldb 1,[point 8,(p),31]
pushj p,prdec
pop p,(p)
popj p,
pcrlf: outstr[ byte (7) 15, 12, 0]
popj p,
prper: outchr[ exp "."]
popj p,
indone: outstr[ asciz "Input done!
"]
move p,[iowd pdllen, pdl]
inloop: movei 1,3
movem 1,arg+0
movei 1,1
movem 1,arg+1
movei 1,buffer
movem 1,arg+7
movei 1,^D576
movem 1,arg+10
movei 1,arg
call 1,[sixbit "udp."]
jrst chkend
outstr[ asciz " Datagram ("]
move 1,arg+10
pushj p,prdec
outstr[ asciz " bytes) from "]
move 1,arg+4
pushj p,pripa
outstr[ asciz " port "]
move 1,arg+6
pushj p,prdec
pushj p,pcrlf
outstr[ asciz "TFTP opcode = "]
ldb 1,[point 16,buffer, 15]
push p,1 ;Save opcode a while.
pushj p,prdec
pushj p,pcrlf
pop p,1 ;Restore opcode.
caie 1,1 ;Read Request?
jrst inloop ; No, loop.
move 1,[point 7, reply]
move 2,[point 8, buffer + 1]
move 3,[byte (16) 3, 1]
movem 3,buffer ;Opcode 3 = data, seq = 1.
movei 4,4
sloop: ildb 3,1
jumpe 3,slend
idpb 3,2
aoja 4,sloop
slend: movei 1,1
movem 1,arg+0
movei 1,arg
call 1,[sixbit "udp."]
halt
movei 1,2
movem 1,arg+0
movei 1,buffer
movem 1,arg+7
movem 4,arg+10
movei 1,arg
call 1,[sixbit "udp."]
halt
jrst inloop
chkend: debrk.
jfcl
halt
end foo