?login_element?

Subversion Repositories NedoOS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. CALSLT  EQU    0x001C
  2. NMI     EQU    0x0066
  3. EXTROM  EQU    0x015f
  4. EXPTBL  EQU    0xfcc1
  5. H_NMI   EQU    0xfdd6
  6.  
  7. biosC:                         
  8.         LD      IY,($FCC0)
  9.         JP      $001C
  10.  
  11. callSub:  
  12.                  exx
  13.          ex     af,af'       ; store all registers
  14.         ld     hl,EXTROM
  15.         push   hl
  16.         ld     hl,0xC300
  17.         push   hl           ; push NOP ; JP EXTROM
  18.         push   ix
  19.         ld     hl,0x21DD
  20.         push   hl           ; push LD IX,<entry>
  21.         ld     hl,0x3333
  22.         push   hl           ; push INC SP; INC SP
  23.         ld     hl,0
  24.         add    hl,sp        ; HL = offset of routine
  25.         ld     a,0xC3
  26.         ld     (H_NMI),a
  27.         ld     (H_NMI+1),hl ; JP <routine> in NMI hook
  28.         ex     af,af'
  29.          exx                 ; restore all registers
  30.          ld     ix,NMI
  31.          ld     iy,(EXPTBL-1)
  32.          call   CALSLT       ; call NMI-hook via NMI entry in ROMBIOS
  33.                              ; NMI-hook will call SUBROM
  34.          exx
  35.          ex     af,af'       ; store all returned registers
  36.         ld     hl,10
  37.         add    hl,sp
  38.         ld     sp,hl        ; remove routine from stack
  39.         ex     af,af'
  40.          exx                 ; restore all returned registers
  41.          ret