home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / vol_100 / 146_01 / ccc.h < prev    next >
Text File  |  1985-03-10  |  2KB  |  105 lines

  1. **  SMALL-C HEADER FILE
  2.  
  3.  ORG $800
  4.  OPT NOG
  5.  
  6. WARMS EQU $AD03
  7. exit EQU $AD03
  8. fclose EQU $4
  9. fopen EQU $8
  10. getc EQU $C
  11. getchar EQU $10
  12. gets EQU $14
  13. putc EQU $18
  14. putchar EQU $1C
  15. puts EQU $20
  16. RTSC EQU $24
  17. isalpha EQU $28
  18. isdigit EQU $2C
  19. isalnum EQU $30
  20. islower EQU $34
  21. isupper EQU $38
  22. isspace EQU $3C
  23. toupper EQU $40
  24. tolower EQU $44
  25. strclr EQU $48
  26. strlen EQU $4C
  27. strcpy EQU $50
  28. strcat EQU $54
  29. strcmp EQU $58
  30. EOF EQU -1
  31.  
  32. *  This stuff has been added to implement command line
  33. *    parameter passing ( argc, argv    stuff ).
  34.  
  35.  FCB 86   SWITCH TO INLINE CODE
  36.  BRA zzSTRT BRANCH AROUND LOCAL STORAGE
  37.  
  38. zzARGC RMB 2
  39. zzXTMP RMB 2 TEMP STORE FOR X REG
  40. zzARGV RMB 20  ARRAY OF POINTERS
  41. NXTCH EQU $AD27 NEXT CHARACTER ROUTINE
  42.  
  43. zzSTRT CLR zzARGC
  44.  CLR zzARGC+1
  45.  INC zzARGC+1 SET TO AT LEAST 1 PARAMETER
  46.  LDX #$A080 POINT TO LINE BUFFER
  47.  STX zzARGV
  48.  LDX $AC14 GET LINE POINTER
  49.  DEX FIX UP
  50.  CLR 0,X MARK END OF STRING
  51.  LDX #zzARGV+2 NEXT ADDRESS POINTER
  52.  LDA B #9 MAX # OF ARG'S - 1
  53.  
  54. * now get the rest of arguments
  55.  
  56. zzNEXT JSR NXTCH GET NEXT CHAR FROM LINE BUFFER
  57.  CMP A #$0D IS IT A CR ?
  58.  BEQ zzDONE YES -- FINISHED
  59.  CMP A $AC02 COMPARE TO E.O.L.
  60.  BEQ zzDONE
  61.  
  62.  INC zzARGC+1 BUMP ARGUMENT COUNTER
  63.  LDA A $AC14 LINE BUFFER POINTER MSB
  64.  STA A 0,X SAVE IN POINTER ARRAY
  65.  INX
  66.  LDA A $AC15 LINE BUFFER POINTER LSB
  67.  DEC A FIX ADDRESS
  68.  STA A 0,X
  69.  INX
  70.  
  71. zzAGAIN JSR NXTCH LETS GET TO END OF PARAMETER STRING
  72.  CMP A #$0D
  73.  BEQ zzDONE
  74.  CMP A $AC02
  75.  BEQ zzDONE
  76.  CMP A #$20 BLANK ?
  77.  BEQ zzMARK
  78.  CMP A #',
  79.  BNE zzAGAIN
  80. zzMARK STX zzXTMP SAVE POINTER
  81.  LDX $AC14
  82.  DEX
  83.  CLR 0,X
  84.  LDX zzXTMP
  85.  DEC B DECREMENT MAX PARAM. COUNT
  86.  BEQ zzDONE
  87.  BRA zzNEXT
  88.  
  89. zzDONE LDX $AC14
  90.  CLR 0,X MARK THE FINAL STRING
  91. *
  92. *-------------------------------------------------------
  93. *
  94.  JSR RTSC RETURN TO INTERPRETED CODE
  95.  FCB 2*2 LOAD VALUE
  96.  FDB zzARGC
  97.  FCB 2*10 PUSH ON STACK
  98.  FCB 2*0 LOAD ADDRESS
  99.  FDB zzARGV
  100.  FCB 2*10 PUSH ON STACK
  101. *
  102. *------------------------------------------------------
  103. *
  104.  
  105.