Back to home page

DOS ain't dead

Forum index page

Log in | Register

Back to the forum
Board view  Mix view

indirect far jmp - calling old INT problem (Developers)

posted by RayeR Homepage, CZ, 13.05.2012, 19:19

OK, I optimized it a bit, now just 1 byte greater than old code, not bad, I leave it...

NEW_INT13H:                     ;INT XX do CLI, PUSH F,CS,IP (6B), SP=x-6
        PUSHF                   ;store flags (2B), SP=x-8
        CMP     DL,ROMDISK_DRIVE;related to our disk ?
        JE      @NEW_INT13H_HUB ;if yes continue below else
        POPF                    ;restore flags (2B), SP=x-6
        INT     OLD_INT13H      ;call old INT 13h handler, SP=x-6
        PUSH    BP              ;store BP (2B), SP=x-8
        MOV     BP,SP           ;set BP to current SP, BP=SP=x-8
        PUSHF                   ;store flags (2B) that was returned by old INT 13h handler, SP=x-10
        POP     WORD [SS:BP+6]  ;replace previously saved flags of INT caller on stack by current flags, SP=x-8
        POP     BP              ;restore BP (2B), SP=x-6
        IRET                    ;return from ISR, do POP IP,CS,F (6B), SP=x-0

---
DOS gives me freedom to unlimited HW access.

 

Complete thread:

Back to the forum
Board view  Mix view
22760 Postings in 2121 Threads, 402 registered users (1 online)
DOS ain't dead | Admin contact
RSS Feed
powered by my little forum