@@ -83,15 +83,15 @@ VFULL MACRO
83
83
ENDM
84
84
85
85
VERSION EQU 1
86
- REVISION EQU 0
86
+ REVISION EQU 1
87
87
88
88
VSTR MACRO
89
- dc.b '1 .0 '
89
+ dc.b '1 .1 '
90
90
ENDM
91
91
92
92
VDATE MACRO
93
- dc.b '01 . 10 . 2019 '
94
- ENDM
93
+ dc.b '06 . 04 . 2020 '
94
+ ENDM
95
95
96
96
; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
97
97
@@ -188,7 +188,7 @@ ETHER_ADDR_SIZE = 6
188
188
BITDEF STATE,PROMISCUOUS,1 ; set if OpenUnit was promiscuous (matches SANA2OPB_PROM)
189
189
BITDEF STATE,ACQUIRED,2 ; set if OpenDevice has acquired the hardware
190
190
BITDEF STATE,CONFIGURED,3 ; set if S2_CONFIGINTERFACE was successful
191
- BITDEF STATE,ONLINE ,4 ; set if S2_ONLINE was successful
191
+ BITDEF STATE,PAUSED ,4 ; set if S2_OFFLINE was successful
192
192
BITDEF STATE,LINKUP,5 ; set if the PHY Ethernet link has been established
193
193
BITDEF STATE,TXINUSE,7 ; transfer in flight - tx buffer in use
194
194
@@ -437,6 +437,13 @@ OpenDevice: ; ( unitnum:d0, flags:d1, iob:a1, device:a6 )
437
437
bsr AcquireHardware
438
438
beq.b .failed
439
439
440
+ ; if returning to a CONFIGURED device, then enable NIC, unless PAUSED
441
+ btst #STATEB_CONFIGURED,g_State(a6 )
442
+ beq.b .skipNIC
443
+ btst #STATEB_PAUSED,g_State(a6 )
444
+ bne.b .skipNIC
445
+ bsr HW_EnableNIC
446
+ .skipNIC
440
447
clr.b IO_ERROR(a1 )
441
448
move.b #NT_REPLYMSG,LN_TYPE(a1 )
442
449
@@ -1183,8 +1190,8 @@ CmdRead
1183
1190
1184
1191
btst #STATEB_CONFIGURED,g_State(a6 )
1185
1192
beq .noconfig
1186
- btst #STATEB_ONLINE ,g_State(a6 )
1187
- beq .notonline
1193
+ btst #STATEB_PAUSED ,g_State(a6 )
1194
+ bne .notonline
1188
1195
1189
1196
move.l IOS2_BUFFERMANAGEMENT(a1 ),d0
1190
1197
beq .noctx
@@ -1227,8 +1234,8 @@ CmdReadOrphan
1227
1234
1228
1235
btst #STATEB_CONFIGURED,g_State(a6 )
1229
1236
beq .noconfig
1230
- btst #STATEB_ONLINE ,g_State(a6 )
1231
- beq .notonline
1237
+ btst #STATEB_PAUSED ,g_State(a6 )
1238
+ bne .notonline
1232
1239
1233
1240
move.l IOS2_BUFFERMANAGEMENT(a1 ),d0
1234
1241
beq .noctx
@@ -1275,8 +1282,8 @@ CmdWrite
1275
1282
1276
1283
btst #STATEB_CONFIGURED,g_State(a6 )
1277
1284
beq .noconfig
1278
- btst #STATEB_ONLINE ,g_State(a6 )
1279
- beq .notonline
1285
+ btst #STATEB_PAUSED ,g_State(a6 )
1286
+ bne .notonline
1280
1287
1281
1288
move.l IOS2_BUFFERMANAGEMENT(a1 ),d0
1282
1289
beq .noctx
@@ -1400,11 +1407,8 @@ CmdConfigInterface
1400
1407
1401
1408
bset #STATEB_CONFIGURED,g_State(a6 )
1402
1409
1403
- ; Genesis WTF?
1404
- ; Genesis/NetConnect3/AmiTCP will put the interface ONLINE first
1405
- ; and then CONFIGURE, assuming the ONLINE state is sticky..
1406
- bclr #STATEB_ONLINE,g_State(a6 )
1407
- bne CmdOnline
1410
+ bset #STATEB_PAUSED,g_State(a6 )
1411
+ beq CmdOnline
1408
1412
1409
1413
.done
1410
1414
bra.w TermIO
@@ -1525,9 +1529,8 @@ CmdOnline
1525
1529
kprintf "S2_ONLINE"
1526
1530
kprintf_reset_color
1527
1531
1528
- ; Genesis WTF? - see note in CmdConfigInterface
1529
- bset #STATEB_ONLINE,g_State(a6 )
1530
- bne.b .terminate
1532
+ bclr #STATEB_PAUSED,g_State(a6 )
1533
+ beq.b .terminate
1531
1534
1532
1535
btst #STATEB_CONFIGURED,g_State(a6 )
1533
1536
beq.b .noconfig
@@ -1550,8 +1553,8 @@ CmdOffline
1550
1553
kprintf "S2_OFFLINE"
1551
1554
kprintf_reset_color
1552
1555
1553
- bclr #STATEB_ONLINE ,g_State(a6 )
1554
- beq .b .offline
1556
+ bset #STATEB_PAUSED ,g_State(a6 )
1557
+ bne .b .offline
1555
1558
1556
1559
moveq.l #S2ERR_OUTOFSERVICE,d0
1557
1560
moveq.l #S2WERR_UNIT_OFFLINE,d1
@@ -1581,8 +1584,8 @@ CmdOnEvent
1581
1584
; already in the state to be waited for.
1582
1585
1583
1586
moveq.l #S2EVENT_ONLINE,d0
1584
- btst #STATEB_ONLINE ,g_State(a6 )
1585
- beq .b .offline
1587
+ btst #STATEB_PAUSED ,g_State(a6 )
1588
+ bne .b .offline
1586
1589
.check and.l IOS2_WIREERROR(a1 ),d0
1587
1590
beq.b .enqueue
1588
1591
@@ -1888,8 +1891,8 @@ AcquireHardware ; ( unitnum:d0, flags:d1, iob:a1, device:a6 )
1888
1891
ReleaseHardware ; ( device:a6 )
1889
1892
kprintf "ReleaseHardware"
1890
1893
1891
- bclr #STATEB_ONLINE ,g_State(a6 )
1892
- beq .b .offline
1894
+ bclr #STATEB_PAUSED ,g_State(a6 )
1895
+ bne .b .offline
1893
1896
1894
1897
kprintf " NIC online - going offline"
1895
1898
0 commit comments