indirect far jmp - calling old INT problem (Developers)
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:
- indirect far jmp in NASM - RayeR, 10.05.2012, 10:46 (Developers)
![Open in board view [Board]](img/board_d.gif)
![Open in mix view [Mix]](img/mix_d.gif)
- indirect far jmp in NASM - RayeR, 10.05.2012, 13:16
- indirect far jmp - ecm, 10.05.2012, 13:26
- indirect far jmp in NASM - Rugxulo, 10.05.2012, 13:26
- indirect far jmp in NASM - RayeR, 10.05.2012, 14:07
- indirect far jmp - ecm, 10.05.2012, 15:17
- indirect far jmp - RayeR, 11.05.2012, 00:47
- indirect far jmp - ecm, 11.05.2012, 12:46
- indirect far jmp - bretjohn, 11.05.2012, 18:53
- indirect far jmp - RayeR, 11.05.2012, 19:31
- indirect far jmp - bretjohn, 11.05.2012, 22:31
- indirect far jmp - ecm, 11.05.2012, 22:33
- indirect far jmp - RayeR, 12.05.2012, 00:33
- indirect far jmp - Arjay, 12.05.2012, 01:07
- indirect far jmp - ecm, 12.05.2012, 01:27
- indirect far jmp - Arjay, 12.05.2012, 11:09
- indirect far jmp - ecm, 12.05.2012, 21:18
- indirect far jmp - Arjay, 12.05.2012, 11:09
- indirect far jmp - RayeR, 12.05.2012, 21:17
- indirect far jmp/call - Chaining Interrupt Service Routines - Arjay, 13.05.2012, 13:16
- indirect far jmp - ecm, 12.05.2012, 01:27
- indirect far jmp - calling old INT problem - RayeR, 13.05.2012, 04:01
- indirect far jmp - calling old INT problem - ecm, 13.05.2012, 04:27
- indirect far jmp - calling old INT problem - RayeR, 13.05.2012, 15:33
- indirect far jmp - calling old INT problem - bretjohn, 13.05.2012, 17:05
- indirect far jmp - calling old INT problem - RayeR, 13.05.2012, 17:15
- indirect far jmp - calling old INT problem - RayeR, 13.05.2012, 19:19
- indirect far jmp - calling old INT problem - Rugxulo, 13.05.2012, 20:02
- indirect far jmp - calling old INT problem - RayeR, 13.05.2012, 20:49
- indirect far jmp - calling old INT problem - ecm, 13.05.2012, 23:49
- indirect far jmp - calling old INT problem - ecm, 13.05.2012, 23:40
- indirect far jmp - calling old INT problem - ecm, 14.05.2012, 00:07
- indirect far jmp - calling old INT problem - RayeR, 14.05.2012, 01:19
- indirect far jmp - calling old INT problem - ecm, 14.05.2012, 00:07
- indirect far jmp - calling old INT problem - Rugxulo, 13.05.2012, 20:02
- indirect far jmp - calling old INT problem - RayeR, 13.05.2012, 19:19
- indirect far jmp - calling old INT problem - RayeR, 13.05.2012, 17:15
- indirect far jmp - calling old INT problem - ecm, 13.05.2012, 23:44
- indirect far jmp - calling old INT problem - bretjohn, 14.05.2012, 18:30
- redundant override in "ss:bp" for clarity - ecm, 14.05.2012, 18:47
- indirect far jmp - calling old INT problem - RayeR, 14.05.2012, 18:50
- indirect far jmp - calling old INT problem - bretjohn, 14.05.2012, 20:16
- indirect far jmp - calling old INT problem - ecm, 14.05.2012, 20:21
- indirect far jmp - calling old INT problem - bretjohn, 14.05.2012, 21:42
- indirect far jmp - calling old INT problem - bretjohn, 15.05.2012, 18:45
- indirect far jmp - calling old INT problem - ecm, 15.05.2012, 18:53
- indirect far jmp - calling old INT problem - bretjohn, 15.05.2012, 20:13
- indirect far jmp - calling old INT problem - RayeR, 17.05.2012, 01:25
- indirect far jmp - calling old INT problem - bretjohn, 15.05.2012, 20:13
- indirect far jmp - calling old INT problem - ecm, 15.05.2012, 18:53
- indirect far jmp - calling old INT problem - bretjohn, 15.05.2012, 18:45
- indirect far jmp - calling old INT problem - bretjohn, 14.05.2012, 21:42
- indirect far jmp - calling old INT problem - ecm, 14.05.2012, 20:21
- indirect far jmp - calling old INT problem - bretjohn, 14.05.2012, 20:16
- indirect far jmp - calling old INT problem - bretjohn, 14.05.2012, 18:30
- indirect far jmp - calling old INT problem - bretjohn, 13.05.2012, 17:05
- indirect far jmp - calling old INT problem - RayeR, 13.05.2012, 15:33
- indirect far jmp - calling old INT problem - ecm, 13.05.2012, 04:27
- indirect far jmp - Arjay, 12.05.2012, 01:07
- indirect far jmp - RayeR, 12.05.2012, 00:33
- indirect far jmp - ecm, 11.05.2012, 22:33
- indirect far jmp - bretjohn, 11.05.2012, 22:31
- indirect far jmp - RayeR, 11.05.2012, 19:31
- indirect far jmp - RayeR, 11.05.2012, 00:47
- indirect far jmp - ecm, 10.05.2012, 15:17
- indirect far jmp in NASM - RayeR, 10.05.2012, 14:07
- indirect far jmp in NASM - RayeR, 10.05.2012, 13:16
Mix view