home *** CD-ROM | disk | FTP | other *** search
/ Phoenix CD 2.0 / Phoenix_CD.cdr / 02a / pctj486.zip / AMX86.ASM next >
Assembly Source File  |  1986-01-21  |  7KB  |  316 lines

  1.  
  2.  
  3.  
  4.     TITLE    EXAMPLE AMX SYSTEM CONFIGURATION
  5. ;
  6. ;AN AMX86 CONFIGURATION MODULE DEFINING ALL
  7. ;TASKS, TIMERS, QUEUES, STACKS, ETC. REQUIRED
  8. ;BY AMX86 FOR PROPER OPERATION
  9. ;(BUILT BY THE KADAK AMX86 CONFIGURATION BUILDER)
  10. ;
  11. ;TASK ADDRESSES
  12. ;
  13.     EXTRN    AMTMRT:FAR    ;TASK # 0 AMX86 TIMER TASK
  14.     EXTRN    CONSIN:FAR    ;TASK # 1
  15.     EXTRN    PRTOUT:FAR    ;TASK # 2
  16.     EXTRN    SENSOR:FAR    ;TASK # 3
  17.     EXTRN    APLTSK:FAR    ;TASK # 4
  18. ;
  19. ;RESTART PROCEDURE ADDRESSES
  20. ;
  21.     EXTRN    AMTDRR:FAR    ;TIME/DATE RESTART PROCEDURE
  22. ;or    EXTRN    AMTDPC:FAR    ;TIME/DATE FOR IBM PC DOS
  23.     EXTRN    AMRMRR:FAR    ;RESOURCE MANAGER
  24.     EXTRN    AABIA:FAR        ;BUFFER MANAGER
  25.     EXTRN    CONRST:FAR    ;USER RESTART PROCEDURES
  26.     EXTRN    PRTRST:FAR
  27.     EXTRN    CLKRST:FAR
  28.     EXTRN    SENRST:FAR
  29.     EXTRN    GLORST:FAR
  30. ;
  31. ;APPLICATION TIMER PROCEDURES
  32. ;
  33.     EXTRN    AMTDTR:FAR    ;TIME/DATE TIMER PROCEDURE
  34.     EXTRN    TMHRLY:FAR
  35.     EXTRN    TMNOON:FAR
  36.     EXTRN    TMSEC:FAR
  37. ;
  38. ;TIME/DATE USER SCHEDULER PROCEDURE
  39. ;
  40.     EXTRN    TDSCHD:FAR
  41. ;
  42.     PAGE
  43. ;THE AMX86 PARAMETER SEGMENT
  44. AMXPAR    SEGMENT WORD 'CODE'
  45. ;
  46. ;ENTRY POINTS REQUIRED BY AMX86
  47. ;
  48.     PUBLIC    AMTDT        ;TASK DEFINITION TABLE
  49.     PUBLIC    AMRPL        ;RESTART PROCEDURE LIST
  50.     PUBLIC    AMNUMQ        ;NUMBER OF QUEUE BLOCKS
  51.     PUBLIC    AMCLKP        ;CLOCK PERIOD = # OF CLOCK
  52. INTERRUPTS
  53.     PUBLIC    AMTMRR        ;TIMER PROCEDURE LIST
  54.     PUBLIC    AMISTP        ;AMX86 INTERRUPT STACK POINTER
  55. ;
  56. ;TIME/DATE PARAMETER TABLE ENTRY POINTS
  57. ;
  58.     PUBLIC    AMTDFQ        ;TIMER FREQUENCY
  59.     PUBLIC    AMTDTM        ;WORD DISPLACEMENT OF TIME/DATE
  60. TIMER
  61.     PUBLIC    AMTDRA        ;A(TIME/DATE RAM BLOCK)
  62.     PUBLIC    AMTDSH        ;A(USER TIME/DATE SCHEDULER)
  63. ;
  64. ;TABLE OF APPLICATION TIMER DISPLACEMENTS ENTRY POINTS
  65. ;
  66.     PUBLIC    TMTD        ;TIME/DATE TIMER
  67.     PUBLIC    HOURLY
  68.     PUBLIC    MIDDAY
  69.     PUBLIC    PERSEC
  70. ;
  71. ;TABLE OF INTEGER TASK NUMBERS ENTRY POINTS
  72. ;
  73.     PUBLIC    TNTMR        ;TASK # 0 AMX86 TIMER TASK
  74.     PUBLIC    TNCONI        ;TASK # 1
  75.     PUBLIC    TNPRTO        ;TASK # 2
  76.     PUBLIC    TNSENS        ;TASK # 3
  77.     PUBLIC    TNAPPL        ;TASK # 4
  78. ;
  79. ;RESOURCE MANAGER ENTRY POINTS
  80. ;
  81.     PUBLIC    AMRDT        ;RESOURCE DEFINITION TABLE
  82.     PUBLIC    PRINTR        ;RESOURCE NUMBER TABLE
  83.     PUBLIC    MEMIO1
  84.     PUBLIC    MEMIO2
  85.     PUBLIC    ERRWIN
  86. ;
  87. ;BUFFER MANAGER ENTRY POINTS
  88. ;
  89.     PUBLIC    AAPDT        ;POOL DESCRIPTION TABLE
  90. ;
  91.     PAGE
  92. ;AMX86 TASK DEFINITION TABLE
  93. AMTDT    LABEL    DWORD
  94. ;
  95. ;AMX86 TIMER TASK (#0) IS THE HIGHEST PRIORITY
  96. ;TASK # 0
  97.     DD    AMTMRT        ;A(AMX86 TIMER TASK)
  98.     DD    SPTMR        ;A(TIMER TASK STACK)
  99.     DW    0        ;TASK ATTRIBUTES
  100.     DW    0        ;LEVEL 0 (UNUSED)
  101.     DW    0        ;LEVEL 1 (UNUSED)
  102.     DW    0        ;LEVEL 2 (UNUSED)
  103.     DW    0        ;LEVEL 3 (UNUSED)
  104. ;
  105. ;TASK # 1
  106.     DD    CONSIN        ;START ADDRESS
  107.     DD    SPCONI        ;STACK ADDRESS
  108.     DW    0        ;TASK ATTRIBUTES
  109.     DW    0        ;LEVEL 0 (UNUSED)
  110.     DW    0        ;LEVEL 1 (UNUSED)
  111.     DW    0        ;LEVEL 2 (UNUSED)
  112.     DW    0        ;LEVEL 3 (UNUSED)
  113. ;
  114. ;TASK # 2
  115.     DD    PRTOUT        ;START ADDRESS
  116.     DD    SPPRTO        ;STACK ADDRESS
  117.     DW    0        ;TASK ATTRIBUTES
  118.     DW    8        ;LEVEL 0
  119.     DW    8        ;LEVEL 1
  120.     DW    8        ;LEVEL 2
  121.     DW    8        ;LEVEL 3
  122. ;
  123. ;TASK # 3
  124.     DD    SENSOR        ;START ADDRESS
  125.     DD    SPSENS        ;STACK ADDRESS
  126.     DW    0        ;TASK ATTRIBUTES
  127.     DW    8        ;LEVEL 0
  128.     DW    4        ;LEVEL 1
  129.     DW    4        ;LEVEL 2
  130.     DW    2        ;LEVEL 3
  131. ;
  132. ;TASK # 4
  133.     DD    APLTSK        ;START ADDRESS
  134.     DD    SPAPPL        ;STACK ADDRESS
  135.     DW    0        ;TASK ATTRIBUTES
  136.     DW    8        ;LEVEL 0
  137.     DW    8        ;LEVEL 1
  138.     DW    8        ;LEVEL 2
  139.     DW    8        ;LEVEL 3
  140. ;
  141.     DW    2 DUP(0FFFFH)    ;END OF TASKS
  142. ;
  143. ;TABLE OF INTEGER TASK NUMBERS
  144. ;
  145. TNTMR    DW    0
  146. TNCONI    DW    1
  147. TNPRTO    DW    2
  148. TNSENS    DW    3
  149. TNAPPL    DW    4
  150. ;
  151. ;AMX86 RESTART PROCEDURE LIST IN ORDER OF EXECUTION
  152. ;
  153.     EVEN
  154. AMRPL    LABEL    DWORD
  155.     DD    AMTDRR        ;TIME/DATE RESTART PROCEDURE
  156. ;or    DD    AMTDPC        ;TIME/DATE FOR IBM PC DOS
  157.     DD    AMRMRR        ;RESOURCE MANAGER
  158.     DD    AABIA        ;BUFFER MANAGER
  159.     DD    CONRST        ;USER RESTART PROCEDURES
  160.     DD    PRTRST
  161.     DD    CLKRST
  162.     DD    SENRST
  163.     DD    GLORST
  164. ;
  165.     DW    2 DUP(0FFFFH)    ;END OF LIST
  166. ;
  167. AMNUMQ    DW    300        ;# OF SYSTEM QUEUE PARAMETER BLOCKS
  168. AMCLKP    DW    1        ;CLOCK PERIOD = # OF CLOCK INTERRUPTS
  169. AMISTP    DD    AMISTK        ;AMX86 INTERRUPT STACK POINTER
  170. ;
  171. ;AMX86 APPLICATION TIMER PROCEDURE LIST
  172. ;
  173. AMTMRR    LABEL    DWORD
  174.     DD    AMTDTR        ;TIME/DATE TIMER PROCEDURE
  175.     DD    TMHRLY
  176.     DD    TMNOON
  177.     DD    TMSEC
  178. ;
  179.     DW    2 DUP(0FFFFH)    ;END OF LIST
  180. ;
  181. ;TABLE OF APPLICATION TIMER DISPLACEMENTS
  182. ;
  183. TMTD    DW    0        ;TIME/DATE TIMER
  184. HOURLY    DW    2
  185. MIDDAY    DW    4
  186. PERSEC    DW    6
  187. ;
  188. ;TIME/DATE USER PARAMETER TABLE
  189.     EVEN
  190. ;
  191. AMTDFQ    DW    18        ;TIMER FREQUENCY
  192. AMTDTM    DW    0        ;WORD DISPLACEMENT OF TIME/DATE TIMER
  193. AMTDRA    DD    TDRAM        ;A(TIME/DATE RAM BLOCK)
  194. AMTDSH    DD    TDSCHD        ;A(USER TIME/DATE SCHEDULER)
  195. ;
  196. ;AMX86 RESOURCE DEFINITION TABLE
  197. ;
  198.     EVEN
  199. AMRDT    LABEL    WORD
  200.     DW    4        ;NUMBER OF RESOURCES
  201.     DW    5        ;QUEUEING DEPTH - RESOURCE # 1
  202.     DW    3        ;QUEUEING DEPTH - RESOURCE # 2
  203.     DW    3        ;QUEUEING DEPTH - RESOURCE # 3
  204.     DW    8        ;QUEUEING DEPTH - RESOURCE # 4
  205. ;
  206. ;RESOURCE IDENTIFICATION NUMBER TABLE
  207. ;
  208. PRINTR    DW    1
  209. MEMIO1    DW    2
  210. MEMIO2    DW    3
  211. ERRWIN    DW    4
  212. ;
  213. ;BUFFER POOL DESCRIPTION TABLE
  214. ;
  215.     EVEN
  216. AAPDT    LABEL    WORD
  217.     DW    2        ;NUMBER OF POOLS
  218.     DD    RAM0        ;POINTER TO RAM AREA FOR POOL # 0
  219.     DW    16        ;NUMBER OF BUFFERS IN POOL # 0
  220.     DW    64        ;SIZE OF BUFFERS IN POOL # 0
  221.     DD    RAM1        ;POINTER TO RAM AREA FOR POOL # 1
  222.     DW    1024        ;NUMBER OF BUFFERS IN POOL # 1
  223.     DW    4        ;SIZE OF BUFFERS IN POOL # 1
  224. ;
  225. AMXPAR    ENDS            ;END OF AMX86 PARAMETER SEGMENT
  226. ;
  227.     PAGE
  228. ;THE AMX86 DATA SEGMENT
  229. ;
  230. AMXDATA    SEGMENT WORD 'DATA'
  231. ;
  232.     PUBLIC    AMDATA        ;ENTRY POINT FOR AMX86 USE
  233. ;
  234. AMDATA    LABEL    WORD
  235. NT    EQU    5        ;# OF TASKS IN SYSTEM
  236. QB    EQU    300        ;# OF QUEUE BLOCKS IN SYSTEM QUEUE
  237. TQ    EQU    130        ;# OF WORDS REQUIRED FOR TASK QUEUES
  238. NTM    EQU    4        ;# OF APPLICATION INTERVAL TIMERS
  239. ;
  240.     DW    32 DUP(?)    ;AMX86 PRIVATE STORAGE
  241.     DW    (NT*32)+2 DUP(?) ;TASK CONTROL BLOCKS
  242.     DW    (QB*9)+4 DUP(?)    ;AMX86 SYSTEM QUEUE
  243.     DW    TQ DUP(?)    ;TASK QUEUE STORAGE
  244.     DW    NTM DUP(?)    ;TIMER LIST
  245. ;
  246. ;TIME/DATE RAM BLOCK
  247. ;
  248. TDRAM    DB    9 DUP(?)
  249. ;
  250. AMXDATA    ENDS            ;END OF AMX86 DATA SEGMENT
  251. ;
  252.     PAGE
  253. ;AMX86 STACK SEGMENTS
  254. ;
  255. AMXESTK    SEGMENT WORD 'TSTACK'
  256.     PUBLIC    AMESTK
  257.     DW    512 DUP(?)
  258. AMESTK    LABEL    WORD        ;AMX86 EXECUTIVE STACK
  259. AMXESTK    ENDS
  260. ;
  261. AMXISTK    SEGMENT WORD 'MSTACK'
  262.     DW    768 DUP(?)
  263. AMISTK    LABEL    WORD        ;AMX86 INTERRUPT STACK
  264. AMXISTK    ENDS
  265. ;
  266. AMXTSTK    SEGMENT WORD 'MSTACK'
  267.     DW    128 DUP(?)
  268. SPTMR    LABEL    WORD        ;AMX86 TIMER TASK STACK
  269. AMXTSTK    ENDS
  270. ;
  271. ;AMX86 LARGE TASK STACK SEGMENTS
  272. ;
  273. CONITSTACK SEGMENT WORD 'TSTACK'
  274.     DW    1024 DUP(?)
  275. SPCONI    LABEL    WORD        ;STACK FOR TASK # 1
  276. CONITSTACK ENDS
  277. ;
  278. PRTOTSTACK SEGMENT WORD 'TSTACK'
  279.     DW    512 DUP(?)
  280. SPPRTO    LABEL    WORD        ;STACK FOR TASK # 2
  281. PRTOTSTACK ENDS
  282. ;
  283. SENSTSTACK SEGMENT WORD 'TSTACK'
  284.     DW    1024 DUP(?)
  285. SPSENS    LABEL    WORD        ;STACK FOR TASK # 3
  286. SENSTSTACK ENDS
  287. ;
  288. APPLTSTACK SEGMENT WORD 'TSTACK'
  289.     DW    1024 DUP(?)
  290. SPAPPL    LABEL    WORD        ;STACK FOR TASK # 4
  291. APPLTSTACK ENDS
  292. ;
  293.     PAGE
  294. ;AMX86 RESOURCE CONTROL TABLE
  295. ;
  296. AMRMDATA SEGMENT WORD 'DATA'
  297. ;
  298.     PUBLIC    AMRCT
  299. ;
  300.     EVEN
  301. AMRCT    DW    48 DUP(?)    ;ALLOCATE STORAGE
  302. ;
  303. AMRMDATA ENDS
  304. ;
  305.     PAGE
  306. ;BUFFER POOL STORAGE AREAS
  307. ;
  308. AABMDATA SEGMENT WORD 'DATA'
  309. ;
  310. RAM0    DB    1094 DUP(?)    ;RAM FOR POOL # 0
  311. RAM1    DB    8198 DUP(?)    ;RAM FOR POOL # 1
  312. ;
  313. AABMDATA ENDS
  314. ;
  315.     END
  316.