Jump to content

zbyti

Members
  • Content Count

    162
  • Joined

  • Last visited

Community Reputation

104 Excellent

1 Follower

About zbyti

  • Rank
    Chopper Commander

Recent Profile Visitors

248 profile views
  1. Stunning aerial perspective! Great effect! Congratulation :]
  2. I suspect he wants to make a DDoS on VICE emulator.
  3. OFF-TOPIC We have to be careful with using RUNTIME from the internet, some are real crap, e.g. the one I've used so far: PROC SetBlock=*(CARD a, l BYTE v) [$85$A0$86$A1$84$A2$A0$00$A5$A2$D0$04 $A5$A3$F0$16$A5$A4$91$A0$C8$D0$02$E6 $A1$C6$A2$A5$A2$C9$FF$D0$E7$C6$A3$38 $B0$E2$60] 11 frames in SIEVE 1028 benchmark Vs. originally 3 frames (Action! 3.6 cartridge). Still is a room to improve since Mad Pascal ended fill in 2 frames. RUNTIME.ACT
  4. // Eratosthenes Sieve 1028 Benchmark uses crt; {$define FAST} const size = 8191; var flags: array [0..size] of boolean; rtClock: byte absolute $14; {$ifdef FAST} n: byte absolute $e0; k: word absolute $e2; count: word absolute $e6; {$else} n, k, count: word; {$endif} begin writeln('Mad Pascal 1.6.4 MASTER'); writeln('Eratosthenes 1028 Sieve Benchmark'); Pause; rtClock := 0; fillchar(flags, sizeof(flags), true); for n := 2 to 91 do begin if flags[n] then begin k := n shl 1; while k <= size do begin flags[k] := false; Inc(k,n); end; end; end; writeln(rtClock, ' frames'); count :=0; for k := 2 to size do begin if flags[k] then Inc(count); end; writeln(count, ' primes'); repeat until keypressed; end. SET $E=$2000 BYTE ARRAY FLAGS(8192) BYTE RTCLOCK=$14,N=$CE CARD COUNT=$CA,K=$CC PROC WAIT=*(BYTE F)[$18$65$14$C5$14$D0$FC$60] PROC MAIN=*() COUNT=0 K=0 WAIT(1) RTCLOCK=0 SETBLOCK(FLAGS,8192,'T) FOR N=2 TO 91 DO IF FLAGS(N)='T THEN K=N LSH 1 WHILE K<=8191 DO FLAGS(K)='F K==+N OD FI OD PRINTB(RTCLOCK) FOR K=2 TO 8191 DO IF FLAGS(K)='T THEN COUNT==+1 FI OD PRINTF("%E%U PRIMES%E",COUNT) RETURN Sieve 1028 Benchmark (less is better) Mad Pascal 1.6.4 36 frames Effectus 0.5.1 36 frames Action! 3.6 45 frames
  5. For the record it was 100 frames loop which gives 2 seconds in PAL
  6. SET $E=$2000 BYTE RTCLOK=$14 CARD I=$CA,A=$CC,B=$CE PROC WAIT=*(BYTE F)[$18$65$14$C5$14$D0$FC$60] PROC MAIN() I=0 A=0 B=0 WAIT(1) RTCLOK=0 A==+1 B=A B==+1 A=B I==+1 [$A9$64$C5$14$D0$D8] PRINTC(I) RETURN 2000: 18 CLC 2001: 65 14 ADC $14 ;RTCLOK+2 2003: C5 14 CMP $14 ;RTCLOK+2 2005: D0 FC BNE $2003 2007: 60 RTS 2008: 4C 0B 20 JMP $200B 200B: A0 00 LDY #$00 200D: 84 CB STY $CB 200F: 84 CA STY $CA ;LOADFLG 2011: 84 CD STY $CD 2013: 84 CC STY $CC 2015: 84 CF STY $CF 2017: 84 CE STY $CE 2019: A9 01 LDA #$01 201B: 20 00 20 JSR $2000 201E: A0 00 LDY #$00 2020: 84 14 STY $14 ;RTCLOK+2 2022: E6 CC INC $CC 2024: D0 02 BNE $2028 2026: E6 CD INC $CD 2028: A5 CD LDA $CD 202A: 85 CF STA $CF 202C: A5 CC LDA $CC 202E: 85 CE STA $CE 2030: E6 CE INC $CE 2032: D0 02 BNE $2036 2034: E6 CF INC $CF 2036: A5 CF LDA $CF 2038: 85 CD STA $CD 203A: A5 CE LDA $CE 203C: 85 CC STA $CC 203E: E6 CA INC $CA ;LOADFLG 2040: D0 02 BNE $2044 2042: E6 CB INC $CB 2044: A9 64 LDA #$64 2046: C5 14 CMP $14 ;RTCLOK+2 2048: D0 D8 BNE $2022 204A: A6 CB LDX $CB 204C: A5 CA LDA $CA ;LOADFLG 204E: 20 E6 A4 JSR $A4E6 2051: 60 RTS Action! 3.6 Zero Page: 39802 WHILE Action! 3.6 Zero Page: 40488 UNTIL Action! 3.6 Zero Page: 38498 EXIT Action! 3.6 Zero Page: 41932 ML
  7. Benchmark: YoshBenchPlus program YoshBenchPlus; uses crt; {$define FAST} {$ifdef FAST} var i : word absolute $e0; var a : word absolute $e2; var b : word absolute $e4; {$else} var i : word; var a : word; var b : word; {$endif} var rtClock : byte absolute 20; begin i:=0;a:=0;b:=0; Pause; rtClock := 0; while rtClock < 100 do begin Inc(a); b := a; Inc(b); a := b; Inc(i); end; WriteLn('YoshPlus - iterations in 100 frames.'); {$ifdef FAST} Writeln('Mad Pascal 1.6.4 opt'); {$else} Writeln('Mad Pascal 1.6.4'); {$endif} Writeln('Counter = ', i); ReadKey; end. SET $E=$2000 BYTE RTCLOK=$14 CARD I=$CA,A=$CC,B=$CE PROC WAIT=*(BYTE F)[$18$65$14$C5$14$D0$FC$60] PROC MAIN() I=0 A=0 B=0 WAIT(1) RTCLOK=0 WHILE RTCLOK<100 DO A==+1 B=A B==+1 A=B I==+1 OD PRINTC(I) RETURN DO A==+1 B=A B==+1 A=B I==+1 UNTIL RTCLOK=100 OD DO A==+1 B=A B==+1 A=B I==+1 IF RTCLOK=100 THEN EXIT FI OD Mad Pascal 1.6.4 Zero Page: 41933 WHILE Action! 3.6 Zero Page: 39802 WHILE Action! 3.6 Zero Page: 40488 UNTIL Action! 3.6 Zero Page: 38498 EXIT Effectus 0.5.1 Zero Page: 41933 WHILE Effectus 0.5.1 Zero Page: 41933 UNTIL Effectus 0.5.1 Zero Page: 39803 EXIT
  8. ; TEXT MODE 2 GRAPHICS(2+16) ; DEMO POSITION(2,2) PRINTDE(6,">") PRINTDE(6,"") PRINTD(6,"CHECKED <") POSITION(2,11) PRINTD(6,"CHECKED <")
  9. Of course we can! Error is between chair and monitor :] ; DEMO POSITION(2,2) PRINTDE(6,">") PRINTDE(6,"") PRINTD(6,"CHECKED <") POSITION(2,9) PRINTD(6,"CHECKED <") PRINT("FOUR LINES OF GR.0 :P")
  10. PROC MAIN() GRAPHICS(12) ; 0, 1, 2, 12, 13 PRINTDE(6,">") PRINT("TEST") DO OD RETURN
  11. 2<>10 2!=10 2#10 Do you really believe that all graphics modes are the same because DL split screen in the same way? http://gury.atari8.info/ref/graphics_modes.php And what is that: PRINTDDE @funkheld Why don't you realize that you are asking questions without having elementary knowledge in a thread that is not for beginners?
×
×
  • Create New...