zbyti Posted July 28, 2020 Share Posted July 28, 2020 the same here: PROC DL() ; display list ASM { .local dl :3 .byte $70 .byte $52,$00,$40 .byte $52,$60,$40 .byte $52,$c0,$40 .byte $41,a(dl) } RETURN ; goes to procedure DLProc; // display list asm { .local dl :3 .byte $70 .byte $52,$00,$40 .byte $52,$60,$40 .byte $52,$c0,$40 .byte $41,a(dl) }; begin // 1 end; 1 Quote Link to comment Share on other sites More sharing options...
Gury Posted October 3, 2020 Author Share Posted October 3, 2020 Hey zbyti! Now you can try again and test new directives to check if they work correctly. 1 Quote Link to comment Share on other sites More sharing options...
zbyti Posted October 3, 2020 Share Posted October 3, 2020 okie dokie 1 Quote Link to comment Share on other sites More sharing options...
zbyti Posted October 4, 2020 Share Posted October 4, 2020 (edited) BYTE CH=$2FC, NMIEN=$D40E CARD VDSLST=$200, SDLSTL=$230 PROC DL() ; DISPLAY LIST ASM { :3 .BYTE $70 .BYTE $42,$00,$40 :3 .BYTE 2 .BYTE $F0 :4 .BYTE 2 .BYTE $41,A(DLPROC) } RETURN PAS { PROCEDURE DLI;INTERRUPT; BEGIN asm { phr }; POKE($D40A,$DE); POKE($D018,$DE); asm { plr }; END; } PROC MAIN() SDLSTL=DL PAS { VDSLST:=WORD(@DLI); } NMIEN=$C0 WHILE CH=$FF DO OD GRAPHICS(0) RETURN PROCEDURE DLI;INTERRUPT; BEGIN asm { phr Poke($D40A, $DE); Poke($D018, $DE); procedure MAINProc; begin // 6 SDLSTL := word(@DLProc); VDSLST:=WORD(@DLI); NMIEN := $C0; WHILE CH=$FF do begin end; InitGraph(0); end; begin MAINProc; end. We have problem with nested brackets in PAS we can't use native asm. Will be nice to distinguish between Effectus procedures and MP procedures, for example: PAS { VDSLST:=WORD(@DLI); } VDSLST=DLI_PAS or VDSLST=PAS_DLI ; whatever ;) Edited October 4, 2020 by zbyti phr/plr 1 Quote Link to comment Share on other sites More sharing options...
Gury Posted October 4, 2020 Author Share Posted October 4, 2020 Ok, some more fixes are required. You found interesting hole in current version ;) I must admit I didn't think of all possible ways of using new directives, especially this way, incorporating Pascal routine inside PAS {} block. Your imagination has no limits, but this is ok, as we can make Effectus more stable and useful this way. 1 Quote Link to comment Share on other sites More sharing options...
zbyti Posted October 4, 2020 Share Posted October 4, 2020 (edited) This of course works :] BYTE NMIEN=$D40E CARD VDSLST=$200, SDLSTL=$230 PROC DL() ; DISPLAY LIST ASM { :3 .BYTE $70 .BYTE $42,$00,$40 :3 .BYTE 2 .BYTE $F0 :4 .BYTE 2 .BYTE $41,A(DLPROC) } RETURN PROC DLI() ASM { PHR } POKE($D018,$DE) POKE($D40A,$DE) ASM { PLR RTI } RETURN PROC MAIN() SDLSTL=DL VDSLST=DLI NMIEN=$C0 DO OD RETURN @Gury Action!'s biggest fault removed, you can use assembly language convenient - congratulations Edited October 4, 2020 by zbyti forrmating 2 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.