!ID: Show ether station address and firmware version etc
option "-low-nocheck-nodiag"
include "inc:fs.imp"
include "inc:util.imp"
routine pdate(integer d,m,y)
phex2(d); printsymbol('/')
phex2(m); printsymbol('/')
phex2(y)
end
routine rwait
cycle ; repeatuntil eths&1#0
end
integerfn dc
rwait until eths&4#0
result = ethd
end
integerfn cc
integer x
cycle
rwait until eths&2#0
x = ethc
result = x if x&¬15=0
if x&¬15#0 start
printstring("[^"); phex2(x); phex2(dc); printsymbol(']')
finish
repeat
end
integerfn cpu
integerfn f
option "-nocheck-nodiag"
*move.l #68010,d0
*=16_4e74;*=0 {rtd #0
end
on 0 start
result = 68000
finish
result = f
end
routine kb(integer b)
write(b>>10,0); printstring(" kB")
end
begin
@16_0ff4 byte dd,mm,yy
integer i,z
bytearray b(1:4)
write(cpu,0)
printstring(" firmware version ")
pdate(dd,mm,yy); newline
z = 0
eths = z; !Interrupts off
twait; ethc = 8; !Set Peek Address
twait; ethd = 3; !Low byte
twait; ethd = z; !High byte
for i = 1,1,4 cycle
twait; ethc = 13; !Peek command
z = cc until z=14; !Await Poke response
b(i) = dc; !Get the value
repeat
eths = 6; !Interrupts on again
printstring("Ether firmware version ")
pdate(b(2),b(3),b(4))
newline
printstring("Station address ")
phex2(b(1)) and printstring("? ") unless b(1)=ldte
phex2(ldte); newline
printstring("Your port "); phex2(lsap)
printstring(" is connected to port "); phex2(rsap)
printstring(" of filestore "); phex2(rdte); newline
printstring("Main store ")
kb(memtop-membot); printstring(" from "); phex(membot); newline
printstring("Free store ")
kb(freetop-freebot); printstring(" from "); phex(freebot); newline
endofprogram