view lib/alib/jsr_cmd2.as @ 3141:717ced83b885

coco3: Build SD card device descriptors for CoCo3FPGA Added "CC3FPGAFLAGS = $(AFLAGS) -DCC3FPGA=1 $(FLAGS)" to "level2/coco3/modules/makefile" for flagging Coco3FPGA specific features in modules sources. Added "llcoco3fpga", "ddsd0_coco3fpga", "sd0_coco3fpga", and "sd1_coco3fpga" to the "coco3/modules/makefile" - RBF section, which also now adds all to the "NITROS9/MODULES/RBF" on all disk images for building new Coco3FPGA disks from NitrOS9. Added new descriptor section to the "level2/coco3/modules/makefile" reflecting the new Coco3FPGA SD card descriptors and their flags.
author Bill Pierce <merlinious999@gmail.com>
date Sat, 04 Feb 2017 11:06:28 +0100
parents 03f26e88b809
children
line wrap: on
line source

***************************************

* 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

 section .text

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