$genonly $nolist %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' define the utility macros used by system configuration macros %' in this module: %' trim -- cleans up blanks from the input parameter. %' hex_it -- adds a leading 0 and an ending h to the input %' parameter if not already present. %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;%' %' trim(a) - returns the input parameter trimmed of leading and %' trailing blanks. %*define(trim(a)) local x y (%match( x y)(%a)%x) %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' hex_it(hex_what) - forces argument to hex, adds leading zero and %' trailing H if necessary. hex_it does not %' clean up (trim) the input parameter. %*define(hex_it(hex_what)) local last_char (%' %define(last_char)(%substr(%hex_what,%len(%hex_what),1))%' %if( %nes(%substr(%hex_what,1,1),%(0)) )then(%(0))fi%' %hex_what%' %if( %nes(%last_char,%(h)) and%' %' '%nes(%last_char,%(H)) )then(%(h))fi%' )%' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %*define(osx(onchip_par,offchip_par,ext_par)) (%' %' %set(onchip_base,%hex_it(%trim(%onchip_par)))%' %set(offchip_base,%hex_it(%trim(%offchip_par)))%' %set(nucleus_base,%eval(%onchip_base - 0600h))%' %set(offset,%eval((%offchip_base - %nucleus_base) * 10h))%' ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; code_base_addr = %substr(%nucleus_base,1,(%len(%nucleus_base) - 1)) ; ; ; use this value for the code_base_addr in the locate sequence ; ; this module is suitable for positioning any iosp 86 support ; code which resides exactly %eval(%offset - 06000h) bytes away from ; the beginning of the 80130 component ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; $nolist ; ; this module is the first to be linked in with the support ; code so the org statement determines where the iosp 86 ; support code will be in relation to the code_base_addr. ; the default is for the off-chip code to be immediately ; after the 80130 component's address space. off_chip_pos segment word public 'code' org %offset off_chip_pos ends system_data_seg_id segment para public 'data' system_data_seg_id ends )%' osx macro definition ends code segment word public 'code' cgroup group off_chip_pos,code assume cs:cgroup extrn nopen:near extrn nopenns:near extrn nclose:near extrn nclosens:near extrn nlock:near extrn nlockns:near extrn nunlock:near extrn nunlockns:near extrn nopen_deletion_object:near extrn nclose_deletion_object:near extrn nlock_deletion_object:near extrn nunlock_deletion_object:near extrn deleteobject:near code ends $eject %*define(_80130_data(where,data_name))(%' org %where %data_name label byte public %data_name )%' dgroup group system_data_seg_id,data data segment word public 'data' assume ds:dgroup %_80130_data( 0217H,ACTIVATE_SIGNAL_Q) %_80130_data( 0278H,CLOCK_LEVEL) %_80130_data( 0277H,CLOCK_OFF) %_80130_data( 0276H,CLOCK_ON) %_80130_data( 0275H,CLOCK_SPEC_EOI) %_80130_data( 0196H,COMPOSITECOMPONENTSOFFSET) %_80130_data( 017CH,COMPOSITESIZE) %_80130_data( 0120H,DEFAULT_HANDLER) %_80130_data( 019AH,DELAYLISTROOTTOKEN) %_80130_data( 0150H,DELETIONTASKTOKEN) %_80130_data( 0154H,DELETION_OBJECT_BASE) %_80130_data( 0224H,DISABLEMASK) %_80130_data( 0248H,EOI_PORT) %_80130_data( 0152H,EXTENSIONLISTROOT) %_80130_data( 017EH,EXTENSIONSIZE) %_80130_data( 0218H,FILLCHAR) %_80130_data( 019CH,IDLETASKTOKEN) %_80130_data( 0236H,IMR_PORT) %_80130_data( 018AH,INCRHEADERPARSIZE) %_80130_data( 0148H,INTERRORENTRY) %_80130_data( 0000H,INTERRUPTTASKVEC) %_80130_data( 021BH,INTMASK) %_80130_data( 025AH,ISR_PORT) %_80130_data( 01A2H,ISTACK_END) %_80130_data( 01A0H,ISTACK_START) %_80130_data( 017AH,JOBSIZE) %_80130_data( 0216H,KERNEL_FLAG) %_80130_data( 0198H,KREADYLISTROOTTOKEN) %_80130_data( 019EH,KSTACK_END) %_80130_data( 015CH,LAST_NDP_TASK) %_80130_data( 022DH,LEVEL_SET_TABLE) %_80130_data( 0279H,MASTER_VECTOR) %_80130_data( 0180H,MBXSIZE) %_80130_data( 015AH,MINTRANSSIZE) %_80130_data( 018EH,MT_BYTES_TO_CACHE) %_80130_data( 0178H,NDPSAVEAREASIZE) %_80130_data( 015EH,NDP_INTERRUPT_LEVEL_VAR) %_80130_data( 0219H,NUM_SLAVES) %_80130_data( 0192H,OBJDIROFFSET) %_80130_data( 021AH,OLD_SLAVE_NUM) %_80130_data( 0160H,PARAM_VALIDATION_VECTOR) %_80130_data( 026CH,PIC_INFO) %_80130_data( 0188H,POOLHEADERPARSIZE) %_80130_data( 0144H,READYLISTROOT) %_80130_data( 0186H,REF_OBJ_SIZE) %_80130_data( 0184H,REGIONSIZE) %_80130_data( 0162H,REGION_FLAGS) %_80130_data( 0166H,REGION_TOKEN_TABLE) %_80130_data( 0158H,ROOTJOBTOKEN) %_80130_data( 018CH,SEGHEADERPARSIZE) %_80130_data( 0182H,SEMAPHORESIZE) %_80130_data( 01A6H,SIGNAL_Q) %_80130_data( 01A4H,SIGNAL_Q_INDEX) %_80130_data( 014CH,SYSTEMEXCEPTIONHANDLERPTR) %_80130_data( 0156H,SYSTEMPOOLTOKEN) %_80130_data( 0176H,TASKSIZE) %_80130_data( 0164H,TASK_WAITING_FLAGS) %_80130_data( 0194H,TOBJDIROFFSET) %_80130_data( 0190H,TT_NDP_AREA_OFFSET) data ends $list