home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Micro R&D 1
/
MicroRD-CD-ROM-Vol1-1994.iso
/
os20
/
util
/
sslexamp.lha
/
AsmCheck.asm
< prev
next >
Wrap
Assembly Source File
|
1993-11-06
|
2KB
|
145 lines
; 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