ilmenit Posted April 14, 2020 Share Posted April 14, 2020 @tebe - with the new optimizations? Nice! Quote Link to comment Share on other sites More sharing options...
tebe Posted April 15, 2020 Author Share Posted April 15, 2020 (edited) announcement S2: (VBXE) + Mad Pascal (another VBXE lib) s2_vbxe_trailer.7z Edited April 15, 2020 by tebe 5 Quote Link to comment Share on other sites More sharing options...
+Stephen Posted April 15, 2020 Share Posted April 15, 2020 Excellent! The more VBXE support, the better. Quote Link to comment Share on other sites More sharing options...
+JAC! Posted April 18, 2020 Share Posted April 18, 2020 The idea of having VBXE as a 2nd S: device is great. Maybe there could also be error handling in/after the OPEN like "Cannot open device", if VBXE is not active. Because that's the first thing I ran into ?. Compiled as a separate device driver it could make VBXE accessible in other language like Basic or Turbobasic. Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted April 18, 2020 Share Posted April 18, 2020 49 minutes ago, JAC! said: The idea of having VBXE as a 2nd S: device is great. Not unprecedented, since VBXE is already implemented as "S2:" by SDX display drivers. I believe it is possible to load the S_VBXE.SYS driver under other disk operating systems as well. 1 Quote Link to comment Share on other sites More sharing options...
tebe Posted April 18, 2020 Author Share Posted April 18, 2020 yes, this is the same S2: (S_VBXE.SYS) from drac030 Quote Link to comment Share on other sites More sharing options...
+JAC! Posted April 19, 2020 Share Posted April 19, 2020 23 hours ago, tebe said: yes, this is the same S2: (S_VBXE.SYS) from drac030 That is even cooler. But the SYS on you ATR is an SDX binary. So does MP now contain a relocatable loader for the SDX format? Quote Link to comment Share on other sites More sharing options...
tebe Posted April 19, 2020 Author Share Posted April 19, 2020 SDXLD.COM load S_VBXE.SYS the author of the programs is drac030 2 Quote Link to comment Share on other sites More sharing options...
zbyti Posted April 23, 2020 Share Posted April 23, 2020 (edited) Action! BYTE RTCLOCK2=20 ; sys timer BYTE RTCLOCK1=19 CARD COUNT=$F4,PRIME=$F6,STOP PROC sieve() BYTE ARRAY FLAGS(8190) CARD I=$F0,K=$F2 PRIME=0 COUNT=0 ; init count SETBLOCK(FLAGS,8190,'T) FOR I=0 TO 8190 ; and flags DO IF FLAGS(I)='T THEN PRIME=I+I+3 K=I+PRIME WHILE K<=8190 DO FLAGS(K)='F K==+PRIME OD COUNT==+1 FI OD RETURN PROC main() BYTE I=[0] RTCLOCK1=0 RTCLOCK2=0 WHILE I<10 DO sieve() I==+1 OD STOP=RTCLOCK1 * 256 + RTCLOCK2 PRINTF("%E %U PRIMES IN",COUNT) PRINTF("%E %U JIFFIES",STOP) PRINTF("%E %U iterations",I) RETURN Action! 746 ticks Vs. Mad Pascal 635 ticks Edited April 23, 2020 by zbyti add comparsion Quote Link to comment Share on other sites More sharing options...
tebe Posted April 27, 2020 Author Share Posted April 27, 2020 https://github.com/tebe6502/Mad-Pascal/blob/master/samples/math/evaluate.pas evaluate.obx 1 Quote Link to comment Share on other sites More sharing options...
tebe Posted May 10, 2020 Author Share Posted May 10, 2020 (edited) https://github.com/tebe6502/Mad-Pascal VBXE S2: handler ready to use (LIB\S2.PAS) ClearDevice ClearLine CloseGraph GetPaletteEntries InitGraph LoadBitmap Position SaveBitmap ScrollDown ScrollUp SetGraphMode SetPaletteEntries TextOut Memory layout: - $0700: xDOSBoot - $8000: SDXLD.COM -> Instal S_VBXE.SYS - S_VBXE.SYS: SDX $0400-$06FD - S_VBXE.SYS: SDX $4800-$612F - $2000: MP program (ROM is disabled and accessible if needed) example: execute 1/9 *.BAT vbxe_s2.7z Edited May 13, 2020 by tebe 2 2 Quote Link to comment Share on other sites More sharing options...
tebe Posted May 11, 2020 Author Share Posted May 11, 2020 uses crt, cio, graph; var s: string; begin InitGraph(2); s:='AaBbCcDd'; GotoXY(5,5); BPut(6, @s[1], 8); Put(6, ord('A'*)); repeat until keypressed; end. 2 1 Quote Link to comment Share on other sites More sharing options...
Gury Posted May 12, 2020 Share Posted May 12, 2020 Waw, that's great. This is great news for new version. It provides a way for easier reading and writing to device channels, for example writing to device number 6 in text modes 1 and 2. No need for extra code as it was till now. Btw, I would suggest to rename some routines to more meaningful names, more specifically for routines opn and cls. I understand it is necessary to distinguish from actual Pascal command (f.e. close => cls), but this routine sounds more like a clear screen routine. So, I would suggest a different name, such as CloseDevice or CloseD. The same would apply to opn function => OpenDevice or OpenD. And thanks for XIO command, that's new. 2 Quote Link to comment Share on other sites More sharing options...
tebe Posted May 31, 2020 Author Share Posted May 31, 2020 (edited) On 5/12/2020 at 11:28 AM, Gury said: Btw, I would suggest to rename some routines to more meaningful names, more specifically for routines opn and cls. I understand it is necessary to distinguish from actual Pascal command (f.e. close => cls), but this routine sounds more like a clear screen routine. So, I would suggest a different name, such as CloseDevice or CloseD. The same would apply to opn function => OpenDevice or OpenD. it's similar to command 'CLS #6' from BASIC new improvements: - new SIODISK unit, separated from the SYSTEM - SYSTEM: corrected Val(string, real, code) ; Val(string, single, code) - new CIO unit: Opn, Cls, Get, Put, BGet, BPut, XIO - GRAPH, FASTGRAPH: SetActiveBuffer, SetDisplayBuffer, NewDisplayBuffer, SwitchDisplayBuffer, example demoeffects\lines2.pas, line3.pas, line4.pas - GRAPH: Ellipse procedure (X, Y, StAngle, EndAngle, xRadius,yRadius: Word); - new S2 unit, integrated with handler installer VBXE-S2: (S_VBXE.SYS) - new DEFLATE unit, which performs DEFLATE decompression (procedure unDEF), example compression\undef.pas - new LZ4 unit, implementing LZ4 decompression (procedure unLZ4), example compression\unlz4.pas, unlz4_stream.pas - new APLIB unit, which performs apLib decompression (procedure unApl), example compression\unapl.pas, unapl_stream.pas - new CRC unit: function crc32(crc: cardinal; buf: Pbyte; len: word) - a new PASCAL procedure/function modifier, causing a new memory block to be assigned/released for variables each time a procedure/function is called, example 'math\evaluate.pas'. - added ability to disable ROM while maintaining system operation, {$DEFINE ROMOFF} Edited May 31, 2020 by tebe 2 3 Quote Link to comment Share on other sites More sharing options...
ilmenit Posted May 31, 2020 Share Posted May 31, 2020 2 minutes ago, tebe said: it's similar to command 'CLS #6' from BASIC new improvements: - new SIODISK unit, separated from the SYSTEM - new S2 unit, integrated with handler installer VBXE-S2: (S_VBXE.SYS) - new LZ4 unit, implementing LZ4 decompression (procedure unLZ4), example compression\unlz4.pas, unlz4_stream.pas - new APLIB unit, which performs apLib decompression (procedure unApl), example compression\unapl.pas, unapl_stream.pas - new CRC unit: function crc32(crc: cardinal; buf: Pbyte; len: word) - a new PASCAL procedure/function modifier, causing a new memory block to be assigned/released for variables each time a procedure/function is called, example 'math\evaluate.pas'. - added ability to disable ROM while maintaining system operation, {$DEFINE ROMOFF} especially {$DEFINE ROMOFF} is great! 1 Quote Link to comment Share on other sites More sharing options...
+JAC! Posted June 1, 2020 Share Posted June 1, 2020 12 hours ago, tebe said: it's similar to command 'CLS #6' from BASIC new improvements: - new SIODISK unit, separated from the SYSTEM - SYSTEM: corrected Val(string, real, code) ; Val(string, single, code) - new CIO unit: Opn, Cls, Get, Put, BGet, BPut, XIO - GRAPH, FASTGRAPH: SetActiveBuffer, SetDisplayBuffer, NewDisplayBuffer, SwitchDisplayBuffer, example demoeffects\lines2.pas, line3.pas, line4.pas - GRAPH: Ellipse procedure (X, Y, StAngle, EndAngle, xRadius,yRadius: Word); - new S2 unit, integrated with handler installer VBXE-S2: (S_VBXE.SYS) - new DEFLATE unit, which performs DEFLATE decompression (procedure unDEF), example compression\undef.pas - new LZ4 unit, implementing LZ4 decompression (procedure unLZ4), example compression\unlz4.pas, unlz4_stream.pas - new APLIB unit, which performs apLib decompression (procedure unApl), example compression\unapl.pas, unapl_stream.pas - new CRC unit: function crc32(crc: cardinal; buf: Pbyte; len: word) - a new PASCAL procedure/function modifier, causing a new memory block to be assigned/released for variables each time a procedure/function is called, example 'math\evaluate.pas'. - added ability to disable ROM while maintaining system operation, {$DEFINE ROMOFF} Wow! Quote Link to comment Share on other sites More sharing options...
Gury Posted June 1, 2020 Share Posted June 1, 2020 Great improvements... I am most interested in CIO routines, PByte pointer data type and {$define ROMOFF} directive. Quote Link to comment Share on other sites More sharing options...
ilmenit Posted June 2, 2020 Share Posted June 2, 2020 @tebe - is it available for download somewhere? On the release page there is still 1.6.3 version https://github.com/tebe6502/Mad-Pascal/releases Quote Link to comment Share on other sites More sharing options...
tebe Posted June 2, 2020 Author Share Posted June 2, 2020 https://github.com/tebe6502/Mad-Pascal 3 Quote Link to comment Share on other sites More sharing options...
tebe Posted June 14, 2020 Author Share Posted June 14, 2020 (edited) https://github.com/tebe6502/Mad-Pascal/tree/master/samples/graph_mode_0pp_40x39 unit M0PP (40x39 chars), char 8x6 pixels Edited June 14, 2020 by tebe 6 Quote Link to comment Share on other sites More sharing options...
bocianu Posted June 14, 2020 Share Posted June 14, 2020 3 new libraries were added to my blibs, all related to new #FujiNet interface: SIO - Serial Input/Ouput interface library. FN_SIO - SIO library for #FujiNet interface. FN_TCP - #FujiNet interface TCP communication library. and two new examples how to use it here. I hope you will find it useful. 6 1 Quote Link to comment Share on other sites More sharing options...
Gury Posted June 18, 2020 Share Posted June 18, 2020 New version has many new improvements and speed-ups which are very important for future development. For me, most important is device manipulation using CIO unit, which, besides other things, speeds up get and put operations on bytes. This unit does not require the use of file handling variables and block reads/writes using BlockRead and BlockWrite. You can open device and use Get, BGet, Put and BPut routines for direct device manipulation. Only thing I am missing is EOF handling similar to file variable handling (f.e. EOF(f)). I wonder if there will be any non-VBXE examples using {$define ROMOFF} directive. Quote Link to comment Share on other sites More sharing options...
tebe Posted June 18, 2020 Author Share Posted June 18, 2020 37 minutes ago, Gury said: I wonder if there will be any non-VBXE examples using {$define ROMOFF} directive. here you go lines2.obx lines2.pas 3 Quote Link to comment Share on other sites More sharing options...
Gury Posted June 18, 2020 Share Posted June 18, 2020 Excellent, thanks! ? Quote Link to comment Share on other sites More sharing options...
tebe Posted June 20, 2020 Author Share Posted June 20, 2020 new unit: fastmath spiral.obx spiral.pas 4 1 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.