⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 csyslib.mac

📁 这是一个8086和8088系列机的编译器的源码
💻 MAC
📖 第 1 页 / 共 2 页
字号:
 MOV BX,4
 ADD BX,SP
 MOV BX,[BX]
 ADD BX,BX
 ADD BX,DX
 XCHG DX,BX
 MOV BX,0
 ADD BX,SP
 MOV BX,[BX]
 MOV SI,DX
 MOV [SI],BX
 MOV BX,4
 ADD BX,SP
 MOV BX,[BX]
 PUSH BX  ;
 MOV BX,-1
 PUSH BX  ;
 MOV BX,-1
 PUSH BX  ;
 MOV BX,2
 PUSH BX  ;
 CALL _seek
 ADD SP,8
_CC40:
 MOV BX,4
 ADD BX,SP
 MOV BX,[BX]
 PUSH BX  ;
 CALL _fgetc
 ADD SP,2
 XCHG DX,BX
 MOV BX,-1
 CMP DX,BX
 MOV BX,CX
 JE $+3
 INC BX
 OR BX,BX
 JNZ $+5
 JMP _CC41
 JMP _CC40
_CC41:
 MOV BX,OFFSET _Ustatus
 XCHG DX,BX
 MOV BX,4
 ADD BX,SP
 MOV BX,[BX]
 ADD BX,BX
 ADD BX,DX
 XCHG DX,BX
 MOV BX,6
 MOV SI,DX
 MOV [SI],BX
 JMP _CC28
_CC29:
 CALL _CCSWITCH
 DW _CC30,114
 DW _CC32,117
 DW _CC34,119
 DW 0
 JMP _CC38
_CC28:
 MOV BX,4
 ADD BX,SP
 MOV BX,[BX]
 ADD SP,2
 RET
_CC23: DB 114,119,97,117,0,67,79,78,58,0
 DB 76,83,84,58,0
 PUBLIC _Uread
_Uread:
 SUB SP,3
 MOV BX,1
 ADD BX,SP
 XCHG DX,BX
 MOV BX,5
 ADD BX,SP
 MOV BX,[BX]
 MOV SI,DX
 MOV [SI],BX
 MOV BX,7
 ADD BX,SP
 MOV BX,[BX]
 PUSH BX  ;
 CALL _Umode
 ADD SP,2
 JMP _CC45
_CC46:
 MOV BX,7
 ADD BX,SP
 MOV BX,[BX]
 PUSH BX  ;
 CALL _Useterr
 ADD SP,2
 MOV BX,-1
 ADD SP,3
 RET
_CC47:
_CC48:
 JMP _CC44
_CC45:
 CALL _CCSWITCH
 DW _CC47,1
 DW _CC48,3
 DW 0
 JMP _CC46
_CC44:
 MOV BX,OFFSET _Unextc
 XCHG DX,BX
 MOV BX,7
 ADD BX,SP
 MOV BX,[BX]
 ADD BX,BX
 ADD BX,DX
 MOV BX,[BX]
 XCHG DX,BX
 MOV BX,-1
 CMP DX,BX
 MOV BX,CX
 JE $+3
 INC BX
 OR BX,BX
 JNZ $+5
 JMP _CC49
 MOV BX,9
 ADD BX,SP
 MOV DX,BX
 MOV BX,[BX]
 INC BX
 MOV SI,DX
 MOV [SI],BX
 DEC BX
 PUSH BX  ;
 MOV BX,OFFSET _Unextc
 XCHG DX,BX
 MOV BX,09
 ADD BX,SP
 MOV BX,[BX]
 ADD BX,BX
 ADD BX,DX
 MOV BX,[BX]
 POP DX
 MOV SI,DX
 MOV [SI],BL
 MOV BX,OFFSET _Unextc
 XCHG DX,BX
 MOV BX,7
 ADD BX,SP
 MOV BX,[BX]
 ADD BX,BX
 ADD BX,DX
 XCHG DX,BX
 MOV BX,-1
 MOV SI,DX
 MOV [SI],BX
 MOV BX,5
 ADD BX,SP
 MOV DX,BX
 MOV BX,[BX]
 DEC BX
 MOV SI,DX
 MOV [SI],BX
 OR BX,BX
 JZ $+5
 JMP _CC50
 MOV BX,1
 ADD SP,3
 RET
_CC50:
_CC49:
 MOV BX,OFFSET _Udevice
 XCHG DX,BX
 MOV BX,7
 ADD BX,SP
 MOV BX,[BX]
 ADD BX,BX
 ADD BX,DX
 MOV BX,[BX]
 JMP _CC53
_CC54:
_CC55:
 MOV BX,5
 ADD BX,SP
 MOV DX,BX
 MOV BX,[BX]
 DEC BX
 MOV SI,DX
 MOV [SI],BX
 INC BX
 OR BX,BX
 JNZ $+5
 JMP _CC56
 MOV BX,0
 ADD BX,SP
 PUSH BX  ;
 CALL _Uconin
 POP DX
 MOV SI,DX
 MOV [SI],BL
 XCHG DX,BX
 MOV BX,26
 CMP DX,BX
 MOV BX,CX
 JNZ $+3
 INC BX
 OR BX,BX
 JNZ $+5
 JMP _CC57
 MOV BX,-1
 ADD SP,3
 RET
_CC57:
 MOV BX,9
 ADD BX,SP
 MOV DX,BX
 MOV BX,[BX]
 INC BX
 MOV SI,DX
 MOV [SI],BX
 DEC BX
 XCHG DX,BX
 MOV BX,0
 ADD BX,SP
 MOV AL,[BX]
 CBW
 MOV BX,AX
 MOV SI,DX
 MOV [SI],BL
 JMP _CC55
_CC56:
 MOV BX,1
 ADD BX,SP
 MOV BX,[BX]
 XCHG DX,BX
 MOV BX,5
 ADD BX,SP
 MOV BX,[BX]
 SUB DX,BX
 MOV BX,DX
 ADD SP,3
 RET
_CC58:
 MOV BX,1
 ADD BX,SP
 PUSH BX  ;
 MOV BX,11
 ADD BX,SP
 MOV BX,[BX]
 PUSH BX  ;
 MOV BX,9
 ADD BX,SP
 MOV BX,[BX]
 PUSH BX  ;
 MOV BX,OFFSET _Ufd
 XCHG DX,BX
 MOV BX,13
 ADD BX,SP
 MOV BX,[BX]
 ADD BX,BX
 ADD BX,DX
 MOV BX,[BX]
 PUSH BX  ;
 MOV BX,16128
 PUSH BX  ;
 CALL _Umsdos
 ADD SP,8
 POP DX
 MOV SI,DX
 MOV [SI],BX
 XCHG DX,BX
 MOV BX,-2
 CMP DX,BX
 MOV BX,CX
 JNZ $+3
 INC BX
 OR BX,BX
 JNZ $+5
 JMP _CC59
 MOV BX,-2
 ADD SP,3
 RET
_CC59:
 MOV BX,1
 ADD BX,SP
 MOV BX,[BX]
 OR BX,BX
 JZ $+5
 JMP _CC60
 MOV BX,7
 ADD BX,SP
 MOV BX,[BX]
 PUSH BX  ;
 CALL _Useteof
 ADD SP,2
_CC60:
 MOV BX,1
 ADD BX,SP
 MOV BX,[BX]
 ADD SP,3
 RET
 JMP _CC52
_CC53:
 CALL _CCSWITCH
 DW _CC54,1
 DW 0
 JMP _CC58
_CC52:
 ADD SP,3
 RET
 PUBLIC _Uconin
_Uconin:
 SUB SP,2
_CC62:
 MOV BX,0
 ADD BX,SP
 PUSH BX  ;
 MOV BX,255
 PUSH BX  ;
 CALL _Dcio
 ADD SP,2
 POP DX
 MOV SI,DX
 MOV [SI],BX
 OR BX,BX
 MOV BX,CX
 JNZ $+3
 INC BX
 OR BX,BX
 JNZ $+5
 JMP _CC63
 JMP _CC62
_CC63:
 MOV BX,0
 ADD BX,SP
 MOV BX,[BX]
 JMP _CC66
_CC67:
 MOV BX,0
 PUSH BX  ;
 CALL _exit
 ADD SP,2
_CC68:
_CC69:
 MOV BX,10
 PUSH BX  ;
 CALL _Uconout
 ADD SP,2
 MOV BX,13
 PUSH BX  ;
 CALL _Uconout
 ADD SP,2
 ADD SP,2
 RET
_CC70:
 MOV BX,0
 ADD BX,SP
 XCHG DX,BX
 MOV BX,8
 MOV SI,DX
 MOV [SI],BX
_CC71:
 MOV BX,0
 ADD BX,SP
 MOV BX,[BX]
 XCHG DX,BX
 MOV BX,32
 CMP DX,BX
 MOV BX,CX
 JGE $+3
 INC BX
 OR BX,BX
 JNZ $+5
 JMP _CC72
 MOV BX,94
 PUSH BX  ;
 CALL _Uconout
 ADD SP,2
 MOV BX,0
 ADD BX,SP
 MOV BX,[BX]
 MOV DX,64
 ADD BX,DX
 PUSH BX  ;
 CALL _Uconout
 ADD SP,2
 JMP _CC73
_CC72:
 MOV BX,0
 ADD BX,SP
 MOV BX,[BX]
 PUSH BX  ;
 CALL _Uconout
 ADD SP,2
_CC73:
 MOV BX,0
 ADD BX,SP
 MOV BX,[BX]
 ADD SP,2
 RET
 JMP _CC65
_CC66:
 CALL _CCSWITCH
 DW _CC67,3
 DW _CC68,10
 DW _CC69,13
 DW _CC70,127
 DW 0
 JMP _CC71
_CC65:
 ADD SP,2
 RET
 PUBLIC _Dcio
_Dcio:
  POP SI
  POP DX
  PUSH DX
  PUSH SI
  MOV AH,6   ;Direct I/O
  INT 21H
  JNZ  Dcio1
  XOR AL,AL  ;No char.
Dcio1:
  MOV BL,AL
  XOR BH,BH
 RET
 PUBLIC _Uwrite
_Uwrite:
 SUB SP,2
 MOV BX,0
 ADD BX,SP
 XCHG DX,BX
 MOV BX,4
 ADD BX,SP
 MOV BX,[BX]
 MOV SI,DX
 MOV [SI],BX
 MOV BX,6
 ADD BX,SP
 MOV BX,[BX]
 PUSH BX  ;
 CALL _Umode
 ADD SP,2
 JMP _CC78
_CC79:
 MOV BX,6
 ADD BX,SP
 MOV BX,[BX]
 PUSH BX  ;
 CALL _Useterr
 ADD SP,2
 MOV BX,-1
 ADD SP,2
 RET
_CC80:
_CC81:
_CC82:
_CC83:
 JMP _CC77
_CC78:
 CALL _CCSWITCH
 DW _CC80,2
 DW _CC81,3
 DW _CC82,6
 DW _CC83,7
 DW 0
 JMP _CC79
_CC77:
 MOV BX,OFFSET _Udevice
 XCHG DX,BX
 MOV BX,6
 ADD BX,SP
 MOV BX,[BX]
 ADD BX,BX
 ADD BX,DX
 MOV BX,[BX]
 JMP _CC86
_CC87:
_CC88:
 MOV BX,4
 ADD BX,SP
 MOV DX,BX
 MOV BX,[BX]
 DEC BX
 MOV SI,DX
 MOV [SI],BX
 INC BX
 OR BX,BX
 JNZ $+5
 JMP _CC89
 MOV BX,8
 ADD BX,SP
 MOV DX,BX
 MOV BX,[BX]
 INC BX
 MOV SI,DX
 MOV [SI],BX
 DEC BX
 MOV AL,[BX]
 CBW
 MOV BX,AX
 PUSH BX  ;
 CALL _Dcio
 ADD SP,2
 JMP _CC88
_CC89:
 MOV BX,0
 ADD BX,SP
 MOV BX,[BX]
 XCHG DX,BX
 MOV BX,4
 ADD BX,SP
 MOV BX,[BX]
 SUB DX,BX
 MOV BX,DX
 ADD SP,2
 RET
_CC90:
_CC91:
 MOV BX,4
 ADD BX,SP
 MOV DX,BX
 MOV BX,[BX]
 DEC BX
 MOV SI,DX
 MOV [SI],BX
 INC BX
 OR BX,BX
 JNZ $+5
 JMP _CC92
 MOV BX,8
 ADD BX,SP
 MOV DX,BX
 MOV BX,[BX]
 INC BX
 MOV SI,DX
 MOV [SI],BX
 DEC BX
 MOV AL,[BX]
 CBW
 MOV BX,AX
 PUSH BX  ;
 MOV BX,0
 PUSH BX  ;
 MOV BX,0
 PUSH BX  ;
 MOV BX,1280
 PUSH BX  ;
 CALL _Umsdos
 ADD SP,8
 JMP _CC91
_CC92:
 MOV BX,0
 ADD BX,SP
 MOV BX,[BX]
 XCHG DX,BX
 MOV BX,4
 ADD BX,SP
 MOV BX,[BX]
 SUB DX,BX
 MOV BX,DX
 ADD SP,2
 RET
_CC93:
 MOV BX,8
 ADD BX,SP
 MOV BX,[BX]
 PUSH BX  ;
 MOV BX,6
 ADD BX,SP
 MOV BX,[BX]
 PUSH BX  ;
 MOV BX,OFFSET _Ufd
 XCHG DX,BX
 MOV BX,10
 ADD BX,SP
 MOV BX,[BX]
 ADD BX,BX
 ADD BX,DX
 MOV BX,[BX]
 PUSH BX  ;
 MOV BX,16384
 PUSH BX  ;
 CALL _Umsdos
 ADD SP,8
 ADD SP,2
 RET
 JMP _CC85
_CC86:
 CALL _CCSWITCH
 DW _CC87,1
 DW _CC90,2
 DW 0
 JMP _CC93
_CC85:
 ADD SP,2
 RET
 PUBLIC _Uconout
_Uconout:
 MOV BX,2
 ADD BX,SP
 MOV BX,[BX]
 PUSH BX  ;
 CALL _Dcio
 ADD SP,2
 MOV BX,2
 ADD BX,SP
 MOV BX,[BX]
 RET
 PUBLIC _Umode
_Umode:
 MOV BX,2
 ADD BX,SP
 MOV BX,[BX]
 XCHG DX,BX
 MOV BX,10
 CMP DX,BX
 MOV BX,CX
 JAE $+3
 INC BX
 OR BX,BX
 JNZ $+5
 JMP _CC96
 MOV BX,OFFSET _Ustatus
 XCHG DX,BX
 MOV BX,2
 ADD BX,SP
 MOV BX,[BX]
 ADD BX,BX
 ADD BX,DX
 MOV BX,[BX]
 RET
_CC96:
 MOV BX,0
 RET
 PUBLIC _Useteof
_Useteof:
 MOV BX,OFFSET _Ustatus
 XCHG DX,BX
 MOV BX,2
 ADD BX,SP
 MOV BX,[BX]
 ADD BX,BX
 ADD BX,DX
 PUSH BX  ;
 MOV BX,[BX]
 XCHG DX,BX
 MOV BX,4
 OR BX,DX
 POP DX
 MOV SI,DX
 MOV [SI],BX
 RET
 PUBLIC _Uclreof
_Uclreof:
 MOV BX,OFFSET _Ustatus
 XCHG DX,BX
 MOV BX,2
 ADD BX,SP
 MOV BX,[BX]
 ADD BX,BX
 ADD BX,DX
 PUSH BX  ;
 MOV BX,[BX]
 XCHG DX,BX
 MOV BX,-5
 AND BX,DX
 POP DX
 MOV SI,DX
 MOV [SI],BX
 RET
 PUBLIC _Useterr
_Useterr:
 MOV BX,OFFSET _Ustatus
 XCHG DX,BX
 MOV BX,2
 ADD BX,SP
 MOV BX,[BX]
 ADD BX,BX
 ADD BX,DX
 PUSH BX  ;
 MOV BX,[BX]
 XCHG DX,BX
 MOV BX,8
 OR BX,DX
 POP DX
 MOV SI,DX
 MOV [SI],BX
 RET
 PUBLIC _Ualloc
_Ualloc:
 SUB SP,2
 MOV BX,6
 ADD BX,SP
 MOV BX,[BX]
 PUSH BX  ;
 MOV BX,1
 PUSH BX  ;
 CALL _avail
 ADD SP,2
 POP DX
 CMP DX,BX
 MOV BX,CX
 JAE $+3
 INC BX
 OR BX,BX
 JNZ $+5
 JMP _CC101
 MOV BX,4
 ADD BX,SP
 MOV BX,[BX]
 OR BX,BX
 JNZ $+5
 JMP _CC102
 MOV BX,_Umemptr
 PUSH BX  ;
 MOV BX,0
 PUSH BX  ;
 MOV BX,10
 ADD BX,SP
 MOV BX,[BX]
 PUSH BX  ;
 CALL _pad
 ADD SP,6
_CC102:
 MOV BX,0
 ADD BX,SP
 XCHG DX,BX
 MOV BX,_Umemptr
 MOV SI,DX
 MOV [SI],BX
 MOV BX,_Umemptr
 XCHG DX,BX
 MOV BX,6
 ADD BX,SP
 MOV BX,[BX]
 ADD BX,DX
 MOV _Umemptr,BX
 MOV BX,0
 ADD BX,SP
 MOV BX,[BX]
 ADD SP,2
 RET
_CC101:
 MOV BX,0
 ADD SP,2
 RET
 PUBLIC _Umsdos
_Umsdos:
  POP SI  ;Return address
  POP AX  ;Load all the registers
  POP BX
  POP CX
  POP DX
  PUSH DX  ;Now restore them
  PUSH CX
  PUSH BX
  PUSH AX
  PUSH SI
  INT 21H  ;Issue the call do DOS
  JNC UMSDOS1  ;Jump if no error
  MOV _ERRNO,AX
  MOV AX,-2    ;ERR
UMSDOS1:
  MOV BX,AX
  XOR CX,CX    ;Zero in CX
 RET
 EXTRN _strchr:NEAR
 EXTRN _fgetc:NEAR
 EXTRN _strcmp:NEAR
 EXTRN _avail:NEAR
 EXTRN _exit:NEAR
 EXTRN _seek:NEAR
 EXTRN _isspace:NEAR
 EXTRN _pad:NEAR
 EXTRN _main:NEAR
 EXTRN _CCSWITCH:NEAR
 INCLUDE EPILOG.H
 END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -