亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? clib.arc

?? 功能強(qiáng)大的小型 c 編譯器,適合學(xué)習(xí)編譯原理,操作系統(tǒng)
?? ARC
?? 第 1 頁(yè) / 共 4 頁(yè)
字號(hào):
>>> CLIB.H 1617
/*
** CLIB.H -- Definitions for Small-C library functions.
**
** Copyright 1983  L. E. Payne and J. E. Hendrix
*/

/*
** Misc parameters
*/
#define MAXFILES 20  /* maximum open files */
#define DOSEOF   26  /* DOS end-of-file byte */
#define ARCHIVE  32  /* file archive bit */

/*
** DOS function calls
*/
#define CREATE   60  /* make file */
#define OPEN     61  /* open file */
#define CLOSE    62  /* close file or device */
#define READ     63  /* read from a file */
#define WRITE    64  /* write to a file */
#define DELETE   65  /* delete file */
#define SEEK     66  /* seek within a file */
#define CONTROL  68  /* control device */
#define FORCE    70  /* force use of a handle */
#define RETDOS   76  /* close files and return to DOS */
#define FNDFIL   78  /* find first occurrence of a file */
#define FNDNXT   79  /* find next occurrence of a file */
#define RENAME   86  /* rename file */

/*
** File status bits
*/
#define OPNBIT   1  /* open condition */
#define EOFBIT   2  /* end-of-file condition */
#define ERRBIT   4  /* error condition */

/*
** File positioning origins
*/
#define FROM_BEG  0  /* from beginning of file */
#define FROM_CUR  1  /* from current position */
#define FROM_END  2  /* from end of file */

/*
** Buffer usage codes
** NULL means the buffer is not used.
*/
#define EMPTY     1  /* buffer is currently empty */
#define IN        2  /* buffer is currently holding input data */
#define OUT       3  /* buffer is currently holding output data */

/*
** ASCII characters
*/
#define ABORT    3
#define RUB      8
#define PAUSE   19
#define WIPE    24
#define DEL    127

>>> ABS.C 117
/*
** abs -- returns absolute value of nbr
*/
abs(nbr)  int nbr; {
  if(nbr < 0) return (-nbr);
  return (nbr);
  }

>>> ATOI.C 259
/*
** atoi(s) - convert s to integer.
*/
atoi(s) char *s; {
  int sign, n;
  while(isspace(*s)) ++s;
  sign = 1;
  switch(*s) {
    case '-': sign = -1;
    case '+': ++s;
    }
  n = 0;
  while(isdigit(*s)) n = 10 * n + *s++ - '0';
  return (sign * n);
  }

>>> ATOIB.C 435
/*
** atoib(s,b) - Convert s to "unsigned" integer in base b.
**              NOTE: This is a non-standard function.
*/
atoib(s, b) char *s; int b; {
  int n, digit;
  n = 0;
  while(isspace(*s)) ++s;
  while((digit = (127 & *s++)) >= '0') {
    if(digit >= 'a')      digit -= 87;
    else if(digit >= 'A') digit -= 55;
    else                  digit -= '0';
    if(digit >= b) break;
    n = b * n + digit;
    }
  return (n);
  }


>>> AUXBUF.C 786
#include "stdio.h"
#include "clib.h"
extern int
  _bufsiz[MAXFILES],  /* size of buffer */
  _bufptr[MAXFILES];  /* aux buffer address */

/*
** auxbuf -- allocate an auxiliary input buffer for fd
**   fd = file descriptor of an open file
** size = size of buffer to be allocated
** Returns NULL on success, else ERR.
** Note: Ungetc() still works.
**       A 2nd call allocates a new buffer replacing old one.
**       If fd is a device, buffer is allocated but ignored.
**       Buffer stays allocated when fd is closed or new one is allocated.
**       May be used on a closed fd.
*/
auxbuf(fd, size) int fd; char *size; {   /* fake unsigned */
  if(!size || avail(NO) < size) return (ERR);
  _bufptr[fd] = malloc(size);
  _bufsiz[fd] = size;
  _empty(fd, NO);
  return (NULL);
  }

>>> AVAIL.C 347
extern char *_memptr;
/*
** Return the number of bytes of available memory.
** In case of a stack overflow condition, if 'abort'
** is non-zero the program aborts with an 'S' clue,
** otherwise zero is returned.
*/
avail(abort) int abort; {
  char x;
  if(&x < _memptr) {
    if(abort) exit(1);
    return (0);
    }
  return (&x - _memptr);
  }

>>> BSEEK.C 727
#include "stdio.h"
#include "clib.h"
extern int _nextc[], _bufuse[];
/*
** Position fd to the character in file indicated by "offset."
** "Offset" is the address of a long integer or array of two
** integers containing the offset, low word first.
** 
**     BASE     OFFSET-RELATIVE-TO
**       0      beginning of file
**       1      current byte in file
**       2      end of file (minus offset)
**
** Returns NULL on success, else EOF.
*/
bseek(fd, offset, base) int fd, offset[], base; {
  int hi, lo;
  if(!_mode(fd) || !_bufuse[fd]) return (EOF);
  if(_adjust(fd)) return (EOF);
  lo = offset[0];
  hi = offset[1];
  if(!_seek(base, fd, &hi, &lo)) return (EOF);
  _nextc[fd] = EOF;
  _clreof(fd);
  return (NULL);
  }

>>> BTELL.C 447
#include "stdio.h"
#include "clib.h"
extern int _bufuse[];
/*
** Retrieve offset to next character in fd.
** "Offset" must be the address of a long int or
** a 2-element int array.  The offset is placed in
** offset in low, high order.
*/
btell(fd, offset) int fd, offset[]; {
  if(!_mode(fd) || !_bufuse[fd]) return (EOF);
  if(_adjust(fd)) return (EOF);
  offset[0] = offset[1] = 0;
  _seek(FROM_CUR, fd, offset+1, offset);
  return (NULL);
  }
>>> CALL.ASM 3939
;
; Small-C Run Time Library for MS/PC-DOS
;
        extrn   __main: near
        extrn    _exit: near
        extrn   __memptr: word

data   segment public
        dw      1
data   ends

stack   segment stack
        dw      32 dup(?)
stack   ends

code    segment public
        assume  cs:code
start:
        mov     ax,data         ; set data segment for program
        mov     ds,ax
        mov     ax,es:[2]       ; paragraphs of memory on system
        sub     ax,data         ; paragraphs beyond code segment
        cmp     ah,10h          ; more than 64K?
        jb      start_1         ; no
        mov     ax,1000h        ; only use 64K
start_1:
        mov     cl,4
        shl     ax,cl           ; byte offset to end of data/free/stack
        cli                     ; disable interrupts
        mov     bx,ds
        mov     ss,bx           ; make data and stack segments coincide
        mov     sp,ax           ; top of stack = end of data/free/stack
        push    ax              ; force sp non-zero (if 64K used)
        sti                     ; reenable interrupts
        mov     ax,stack        ; paragraph following data
        sub     ax,data         ; number of data paragraphs
        shl     ax,cl           ; number of data bytes (offset to free/stack)
        mov     bx,ax
        inc     bh              ; adjust for minimum stack space
        cmp     bx,sp           ; enough memory?
        jb      start_2         ; yes
        mov     ax,1            ; no, terminate with exit code 1
        push    ax
        call    _exit
start_2:
        mov     __memptr,ax     ; set memory allocation pointer
;
; ------------ release unused memory -----------
; ------ cannot run debug with this code -------
;        mov     bx,sp
;        mov     ah,4AH
;        int     21H
; ----------------------------------------------
;
; make sure that es -> psp, because __main requires it
;
        jmp     __main          ; __main never returns

        public  _ccargc
_ccargc:
        mov     al,cl
        xor     ah,ah
        ret

;
; Test if Secondary (BX) <oper> Primary (AX)
;-------------------------- MASM version
;compare macro   name, cond
;        public  __&name
;__&name:
;        cmp     ax,bx
;        j&cond  true
;        xor     ax,ax   ; returns zero
;        ret
;        endm
;-------------------------- ASM version
compare macro   name, cond
        public  __?1
__?1:
        cmp     ax,bx
        j?2     true
        xor     ax,ax   ; returns zero
        ret
        endm
;--------------------------
        compare ult,a
        compare ugt,b
        compare ule,ae
        compare uge,be
        compare eq,e
        compare ne,ne
        compare lt,g
        compare gt,l
        compare le,ge
        compare ge,le

;
; Logical Negate of Primary
;
        public  __lneg
__lneg:
        or      ax,ax
        jnz     false
true:   mov     ax,1    ; returns one
        ret
false:  xor     ax,ax   ; returns zero
        ret
;
;
; execute "switch" statement
;
;  ax  =  switch value
; (sp) -> switch table
;         dw addr1, value1
;         dw addr2, value2
;         ...
;         dw 0
;        [jmp default]
;         continuation
;
        public  __switch
__switch:
        pop     bx              ; bx -> switch table
        jmp     skip            ; skip the pre-increment
back:
        add     bx,4
skip:   mov     cx,cs:[bx]
        jcxz    default         ; end of table -- jump out
        cmp     ax,cs:[bx+2]
        jnz     back
        jmp     cx              ; match -- jump to case
default:
        inc     bx
        inc     bx
        jmp     bx              ; jump to default/continuation
;
; dummy entry point to resolve the external reference _LINK
; which is no longer generated by Small-C but which exists in
; library modules and .OBJ files compiled by earlier versions
; of Small-C
        public  __link
__link: ret

code ends
        end     start

>>> CALLOC.C 315
#include "stdio.h"
/*
** Cleared-memory allocation of n items of size bytes.
** n     = Number of items to allocate space for.
** size  = Size of the items in bytes.
** Returns the address of the allocated block,
** else NULL for failure.
*/
calloc(n, size) unsigned n, size; {
  return (_alloc(n*size, YES));
  }

>>> CLEARERR.C 152
#include "stdio.h"
#include "clib.h"
extern int _status[];
/*
** Clear error status for fd.
*/
clearerr(fd) int fd; {
  if(_mode(fd)) _clrerr(fd);
  }

>>> CSEEK.C 1539
#include "stdio.h"
#include "clib.h"
extern int _nextc[], _bufuse[];
/*
** Position fd to the 128-byte record indicated by
** "offset" relative to the point indicated by "base."
** 
**     BASE     OFFSET-RELATIVE-TO
**       0      first record
**       1      current record
**       2      end of file (last record + 1)
**              (offset should be minus)
**
** Returns NULL on success, else EOF.
*/
cseek(fd, offset, base) int fd, offset, base; {
  int newrec, oldrec, hi, lo;
  if(!_mode(fd) || !_bufuse[fd]) return (EOF);
  if(_adjust(fd)) return (EOF);
  switch (base) {
     case 0: newrec = offset;
             break;
     case 1: oldrec = ctell(fd);
             goto calc;
     case 2: hi = lo = 0;
             if(!_seek(FROM_END, fd, &hi, &lo)) return (EOF);
             oldrec = ((lo >> 7) & 511) | (hi << 9);
     calc:
             newrec = oldrec + offset;
             break;
    default: return (EOF);
    }
  lo = (newrec << 7);       /* convert newrec to long int */
  hi = (newrec >> 9) & 127;
  if(!_seek(FROM_BEG, fd, &hi, &lo)) return (EOF);
  _nextc[fd] = EOF;
  _clreof(fd);
  return (NULL);
  }

/*
** Position fd to the character indicated by
** "offset" within current 128-byte record.
** Must be on record boundary.
**
** Returns NULL on success, else EOF.
*/
cseekc(fd, offset) int fd, offset; {
  int hi, lo;
  if(!_mode(fd) || isatty(fd) ||
     ctellc(fd) || offset < 0 || offset > 127) return (EOF);
  hi = 0; lo = offset;
  if(!_seek(FROM_CUR, fd, &hi, &lo)) return (EOF);
  return (NULL);
  }

>>> CSYSLIB.C 9708
/*
** CSYSLIB -- System-Level Library Functions
*/

#include "stdio.h"
#include "clib.h"

/*
****************** System Variables ********************
*/

int
  _cnt=1,             /* arg count for main */
  _vec[20],           /* arg vectors for main */
  _status[MAXFILES] = {OPNBIT, OPNBIT, OPNBIT, OPNBIT, OPNBIT},
  _cons  [MAXFILES],  /* fast way to tell if file is the console */
  _nextc [MAXFILES] = {EOF, EOF, EOF, EOF, EOF},
  _bufuse[MAXFILES],  /* current buffer usage: NULL, EMPTY, IN, OUT */
  _bufsiz[MAXFILES],  /* size of buffer */
  _bufptr[MAXFILES],  /* aux buffer address */
  _bufnxt[MAXFILES],  /* address of next byte in buffer */
  _bufend[MAXFILES],  /* address of end-of-data in buffer */
  _bufeof[MAXFILES];  /* true if current buffer ends file */

char
 *_memptr,           /* pointer to free memory. */
  _arg1[]="*";       /* first arg for main */

/*
*************** System-Level Functions *****************
*/

/*
**  Process command line, allocate default buffer to each fd,
**  execute main(), and exit to DOS.  Must be executed with es=psp.
**  Small default buffers are allocated because a high price is paid for
**  byte-by-byte calls to DOS.  Tests gave these results for a simple
**  copy program:
**
**          chunk size       copy time in seconds
**              1                    36
**              5                    12
**             25                     6
**             50                     6
*/
_main() {
  int fd;
  _parse();
  for(fd = 0; fd < MAXFILES; ++fd) auxbuf(fd, 32);
  if(!isatty(stdin))  _bufuse[stdin]  = EMPTY;
  if(!isatty(stdout)) _bufuse[stdout] = EMPTY;
  main(_cnt, _vec);
  exit(0);
  }

/*
** Parse command line and setup argc and argv.
** Must be executed with es == psp
*/
_parse() {
  char *ptr;
#asm
  mov     cl,es:[80h]  ; get parameter string length
  mov     ch,0       
  push    cx           ; save it
  inc     cx
  push    cx           ; 1st __alloc() arg
  mov     ax,1
  push    ax           ; 2nd __alloc() arg
  call    __alloc      ; allocate zeroed memory for args
  add     sp,4
  mov     [bp-2],ax    ; ptr = addr of allocated memory
  pop     cx
  push    es           ; exchange
  push    ds           ; es         (source)
  pop     es           ;    and
  pop     ds           ;        ds  (destination)
  mov     si,81h       ; source offset
  mov     di,[bp-2]    ; destination offset
  rep     movsb        ; move string
  mov     al,0
  stosb                ; terminate with null byte
  push    es
  pop     ds           ; restore ds
#endasm
  _vec[0]=_arg1;       /* first arg = "*" */
  while (*ptr) {
    if(isspace(*ptr)) {++ptr; continue;}
    if(_cnt < 20) _vec[_cnt++] = ptr;
    while(*ptr) {
      if(isspace(*ptr)) {*ptr = NULL; ++ptr; break;}
      ++ptr;
      }
    }
  }

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一二三区不卡| 精品在线一区二区| 亚洲一级片在线观看| 亚洲一区二区欧美日韩| 偷窥少妇高潮呻吟av久久免费| 亚洲国产成人porn| 蜜臀99久久精品久久久久久软件| 视频一区二区中文字幕| 美女久久久精品| 99久久精品国产精品久久| 欧美三级乱人伦电影| 日韩精品一区二区三区蜜臀| 26uuu国产一区二区三区| 日韩精品中文字幕一区| 色婷婷国产精品| 91免费国产在线| 在线电影一区二区三区| 久久久久久久久免费| 337p粉嫩大胆噜噜噜噜噜91av | 91精品国产综合久久蜜臀| wwwwww.欧美系列| 亚洲日本青草视频在线怡红院| 日本中文在线一区| 成人精品视频网站| 欧美mv日韩mv国产网站| 亚洲美女淫视频| 成人av资源下载| 久久精品人人做| 蜜臀av一区二区| 欧美日韩免费电影| 国产精品久久777777| 国产精品一区专区| 日韩免费在线观看| 午夜婷婷国产麻豆精品| jlzzjlzz国产精品久久| 99在线精品视频| 精品视频999| 欧美丰满一区二区免费视频| 国产女主播视频一区二区| 日韩理论电影院| 国产精品网站在线观看| 日韩美女视频一区二区| 黑人精品欧美一区二区蜜桃| 欧美一区二区三区免费观看视频| 亚洲成人精品一区二区| 欧美色视频一区| 日韩专区一卡二卡| 91精品国产综合久久久久久久| 午夜精品在线视频一区| 在线观看国产91| 婷婷中文字幕综合| 欧美成人激情免费网| 精品无人码麻豆乱码1区2区| 精品美女一区二区三区| 国产精品中文字幕欧美| 中国av一区二区三区| 99久久99久久精品国产片果冻| 1024国产精品| 91精品国产全国免费观看| 麻豆国产欧美日韩综合精品二区| 日韩美女一区二区三区| 国产乱一区二区| 亚洲一区免费视频| 精品久久久久一区二区国产| 成人av网址在线观看| 亚洲综合精品久久| www国产精品av| 色综合天天天天做夜夜夜夜做| 91精品国产一区二区三区| 亚洲高清中文字幕| 欧美电视剧在线看免费| 欧美日韩一二三区| 国产在线精品一区二区| 一区二区高清在线| 日本一区二区电影| 日韩一区二区三区观看| 色综合中文综合网| 99精品欧美一区| 激情文学综合网| 婷婷久久综合九色综合伊人色| 国产亚洲短视频| 欧美美女bb生活片| 91视频一区二区三区| 国内外精品视频| 亚洲高清视频在线| 中文字幕日韩av资源站| 久久久99久久| 久久久影视传媒| 日韩欧美一区二区不卡| 欧美另类高清zo欧美| 色老综合老女人久久久| 99re视频精品| 91一区二区在线| 91社区在线播放| 97精品超碰一区二区三区| 国产精品一区二区三区99| 激情丁香综合五月| 久久国产精品免费| 久久国内精品视频| 国产一区视频网站| 国产精一区二区三区| 高清在线观看日韩| 99视频有精品| 精品日产卡一卡二卡麻豆| 色婷婷亚洲综合| 欧美色网一区二区| 欧美高清dvd| 精品日韩成人av| 日本一区二区成人| 亚洲欧美另类图片小说| 亚洲成人免费电影| 精品999在线播放| 国产成人av影院| 亚洲素人一区二区| 久久先锋影音av| 久久久久久久久久久久久夜| 国产精品久久久久久久久动漫 | 欧美三级乱人伦电影| 欧美剧在线免费观看网站 | 亚洲国产欧美一区二区三区丁香婷| 久久久精品人体av艺术| 91黄视频在线观看| 95精品视频在线| 欧美精品久久久久久久久老牛影院| 日韩一区二区三区电影在线观看 | 久久久高清一区二区三区| 国产亚洲成aⅴ人片在线观看| 国产精品久久免费看| 亚洲国产一区视频| 成人亚洲一区二区一| 欧美日韩国产综合一区二区三区| 欧美日韩国产一二三| 日韩欧美一区二区在线视频| 国产精品久久久久久久裸模 | 不卡一区中文字幕| 日韩欧美一级在线播放| 亚洲男人的天堂网| 懂色av一区二区在线播放| 欧美精选在线播放| 亚洲人成在线观看一区二区| 亚洲不卡在线观看| 91香蕉视频在线| 久久久蜜桃精品| 亚洲狼人国产精品| 亚洲成av人片在线观看无码| 男女男精品视频| 91最新地址在线播放| 欧美日韩亚洲高清一区二区| 欧美日韩1234| 亚洲天堂中文字幕| 亚洲不卡在线观看| 不卡免费追剧大全电视剧网站| 久久日一线二线三线suv| 日韩电影免费在线看| 91精品婷婷国产综合久久性色| 亚洲午夜精品在线| 欧美又粗又大又爽| 亚洲成a人v欧美综合天堂| 欧美日韩精品福利| 青草国产精品久久久久久| 在线成人午夜影院| 久久精品国产**网站演员| 欧美成人伊人久久综合网| 国内精品嫩模私拍在线| 国产欧美日韩卡一| 日本韩国精品在线| 亚洲18色成人| 欧美一区二区三区日韩| 精品一区二区三区在线观看| 久久青草国产手机看片福利盒子 | www.欧美色图| 国产精品九色蝌蚪自拍| 欧美日韩综合在线| 国内精品伊人久久久久av一坑| 国产精品视频看| 欧美人与性动xxxx| 国产成人自拍网| 亚洲午夜在线观看视频在线| 精品理论电影在线观看| 91在线观看成人| 久久精品噜噜噜成人av农村| 国产亚洲欧美日韩俺去了| 国产一区二区福利| 久久天堂av综合合色蜜桃网| 91免费版在线看| 国产原创一区二区三区| 亚洲香蕉伊在人在线观| 久久亚洲综合色| 欧美色倩网站大全免费| 国产91丝袜在线播放0| 日韩高清不卡一区二区三区| 亚洲色大成网站www久久九九| 日韩一区二区三区在线| 在线观看一区不卡| 风间由美一区二区av101 | 久久综合久色欧美综合狠狠| 在线亚洲一区观看| 99天天综合性| 成人综合日日夜夜| 国产成都精品91一区二区三|