From 98cab31fc3659e33aef260efca55bf9f1753164c Mon Sep 17 00:00:00 2001 From: Lars-Dominik Braun Date: Mon, 11 Feb 2019 11:49:19 +0100 Subject: Add source files from Michael --- system/shard-x86-at/7/src/HSHARD.ASM | 242 +++++++++++++++++++++++++++++++++++ 1 file changed, 242 insertions(+) create mode 100644 system/shard-x86-at/7/src/HSHARD.ASM (limited to 'system/shard-x86-at/7/src/HSHARD.ASM') diff --git a/system/shard-x86-at/7/src/HSHARD.ASM b/system/shard-x86-at/7/src/HSHARD.ASM new file mode 100644 index 0000000..c21b572 --- /dev/null +++ b/system/shard-x86-at/7/src/HSHARD.ASM @@ -0,0 +1,242 @@ + 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 + + + \ No newline at end of file -- cgit v1.2.3