From a3305bb54d2af08c7549a9b9932cb7f49c43e514 Mon Sep 17 00:00:00 2001
From: Oliver Schmidt
Date: Wed, 8 Jul 2015 15:46:28 +0200
Subject: [PATCH] Added option to set ethernet slot on the Apple 2.
---
drivers/Makefile | 8 +++---
drivers/a2slot.s | 47 ++++++++++++++++++++++++++++++++++
drivers/a2slotcombo.s | 59 +++++++++++++++++++++++++++++++++++++++++++
3 files changed, 110 insertions(+), 4 deletions(-)
create mode 100644 drivers/a2slot.s
create mode 100644 drivers/a2slotcombo.s
diff --git a/drivers/Makefile b/drivers/Makefile
index afede6d..58d7084 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -60,16 +60,16 @@ c64wiz811.lib: wiz811mj.o w5100.o w5100driver.o ethernet.o $(C64OBJS)
c64combo.lib: rr-net.o cs8900a.o eth64.o lan91c96.o wiz811mj.o w5100.o ethernetcombo.o $(C64OBJS)
ar65 a $@ $^
-a2uther.lib: uthernet.o cs8900a.o cs8900adriver.o ethernet.o $(A2OBJS)
+a2uther.lib: uthernet.o cs8900a.o cs8900adriver.o ethernet.o a2slot.o $(A2OBJS)
ar65 a $@ $^
-a2lancegs.lib: lancegs.o lan91c96.o lan91c96driver.o ethernet.o $(A2OBJS)
+a2lancegs.lib: lancegs.o lan91c96.o lan91c96driver.o ethernet.o a2slot.o $(A2OBJS)
ar65 a $@ $^
-a2uther2.lib: uthernet2.o w5100.o w5100driver.o ethernet.o $(A2OBJS)
+a2uther2.lib: uthernet2.o w5100.o w5100driver.o ethernet.o a2slot.o $(A2OBJS)
ar65 a $@ $^
-a2combo.lib: uthernet.o cs8900a.o lancegs.o lan91c96.o uthernet2.o w5100.o ethernetcombo.o $(A2OBJS)
+a2combo.lib: uthernet.o cs8900a.o lancegs.o lan91c96.o uthernet2.o w5100.o ethernetcombo.o a2slotcombo.o $(A2OBJS)
ar65 a $@ $^
vic20rrnet.lib: vic20-rr-net.o cs8900a.o cs8900adriver.o ethernet.o $(VIC20OBJS)
diff --git a/drivers/a2slot.s b/drivers/a2slot.s
new file mode 100644
index 0000000..62197af
--- /dev/null
+++ b/drivers/a2slot.s
@@ -0,0 +1,47 @@
+.include "zeropage.inc"
+
+.export a2_set_slot
+
+.import eth_driver_io_base
+
+
+.code
+
+; set Apple 2 ethernet adaptor slot
+; inputs:
+; A: slot number (1-7)
+; outputs:
+; none
+a2_set_slot:
+ asl
+ asl
+ asl
+ asl
+ sta tmp1
+
+ lda eth_driver_io_base
+ and #%10001111
+ ora tmp1
+ sta eth_driver_io_base
+ rts
+
+
+
+; -- LICENSE FOR a2slot.s --
+; The contents of this file are subject to the Mozilla Public License
+; Version 1.1 (the "License"); you may not use this file except in
+; compliance with the License. You may obtain a copy of the License at
+; http://www.mozilla.org/MPL/
+;
+; Software distributed under the License is distributed on an "AS IS"
+; basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+; License for the specific language governing rights and limitations
+; under the License.
+;
+; The Original Code is ip65.
+;
+; The Initial Developer of the Original Code is Jonno Downes,
+; jonno@jamtronix.com.
+; Portions created by the Initial Developer are Copyright (C) 2009
+; Jonno Downes. All Rights Reserved.
+; -- LICENSE END --
diff --git a/drivers/a2slotcombo.s b/drivers/a2slotcombo.s
new file mode 100644
index 0000000..2193e24
--- /dev/null
+++ b/drivers/a2slotcombo.s
@@ -0,0 +1,59 @@
+.include "zeropage.inc"
+
+.export a2_set_slot
+
+.import _cs8900a_driver_io_base
+.import _lan91c96_driver_io_base
+.import _w5100_driver_io_base
+
+
+.code
+
+; set Apple 2 ethernet adaptor slot
+; inputs:
+; A: slot number (1-7)
+; outputs:
+; none
+a2_set_slot:
+ asl
+ asl
+ asl
+ asl
+ sta tmp1
+
+ lda _cs8900a_driver_io_base
+ and #%10001111
+ ora tmp1
+ sta _cs8900a_driver_io_base
+
+ lda _lan91c96_driver_io_base
+ and #%10001111
+ ora tmp1
+ sta _lan91c96_driver_io_base
+
+ lda _w5100_driver_io_base
+ and #%10001111
+ ora tmp1
+ sta _w5100_driver_io_base
+ rts
+
+
+
+; -- LICENSE FOR a2slotcombo.s --
+; The contents of this file are subject to the Mozilla Public License
+; Version 1.1 (the "License"); you may not use this file except in
+; compliance with the License. You may obtain a copy of the License at
+; http://www.mozilla.org/MPL/
+;
+; Software distributed under the License is distributed on an "AS IS"
+; basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+; License for the specific language governing rights and limitations
+; under the License.
+;
+; The Original Code is ip65.
+;
+; The Initial Developer of the Original Code is Jonno Downes,
+; jonno@jamtronix.com.
+; Portions created by the Initial Developer are Copyright (C) 2009
+; Jonno Downes. All Rights Reserved.
+; -- LICENSE END --