;*************************************************************************** ;*======= Copyright (C) 1985,86 Martin Schoenbeck, Spenge =================* ;* * ;* Macros zur Definition von devicetypecontrolblocks und * ;* bestimmten channelcontrolblock Eintraegen * ;* * ;*************************************************************************** .xlist actualdevice = 0 device macro type if1 ifdef type .printx * device type doppelt definiert * endif endif actualdevice = actualdevice+1 type = actualdevice endm routine macro code,execut db code dw offset execut endm dtcbroutines macro type ifidn , buildlabel blockin_,%actualdevice else ifidn , buildlabel blockout_,%actualdevice else ifidn , buildlabel iocontrol_,%actualdevice else ifidn , buildlabel control32_,%actualdevice else .printx * unbekannter routinentyp: '&type' in dctbroutine * endif endif endif endif endm dtcbparams macro output,typ buildlabel paramstart_,%actualdevice dw offset output dbbp blockin_,%actualdevice dbbp blockout_,%actualdevice dbbp iocontrol_,%actualdevice dbbp control32_,%actualdevice dtcbentry devtype db typ endm dtcbentry macro entry xequat entry,%actualdevice endm dwb macro first,second dw offset first&second endm dbbp macro first,second db first&second-paramstart_&second endm xequat macro entry,dev entry = $-paramstart_&dev endm buildlabel macro first,second first&second: endm startccb macro name,kanal name: actccb = $ ccbentry channel_no db kanal endm ccbentry macro entry entry = $-actccb endm .list