.CENTER ASS68, Motorola M 6800 Cross-Assembler .SKIP1 .INDENT6 The attached cross-assembler was written for a PDP11-45 running under the RSX11M operating system. It is written in DEC's FORTRAN IV PLUS and may not be transferrable to other systems without modification. .SKIP1 .INDENT6 Note particularly the use of INTEGER*2 values for the bytes and INTEGER*4 values for addresses so as to avoid having to do anything about negative values! Another thing is that in many places BYTE arrays (LOGICAL*1) are EQUIVALENCED to bigger elements so as to allow character loading and string comparisons. This is OK on most machines but beware, the PDP bytes are arranged in a different order in a word. for bytes 1,2,3 etc a PDP11 word contains .INDENT4 INTEGER*2#####byte2#byte1 .INDENT4 INTEGER*4#####byte4#byte3#byte2#byte1 .SKIP1 Whereas an IBM word is the opposite .INDENT4 INTEGER*4#####byte1#byte2#byte3#byte4 .SKIP1 Beware too, DEC FORTRAN IV where although 4 bytes are reserved for INTEGER*4 variables, they are only treated as if they were INTEGER*2. Better to use REAL for strings throughout if theres a doubt, but maybe it will work with your FORTRAN. .SKIP1 .INDENT6 BEST OF LUCK. .PAGE $$