Having been bored out of my brains the last few days off work sick, I decided to try and dig up some old code. I could find some binary versions of some ancient Atari ST stuff I wrote, but I couldn't find any source. I did manage to dredge up an old ModeX library I wrote in ASM many moons ago from an archive of the legendary old x2ftp site:
http://ftp.lanet.lv/ftp/mirror/x2ftp/msdos
Blast from the past :-)
; Actually Sticks Us Into ModeX - With 240 Scanlines Per Page
; Set The Variable LSCAN To The Virtual Scanline Length You Want
; Trashes AX, CX, DX, DS, SI
; Shouldn't Matter Though As This Should Be The First Thing You Call!
Set_X_240   PROC
        Call    Set_Graph       ; Set Mode 13h
        mov     dx, Seq_Port
        mov     ax, 00604h      ; Index 4 (Memory Mode Reg.) In AL
                                ; Bit 3 = Chain 4
        out     dx, ax          ; Kill Chain 4 Mode
        mov     ax, 00100h      ; Index 0 (Reset Reg.) In AL
        out     dx, ax          ; Reset Syncronous (At End Of Cycle)
        dec     dx              ; Change Port
        dec     dx              ; To Misc. S--t Port :)
        mov     al, 11100011b
        out     dx, al          ; Sets 480 Line Mode, 25Mhz Dot Clock
        inc     dx              ; Change Port
        inc     dx              ; Back To Sequencer Port
        mov     ax, 00300h
        out     dx, ax          ; Restart Controller
        mov     dx, Crtc_Port
        mov     al, 011h
        out     dx, al          ; Select Index 11h (Vert.Retrace End)
        inc     dx              ; Data Port
        in      al, dx          ; Read In Current Bit Mask
        and     al, 07Fh        ; 01111111 - Clear Top Bit (Write Protect)
        out     dx, al          ; Un-Write Protect Index 0-7 Of CRTC Reg.
        dec     dx              ; Restore Port To Index
        mov     ax, seg CRTC_Data_240           ; Address Of Our CRTC Data
        mov     ds, ax
        mov     si, offset CRTC_Data_240
        mov     cx, LCRTC_Data_240   ; Length Of Data
        repz    outsw                       ; Chuck It At The Port
        mov     ax, lscan
        shr     ax, 3           ; Number Of Words Per Scan Line
        mov     ah, al          ; Into AH
        mov     al, 013h        ; Port Index 013h - Logical Screen Width
        out     dx, ax
        mov     NScan, 240
    Call Set_Pages
    ret
Set_X_240   ENDP
Anyone else want to make themselves look old and post some old school code? :-) It's a shame I don't have any of my 68000 ASM stuff still, although I probably wouldn't even recognise it now!
Ahh.. memories :-)