📄 vrtxvisi.inc
字号:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Copyright (c) 1993 READY SYSTEMS CORPORATION.
;
; All rights reserved. READY SYSTEMS' source code is an unpublished
; work and the use of a copyright notice does not imply otherwise.
; This source code contains confidential, trade secret material of
; READY SYSTEMS. Any attempt or participation in deciphering, decoding,
; reverse engineering or in any way altering the source code is
; strictly prohibited, unless the prior written consent of
; READY SYSTEMS is obtained.
;
;
; Module Name: %M%
;
; Identification: %Z% %I% %M%
;
; Date: %G% %U%
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; VRTX32 task-level function codes
SCFTCREATE EQU 0000H ; create task
SCFTDELETE EQU 0001H ; delete task
SCFTSUSPEND EQU 0002H ; suspend task
SCFTRESUME EQU 0003H ; resume task
SCFTPRIORITY EQU 0004H ; change task priority
SCFTINQUIRY EQU 0005H ; task status inquiry
SCFGBLOCK EQU 0006H ; get memory block
SCFRBLOCK EQU 0007H ; release memory block
SCFPOST EQU 0008H ; post message to mailbox
SCFPEND EQU 0009H ; pend for message from mailbox
SCFGTIME EQU 000AH ; get time
SCFSTIME EQU 000BH ; set time
SCFTDELAY EQU 000CH ; task delay
SCFGETC EQU 000DH ; get character
SCFPUTC EQU 000EH ; put character
SCFWAITC EQU 000FH ; wait for special character
SCFTSLICE EQU 0015H ; enable round-robin scheduling
SCFFCREATE EQU 0017H ; create event flag group
SCFFDELETE EQU 0018H ; delete event flag group
SCFFPEND EQU 0019H ; pend on event flag group
SCFFPOST EQU 001AH ; post event to event flag group
SCFFCLEAR EQU 001BH ; clear event
SCFFINQUIRY EQU 001CH ; event flag group inquiry
SCFQJAM EQU 001EH ; jam message to queue
SCFQECREATE EQU 001FH ; create FIFO message queue
SCFLOCK EQU 0020H ; disable task rescheduling
SCFUNLOCK EQU 0021H ; enable task rescheduling
SCFPCREATE EQU 0022H ; create memory partition
SCFPEXTEND EQU 0023H ; extend memory partition
SCFACCEPT EQU 0025H ; accept message from mailbox
SCFQPOST EQU 0026H ; post message to queue
SCFQPEND EQU 0027H ; pend for message from queue
SCFQACCEPT EQU 0028H ; accept message from queue
SCFQCREATE EQU 0029H ; create message queue
SCFQINQUIRY EQU 002AH ; queue status inquiry
SCFSCREATE EQU 002BH ; create semaphore
SCFSDELETE EQU 002CH ; delete semaphore
SCFSPEND EQU 002DH ; pend on semaphore
SCFSPOST EQU 002EH ; post unit to semaphore
SCFSINQUIRY EQU 002FH ; semaphore inquiry
SCFGVERSION EQU 0059H ; get version number
;
; VRTX32 interrupt-level function codes
UIFEXIT EQU 0011H ; exit interrupt handler
UIFTIMER EQU 0012H ; announce timer interrupt
UIFRXCHR EQU 0013H ; received-character interrupt
UIFTXRDY EQU 0014H ; transmit-ready interrupt
UIFENTER EQU 0016H ; enter interrupt handler
; VRTX32 initialization function codes
VRTXFINIT EQU 0030H ; initialize VRTX32
VRTXFGO EQU 0031H ; start application execution
;
ACFTCREATE EQU 0040H ; create ARTX task
ACFTABORT EQU 0041H ; abort ARTX task
ACFTSUSPEND EQU 0042H ; suspend ARTX task
ACFTRESUME EQU 0043H ; resume ARTX task
ACFTPRIORITY EQU 0044H ; change ARTX task priority
ACFTINQUIRY EQU 0045H ; inquiry on the ARTX task
ACFACTIVATE EQU 0046H ; activate ARTX task
ACFAEND EQU 0047H ; end of the ARTX task activation
ACFTDEALLOC EQU 0048H ; deallocate ARTX task reference
ACFMFCREATE EQU 004AH ; create new master frame
ACFCOMPLETE EQU 004BH ; complete master frame
ACFRENTRY EQU 004CH ; rendezvous entry
ACFRACCEPT EQU 004DH ; rendezvous accept
ACFREND EQU 004EH ; rendezvous end
ACFRINQUIRY EQU 004FH ; inquiry on the specified entry
ACFRACCEPTQ EQU 0050H ; rendezvous accept on one entry
; ARTX initialization function codes
ARTXFINIT EQU 0051H ; initialize ARTX
ARTXFGO EQU 0052H ; start application execution
; VRTX/Spiff function codes
SCFACCEPTC EQU 0010H ; accept character
SCFQBRDCST EQU 001DH ; broadcast message to queue
SCFPINQUIRY EQU 0024H ; partition inquiry
SCFGCLOCK EQU 0032H ; get clock
SCFSCLOCK EQU 0033H ; set clock
SCFADELAY EQU 0034H ; delay task until absolute time
SCFHALLOC EQU 0035H ; allocate memory block
SCFHCREATE EQU 0036H ; create heap
SCFHDELETE EQU 0037H ; delete heap
SCFHFREE EQU 0038H ; free memory block
SCFHINQUIRY EQU 0039H ; heap inquiry
SCFMACCEPT EQU 003AH ; accept resource from mutex
SCFMCREATE EQU 003BH ; create mutex
SCFMDELETE EQU 003CH ; delete mutex
SCFMINQUIRY EQU 003DH ; mutex inquiry
SCFMPEND EQU 003EH ; pend on mutex
SCFMPOST EQU 003FH ; post to mutex
SCFPDELETE EQU 0053H ; delete partition
SCFQDELETE EQU 0054H ; delete queue
SCFQPOSTW EQU 0055H ; post message to queue and wait
SCFSACCEPT EQU 0056H ; accept unit from semaphore
SCFTECREATE EQU 0057H ; create task with specified stack size
SCFTXCREATE EQU 0058H ; create task with specified structure
; Task Control Block
TCB STRUC
TBIDNEXT DD ? ; 00H reserved
TBDELVAL DD ? ; 04H reserved
TBDELNEXT DD ? ; 08H reserved
TBDELBACK DD ? ; 0CH reserved
TBRES1 DW ? ; 10H reserved
TBLPRI DW ? ; 12H reserved
TBNEXT DD ? ; 14H reserved
TBBACK DD ? ; 18H reserved
TBEXT DB 6 DUP(?) ; 1CH pointer to user's TCB extension
TBPRI DB ? ; 22H priority
TBID DB ? ; 23H task ID number
TBSTAT DW ? ; 24H status
TBSTACK DW ? ; 26H reserved
TBFLAGS DW ? ; 28H reserved
TBANEXT DD ? ; 2AH reserved
TBABACK DD ? ; 2EH reserved
TBRSV2 DW ? ; 32H reserved
TBMCBADD DD ? ; 34H reserved
TBQCBADD DD ? ; 38H reserved
TBPERF DD ? ; 3CH reserved
TBSLICE DW ? ; 40H reserved
TBLINK DD ? ; 42H start of TSS (back link to previous TSS)
TBESP0 DD ? ; 46H TSS's ESP0
TBSS0 DD ? ; 4AH TSS's SS0
TBESP1 DD ? ; 4EH TSS's ESP1
TBSS1 DD ? ; 52H TSS's SS1
TBESP2 DD ? ; 56H TSS's ESP2
TBSS2 DD ? ; 5AH TSS's SS2
TBCR3 DD ? ; 5EH TSS's PDPR
TBEIP DD ? ; 62H TSS's EIP
TBEFLAGS DD ? ; 66H TSS's EFLAGS
TBEAX DD ? ; 6AH TSS's EAX
TBECX DD ? ; 6EH TSS's ECX
TBEDX DD ? ; 72H TSS's EDX
TBEBX DD ? ; 76H TSS's EBX
TBESP DD ? ; 7AH TSS's ESP
TBEBP DD ? ; 7EH TSS's EBP
TBESI DD ? ; 82H TSS's ESI
TBEDI DD ? ; 86H TSS's EDI
TBES DD ? ; 8AH TSS's ES
TBCS DD ? ; 8EH TSS's CS
TBSS DD ? ; 92H TSS's SS
TBDS DD ? ; 96H TSS's DS
TBFS DD ? ; 9AH TSS's FS
TBGS DD ? ; 9EH TSS's GS
TBLDT DD ? ; 0A2H TSS's LDT
TBIOBASE DD ? ; 0A8H TSS's I/O BASE
TBRSV DD 4 DUP(?) ; 0AAH reserved
TCB ENDS
TCBB EQU 0BAH ; total size in bytes
TCBP EQU 12 ; total size in paragraphs
;
; Configuration Table
CFTBL STRUC
CFWSSEL DW ? ; 00H VRTX workspace selector
CFWSOFF DD ? ; 02H reserved, must be zero
CFWSSIZE DD ? ; 06H VRTX workspace size
CFSSTKSZ DW ? ; 0AH system stack size per task
CFISTKSZ DW ? ; 0CH interrupt stack size
CFCBCOUNT DW ? ; 0EH maximum number of control blocks
CFRSVD1 DW ? ; 10H reserved, must be zero
CFIDLE DW ? ; 12H idle task stack size
CFIOMSZ DW ? ; 14H I/O map size
CFDISLEV DW ? ; 16H Reserved, must be 0
CFUSTKSZ DW ? ; 18H user stack size per task
CFRSRVD3 DD ? ; 1AH reserved, must be zero
CFUTSKCT DW ? ; 1EH user task count
CFRSRVD4 DW ? ; 20H reserved, must be zero
CFTXRDY DB 6 DUP(?) ; 22H TXRDY driver routine pointer
CFTCREATE DB 6 DUP(?) ; 28H TCREATE routine pointer
CFTDELETE DB 6 DUP(?) ; 2EH TDELETE routine pointer
CFTSWITCH DB 6 DUP(?) ; 34H TSWITCH routine pointer
CFCVTADDR DB 6 DUP(?) ; 3AH component vector table pointer
CFDALO DB 6 DUP(?) ; 40H descriptor allocation routine pointer
CFTBL ENDS
CFTBLB EQU 46H ; total size in bytes
CFTBLP EQU 5 ; total size in paragraphs
;
; TBSTAT task status flags
TBSSUSP EQU 0001H ; explicitly suspended
TBSMBOX EQU 0002H ; suspended for mailbox message
TBSGETC EQU 0004H ; suspended for character input
TBSPUTC EQU 0008H ; suspended for character output
TBSWAITC EQU 0010H ; suspended for special character
TBSDELAY EQU 0020H ; suspended for task delay/timeout
TBSQUEUE EQU 0040H ; suspended for queue message
TBSRSV1 EQU 0080H ; reserved
TBSIDLE EQU 0100H ; idle task
TBSFLAG EQU 0200H ; suspended for event
TBSSEMA EQU 0400H ; suspended for semaphore unit
;
; System-wide error codes
RET_OK EQU 0000H ; successful return
;
; VRTX32 error codes
ER_TID EQU 0001H ; task ID error
ER_TCB EQU 0002H ; no TCBs available
ER_MEM EQU 0003H ; no memory available
ER_NMB EQU 0004H ; not a memory block
ER_MIU EQU 0005H ; mailbox in use
ER_ZMW EQU 0006H ; zero message
ER_BUF EQU 0007H ; buffer full
ER_WTC EQU 0008H ; WAITC in progress
ER_ISC EQU 0009H ; invalid system call
ER_TMO EQU 000AH ; timeout
ER_NMP EQU 000BH ; no message present
ER_QID EQU 000CH ; queue ID error
ER_QFL EQU 000DH ; queue full
ER_PID EQU 000EH ; partition ID error
ER_INI EQU 000FH ; fatal initialization error
ER_NCP EQU 0010H ; no character present
ER_CVT EQU 0020H ; component vector table not present
ER_COM EQU 0021H ; undefined component
ER_OPC EQU 0022H ; undefined opcode for component
ER_NOCB EQU 0030H ; no control blocks available
ER_ID EQU 0031H ; event flag group or semaphore ID error
ER_PND EQU 0032H ; tasks pending on ev flag group/semaphore
ER_DEL EQU 0033H ; event flag group or semaphore is deleted
ER_OVF EQU 0034H ; event flag already set or semaphore overflow
;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -