[Search for users]
[Overall Top Noters]
[List of all Conferences]
[Download this site]
Title: | -={ H A C K E R S }=- |
Notice: | Write locked - see NOTED::HACKERS |
Moderator: | DIEHRD::MORRIS |
|
Created: | Thu Feb 20 1986 |
Last Modified: | Mon Aug 03 1992 |
Last Successful Update: | Fri Jun 06 1997 |
Number of topics: | 680 |
Total number of notes: | 5456 |
143.0. "GT40 bootstrap code" by REX::MINOW () Tue Jul 30 1985 09:48
A while back in some notesfile (CTNOTES or the somewhat belly-up
HACKERS), someone was asking for the GT40 down-line loader format
It is just the standard PDP-11 absolute loader. However, it uses
six-bit data (ignoring random carriage-returns).
While cleaning out my office, I came upon a paper copy of the
bootstrap. The relevant parts follow the form feed. Note that
I'm just typing them in -- and haven't assembled or tested them.
This was taken from Jack Burness's GT40 bootstrap, "BOOTVT S09"
Copyright 1973, 1974, Digital Equipment Inc.
With hope that this reaches the requestor...
Martin.
;
; GET8 gets an eight-bit byte (absldr calls it to read binary data):
; Uses r2, r4 (permanently). Returns the 8-bit byte in r0.
;
get8: jsr pc,getsix ; Get a six-bitter
mov r0,-(sp) ; save
br getp84 ; and off we go
;
; GET84 is entered when the "which byte" counter overflows
get84: clr r2 ; reset the counter
getp84: tst (r2)+ ; next position
add get8tb-2(r2),pc ; off we go.
;
; Dispatch table, don't move it.
get8tb: .word get81-get8tb
.word get82-get8tb
.word get83-get8tb
.word get84-get8tb
;
get81: jsr pc,getsix ; get a character now
mov r0,r4 ; save for a second
asl r0
asl r0 ; shift to left of byte
aslb r0
rolb @sp ; pack them in
aslb r0
rolb @sp ; a good 8 bit thing
mov (sp)+,r0 ; pop and return now
rts pc
;
get82: asl r0 ; worst case, shift 4
asl r0
aslb r0
rolb r4
aslb r0
rolb r4
aslb r0
rolb r4
mov r4,r0
mov (sp)+,r4
rts pc
;
get83: rol r0
rol r0
ror r4
rorb r0
ror r4
rorb r0 ; final character assembled
tst (sp)+ ; fudge stack
rts pc
;
; Getsix gets one byte from the DL11E
;
getsix: jsr pc,getkb ; Any traffic to host?
tstb @#DLICSR ; Any traffic from host?
bpl getsix ; Loop until we have work to do
jsr r5,getbyt ; Get the byte
br getsix ; Ignore <cr>, etc.
rts pc ; And return
;
; Getbyt is called from interrupt and non-interrupt modes to obtain
; one byte and strip off garbage. Result in r0. Return:
; (r5) if the byte is not alphanumeric
; 2(r5) if the byte is alphanumeric.
;
getbyt mov @#DLIBUF,r0 ; Get the byte from the DL11E
bic @#177600,r0 ; Remove junk and parity
cmpb r0,#137 ; Is it too big?
bhi 1$ ; If so, return to (r5)
cmpb r0,#40 ; Is it too small
blo 1$ ; Return to (r5) if so.
tst (r5)+ ; Alphanumeric, return to 2(r5)
1$: rts r5 ; Exit.
.end
T.R | Title | User | Personal Name | Date | Lines |
---|
143.1 | | BELKER::LUWISH | | Tue Jul 30 1985 10:38 | 7 |
| Thank you for evoking memories of working with Jack. I have a moving-company
box full of listings of some work he did while a contractor here. Most of
his comments end with the word "now", and "off we go!" is another of his
stylistic "signatures". He was also known for profane and obscene commentary:
he was so annoyed that Decus stripped out his juiciest comments from Lunar
Lander that he submitted a useful program that had an executable profane .ASCII
string - if removed the program failed to function!
|
143.2 | | SNOV10::QUODLING | | Tue Jul 30 1985 21:01 | 5 |
| re .0
Twas I that twas asking, Martin. Thank you kindly.
Peter Q.
|
143.3 | | REX::MINOW | | Wed Jul 31 1985 09:39 | 7 |
| When they submitted the moon lander sources (after censorship), Jack
was reported to have chuckled that they missed the "diagonal ones".
Peter, If you'd like, I could xerox the rest of the absldr -- I can't
seem to find the papertape anywhere, though.
Martin.
|