Mercurial > hg > Members > kono > nitros9-code
diff lib/alib/jsr_cmd2.a @ 2474:7d70b7e1cb21
Moved net and alib files into here
author | boisy |
---|---|
date | Tue, 30 Mar 2010 02:44:42 +0000 |
parents | |
children | aaba193af04f |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lib/alib/jsr_cmd2.a Tue Mar 30 02:44:42 2010 +0000 @@ -0,0 +1,58 @@ +*************************************** + +* Subroutine to jsr to subroutine from 2 character command table + +* OTHER MODULES NEEDED: none + +* ENTRY: D=2 char command +* X=start of jump table + +* EXIT: CC carry set if entry not found +* all other regs can be modified by subs +* D and X always modified + +* Note format of table: each entry is four bytes +* 0..1-match characters (command) +* 2..3-offset to routine + +* It is the user's job to set commands to proper case for matching... + +* end of table=NULL + +* sample table: fcc /A1/ +* fdb routineA-* +* fcc /B1/ +* fdb routineB-* +* fcb 0 + + + nam Jsr to 2 char Command + ttl Assembler Library Module + + psect JSR_CMD2,0,0,0,0,0 + +JSR_CMD2: + tst ,x end of table? + beq jsrerr + + cmpd ,x++ found match? + beq docmd yes, go do it + + leax 2,x next entry + bra JSR_CMD2 + +* no match found, return with carry set + +jsrerr + coma set error flag + rts + +* command found, do call and return + +docmd + ldd ,x get offset to routine + jsr d,x + andcc #%11111110 clear carry + rts + + endsect