4.3BSD/usr/contrib/apl/lib/getws
n *.KB H asave asave asave0;asave1;asave2;asave3;asave4;asave5
asave4 { 420 Lcreat asave0
asave5 { 0
asave1 { Lnl 2 3
asave8: asave0 { asave1[asave5+?1;]
}(^/'asave'=5Yasave0)/asave9
asave0 { (asave0 # ' ')/asave0
asave2 { asave4 Lwrite R,asave0
asave2 { asave4 Lwrite asave0
}(2=Lnc asave0)/asave7
asave0 { Lcr asave0
asave3 { 'f'
}asave6
asave7: asave0 { BJ asave0
asave3 { 'nc'[(?1) + ' 'E(,0)\0Rasave0]
asave6: asave2 { asave4 Lwrite asave3
asave2 { asave4 Lwrite (RRasave0),Rasave0
asave2 { asave4 Lwrite asave0
asave9: }((1YRasave1) > asave5{asave5+1)/asave8
asave2 { Lclose asave4
load load fdload9;typeload9;rankload9;shapeload9;mload9;rload9;lenload9;nameload9;nload9
CJ change the '8' in line 2 to '4' for apl2
lenload9 { 8
fdload9 { 2 Lopen fdload9
nameload9 { Lfloat fdload9 Lread lenload9
}(0 = Rnameload9)/exit
okload9: nameload9 { fdload9 Lread nameload9
typeload9 { ('fcn' = fdload9 Lread 1)/1 2 3
rankload9 { Lfloat fdload9 Lread lenload9
shapeload9 { Lfloat fdload9 Lread X/lenload9,rankload9
rload9 { ''
mload9 { nload9 { X/shapeload9,(typeload9 = 3)/lenload9
nextload9: rload9 { rload9, fdload9 Lread mload9
} (0 # mload9 { nload9-Rrload9)/nextload9
} (3#typeload9)/rshapeload9
rload9 { Lfloat rload9
rshapeload9: rload9 { shapeload9 Rrload9
}(1=typeload9)/funload9
rload9 {BJ nameload9,' { rload9'
}21
funload9: nameload9 {nameload9, Lfx rload9
nameload9
}(0#Rnameload9)/4
exit: nameload9 { Lclose fdload9