page 80,132
;******************************************************************************
;* *
;* S H A R D - M O D U L *
;* *
;* fuer EUMEL auf 80286, 8086, 8088 Systemen *
;* *
;* SHard Version 7-PC/XT, PC/AT *
;* *
;* Copyright (C) 1985, 86 Martin Schoenbeck, Spenge *
;* *
;******************************************************************************
com2wrongirq equ 0
add4 equ 0
ast equ 0
at equ 0
gensys equ 0
ramsys equ 0
pcxt equ 1
pcd 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
if com2wrongirq
com2irq equ 5
else
com2irq equ 3
endif
if add4
com4_1base equ 03e8h
com4_1irq equ 3
com4_2base equ 03e0h
com4_2irq equ 3
com4_3base equ 02f0h
com4_3irq equ 3
com4_4base equ 02e8h
com4_4irq equ 3
com8_1base equ 02e0h
com8_1irq equ 3
com8_2base equ 0260h
com8_2irq equ 3
com8_3base equ 02d8h
com8_3irq equ 3
else
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
add4_3base equ 03e8h
add4_3irq equ 3
add4_4base equ 03e0h
add4_4irq equ 3
add4_8base equ 0260h
add4_8irq equ 3
endif
ast0_1base equ 01a0h
ast0_1irq equ 5
ast0_2base equ 01a8h
ast0_2irq equ 5
ast0_3base equ 01b0h
ast0_3irq equ 5
ast0_4base equ 01b8h
ast0_4irq equ 5
ast1_1base equ 02a0h
ast1_1irq equ 5
ast1_2base equ 02a8h
ast1_2irq equ 5
ast1_3base equ 02b0h
ast1_3irq equ 5
ast1_4base equ 02b8h
ast1_4irq equ 5
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
if ast
channel 4,i8250,ast0_1ccb
channel 5,i8250,ast0_2ccb
channel 6,i8250,ast0_3ccb
channel 7,i8250,ast0_4ccb
channel 8,i8250,ast1_1ccb
channel 9,i8250,ast1_2ccb
channel 10,i8250,ast1_3ccb
channel 11,i8250,ast1_4ccb
else
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
ife add4 ;wenn nicht extra fuer add4, trotzdem vorsehen
channel 11,i8250,add4_3ccb
channel 12,i8250,add4_4ccb
channel 13,i8250,add4_8ccb
endif
endif
; channel 4,i8250,com3ccb
; channel 5,i8250,com4ccb
channel 15,parallel,para0ccb
channel 14,parallel,para1ccb
channel 16,parallel,para2ccb
channel 28,fixdisk,hgccb1
channel 29,fixdisk,hgccb2
if 0
channel 30,archive,archive_0
channel 31,archive,archive_1
else
channel 31,archive,archive_0
channel 30,archive,archive_1
endif
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
if ast
i8250_ccb ast0_1,4
i8250_ccb ast0_2,5
i8250_ccb ast0_3,6
i8250_ccb ast0_4,7
i8250_ccb ast1_1,8
i8250_ccb ast1_2,9
i8250_ccb ast1_3,10
i8250_ccb ast1_4,11
else
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
ife add4 ;wenn nicht extra fuer add4, trotzdem vorsehen
i8250_ccb add4_3,11
i8250_ccb add4_4,12
i8250_ccb add4_8,13
endif
endif
para_ccb 0,15
para_ccb 1,14
para_ccb 2,16
;erlaubt drivetypen: highdensity, drive720
if at
archive_ccb 0,highdensity
archive_ccb 1,0 ;drive720
else
archive_ccb 0,0
archive_ccb 1,0
endif
fix_ccb 0
fix_ccb 1
fix_ccb 2
sysmove:
rep movsw
jmp systemstart
include BOOT.ASM
code ends
end los_gehts