English
SDK-aide/ Tools

JRPC new Precompiler for XProfan X4 - JRPC3

 
- Page 1 -



Jens-Arne
Reumschüssel
good evening together,

i'm recent over the trouble stumbled, that XPSE a quite large Quelldatei of I do not More process could. variables get suddenly as not definiert gemeldet and others "erratische" Problems More. I could me present, that this on it lying, that XPSE Keywords in windows-Atoms manages. there's sometime Schluss (with something between 60.000 and 70.000 Piece, where one deliberating must, that XPSE The windows-API with vorhält). Perhaps is But something integrally other, I can Yes not whom "Maschinenraum" of XPSE look.

anyway stayed me, there XPSE not any more taken care of becomes, nothing other spare, as the nachzubauen. the Result is JRPC3.

----- Features:

*reasonable Message of Fehlern
*direct display the Programmablaufes in XProfEd (sofern the under erhältliche aufgebohrte XProfEd is used)
*Umsetzung the middle-aged Profan-Syntax for Operators and old Containerfunktionen
*extreme speedy native fbPROCs, sofern one FreeBasic installs has (free, see Help)
*with fbPROCs can additionally Inline-Assembler too to XProfan X4 realized go
*extreme speedy native pbPROCs, sofern one PureBasic installs has
*Echtzeitverfolgung of Variableninhalten
*simple Zeitmessungen in the Programmablauf
*Profan-Kompilerdirektiven functions finally sensible (z.B. Verschachtelung)
*eingebettete variables functions too with Arrays
*most WIN32-API-functions are already vordefiniert included
*API-Aufrufe over @external(...) go automatically in @call(...)-Aufrufe umgesetzt
*Einrückungsanalyse to that find of vertrackten Verschachtelungsfehlern
*Klammeranalyse to that find of vertrackten Klammerfehlern
*ENUMERATE-Funktionalität
*Assert to Fehlerkontrolle
*it can arbitrary DLLs into XProfan-EXE integrate go, so tappt im dunkeln not delivered go must (see {$WrapDll})
*simple Killen Pixel JRPC3 launched Programs (interprets, .prc launched, .exe launched)
*extreme quick (and therefore naturally not XProfan written, there a interpretierte Language this natural plenty too slow is)
*at Start of JRPC3 already available .prc-Files can to that started and left used go (it'll one Info displayed, that it itself for a altes Compilations deals)
*the Profan-Compiler can to Beschleunigung with high Prozessorpriorität called go
*eingebauter Update-Checker with Download, if it one Update gives (Help --> online to Updates search)
*64- or 32-bit-Version available (simply JRPC3_64.exe or JRPC_32.exe as Interpreter in XProfEd deposit [Options --> general Settings] and JRPC3 with F7 started) - deference, The 64-bit-Version created naturally no 64-bit-XProfan-programs, there XProfan the not can, separate JRPC3 self becomes as 64-bit-Program carryed out
*XProfan X4-Syntax available (möglicherweise not yet everything, I presumably not everything of it use, but I have me circa Vollständigkeit ready - anyway are z.B. HASH-Arrays and QUADINTs thereby)
*Interpreter, PRCs and EXEs can with Kommandozeilenparametern carryed out go
*Interpreter, PRCs, EXEs and XPSE can with Administratorrechten carryed out go
*Procedures, The in the actually Program of course include are, but not uses go, go from the umgesetzten File removes, around the Filesize the Kompilats possible small To hold
*variables, The in the actually Program of course include are, but not uses go, go from the umgesetzten File removes, around the Filesize the Kompilats possible small To hold and the Speicherverbrauch To optimize
*nPROCs from XPSE go automatically with XPE to a DLL umgesetzt and the Aufrufe the nPROCs in the program properly adjusted, sofern XPSE present is
*almost everything from XPSE functions too in JRPC3 ({$NOERR}, {$(PRE)BATCH}, {$PUSHKEYWORD}, Interpreter, Runtime and compiler determine, Shorties, ...)
*XProfEd_JR with View source-AutoComplete
*XProfEd_JR with View source-Memory-function (Markierungen, To them zurückgesprungen go can)

Einschränkungen:
-no XPSE-Inline-Assembler, well but XProfan-Inline-Assembler (therein though no tests on Korrektheit the Codes)
-ABER: one can XPSE from JRPC3 out Call, so these Funktionalität furthermore available is, sofern one XPSE own (new Shorty: {$x})
-variables, The in a procedure not declared are, separate "aus the aufrufenden procedure übernommen werden", are standardmäßig not registered (XProfan allows the, but such a thing is just as mortal How GOTO-instructions). Please any To nutzenden Inputs as Parameter transfer, and if something from the aufrufenden Programmteil changed go must, when calling as Parameter z.B. @addr(x&) use and the procedure parameters x# and LONG x#,0=y& benefit.
If one but absolutely "vererbte" variables benefit would like, can this with the Kompilerdirektive {$Declare...} do.

*as Hommage on XPSE sounds The Endung the Ausgabedatei ".enh3"

an genauere explanation the individual Features is the chm-Helpfile To entnehmen, The in the program under Help --> Helpfile Show or with F1 available is.

----- /Features

Download and install:
JRPC3 can under Downloaded go (setup_jrpc3.exe or as ZIP-File).
as Installationsverzeichnis Please the XProfan-Stammverzeichnis indicate, means the one, in the The Files PROFAN.EXE, PROFCOMP.EXE, PRFRUN32.EXE etc. lying. alternatively can The ZIP-File Downloaded and its Content manually in that XProfan-Stammverzeichnis copies go.

facility:
JRPC3_64.exe or JRPC_32.exe as Interpreter in XProfEd deposit [Options --> general Settings] and JRPC3 with F7 started.

any command are with the commands "h" How "Hilfe" abrufbar and should selbsterklärend his.

for many erweitere Features, The XProfEd concern, How z.B. jenes, The row, in the one Error auftrat, directly in XProfEd Show to, is the mitinstallierte XProfEd_JR necessary. For this must one means XProfEd_JR.exe instead of XProfEd.exe as editor using. as "goody" there moreover, that at On- and Zufalten of Programs one Fortschrittsanzeiger integrate is (the can with large Programs Yes known a little bit last).

it likes his, that not yet everything perfect functions. I Please this circa clemency. my  programs can umsetzen, but the must yet long not hot, that this with Programs another Authors, The eachone so your Eigenheiten having, too functions.

Fehlermeldungen and Verbesserungsvorschläge gladly on jreumsc@web.de or here in the Forum.

best Regards, Jens-Arne

2.665 kB
Bezeichnung:JRPC3
Version:10.40
Kurzbeschreibung: JRPC3-Installer
Hochgeladen:02/15/21
Downloadcounter393
Download
1.699 kB
Bezeichnung:XProfEd_JR
Version:5.2
Kurzbeschreibung: old Version without AutoComplete to safety
Hochgeladen:02/15/21
Downloadcounter243
Download
4.065 kB
Bezeichnung:JRPC3
Version:10.40
Kurzbeschreibung: ZIP-File instead of Installer
Hochgeladen:04/02/21
Downloadcounter304
Download
 
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
02/16/21  
 



 
- Page 11 -


« this Posting watts as Solution marked. »

- Page 15 -



Jens-Arne
Reumschüssel
there's a new Version, The differently with the internen Messagehandling bypassing. Please probier The time from. Perhaps is the trouble so fixed.
 
XProfan X4
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
09/24/22  
 




Jens-Arne
Reumschüssel
here incidentally another example, How one with Arrays umzugehen had. this is namely something tricky (byte Pointer instead of Integer Pointer use, see Statement in the example, otherwise wundert one itself integrally awful, which Speicherplätze addressed go).

{$FBSYNTAX ON}

declare a%[2]

fbPROC fbArrayTest1(ByVal p As byte Pointer) As Integer export
poke integer,p+0,100 'here p always circa 4 raise, there p as byte Pointer definiert is and FreeBasic therefore at Pointer always one byte weiterzählt
poke integer,p+4,101 'the corresponds to the intuitive Vorgehen, if one Integers in a Speicherbereich writes
poke integer,p+8,102
return 0
ENDPROC

fbPROC fbArrayTest2(ByVal p As Integer Pointer) As Integer export
poke integer,p+0,103 'here p always only circa 1 raise, there p as Integer Pointer definiert is and FreeBasic white, How many Bytes in each element stick (namely 4 per Integer)
poke integer,p+1,104 'this is *not* absolutely intuitiv; i'd something like avoid and rather byte Pointer for Arrays using
poke integer,p+2,105
return 0
ENDPROC

cls
fbArrayTest1(@addr(a%[0]))
print a%[0]
print a%[1]
print a%[2]
print
fbArrayTest2(@addr(a%[0]))
print a%[0]
print a%[1]
print a%[2]
waitinput
end
 
XProfan X4
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
01/17/22  
 




Jens-Arne
Reumschüssel
To your question above (nullterminierte gepushte String-Memory-Variables):

the goes unfortunately momentarily not. there should I SharedInFbProcs strain. in the principle possible, but I white not, whether the end The Lesbarkeit the Codes really correct. then should one remember, that is a Memory-Variable really only for definiert has.

I take once on, You want many Strings at a single blow transfer. gentry The Adressen simply in a Own Memory-Variable and übergib these a the fbProc. then extract You from it The Strings.

{$FBSYNTAX on}

declare b1#,b2#,b3#,uebergabe#

fbProc fb3Strings(ByVal uebergabe As Any Pointer) As Integer export
dim As ZString Pointer s1,s2,s3
s1=peek(ZString Pointer,uebergabe)
s2=peek(ZString Pointer,uebergabe+4)
s3=peek(ZString Pointer,uebergabe+8)
screenres(400,300)
print *s1
print *s2
print *s3
return 0
ENDPROC

cls
dim b1#,10000
dim b2#,10000
dim b3#,10000
string b1#,0="String 1"
string b2#,0="String 2"
string b3#,0="String 3"
dim uebergabe#,12
long uebergabe#,0=b1#
long uebergabe#,4=b2#
long uebergabe#,8=b3#
fb3Strings(uebergabe#)
waitinput
dispose uebergabe#,b1#,b2#,b3#
end
 
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
01/17/22  
 




Jens-Arne
Reumschüssel
Perhaps goes it with the Arrays such a thing rather, without Gepoke:

{$FBSYNTAX on}

declare a%[10],i%

fbProc fbArrayTest(ByVal p As Any Pointer) As Integer export
dim i As byte
dim a(10) As Integer Pointer
for i=0 to 10
a(i)=p+(i*4) 'address the Elements settle
*a(i)=i 'the element a worth allocate
next i
return 0
ENDPROC

cls
fbArrayTest(@addr(a%[0]))
for i%,0,10
print a%[i%]
endfor
waitinput
end
 
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
01/17/22  
 




funkheld
thanks Jens-Arne have me again in kürze 10 km weitergeholfen.
your Examples are wonderful Verfolgbar.

How You it supra show , need I this not any more :
-------------------------------
nullterminierte gepushte Strings-Memory-Variables
-------------------------------

with the reaches and the aray is it plainer To manage.

Thank you.
greeting
 
01/17/22  
 




funkheld


Hello Jens-Arne,
i'm a Error Message noticed (see Image) with the commands : LoadBmp name$,0,0; 0

greeting
Declare name$
Window Title "BILD-BETRACHTER"
CLS
ShowMax
Name$ = @LoadFile $("Bilddateien","*.BMP")

While name$ <> ""

    Cls
    LoadBmp name$,0,0; 0
    Window Title "BILD-VIEWER - [" + name$ + "]"
    WaitMouse
    name$ = @LoadFile $("Bilddateien","*.BMP")

EndWhile

End

51 kB
Hochgeladen:01/18/22
Downloadcounter51
Download
 
01/18/22  
 




Jens-Arne
Reumschüssel
Yes, this is solid and has whom reason, that the commands antiquated is.

the standing moreover in the XProfan-Help:

"Dieser commands becomes in künftigen XProfan-versions not any more supported. instead is the commands DrawPic To use."

Greeting, Jens-Arne
 
XProfan X4
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
01/18/22  
 




funkheld
thanks for Info.
I thought in XProfanx4 are The ollen Kamellen not any more drin.

means with such Fehlermeldungen first time look whether so one Murx yet drin is, whom not More give should.

greeting
 
01/18/22  
 




Jens-Arne
Reumschüssel
one can now too "endfor" instead of "next" in fbProcs write. the I had with whom "Konzessionen" forget.
 
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
01/18/22  
 




funkheld
thanks for Info.

leaves You this XPSE still in your Description drin?
i'd the XPSE there now rausnehmen.
find for no rückfragen of Hilfestellungen etc. More.

I yourself have me of it too dismisses and use now this FreeBasic for extensions.

greeting
 
01/19/22  
 




p.specht

Einspruch, I need The Assembler-Opportunities and api-Konstanten of XPSE. on the side notice, Jens-Arne is berufstätig. amazing, that it itself so much Time for Rückfragen takes - simply cool!
 
XProfan 11
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
01/19/22  
 




funkheld
well finally reports itself time of/ one since langer Time for XPSE , class.
I thought The species are extinct and already in the sky.

I grüße you You XPSE fan.

my interest is now to FreeBasic gone to expansion the XProfanx4.

How Jens-Arne written has is this XPSE not so slight To tame and has always further neueProbleme bereitet.

I have already some program for me and be thereby my own XPSE-programs umzustellen to FreeBasic.

greeting
 
01/19/22  
 




Jens-Arne
Reumschüssel
Assembler remaining XPSE-Domäne. API-Konstanten are JRPC3 too drin. If which are missing, Please always since so, The can I dazupacken.

though know I gladly once, whether Assembler really so plenty faster is as FreeBasic. latter becomes Yes directly in Maschinensprache Translated, means letztlich in Assembler - and it alights with XPSE in a DLL, The then of XProfan-Program called becomes, very How with FreeBasic with JRPC3. naturally make Hochsprachen there always some something less optimal, as if one its routines directly and self in Assembler writes (I not can), but How big is there the Difference? Peter, can You, the with opportunity test times?

Greeting, Jens-Arne
 
XProfan X4
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
01/19/22  
 




Answer


Topictitle, max. 100 characters.
 

Systemprofile:

no Systemprofil laid out. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Please register circa a Posting To verfassen.
 

Topic-Options

73.443 Views

Untitledvor 0 min.
Jens-Arne Reumschüssel vor 3 Tagen
Axel Berse06/03/25
Paul Glatz05/23/25
HofK02/12/25
More...

Themeninformationen



Admins  |  AGB  |  Applications  |  Authors  |  Chat  |  Privacy Policy  |  Download  |  Entrance  |  Help  |  Merchantportal  |  Imprint  |  Mart  |  Interfaces  |  SDK  |  Services  |  Games  |  Search  |  Support

One proposition all XProfan, The there's!


My XProfan
Private Messages
Own Storage Forum
Topics-Remember-List
Own Posts
Own Topics
Clipboard
Log off
 Deutsch English Français Español Italia
Translations

Privacy Policy


we use Cookies only as Session-Cookies because of the technical necessity and with us there no Cookies of Drittanbietern.

If you here on our Website click or navigate, stimmst You ours registration of Information in our Cookies on XProfan.Net To.

further Information To our Cookies and moreover, How You The control above keep, find You in ours nachfolgenden Datenschutzerklärung.


all rightDatenschutzerklärung
i want none Cookie