home *** CD-ROM | disk | FTP | other *** search
- ; Assembly Program Checker (also a test of ss.library), (c) 1993 MJSoft
-
- ; opt x+
-
- include "ssmac.h"
-
- tbase a4
- clistart
-
- dbuf anchor,ap_SIZEOF+256
-
- geta anchor,a0
- move.w #$1000,ap_BreakBits+2(a0)
- move.w #256,ap_Strlen(a0)
- get.l files,d1
- move.l a0,d2
- call dos,MatchFirst
- tst.l d0
- beq.s loopit
- sub.l a0,a0
- jump ss,DosError
-
- loopit geta anchor,a0
- tst.l ap_Info+fib_DirEntryType(a0)
- bmi.s isfile
- bclr #APB_DIDDIR,ap_Flags(a0)
- bne donext
- bset #APB_DODIR,ap_Flags(a0)
- bra donext
-
- isfile geta anchor+ap_Buf,a0
- call ss,PutsNL
- call CreateResList
- geta anchor+ap_Buf,a0
- call LoadFile
- move.l d0,a0
- moveq #0,d7 ; LineCount
- scanline move.l a0,a2
- addq.l #1,d7
- call TestBreak
- move.l a2,a0
- scan1 move.b (a0)+,d0 ; 1st field
- beq scanend
- cmp.b #';',d0
- beq scanskip
- cmp.b #10,d0
- beq.s scanline
- cmp.b #33,d0
- bcc.s scan1
- scan1a move.b (a0)+,d0 ; space between fields
- beq scanend
- cmp.b #10,d0
- beq.s scanline
- cmp.b #33,d0
- bcs.s scan1a
- subq.l #1,a0
- scan2 move.b (a0)+,d0 ; 2nd field
- beq scanend
- cmp.b #';',d0
- beq.s scanskip
- cmp.b #10,d0
- beq.s scanline
- cmp.b #33,d0
- bcc.s scan2
- scan2a move.b (a0)+,d0 ; space between fields
- beq scanend
- cmp.b #10,d0
- beq.s scanline
- cmp.b #33,d0
- bcs.s scan2a
- subq.l #1,a0
- scan3 move.b (a0)+,d0 ; 3rd field
- beq scanend
- cmp.b #10,d0
- beq.s scanline
- cmp.b #'''',d0
- beq.s scanq
- cmp.b #'<',d0
- beq.s scanl
- cmp.b #';',d0
- beq.s scanskip
- cmp.b #33,d0
- bcc.s scan3
- scan3a move.b (a0)+,d0
- beq.s scanend
- cmp.b #10,d0
- beq scanline
- cmp.b #33,d0
- bcs.s scan3a
- move.b -1(a0),d0
- cmp.b #';',d0
- bne.s scanwarn
- scanskip move.b (a0)+,d0
- beq.s scanend
- cmp.b #10,d0
- bne.s scanskip
- bra scanline
-
- scanq move.b (a0)+,d0
- beq.s scanend
- cmp.b #10,d0
- beq scanline
- cmp.b #'''',d0
- bne.s scanq
- bra.s scan3
-
- scanl move.b (a0)+,d0
- beq.s scanend
- cmp.b #10,d0
- beq scanline
- cmp.b #'>',d0
- bne.s scanl
- bra.s scan3
-
- scanwarn push a0
- printfr.l <Look at line %ld!>,d7
- pop a0
- bra.s scanskip
-
- scanend call FreeResList
-
- donext geta anchor,a0
- move.l a0,d1
- call dos,MatchNext
- tst.l d0
- beq loopit
-
- ready
- rts
-
- cleanup geta anchor,a0
- move.l a0,d1
- call dos,MatchEnd
- rts
-
- tags
-
- exitrout cleanup
- template <FILES/A>
- dv.l files
-
- finish
-
- end
-