There is documentation for ADAMNet in the ADAM Technical Manual which you can probably find on http://adamarchive.org/
MIB2 low-level access
Re: MIB2 low-level access
Re: MIB2 low-level access
No I was wrong / I assumed they were the same - look in the cpm section of the archive you may find code in one of the telecommunications images
Milli
Re: MIB2 low-level access
Awesomesauce!Milli wrote: ↑Thu Aug 01, 2019 8:29 amHere is code I use - should be self explanatory
Code: Select all
DataPort .equ 044h ; Data port (in/out) StatPort .equ 045h ; Status port (in) BaudRatePort .equ 046h ; Baud rate port (out) ControlPort .equ 047h ; Control port (out) InMask .equ 2 ; 8251 RxRDY OutMask .equ 1 ; 8251 TxRDY ChipSet .equ 037h ; 8251 RTS,ER,RxE,DTR,TxEN ChipOff .equ 035h ; 8251 RTS,ER,RxE,TxEN (no dtr) Break .equ ChipSet | 8 ; ChipSet OR send break Freeze .equ 022h Reset .equ 027h n71 .equ 001001010b ; 7n1 n81 .equ 001001110b ; 8n1 n72 .equ 011001010b ; 7n2 n82 .equ 011001110b ; 8n2 e71 .equ 001111010b ; 7e1 e81 .equ 001111110b ; 8e1 e72 .equ 011111010b ; 7e2 e82 .equ 011111110b ; 8e2 o71 .equ 001011010b ; 7o1 o81 .equ 001011110b ; 8o1 o72 .equ 011011010b ; 7o2 o82 .equ 011011110b ; 8o2 b19200 .equ 03fh ; 19200 b9600 .equ 03eh ; 9600 b4800 .equ 03ch ; 4800 b2400 .equ 03ah ; 2400 b1200 .equ 037h ; 1200 b600 .equ 036h ; 600 b300 .equ 035h ; 300 BitParityStop .equ n81 BaudRate .equ b300 Echo .equ FALSE
I will be able to go through and provide a replacement section here for a few common UARTs. They do all vary but are in four main compatibility groups.
2681 and compatibles - 68681 etc.
28L92 and compatibles.
etc.
This way, alternate drivers can be easily be delivered for every mainstream UART.
Re: MIB2 low-level access
I have made some progress here. However, using the ‘2681 proved very unsatisfactory because of the basically non-existent FIFOs. It would stall out after a single character, making it very hard for external devices to lock onto the bit rate. Above 19200, match up was basically impossible and the Adam can’t handle the service load.
So I am going with a different DUART which I will document and provide the datasheet for. A brief test with it showed it would operate happily at 38,400. Unfortunately, then my monitor died so testing is halted for the moment.
That DUART will be incorporated into the multi card instead.
The main thing holding me up right now is the refresh of the internal DRAM, which on my Adam is also occurring on the expansion ports. If refresh were disabled and all RAM was static, the machine would be about 20% faster all the time.
So I am going with a different DUART which I will document and provide the datasheet for. A brief test with it showed it would operate happily at 38,400. Unfortunately, then my monitor died so testing is halted for the moment.
That DUART will be incorporated into the multi card instead.
The main thing holding me up right now is the refresh of the internal DRAM, which on my Adam is also occurring on the expansion ports. If refresh were disabled and all RAM was static, the machine would be about 20% faster all the time.