+#if RAMDISKCNT
+
+#if DRAM_8BIT
+
+; -------------- RAM disk (8-bit DRAM) --------------
+
+ .dseg
+rdskbuf:
+ .byte 32
+
+ .cseg
+; ----------------------------------------------
+
+rdsk_adr:
+ ldi zl,0
+ lds zh,seeksec
+ lds temp2,seektrk
+ lsr zh
+ ror zl ;Col 0..7
+
+ mov temp,temp2
+ andi temp,0x0f
+ swap temp
+ or zh,temp ;Row 0..7
+
+ ldi yl,~((1<<RAM_A10)|(1<<RAM_A9)|(1<<RAM_A8)) ;Col 8..10
+ mov yh,yl ;Row 8..10
+ lds temp,seekdsk
+ subi temp,RAMDISKNR
+
+ sbrc temp2,4
+ sbr yl,(1<<RAM_A8)
+ sbrc temp2,5
+ sbr yh,(1<<RAM_A8)
+ sbrc temp2,6
+ sbr yl,(1<<RAM_A9)
+ sbrc temp2,7
+ sbr yh,(1<<RAM_A9)
+ sbrc temp,0
+ sbr yl,(1<<RAM_A10)
+ sbrc temp,1
+ sbr yh,(1<<RAM_A10)
+ ret
+
+;----------------------------------------------
+
+rdsk_read:
+ lds xl,dmaadr
+ lds xh,dmaadr+1
+ rcall rdsk_adr
+ ldi temp3,4
+rdsk_rdlo:
+; cli
+ out PORTB,yh ; Row 8..10
+ out PORTD,zh ; Row 0..7
+ out PORTC,_RAS0
+ out PORTB,yl ;1 Col 8..10
+ push yh
+ push yl
+
+ ldi yl,low (rdskbuf)
+ ldi yh,high(rdskbuf)
+ ldi temp2,32
+rdsk_rdli:
+ out PORTD,zl ;1 Col 0..7
+ out PORTC,_CAS0 ;1
+ out DDRD,_0 ;1
+ out PORTC,_OE ;1
+ inc zl ;1
+ dec temp2 ;1
+ dram_wait DRAM_WAITSTATES ;
+ in temp,PIND ;1
+ out PORTC,_RAS0 ;1
+ out DDRD,_255 ;1
+ st y+,temp ;2
+ brne rdsk_rdli ;2 --> 12 * 128 = 1536 = 77µs
+ out PORTC,_255 ;1
+; sei
+ out PORTB,_255 ;1
+
+ ldi yl,low (rdskbuf)
+ ldi yh,high(rdskbuf)
+ ldi temp2,32
+rdsk_rdstl:
+ ld temp,y+ ;2
+ mem_write_d x ;14 (?)
+ adiw x,1 ;2 --> 18 * 128 = 2304 = 115µs
+ dec temp2
+ brne rdsk_rdstl
+ pop yl
+ pop yh
+ dec temp3
+ brne rdsk_rdlo
+ ret
+
+
+rdsk_write:
+ lds xl,dmaadr
+ lds xh,dmaadr+1
+ rcall rdsk_adr
+ ldi temp3,4
+ push yh
+ push yl
+rdsk_wrlo:
+ ldi yl,low (rdskbuf)
+ ldi yh,high(rdskbuf)
+ ldi temp2,32
+rdsk_wrldl:
+ mem_read_s x
+ st y+,temp
+ adiw x,1
+ dec temp2
+ brne rdsk_wrldl
+
+ pop yl
+ pop yh
+ push yh
+ push yl
+ ldi temp2,32
+; cli
+ out PORTB,yh
+ out PORTD,zh
+ out PORTC,_RAS0
+ out PORTB,yl ;1
+ ldi yl,low (rdskbuf)
+ ldi yh,high(rdskbuf)
+rdsk_wrli:
+ out PORTD,zl
+ out PORTC,_CAS0
+ ld temp,y+
+ out PORTD,temp
+ out PORTC,_WE
+ out PORTC,_RAS0
+ inc zl
+ dec temp2
+ brne rdsk_wrli
+
+ out PORTC,_255
+; sei
+ out PORTB,_255
+ dec temp3
+ brne rdsk_wrlo
+ pop yl
+ pop yh
+ ret
+
+#else /* 4-bit DRAM */
+