home *** CD-ROM | disk | FTP | other *** search
/ C!T ROM 2 / ctrom_ii_b.zip / ctrom_ii_b / PROGRAM / C / SMALL_C / CALL.MAC < prev    next >
Text File  |  1980-01-01  |  768b  |  43 lines

  1. ;
  2. ;----- CALL: Small-C arithmetic and logical library
  3. ;
  4. ; Modified for 8088/8086....
  5. ; which is why there's not much in it.
  6. ; --RG
  7. ;
  8. ; EXECUTE "SWITCH" STATEMENT
  9. ;
  10. ;  BX  =  SWITCH VALUE
  11. ; (SP) -> SWITCH TABLE
  12. ;         DW ADDR1, VALUE1
  13. ;         DW ADDR2, VALUE2
  14. ;         ...
  15. ;         DW 0
  16. ;        [JMP default]
  17. ;         continuation
  18. ;
  19.  INCLUDE PROLOG.H
  20.  PUBLIC _CCSWITCH
  21. _CCSWITCH:
  22.   POP SI    ;Pointer to switch table
  23.   CLD           ;INCREMENT
  24. SWLOOP:
  25.   LODSW        ;Get address
  26.   MOV DX,AX
  27.   OR DX,DX    ;Zero? (i.e., end of table?)
  28.   JZ SWEND
  29.   LODSW        ;Get value
  30.   CMP AX,BX    ;See if match
  31.   JNE SWLOOP
  32.   JMP DX
  33. SWEND:
  34.   JMP SI
  35.   PUBLIC _CCARGC
  36. _CCARGC:
  37.    CBW
  38.    MOV BX,AX
  39.    RET
  40. ;
  41.  INCLUDE EPILOG.H
  42.       END
  43.