All functions written in Dyalog APL v11.0.1













 appendcrlf {delta}fno   
 #AV[4]#NAPPEND {neg}1,82
 #AV[3]#NAPPEND {neg}1,82




 r{<-}bintohex n                          
 r{<-}#AV[1+(2 2 2 2 2 2 2 2{basevalue}n)]




 r{<-}bin6todec n            
 r{<-}2 2 2 2 2 2{basevalue}n




 r{<-}bin8todec n                
 r{<-}2 2 2 2 2 2 2 2{basevalue}n




 z{<-}ci fnam                                          
 z{<-}{iota}lastrec{<-}recmark{<-}0                    
 {delta}cilist{<-}fnam                                 
 fpos{<-}0                                             
 {->}init                                              
start:{->}loop{times}{iota}{delta}cilist[fpos]=56      
 {->}loop{times}{iota}lastrec{<-}{delta}cilist[fpos]=24
loop:reclen{<-}104                                     
 fpos{<-}fpos+3                                        
 {execute}(lastrec)/'reclen{<-}{delta}cilist[fpos]'    
 record{<-}{delta}cilist[fpos+{iota}reclen]            
 fpos{<-}fpos+reclen                                   
 binlist{<-}record                                     
 z{<-}z,uncompre binlist                               
 {->}0{times}{iota}lastrec=1                           
 fpos{<-}fpos+9                                        
 {->}0{times}{iota}fpos>{rho}{delta}cilist             
 {->}start                                             
init:fpos{<-}fpos+9                                    
 {->}start          



                                   
 cifileparse                                                        
 i{<-}1                                                             
 {delta}pb{<-}#NREAD tno,83,210                                     
 {delta}bindx{<-}((3 0 0 0 1 0 0 108){find}{delta}pb)/{iota}{rho}210
 {->}0{times}{iota}0={rho}{delta}bindx                              
 {->}pcir{times}{iota}{or}/{delta}pb[(1{take}{delta}bindx)]=56 24   
 {->}0                                                              
pcir:{delta}fstrtbuf{<-}({neg}1+1{take}{delta}bindx){drop}{delta}pb 
 



 closeallfiles       
 0{rho}#NUNTIE {neg}1
 0{rho}#NUNTIE {neg}2




 closefile         
 tno{<-}#NUNTIE tno




 decomp1 file                                                                                     
 {delta}rpos{<-}0                                                                                 
inp:'Enter Command - dump, unco, ubuf, cbuf, cibk, quit.'                                         
 {delta}dcmd{<-}{quotequad}                                                                       
 {->}0{times}{iota}{and}/'quit'=4{take}{delta}dcmd                                                    
 {->}bufn{times}{iota}{and}/(4{take}{delta}dcmd)='ubuf'                                               
 {->}dump{times}{iota}{and}/(4{take}{delta}dcmd)='dump'                                               
 {->}uncomp{times}{iota}{and}/(4{take}{delta}dcmd)='unco'                                             
 {->}cibfr{times}{iota}{and}/'cbuf'=4{take}{delta}dcmd                                                
 {->}ciblk{times}{iota}{and}/'cibk'=4{take}{delta}dcmd                                                
 {->}inp                                                                                          
dump:'Enter starting address in 5 hex digits -'                                                   
 {delta}dumpst{<-}5{take}{quotequad}                                                              
 {delta}dump{<-}file[({delta}decpos{<-}hextodec {delta}dumpst)+{iota}256]                         
 {delta}dumpst,cr                                                                                 
 {delta}decpos,cr,cr                                                                              
 #{<-}{delta}lastdump{<-}{delta}decpos dumpprint {delta}dump                                      
 {->}inp                                                                                          
uncomp:'Enter starting address in 5 hex digits -'                                                 
 {delta}uposst{<-}5{take}{quotequad}                                                              
 {delta}rpos{<-}hextodec {delta}uposst                                                            
 'Enter record length in decimal -'                                                               
 {delta}rlen{<-}#                                                                                 
 #{<-}tbuf{<-}uncompre file[{delta}rpos+{iota}{delta}rlen]                                        
shkeep:'Keep entry? Y=yes or N=no?'                                                               
 {delta}k{delta}yn{<-}{quotequad}                                                                 
 {->}keep{times}{iota}'Y'=1{take}{delta}k{delta}yn                                                
 {->}nokeep{times}{iota}'N'=1{take}{delta}k{delta}yn                                              
 {->}shkeep                                                                                       
keep:{execute}{delta}inbuffnam,'{<-}tbuf'                                                         
 {->}inp                                                                                          
nokeep:{->}inp                                                                                    
 {execute}{delta}inbuffnam,'{<-}',{delta}inbuffnam,',uncompre file[{delta}rpos+{iota}{delta}rlen]'
 {->}inp                                                                                          
bufn:'Enter variable name for file buffer, or ''quit''. '                                        
 {delta}inbuffnam{<-}{quotequad}                                                                  
 {->}inp{times}{iota}{and}/'quit'=4{take}{delta}inbuffnam                                             
 {->}bufn{times}{iota}0={rho}{delta}inbuffnam                                                     
 {execute}{delta}inbuffnam,'{<-}{iota}0'                                                          
 {->}inp                                                                                          
ciblk:'Enter starting address in 5 hex digits, or ''quit''. '                                     
 {delta}ublkst{<-}{quotequad}                                                                     
 {->}0{times}{iota}{and}/'quit'=4{take}{delta}ublkst                                                  
 {delta}ublk{<-}hextodec {delta}ublkst                                                            
 'Enter ending address in 5 hex digits, or ''quit''. '                                            
 {delta}ublkend{<-}{quotequad}                                                                    
 {->}0{times}{iota}{and}/'quit'=4{take}{delta}ublkend                                                 
 {delta}ueblk{<-}hextodec {delta}ublkend                                                          
 {delta}unblklen{<-}{delta}ueblk-{delta}ublk                                                      
 #{<-}tcibuf{<-},ci file[{delta}ublk+{iota}{delta}unblklen+1]                                     
cikeep:'Keep entry? Y=yes, or N=no?'                                                              
 {delta}cekeep{<-}{quotequad}                                                                     
 {->}ckeep{times}{iota}{and}/'Y'=1{take}{delta}cekeep                                                 
 {->}inp{times}{iota}{and}/'N'=1{take}{delta}cekeep                                                   
 {->}cikeep                                                                                       
ckeep:{execute}{delta}inunbuff,'{<-}tcibuf'                                                       
 {->}inp                                                                                          
 {->}inp                                                                                          
cibfr:'Enter name for uncompress buffer, or ''quit''. '                                           
 {delta}inunbuff{<-}{quotequad}                                                                   
 {->}inp{times}{iota}{and}/'quit'=4{take}{delta}inunbuff                                              
 {->}cibfr{times}{iota}0={rho}{delta}inunbuff                                                     
 {execute}{delta}inunbuff,'{<-}{iota}0'                                                           
 {->}inp         



                                                                                 
 r{<-}dectobin n                 
 r{<-}2 2 2 2 2 2 2 2{represent}n




 z{<-}dectohex decn                
 z{<-}16 16 16 16 16{represent}decn
 z{<-}'0123456789ABCDEF'[z+1]      




 dtb{<-}{leftbrace}                                           @ Drop Trailing Blanks.                                                                                                    
     {alpha}{<-}' ' & 1<{residue}{depth}{omega}:({enclose}{alpha}){del}{each}{omega}                       @ nested?                                                                             
     2<{rho}{rho}{omega}:({neg}1{drop}{rho}{omega}){leftbrace}({alpha},1{drop}{rho}{omega}){rho}{omega}{rightbrace}{alpha} {del},[{neg}1{drop}{iota}{rho}{rho}{omega}]{omega}     @ array
     1{>=}{rho}{rho}{omega}:(-+/{and}\{reverse}{omega}{enlist}{alpha}){drop}{omega}                         @ vector                                                                         
     (~{reverse}{and}\{reverse}{and}{slashbar}{omega}{enlist}{alpha})/{omega}                              @ matrix                                                                              
 {rightbrace}      



                                                                                                                                                                      
 dump file                                                                                                              
 {delta}rpos{<-}0                                                                                                       
inp:'Enter Command - dump, unco, ubuf, cbuf, cibk, quit.'                                                               
 {delta}dcmd{<-}{quotequad}                                                                                             
 {->}0{times}{iota}{and}/'quit'=4{take}{delta}dcmd                                                                          
 {->}bufn{times}{iota}{and}/(4{take}{delta}dcmd)='ubuf'                                                                     
 {->}{delta}dump{times}{iota}{and}/(4{take}{delta}dcmd)='dump'                                                              
 {->}uncomp{times}{iota}{and}/(4{take}{delta}dcmd)='unco'                                                                   
 {->}cibfr{times}{iota}{and}/'cbuf'=4{take}{delta}dcmd                                                                      
 {->}ciblk{times}{iota}{and}/'cibk'=4{take}{delta}dcmd                                                                      
 {->}inp                                                                                                                
{delta}dump:'Enter starting address in 5 hex digits -'                                                                  
 {delta}dumpst{<-}5{take}{quotequad}                                                                                    
 {delta}dump{<-}file[({delta}decpos{<-}hextodec {delta}dumpst)+{iota}256]                                               
 {delta}dumpst,cr                                                                                                       
 {delta}decpos,cr,cr                                                                                                    
 #{<-}{delta}lastdump{<-}{delta}decpos dumpprint {delta}dump                                                            
 {->}inp                                                                                                                
uncomp:'Enter starting address in 5 hex digits -'                                                                       
 {delta}uposst{<-}5{take}{quotequad}                                                                                    
 {delta}rpos{<-}hextodec {delta}uposst                                                                                  
 'Enter record length in decimal -'                                                                                    
 {delta}rlen{<-}#                                                                                                       
 #{<-}tbuf{<-}uncompress,{transpose}dectobin file[{neg}1+{delta}rpos+{iota}{delta}rlen+1]                               
shkeep:'Keep entry? Y=yes or N=no?'                                                                                     
 {delta}k{delta}yn{<-}{quotequad}                                                                                       
 {->}keep{times}{iota}'Y'=1{take}{delta}k{delta}yn                                                                      
 {->}nokeep{times}{iota}'N'=1{take}{delta}k{delta}yn                                                                    
 {->}shkeep                                                                                                             
keep:{execute}{delta}inbuffnam,'{<-}tbuf'                                                                               
 {->}inp                                                                                                                
nokeep:{->}inp                                                                                                          
 {execute}{delta}inbuffnam,'{<-}',{delta}inbuffnam,',uncompress,{transpose}dectobin file[{delta}rpos+{iota}{delta}rlen]'
 {->}inp                                                                                                                
bufn:'Enter variable name for file buffer, or ''quit''. '                                                               
 {delta}inbuffnam{<-}{quotequad}                                                                                        
 {->}inp{times}{iota}{and}/'quit'=4{take}{delta}inbuffnam                                                                   
 {->}bufn{times}{iota}0={rho}{delta}inbuffnam                                                                           
 {execute}{delta}inbuffnam,'{<-}{iota}0'                                                                                
 {->}inp                                                                                                                
ciblk:Enter starting address in 5 hex digits, or ''quit''. '                                                           
 {delta}ublkst{<-}{quotequad}                                                                                           
 {->}0{times}{iota}{and}/'quit'=4{take}{delta}ublkst                                                                        
 {delta}ublk{<-}hextodec {delta}ublkst                                                                                  
 'Enter ending address in 5 hex digits, or ''quit''. '                                                                  
 {delta}ublkend{<-}{quotequad}                                                                                          
 {->}0{times}{iota}{and}/'quit'=4{take}{delta}ublkend                                                                       
 {delta}ueblk{<-}hextodec {delta}ublkend                                                                                
 {delta}unblklen{<-}{delta}ueblk-{delta}ublk                                                                            
 #{<-}tcibuf{<-},ci file[{delta}ublk+{iota}{delta}unblklen+1]                                                           
cikeep:'Keep entry? Y=yes, or N=no?'                                                                                    
 {delta}cekeep{<-}{quotequad}                                                                                           
 {->}ckeep{times}{iota}{and}/'Y'=1{take}{delta}cekeep                                                                       
 {->}inp{times}{iota}{and}/'N'=1{take}{delta}cekeep                                                                         
 {->}cikeep                                                                                                             
ckeep:{execute}{delta}inunbuff,'{<-}tcibuf'                                                                             
 {->}inp                                                                                                                
 {->}inp                                                                                                                
cibfr:'Enter name for uncompress buffer, or ''quit''. '                                                                 
 {delta}inunbuff{<-}{quotequad}                                                                                         
 {->}inp{times}{iota}{and}/'quit'=4{take}{delta}inunbuff                                                                    
 {->}cibfr{times}{iota}0={rho}{delta}inunbuff                                                                           
 {execute}{delta}inunbuff,'{<-}{iota}0'                                                                                 
 {->}inp      



                                                                                                          
 z{<-}dumplocs fp               
 z{<-}{neg}32+32{times}{iota}8  
 z{<-}fp+z                      
 z{<-}16 16 16 16 16{represent}z
 z{<-}{transpose}z              
 z{<-}'0123456789ABCDEF'[1+z]   
 z{<-}z,8 5{rho}':    '       



  
 z{<-}fp dumpprint {delta}dump;colon;hyph;z2      
 z{<-},({transpose}16 16{represent}{delta}dump),16
 z{<-}'0123456789ABCDEF '[1+z]                    
 z{<-}8 96{rho}z                                  
 colon{<-}8 2{rho}': '                            
 hyph{<-}8 4{rho}' -  '                           
 z2{<-}(8 24{take}z),colon                        
 z2{<-}z2,8 {neg}24{take}8 48{take}z              
 z2{<-}z2,hyph                                    
 z2{<-}z2,8 {neg}24{take}8 72{take}z              
 z2{<-}z2,colon                                   
 z2{<-}z2,8 {neg}24{take}z                        
 z{<-}(dumplocs fp),z2     



                       
 edittool fname;{delta}i;{delta}dmplfl;{delta}dmpst;{delta}cf;{delta}hf;{delta}hdmplc        
 fname{<-}fname,256{rho}0                                                                    
begin:'Enter ''D''-dump, ''X''-execute, ''Q'' -quit.'                                        
 {->}{delta}dmp{times}{iota}'D'={delta}i{<-}1{take}{quotequad}                               
 {->}{delta}exe{times}{iota}'X'={delta}i                                                     
 {->}0{times}{iota}'Q'={delta}i                                                              
 {->}begin                                                                                   
{delta}dmp:'Enter starting address in'                                                      
 '5-digit hex value not more than '',({format}{neg}256+{rho}fname),'',''                      
 'or enter ''X'' to exit.'                                                                   
 {delta}dmpst{<-}5{take}{quotequad}                                                          
 {->}begin{times}{iota}'X'=1{take}{delta}dmpst                                               
 {->}{delta}dmp2{times}{iota}{delta}dmplfl{<-}{and}/{delta}dmpst{epsilon}'0123456789abcdefABCDEF'
 {->}{delta}dmp,0{rho}#{<-}Not a legal 5-digit hex value.                                  
{delta}dmp2:{delta}hdmplc{<-}'abcdef'{iota}{delta}dmpst                                      
 {->}{delta}dmp3{times}{iota}{and}/7={delta}hdmplc                                               
{delta}d2l:{delta}cf{<-}1                                                                    
{delta}l3:{delta}hf{<-}{delta}dmpst[{delta}cf]='abcdef'                                      
 {->}{delta}d2l2{times}{iota}0={or}/{delta}hf                                                
 {delta}dmpst[{delta}cf]{<-}{delta}hf/'ABCDEF'                                               
 {->}{delta}l3{times}{iota}6>{delta}cf{<-}{delta}cf+1                                        
{delta}dmp3:{delta}dmsp{<-}hextodec {delta}dmpst                                             
 {->}eof{times}{iota}{delta}dmsp>{rho}(fname-256)                                            
 {->}{delta}dmpf                                                                             
eof:'Attempt to dump past end-of-file.'                                                      
 {->}{delta}dmp                                                                              
{delta}dmpf:{delta}dmsp dumpprint fname[{delta}dmsp+{iota}256]                               
 {->}begin                                                                                   
{delta}exe:'''xxx'' to exit.'                                                                
{delta}exe2:{drop}                                                                         
 {->}begin{times}{iota}{and}/(3{take}{delta}ei{<-}{quotequad})='xxx'                            
 {execute}{delta}ei                                                                          
 {->}{delta}exe2        



                                                                     
 {delta}fnlist filelistprint {delta}nam;jjj;i;j;{delta}nf;{delta}n;{delta}nc;crf;outb
 0{rho}{delta}nam #NCREATE {neg}1                                                    
 0{rho}{delta}nam #NTIE {neg}1,1                                                     
 {delta}n{<-}1                                                                       
 jjj{<-}{rho}{quotequad}{<-}'Enter how many filenames across each line ->'           
 jjj{<-}{execute}jjj{drop}i{<-}{quotequad}                                           
 j{<-}{rho}{delta}fnlist                                                             
 {delta}nf{<-}{delta}nc{<-}20{times}jjj                                              
l1:{->}clsf{times}{iota}{delta}n>j                                                   
 outb{<-}{delta}fnlist[{delta}n]                                                     
 outb #NAPPEND {neg}1,82                                                             
 {delta}n{<-}{delta}n+1                                                              
 {->}crlf{times}{iota}{delta}n>{delta}nf                                             
 {->}l1                                                                              
l2:{->}l3{times}{iota}j{<=}{delta}nf+{delta}nc                                       
 {delta}nf{<-}{delta}nc+{delta}nf                                                    
 {->}l1                                                                              
l3:{->}clsf{times}{iota}{delta}n>j                                                   
 outb{<-}{delta}fnlist[{delta}n]                                                     
 outb #NAPPEND {neg}1,82                                                             
 {delta}n{<-}{delta}n+1                                                              
 {->}l3                                                                              
clsf:appendcrlf {neg}1                                                               
 0{rho}#NUNTIE {neg}1                                                                
 {->}0                                                                               
crlf:appendcrlf {neg}1                                                               
 {->}l2             



                                                                 
 z{<-}findmarks fil                                             
 z{<-}{iota}0                                                   
 fil{<-}fil,60{rho}0                                            
 {delta}num{<-}3 0 0 0                                          
 {delta}pos{<-}0                                                
main:{delta}x1{<-}{delta}num{find}fil[{delta}pos+{iota}64]      
 {delta}x1{<-}1{take}{delta}x1/{iota}{rho}{delta}x1             
 {delta}pos{<-}{delta}pos+{neg}1+{delta}x1                      
 {delta}rtyp{<-}fil[{delta}pos+5]                               
 {delta}rln{<-}fil[{delta}pos+(8,12)[1+{delta}rtyp=1]]          
 {delta}rln{<-}{delta}rln-((0,4)[1+{or}/{delta}rtyp=1 3])       
 z{<-}z,{delta}num,{delta}pos,{delta}rtyp,{delta}rln            
 {->}end{times}{iota}({or}/{delta}rtyp=1 3){and}fil[{delta}pos+9]=24
 {->}next{times}{iota}{delta}rtyp=3                             
 {->}l2{times}{iota}{delta}num[4]=255                           
 {delta}num[4]{<-}{delta}num[4]+1                               
 {->}next                                                       
l2:{->}l3{times}{iota}{delta}num[3]=255                         
 {delta}num[3]{<-}{delta}num[3]+1+{delta}num[4]{<-}0            
 {->}next                                                       
l3:{delta}num[2]{<-}{delta}num[2]+1+{delta}num[3 4]{<-}0        
 {->}next                                                       
next:{delta}pos{<-}{delta}pos+{delta}rln+4                      
 {->}main                                                       
end:z{<-}((({rho}z){divide}7),7){rho}z 



                         
 z{<-}ftrim {delta}f                                             
 i{<-}{rho}{delta}f                                              
 {delta}outfil{<-}{delta}outdir,(({neg}4+i){take}{delta}f),'.txt'
 {delta}junk{<-}{delta}outfil #NCREATE {neg}2                    
 {delta}junk{<-}{delta}outfil #NTIE {neg}2,1                     
 {delta}fil{<-}(readdocfile {delta}f),#AV[4]                     
 {delta}crindx{<-}({delta}fil=#AV[4])/{iota}{rho}{delta}fil      
main:{->}end{times}{iota}0={rho}{delta}crindx                    
 {delta}buf1{<-}(1{take}{delta}crindx){take}{delta}fil           
 {delta}fil{<-}(1{take}{delta}crindx){drop}{delta}fil            
 {delta}buf1{<-}dtb({neg}1+{rho}{delta}buf1){take}{delta}buf1    
 wrrec {delta}buf1                                               
 {delta}crindx{<-}{delta}crindx-1{take}{delta}crindx             
 {delta}crindx{<-}1{drop}{delta}crindx                           
 {->}main                                                        
end:{delta}junk{<-}#NUNTIE {neg}2 



                               
 z{<-}hexchar{delta}to{delta}dec hx                                  
 z{<-}+/(65536 4096 256 16 1){times}{neg}1+'0123456789ABCDEF'{iota}hx




 r{<-}hextobin n                                               
 r{<-},{transpose}2 2 2 2 2 2 2 2{represent}({neg}1+#AV{iota}n)




 z{<-}hextodec hx                                                    
 z{<-}+/(65536 4096 256 16 1){times}{neg}1+'0123456789ABCDEF'{iota}hx




 {delta}op listfiles tapfile;#IO;{delta}tapbuf;{delta}chr;{delta}bofbuf;{delta}nl;{delta}fname;{delta}ln;{delta}nof
 {delta}fposmarks{<-}{iota}0                                                                                       
 {delta}tappos{<-}0                                                                                                
 {delta}fnamelist{<-}0{rho}''                                                                                      
 #IO{<-}1+{delta}ln{<-}{delta}nof{<-}0                                                                             
 0{rho}#TRAP 1005 'E' '{->}{delta}EOF'                                                                             
 tno{<-}tapfile #NTIE {neg}1                                                                                       
 {->}{delta}ml{times}{iota}7>{delta}op[2]                                                                          
 {delta}op[2]{<-}6                                                                                                 
{delta}ml:{delta}tapbuf{<-}#NREAD tno,83,1                                                                         
 {delta}tappos{<-}{delta}tappos+1                                                                                  
 i{<-}{neg}1={signum}{delta}tapbuf                                                                                 
 {delta}chr{<-}{delta}tapbuf+i\256                                                                                 
 {->}{delta}pbof{times}{iota}{delta}chr=122                                                                        
 {->}{delta}ml                                                                                                     
{delta}pbof:{delta}bofbuf{<-}#NREAD tno,83,7                                                                       
 {delta}tappos{<-}{delta}tappos+7                                                                                  
 {->}{delta}EOF{times}{iota}7{/=}{rho}{delta}bofbuf                                                                
 {->}{delta}pfn{times}{iota}{and}/{delta}bofbuf={neg}62 {neg}42 {neg}58 1 0 8 8                                        
 {->}{delta}ml                                                                                                     
{delta}pfn:{delta}fposmarks{<-}{delta}fposmarks,({neg}8+{delta}tappos)                                             
 {delta}nl{<-}#NREAD tno,83,1                                                                                      
 {delta}fname{<-}#NREAD tno,83,{delta}nl                                                                           
 {delta}addfname {delta}fname                                                                                      
 {execute}({delta}op[1]=3)/'cifileparse'                                                                          
 {delta}nof{<-}{delta}nof+1                                                                                        
 {->}op1{times}{iota}{delta}nof={delta}op[2]                                                                       
 {->}{delta}ml                                                                                                     
op1:{execute}{delta}op[1]/'#{<-},{delta}fnamelist[{delta}ln+{iota}20{times}{delta}op[2]]'                         
 {delta}ln{<-}{delta}ln+20{times}{delta}op[2]                                                                      
 {delta}nof{<-}0                                                                                                   
 {->}{delta}ml                                                                                                     
{delta}EOF:{->}clsf{times}{iota}{delta}nof=0                                                                       
 {execute}{delta}op[1]/'#{<-},{delta}fnamelist[{delta}ln+{iota}20{times}{delta}nof]'                               
clsf:0{rho}#NUNTIE {neg}1   



                                                                                       
 outqav                 
 i{<-}1                 
 #AV[i]#NAPPEND {neg}3  
 i{<-}i+1               
 {->}6{times}{iota}i=257
 {->}2                  
 #NUNTIE {neg}3       



  
 file printfile fnam                               
 fnam #NCREATE {neg}1                              
 fnam #NTIE {neg}1,1                               
 i{<-}1                                            
l0:ind{<-}1                                        
 j{<-}{rho}fil{<-}{execute}file[i;]                
l1:outbyte{<-}fil[ind]                             
 outbyte #NAPPEND {neg}1,82                        
 ind{<-}ind+1                                      
 {->}l2{times}{iota}ind>j                          
 {->}l1                                            
l2:i{<-}i+1                                        
 {->}l3{times}{iota}i{backslashbar}1{take}{rho}file
 {->}l0                                            
l3:closefile       



                                
 z{<-}readdocfile fnam;i               
 z{<-}{iota}0                          
 tno{<-}({delta}indir,fnam)#NTIE {neg}1
 fsize{<-}#NSIZE {neg}1                
 z{<-}#NREAD {neg}1,82,fsize,0         
 0{rho}#NUNTIE {neg}1   



               
 z{<-}readfile fnam;i                  
 z{<-}{iota}0                          
 tno{<-}fnam #NTIE {neg}1              
 fsize{<-}#NSIZE {neg}1                
 z{<-}#NREAD tno,83,fsize,0            
 0{rho}#NUNTIE tno                     
 i{<-}(({neg}1={signum}z)/{iota}{rho}z)
 z[i]{<-}z[i]+256       



               
 trimfiles {delta}tape                                   
 {delta}indf{<-}1{take}{rho}{delta}tape                  
 {delta}idxf{<-}1                                        
main:{->}0{times}{iota}{delta}idxf>{delta}indf           
 {delta}of{<-}dtb {delta}of{<-},{delta}tape[{delta}idxf;]
 ftrim {delta}of                                         
 {delta}idxf{<-}{delta}idxf+1                            
 {->}main             



                                   
 unb {delta}n                                                  
 0{rho}{delta}n #NTIE {neg}1                                   
 {delta}if{<-}0                                                
 {delta}filsz{<-}#NSIZE {neg}1                                 
 {delta}filb{<-}#NREAD {neg}1,82,{delta}filsz                  
 0{rho}#NUNTIE {neg}1                                          
 {delta}outfil{<-}(({neg}4+{rho}{delta}n){take}{delta}n),'.txt'
 0{rho}{delta}outfil #NCREATE {neg}2                           
 0{rho}{delta}outfil #NTIE {neg}2,1                            
main:{delta}if{<-}{delta}if+1                                  
 {->}end{times}{iota}{delta}if>{delta}filsz                    
 ({delta}ib{<-}{delta}filb[{delta}if])#NAPPEND {neg}2,82       
 {->}add0A{times}{iota}#AV[4]={delta}ib                        
 {->}main                                                      
add0A:(#AV[3])#NAPPEND {neg}2,82                               
 {->}main                                                      
end:0{rho}#NUNTIE {neg}2  



                                     
 unci fil                                                                        
 {delta}next8{<-}{delta}nblnk5{<-}{delta}nblnk6{<-}0                             
 fil{<-}fil,104{rho}0                                                            
 {delta}mklist{<-}findmarks fil                                                  
 {delta}buffer{<-}{iota}0                                                        
 {delta}indx{<-}1                                                                
start:{->}0{times}{iota}{delta}indx>1{take}{rho}{delta}mklist                    
 {delta}r{<-}{delta}mklist[{delta}indx;]                                         
 {->}x03{times}{iota}{delta}r[6]=3                                               
 {->}x01                                                                         
x01:{delta}buffer{<-}{delta}buffer,uncmpr fil[(12+{delta}r[5])+{iota}{delta}r[7]]
 {->}0{times}{iota}fil[9+{delta}r[5]]=24                                         
 {delta}indx{<-}{delta}indx+1                                                    
 {->}start                                                                       
x03:{delta}tbuff{<-}fil[(12+{delta}r[5])+{iota}{delta}r[7]]                      
 {->}x03end{times}{iota}fil[9+{delta}r[5]]=24                                    
 {delta}r{<-}{delta}mklist[({delta}indx+1);]                                     
 {delta}tbuff2{<-}fil[(8+{delta}r[5])+{iota}{delta}r[7]]                         
 {delta}r{<-}{delta}mklist[({delta}indx+2);]                                     
 {delta}tbuff3{<-}fil[(12+{delta}r[5])+{iota}{delta}r[7]]                        
 {delta}buffer{<-}{delta}buffer,uncmpr {delta}tbuff,{delta}tbuff2,{delta}tbuff3  
 {delta}indx{<-}{delta}indx+3                                                    
 {->}start                                                                       
x03end:{delta}buffer{<-}{delta}buffer,uncmpr {delta}tbuff   
 



 unco fil                                                                        
 {delta}next8{<-}{delta}nblnk5{<-}{delta}nblnk6{<-}0                             
 fil{<-}fil,104{rho}0                                                            
 {delta}mklist{<-}findmarks fil                                                  
 {delta}buffer{<-}{iota}0                                                        
 {delta}indx{<-}1                                                                
start:{->}0{times}{iota}{delta}indx>1{take}{rho}{delta}mklist                    
 {delta}r{<-}{delta}mklist[{delta}indx;]                                         
 {->}x03{times}{iota}{delta}r[6]=3                                               
 {->}x01                                                                         
x01:{delta}buffer{<-}{delta}buffer,uncmpr fil[(12+{delta}r[5])+{iota}{delta}r[7]]
 {->}0{times}{iota}fil[9+{delta}r[5]]=24                                         
 {delta}indx{<-}{delta}indx+1                                                    
 {->}start                                                                       
x03:{delta}tbuff{<-}fil[(12+{delta}r[5])+{iota}{delta}r[7]]                      
 {->}x03end{times}{iota}fil[9+{delta}r[5]]=24                                    
 {delta}r{<-}{delta}mklist[({delta}indx+1);]                                     
 {delta}tbuff2{<-}fil[(8+{delta}r[5])+{iota}{delta}r[7]]                         
 {delta}buffer{<-}{delta}buffer,uncmpr {delta}tbuff,{delta}tbuff2                
 {delta}indx{<-}{delta}indx+2                                                    
 {->}start                                                                       
x03end:{delta}buffer{<-}{delta}buffer,uncmpr {delta}tbuff                        



                     
 r{<-}uncmpr dat                                                 
 dat{<-},{transpose}dectobin dat                                 
 recend{<-}0                                                     
 r{<-}{iota}0                                                    
 l{<-}{rho}dat                                                   
start:{->}end{times}{iota}recend>{neg}6+l                        
 {->}ln8{times}{iota}1={delta}next8                              
 {->}ln5{delta}6{times}{iota}{or}/1=({delta}nblnk5,{delta}nblnk6)
 b{<-}bin6todec dat[recend+{iota}6]                              
 recend{<-}recend+6                                              
 {->}l5{delta}6{times}{iota}{or}/b=5 6                           
 {->}start{times}{iota}{or}/(0 1)=b                              
 {->}start{times}{iota}b=3                                       
 {->}l2{times}{iota}2=b                                          
 {->}l8{times}{iota}4=b                                          
 r{<-}r,x6bcl[{neg}6+b]                                          
 {->}start                                                       
l2:r{<-}r,cr                                                     
 {->}start                                                       
l8:{->}no8{times}{iota}l<8+recend                                
 e{<-}bin8todec dat[recend+{iota}8]                              
 recend{<-}recend+8                                              
 r{<-}r,ebcdic[1+e]                                              
 {delta}next8{<-}0                                               
 {->}start                                                       
l5{delta}6:{->}no5{delta}6{times}{iota}l<6+recend                
 c{<-}b                                                          
 b{<-}bin6todec dat[recend+{iota}6]                              
 recend{<-}recend+6                                              
l5{delta}6c:r{<-}r,(b+(c=5 6)/1 65){rho}' '                     
 {->}start                                                       
end:{->}0                                                        
no8:{delta}next8{<-}1                                            
 {->}0                                                           
no5{delta}6:{delta}nblnk5{<-}b=5                                 
 {delta}nblnk6{<-}6=b                                            
 {->}0                                                           
ln8:e{<-}bin8todec dat[recend+{iota}8]                           
 recend{<-}recend+8                                              
 r{<-}r,ebcdic[1+e]                                              
 {delta}next8{<-}0                                               
 {->}start                                                       
ln5{delta}6:b{<-}bin6todec dat[recend+{iota}6]                   
 recend{<-}recend+6                                              
 r{<-}r,(b+(({delta}nblnk5,{delta}nblnk6)/1 65)){rho}' '        
 {delta}nblnk5{<-}{delta}nblnk6{<-}0                             
 {->}start     



                                                  
 r{<-}uncompre dat                                             
 dat{<-},{transpose}dectobin dat                               
 recend{<-}0                                                   
 r{<-}{iota}0                                                  
 l{<-}{rho}dat                                                 
start:{->}end{times}{iota}recend>{neg}6+l                      
 f{<-}dat[recend+{iota}6]                                      
 recend{<-}recend+6                                            
 {->}start{times}{iota}{or}/(0 1)=b{<-}bin6todec f             
 {->}start{times}{iota}b=3                                     
 {->}l2{times}{iota}2=b                                        
 {->}l5{delta}6{times}{iota}{or}/c{<-}(5 6)=b                  
 {->}l8{times}{iota}4=b                                        
 r{<-}r,x6bcl[{neg}6+b]                                        
 {->}start                                                     
l2:r{<-}r,cr                                                   
 {->}start                                                     
l8:{->}0{times}{iota}l<8+recend                                
 e{<-}bin8todec dat[recend+{iota}8]                            
 recend{<-}recend+8                                            
 r{<-}r,ebcdic[1+e]                                            
 {->}start                                                     
l5{delta}6:{->}end{times}{iota}l<6+recend                      
 c{<-}c/1 65                                                   
 e{<-}bin6todec dat[recend+{iota}6]                            
 recend{<-}recend+6                                            
 r{<-}r,(e+c){rho}' '                                          
 {->}start                                                     
badrec:{->}0,0{rho}#{<-}'Attempt to access past end of record!'
end:{delta}tm{<-}{iota}0   



                                    
 r{<-}uncompress dat                                           
 dat{<-},{transpose}dectobin dat                               
 recend{<-}0                                                   
 r{<-}{iota}0                                                  
 l{<-}{rho}dat                                                 
start:{->}end{times}{iota}recend>{neg}6+l                      
 b{<-}bin6todec dat[recend+{iota}6]                            
 recend{<-}recend+6                                            
 {->}l5{delta}6c{times}{iota}{or}/1={delta}nblnk5,{delta}nblnk6
 c{<-}((5 6)=b)/1 65                                           
 {->}l8{times}{iota}1={delta}next8                             
 {->}start{times}{iota}{or}/(0 1)=b                            
 {->}start{times}{iota}b=3                                     
 {->}l2{times}{iota}2=b                                        
 {->}l5{delta}6{times}{iota}c{/=}0                             
 {->}l8{times}{iota}4=b                                        
 r{<-}r,x6bcl[{neg}6+b]                                        
 {->}start                                                     
l2:r{<-}r,cr                                                   
 {->}start                                                     
l8:{->}no8{times}{iota}l<8+recend                              
 e{<-}bin8todec dat[recend+{iota}8]                            
 recend{<-}recend+8                                            
 r{<-}r,ebcdic[1+e]                                            
 {delta}next8{<-}0                                             
 {->}start                                                     
l5{delta}6:{->}no5{delta}6{times}{iota}l<6+recend              
 b{<-}bin6todec dat[recend+{iota}6]                            
 recend{<-}recend+6                                            
l5{delta}6c:r{<-}r,(b+c){rho}' '                              
 {delta}nblnk{<-}0                                             
 {->}start                                                     
badrec:{->}0,0{rho}#{<-}'Attempt to access past end of record!'
end:{->}0                                                      
no8:{delta}next8{<-}1                                          
 {->}0                                                         
no5{delta}6:{delta}nblnk5{<-}b=5                               
 {delta}nblnk6{<-}6=b                                          
 {->}0           



                                              
 wrrec {delta}bf                            
 {->}end{times}{iota}0={rho}{delta}bf       
 {delta}junk{<-}{delta}bf #NAPPEND {neg}2,82
end:{delta}junk{<-}(#AV[4])#NAPPEND {neg}2  
 {delta}junk{<-}(#AV[3])#NAPPEND {neg}2     
 {->}0                                      
