Jump to content

funkheld

Members
  • Content Count

    438
  • Joined

  • Last visited

Community Reputation

10 Good

About funkheld

  • Rank
    Moonsweeper

Recent Profile Visitors

4,670 profile views
  1. Hi good afternoon. something for effectus 0.4.1 Interrupt !!! MODULE; VBI DEMO FOR ANTICDEFINE RTI="$40", PHA="$48", PLA="$68", TXA="$8A", TAX="$AA", TYA="$98", TAY="$A8", JMP="$4C", XITVBV="$E462",SAVETEMPS="[$A2 $07 $B5 $C0 $48 $B5 $A8 $48 $B5 $A0 $48 $B5 $80 $48 $CA $10 $F1 $A5 $D3 $48]", ; diese SAVETEMPS Routine ist aus der Action! Fehlerkorrekturliste. Sie ist umfangreicher als das originale Beispiel aus dem Magazin ; und funktioniert sicher. Das Original sichert nur die Variablen für Addition/SubtraktionGETTEMPS="[$68 $85 $D3 $A2 $00 $68 $95 $80 $68 $95 $A0 $68 $95 $A8 $68 $95 $C0 $E8 $E0 $08 $D0 $EF]" ; das gleiche wie oben gilt auch für die GETTEMPS RoutineCARD SDLST=560,VDSLST=512, VVBLKD=$224BYTE NMIEN=$D40E,COLBK=$D01A, WSYNC=$D40A,COUNT=[0]BYTE ARRAY DLISTBYTE ARRAY CLRS(0)=[64 66 68 70 72 74 72 70 68 66 64 66 68 70 72 74 72 70 68 66 64 66 68 70 72 74 76 ]PROC DLINT(); a DLI written in ACTION! BYTE DUM [PHA TXA PHA TYA PHA] IF COUNT=26 THEN DUM=0 ELSE DUM=CLRS(COUNT) FI WSYNC=1 COLBK=DUM COUNT=COUNT+1 IF COUNT=27 THEN COUNT=0 FI [PLA TAY PLA TAX PLA RTI]PROC INIT7() GRAPHICS(7) SETCOLOR(0,2,10) SETCOLOR(1,5,12) SETCOLOR(2,0,0)RETURNPROC DLSETUP(); custom Display List BYTE I INIT7() NMIEN=$40 DLIST=SDLST VDSLST=DLINT FOR I=30 TO 40 DO DLIST(I)=141 OD FOR I=42 TO 54 STEP 2 DO DLIST(I)=141 OD FOR I=57 TO 72 STEP 3 DO DLIST(I)=141 OD FOR I=76 TO 84 STEP 4 DO DLIST(I)=141 OD NMIEN=$C0RETURNPROC ROTATE(); the VBI routine BYTE HOLD,CTR,CNTR SAVETEMPS; save the temp registers HOLD=CLRS(26); save the last element FOR CTR=0 TO 25; the loop DO CNTR=25-CTR; to count backwards, Action! has no STEP-1 statement CLRS(CNTR+1)=CLRS(CNTR) OD; rotate CLRS(0)=HOLD; put the last element into the first GETTEMPS; get the temp registers [JMP XITVBV]; exit the VBIPROC VBINST(); install the VBI NMIEN=0; turn off the interrupts VVBLKD=ROTATE; vector to PROC ROTATE NMIEN=$40; turn the interrupts back onRETURNPROC DJD(); the driver routine, named for a famous computer genius BYTE CRSINH=752 VBINST(); install the VBI DLSETUP(); set up the Display List CRSINH=1 PRINTE() PRINTE("Áîôéã Interrupts in ACTION!") PRINT(" by DAVID PLOTKIN") DO OD; an endless loop...RETURN MODULE; VBI DEMO FOR ANTIC DEFINE RTI="$40", PHA="$48", PLA="$68", TXA="$8A", TAX="$AA", TYA="$98", TAY="$A8", JMP="$4C", XITVBV="$E462", SAVETEMPS="[$A2 $07 $B5 $C0 $48 $B5 $A8 $48 $B5 $A0 $48 $B5 $80 $48 $CA $10 $F1 $A5 $D3 $48]", ; diese SAVETEMPS Routine ist aus der Action! Fehlerkorrekturliste. Sie ist umfangreicher als das originale Beispiel aus dem Magazin ; und funktioniert sicher. Das Original sichert nur die Variablen für Addition/Subtraktion GETTEMPS="[$68 $85 $D3 $A2 $00 $68 $95 $80 $68 $95 $A0 $68 $95 $A8 $68 $95 $C0 $E8 $E0 $08 $D0 $EF]" ; das gleiche wie oben gilt auch für die GETTEMPS Routine CARD SDLST=560,VDSLST=512, VVBLKD=$224 BYTE NMIEN=$D40E,COLBK=$D01A, WSYNC=$D40A,COUNT=[0] BYTE ARRAY DLIST BYTE ARRAY CLRS(0)=[64 66 68 70 72 74 72 70 68 66 64 66 68 70 72 74 72 70 68 66 64 66 68 70 72 74 76 ] PROC DLINT(); a DLI written in ACTION! BYTE DUM [PHA TXA PHA TYA PHA] IF COUNT=26 THEN DUM=0 ELSE DUM=CLRS(COUNT) FI WSYNC=1 COLBK=DUM COUNT=COUNT+1 IF COUNT=27 THEN COUNT=0 FI [PLA TAY PLA TAX PLA RTI] PROC INIT7() GRAPHICS(7) SETCOLOR(0,2,10) SETCOLOR(1,5,12) SETCOLOR(2,0,0) RETURN PROC DLSETUP(); custom Display List BYTE I INIT7() NMIEN=$40 DLIST=SDLST VDSLST=DLINT FOR I=30 TO 40 DO DLIST(I)=141 OD FOR I=42 TO 54 STEP 2 DO DLIST(I)=141 OD FOR I=57 TO 72 STEP 3 DO DLIST(I)=141 OD FOR I=76 TO 84 STEP 4 DO DLIST(I)=141 OD NMIEN=$C0 RETURN PROC ROTATE(); the VBI routine BYTE HOLD,CTR,CNTR SAVETEMPS; save the temp registers HOLD=CLRS(26); save the last element FOR CTR=0 TO 25; the loop DO CNTR=25-CTR; to count backwards, Action! has no STEP-1 statement CLRS(CNTR+1)=CLRS(CNTR) OD; rotate CLRS(0)=HOLD; put the last element into the first GETTEMPS; get the temp registers [JMP XITVBV]; exit the VBI PROC VBINST(); install the VBI NMIEN=0; turn off the interrupts VVBLKD=ROTATE; vector to PROC ROTATE NMIEN=$40; turn the interrupts back on RETURN PROC DJD(); the driver routine, named for a famous computer genius BYTE CRSINH=752 VBINST(); install the VBI DLSETUP(); set up the Display List CRSINH=1 PRINTE() PRINTE("Áîôéã Interrupts in ACTION!") PRINT(" by DAVID PLOTKIN") DO OD; an endless loop... RETURN
  2. hello, thanks for your new version. Congratulations. Thank you. greeting
  3. Hi good afternoon. pity the effectus is no longer improved. greeting
  4. in !action can compile it with "C:test.act" and save it on the disc with "w:test.xex". greeting
  5. the programs in pure cc65 become too large. this fastbasic takes away the work with cc65 b and the programs have the tenth part in size. greeting
  6. the old compiler is 1.1, where not all commands "save" "load" are recognized. is there any new one like this new turbo-pascal from mads ?? greeting
  7. what language : Basic, ASM,! ACTION ... please show the sourcecode greeting
  8. I play with 70 years (old man) too! action. is a wonderful thing. I took the 3.7. for an xex I take the sys.act I only use the drive "d" with altirra c"test.act" and w"test.xex" in the !action. greeting this is the my sys.act for the compilat : https://atariwiki.org/wiki/Wiki.jsp?page=ACTION Runtime von Jeff Reister BYTE RTS=[$60] INCLUDE "D:SYS.ACT" PROC SQR(INT N) PRINTIE(N*N) RETURN PROC MAIN() INT N,M FOR N=1 TO 10 DO PRINTF("%I SQUARED IS ",N LSH 1) SQR(N+N) OD DO OD RETURN
  9. The Turbo Basic Compiler does not recognize the commands like "Save" and "Load". These commands are important for a programming language. Greeting
  10. Hi good afternoon. is there also a turbo-basic compiler please? Thank you. greeting
  11. Hi good afternoon. i am looking for an explanatory demo for the new pm commands in fastbasic. Thank you. greeting
×
×
  • Create New...