.globl __uputw
.globl __uzero
+ .globl _int_disabled
+
+ ; FIXME: can we now get rid of the IRQ disables ?
+
.area _CODE
__uput:
ld ix, #0 ; load ix with stack pointer
add ix, sp
; store interrupt state, disable interrupts
- ld a, i
+ ld a, (_int_disabled)
di
push af
; load DE with destination address (in userspace)
ld ix, #0 ; load ix with stack pointer
add ix, sp
; store interrupt state, disable interrupts
- ld a, i
+ ld a, (_int_disabled)
di
push af
; load DE with destination address (in userspace)
ld ix, #0 ; load ix with stack pointer
add ix, sp
; store interrupt state, disable interrupts
- ld a, i
+ ld a, (_int_disabled)
di
push af
; load DE with destination address (in userspace)
ld ix, #0 ; load ix with stack pointer
add ix, sp
; store interrupt state, disable interrupts
- ld a, i
+ ld a, (_int_disabled)
di
push af
; load DE with source address (in userspace)
ld ix, #0 ; load ix with stack pointer
add ix, sp
; store interrupt state, disable interrupts
- ld a, i
+ ld a, (_int_disabled)
di
push af
; load DE with source address (in userspace)
ugetputret: ; this is shared with the other routines, above and below
pop af
pop ix
- ret po
+ or a
+ ret nz
ei
ret
ld ix, #0 ; load ix with stack pointer
add ix, sp
; store interrupt state, disable interrupts
- ld a, i
+ ld a, (_int_disabled)
di
push af
; load DE with source address (in userspace)
ld ix, #0
add ix, sp
; store interrupt state, disable interrupts
- ld a, i
+ ld a, (_int_disabled)
di
push af
; load DE with dest address (in userspace)