On the PDP-10:
 A page is 512 words, numbered from 000 to 777 octal.
 A word is 36 bits, numbered 0 to 35, left to right.  (Bit 0 is the sign
   bit, bit 35 is the least significant bit)
 The page is 512 * 36 = 18432 bits = 4608 nybbles = 2304 octets.

OUTPAG: MOVE    T1,[POINT 4,IBUF]       ; Read data 4 bits at a time
       MOVEM   T1,IPTR
       MOVE    T1,[POINT 8,OBUF]       ; Write data 8 bits at a time
       MOVEM   T1,OPTR
       MOVEI   T3,^D<512*36/8>         ; Number of octets per page
OUTPG1: ILDB    T1,IPTR                 ; Even numbered nybble
       ILDB    T2,IPTR                 ; Odd numbered nybble
       LSH     T1,4                    ; First one is more significant
       OR      T1,T2                   ; Combine to make 8 bits
       IDPB    T1,OPTR                 ; Store it in output buffer
       SOJG    T3,OUTPG1               ; Do all 2304 bytes
       POPJ    P,

IPTR:   BLOCK   1
OPTR:   BLOCK   1
IBUF:   BLOCK   ^O<1000>                ; 1 page = 1000 (octal) words
OBUF:   BLOCK   ^D<512*36/8>/4          : 2304 bytes @ 4 per word = 576 words

You will need to reverse this process if you are creating 36-bit data on a
32-bit machine to be sent via FTP.

Each pair of 36-bit words is 72 bits = 9 bytes.
 byte0 = bits 00-07 of even word
 byte1 = bits 08-15 of even word
 byte2 = bits 16-23 of even word
 byte3 = bits 24-31 of even word
 byte4 = bits 32-35 of even word << 4 || bits 00-03 of odd word
 byte5 = bits 04-11 of odd word
 byte6 = bits 12-19 of odd word
 byte7 = bits 20-27 of odd word
 byte8 = bits 28-35 of odd word