; modified SYSALL 4/8/06 to add header ; modified 9/29/07 to fix control-S search typo/bug "Configuring HP-IPL/OS to use 6K and no blocks..." $PRINT CRLF @END 13777 PUT @BLK 14000 PUT ;------------------------------------------------------- "Loading ABSOUT" $PRINT CRLF ; ; fromAdr toAdr ABSOUT - outputs ABS binary to MS out ; ex: 100 17777 ABSOUT to encode memory from 100 to 17777. ; NOTE! Does not add final 0's so multiple ranges can be ; written to one file, use PTZERO to end the file. ; OCTAL DEFINE ABSOUT #0 S>Z ;record counter on Z DUP S>Y ;copy end address to Y to check for last block #0 S>X ;checksum on X +DO ;for index = start address to end address Z>S DUP S>Z ;copy record counter to stack IFZ ;if zero then start of new block... Y>S DUP S>Y ;get end address INDEX ;get current address X>S DROP ;discard prev checksum DUP S>X ;copy address to checksum SUB INC ;sub/inc to get # words left DUP ;save to use in a bit 33 SUB ;subtract 33 oct to see if incomplete IF<0 ;if incomplete block leave #left on stack ELSE ;else DROP ; don't need #words left 33 ; instead do 33 octal words ENDIF Z>S DROP DUP S>Z ;copy record count to Z MSBOUT ;output record count to mass storage #0 MSBOUT ;write 0 pad byte INDEX MSWOUT ;write two byte starting address ENDIF INDEX GET ;get data at current address DUP MSWOUT ;write to mass storage X>S ADD DUP S>X ;add data to checksum and duplicate Z>S DEC DUP S>Z ;decrement record counter IFZ ;if last word... MSWOUT ; write checksum ELSE DROP ;else discard it ENDIF +LOOP X>S DROP ;discard checksum Y>S DROP ;discard last address Z>S DROP ;discard record counter END ;--------------------------------------------- "Loading PTZERO" $PRINT CRLF ; ; PTZERO - writes 20 zero bytes to MS output ; OCTAL DEFINE PTZERO #1 24 +DO #0 MSBOUT +LOOP END ;--------------------------------------------- "Loading SYSALL" $PRINT CRLF ; "SYSALL" - generate combined image containing ; HPIPLOS, OCTAPUS and OCTAPUS HELP. OCTAL DEFINE SYSALL 10 ;number of leader zero bytes, poke here to change DO ;write papertape leader... DUP IFNZ DEC #0 MSBOUT ENDIF DUP WHILE DROP "Writing..." $PRINT 2000 EOD ABSOUT ;save 2000 to EOD 2 1777 ABSOUT ;save 2-1777 14000 16377 ABSOUT ;save Octapus-E PTZERO END ;--------------------------------------------- "Loading OE and OE?" $PRINT CRLF DEFINE OE 14000 RUN END DEFINE OE? 14001 RUN END ;-------------------------------------------------- "Decoding Octapus-E binary (14000-16352)" $PRINT CRLF DEFINE D $LEN 3 DIV DUP S>Z DEC #0 SWAP +DO $HEAD 74 SUB $HEAD 74 SUB 100 MUL ADD $HEAD 74 SUB 10000 MUL ADD OVER INDEX ADD SWAP PUT +LOOP $DROP Z>S ADD END 014000 "?l>>lFWm=@r=HXB@yBvq==QDvW==RD@r=RXBnq=xl=Fl>HXB=yBvq=Eq=lXC" D "tl=lXBqp=Wm=
uWAjq>zWANl>BXAol>AXAhl>MX=bxB" D
"Nk<=Eq=_XA=L JxBNK <<uWAVq>gZAOr>hxB" D
"Ok