summaryrefslogtreecommitdiff
path: root/system/shard-x86-at/7/src/ATSHARD.ASM
blob: fcc5c5088b6efd687558028c39b41ce28506e3a0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
  page 80,132
title AT-SHard, Copyright (C) 1985, 86 Martin Schoenbeck, Spenge  
;******************************************************************************
;*                                                                            *
;*       S H A R D   -   M O D U L                                            *
;*                                                                            *
;*       fuer EUMEL auf 80286 Systemen                                        *
;*                                                                            *
;*       SHard Version 7-PC/AT                                                *
;*                                                                            *
;*       Copyright (C) 1985, 86 Martin Schoenbeck, Spenge                     *
;*                                                                            *
;******************************************************************************

at equ 1
gensys equ 0
ramsys equ 0
pcxt equ 0
pcd equ 0
kompatible equ 0
romharddisk equ 0
romfloppy equ 0
limited_to_360 equ 0
boot_size equ 0

hdsystem equ 1
withhd equ 1

setup_channel equ 28
dos_channel equ 29

shard group code
code segment word public 'code'
 assume cs:shard, ds:shard, es:nothing, ss:nothing

shstart:
     jmp los_gehts

     even

     include MACROS.ASM
     include MAC286.ASM
     include DEVICE.ASM
     include EUCONECT.ASM
     org 0a0h			;bei wort 80 beginnen
     include PATCHARE.ASM

     include SHMAIN.ASM

IBMat equ 0fch
com1base equ 03f8h
com1irq  equ 4
com2base equ 02f8h
com2irq  equ 3
com3base equ 03e8h
com3irq  equ 3
com4base equ 82f8h
com4irq  equ 7
com4_1base equ 02c0h
com4_1irq  equ 3
com4_2base equ 02c8h
com4_2irq  equ 3
com4_3base equ 02d0h
com4_3irq  equ 3
com4_4base equ 02d8h
com4_4irq  equ 3
com8_1base equ 02e0h
com8_1irq  equ 3
com8_2base equ 02e8h
com8_2irq  equ 3
com8_3base equ 02f0h
com8_3irq  equ 3
com8_4base equ 02f8h
com8_4irq  equ 3
para1base equ 3bch
para1irq equ 7

int_ctlr equ 20h
first_ictlr_int equ 8

channel macro number,dev,ccb
channels = channels+1
selectentry = 5
     db number
     dw offset ccb
     if2
     dwb paramstart_,%&dev
     else
     dw 0                ;;weil in pass eins device evtl. unbekannt
     endif 
     endm

selecttable:
     db channels       ;anzahl kanaele hier setzen
channels = -1         ;nilchannel vorab abziehen
     channel 32,shardchannel,0
     channel 0,fixdisk,hgccb0
alterable_channels:
     channel 1,pc,0 
     channel 2,i8250,com1ccb
     channel 3,i8250,com2ccb
     channel 4,i8250,com4_1ccb
     channel 5,i8250,com4_2ccb
     channel 6,i8250,com4_3ccb
     channel 7,i8250,com4_4ccb
     channel 8,i8250,com8_1ccb
     channel 9,i8250,com8_2ccb
     channel 10,i8250,com8_3ccb
     channel 12,parallel,para1ccb
     channel 28,fixdisk,hgccb1
     channel 29,fixdisk,hgccb2
     channel 31,archive,archive_0
     channel 30,archive,archive_1
     channel -1,nilchannel,0
 
     include I8250.ASM
     include PCPAR.ASM
     include STREAM.ASM
     include NILCHAN.ASM
     include PCSCREEN.ASM
     include PCPLOT.ASM
     include PCSYS.ASM
     include FIXDISK.ASM
     include FLOPPY.ASM
     include CLOCK.ASM
     include WAIT.ASM
     include HARDWARE.ASM
     include BLOCKERR.ASM
 
     i8250_ccb com1,2
     i8250_ccb com2,3
     i8250_ccb com4_1,4
     i8250_ccb com4_2,5
     i8250_ccb com4_3,6
     i8250_ccb com4_4,7
     i8250_ccb com8_1,8
     i8250_ccb com8_2,9
     i8250_ccb com8_3,10
     para_ccb para1,12
 ;erlaubt drivetypen: highdensity, drive720
     archive_ccb 0,highdensity
     archive_ccb 1,0
     fix_ccb 0
     fix_ccb 1
     fix_ccb 2

sysmove:
     rep movsw
     jmp systemstart

     include BOOT.ASM

code ends

     end los_gehts