summaryrefslogtreecommitdiff
path: root/system/shard-x86-at/7/src/DEVICE.ASM
diff options
context:
space:
mode:
authorLars-Dominik Braun <lars@6xq.net>2019-02-11 11:49:19 +0100
committerLars-Dominik Braun <lars@6xq.net>2019-02-11 11:49:39 +0100
commit98cab31fc3659e33aef260efca55bf9f1753164c (patch)
treef1affa84049ef9b268e6c4f521f000478b0f3a8e /system/shard-x86-at/7/src/DEVICE.ASM
parent71e2b36ccd05ea678e62e32ee6245df2b8d6ac17 (diff)
downloadeumel-src-98cab31fc3659e33aef260efca55bf9f1753164c.tar.gz
eumel-src-98cab31fc3659e33aef260efca55bf9f1753164c.tar.bz2
eumel-src-98cab31fc3659e33aef260efca55bf9f1753164c.zip
Add source files from Michael
Diffstat (limited to 'system/shard-x86-at/7/src/DEVICE.ASM')
-rw-r--r--system/shard-x86-at/7/src/DEVICE.ASM92
1 files changed, 92 insertions, 0 deletions
diff --git a/system/shard-x86-at/7/src/DEVICE.ASM b/system/shard-x86-at/7/src/DEVICE.ASM
new file mode 100644
index 0000000..0800a67
--- /dev/null
+++ b/system/shard-x86-at/7/src/DEVICE.ASM
@@ -0,0 +1,92 @@
+;***************************************************************************
+;*======= 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 <type>,<blockin>
+ buildlabel blockin_,%actualdevice
+ else
+ ifidn <type>,<blockout>
+ buildlabel blockout_,%actualdevice
+ else
+ ifidn <type>,<iocontrol>
+ buildlabel iocontrol_,%actualdevice
+ else
+ ifidn <type>,<control32>
+ 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
+
+ \ No newline at end of file