NAM LIST UTILITY FOR SK*DOS 68K OPT PAG PAG * COPYRIGHT (C) 1986 BY PETER A. STARK * EQUATES TO SK*DOS LIB SKEQUATE LIST BRA.S START GO TO START VER DC.W $0101 VERSION NUMBER * START OF ACTUAL PROGRAM START DC PCRLF START ON NEW LINE CLR.B D1 PREVIOUS CHARACTER WAS NONE MOVE.L A6,A0 SAVE POINTER MOVE.L A6,A4 POINT TO USER FCB DC GETNAM GET FILE SPEC INTO FCB BCC.S NAMEOK IF FILE NAME WAS OK BRA.L HELP ELSE GIVE HIM HELP * ERROR ROUTINE ERROR DC PERROR PRINT ERROR CODE BSR.S CLOSE CLOSE THE FILE DC WARMST AND RETURN TO SK*DOS * FILE SPEC WAS OK; DEFAULT TO .TXT NAMEOK MOVE.B #1,D4 DEFAULT EXTENSION CODE DC DEFEXT DEFAULT TO .TXT * NOW ACTUALLY OPEN THE FILE DC FOPENR OP CODE FOR OPEN FOR READ BNE.S ERROR IF NOT ZERO (Z = 0) * MAIN LOOP TO READ AND PRINT EACH CHARACTER MAIN MOVE.L A0,A4 POINT TO SYSTEM FCB DC FREAD GO READ THE NEXT CHARACTER BEQ.S CHAROK GO ON IF NO ERROR * IF THERE WAS AN ERROR, SEE IF END OF FILE CMP.B #8,FCBERR(A4) IS ERROR END OF FILE (IE) ERROR BNE.S ERROR NOT END OF FILE, SO REAL ERROR BSR.S CLOSE ON E-O-F, JUST CLOSE FILE DC WARMST AND RETURN TO SK*DOS * CONTINUE IF CHARACTER IS OK CHAROK CMP.B #$0A,D5 IS IT LINE FEED? BNE.S PRNTIT NO, JUST PRINT IT MOVE.B D1,D6 YES, GET PREVIOUS CHARACTER MOVE.B D5,D1 SAVE CURRENT CHARACTER CMP.B #$0D,D6 WAS PREV CHAR A CR? BEQ.S MAIN YES, SO SWALLOW IT PRNTIT MOVE.B D5,D1 SAVE CHARACTER MOVE.B D5,D4 READY FOR PRINTING DC PUTCH AND PRINT IT CMP.B #$0D,D4 WAS IT RETURN? BNE.S MAIN NO, SO JUST CONTINUE MOVE.B #$0A,D4 DC PUTCH FOLLOW WITH LINE FEED BRA.S MAIN AND ALSO CONTINUE * CLOSE SUBROUTINE CLOSE MOVE.L A0,A4 POINT TO FCB DC FCLOSE CLOSE OPERATION CODE RTS AND THEN RETURN W/O ERROR MESSAGE * PRINT HELP MESSAGE HELP LEA HLPMSG(PC),A4 DC PSTRNG DC WARMST * TEST STRINGS HLPMSG DC.B 'LIST is used to display the contents of a text file. The' DC.B $0D,$0A DC.B 'correct syntax is' DC.B $0D,$0A DC.B ' LIST ' DC.B $0D,$0A DC.B 'If not specified, the current work drive and an extension' DC.B $0D,$0A DC.B 'of .TXT will be assumed.',4 END LIST