From: Alan Cox Date: Wed, 13 Dec 2017 20:18:32 +0000 (+0000) Subject: 65c816: signal improvements X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=b67acd4f882952a8d4acb2176ddfe85c40bc15dc;p=FUZIX.git 65c816: signal improvements We now correctly call the vector for the signal and process it. We return to the correct recovery code, and then fail to recover correctly. --- diff --git a/Kernel/lowlevel-65c816.s b/Kernel/lowlevel-65c816.s index a053f2ae..286d4e52 100644 --- a/Kernel/lowlevel-65c816.s +++ b/Kernel/lowlevel-65c816.s @@ -736,7 +736,8 @@ signal_exit: pea sigret_irq-1 ; signal return sep #$10 .i8 - phy ; signal code + ldy tmp1 ; signal code + phy tya asl a tay @@ -749,19 +750,26 @@ signal_exit: phx sep #$20 .a8 - lda U_DATA__U_PAGE + lda U_DATA__U_PAGE ; bank pha + pha + plb ; set the data bank to the caller rep #$30 .a16 .i16 - ldx #0 - txy - pea PROGLOAD+20-1 - sep #$30 - .i8 + ldx PROGLOAD+20 ; from the user data bank + phx ; vector + sep #$20 .a8 - lda #$30 ; i8a8 + lda #$30 ; i8a8 status pha + rep #$30 + .a16 + .i16 + ; Clear registers + ldx #0 + txy + txa rti ;