The info you are talking about at the end of your message is the block header. I can tell you all about that (so can Raul) but I am away from my machine until Monday.
Look at jtype.h in the J source and find the definition of AD. Henry Rich On Sat, Apr 15, 2023, 6:36 PM Michal Wallace <[email protected]> wrote: > Hrm. That does help a little bit. There's definitely still something called > JWd defined in JLib. > > Here is what I know so far: > (actually more than when I started typing this, so... I'll probably move > this to the wiki at some point.) > > When you write a J frontend, you have to call a function called JSM > (session manager) > and you pass in the addresses of four callback functions that your frontend > implements: > > JWr -> session calls this to output to whatever "terminal" you set up > JWd -> this window driver thing. > JRd -> session calls this when it needs to read a line of input > ??? -> something reserved for future use? > > JWd does still seem to be hooked up to 11!:x (weird to see that called x > instead of n!) > > The signature looks like this: > > int _stdcall Jwd(JS jt, int x, A parg, A* pres, C* loc); > -- https://github.com/jsoftware/jsource/blob/master/jsrc/jlib.h#L111 > > The arguments seem to be: > > jt -> address of j session object > x -> the 'n' in 11!:n > parg -> the y argument to (11!n) (a pointer to a J array) > pres -> the result array (you modify this to put your return value here) > loc -> a locale name (?) > > There is an example J frontend here: > > https://github.com/jsoftware/jsource/blob/master/jsrc/jfex.c > > It has this comment for its implementation of Jwd (which is missing the loc > parameter): > > // J calls for 11!:x y - demonstrates all features of jwdw and jwdp > // pa is y and result array (if any) is returned in pz > // return pz > // 0 - MTM i.0 0 > // -1 A - A result > // -2 A - A is pairs of null terminated strings for event table > // n - EVDOMAIN etc > > > The 'parg' argument has the following fields, which I am expecting to match > the structure defined here: > > https://www.jsoftware.com/ioj/iojNoun.htm > > k -> "offset of ravel with respect to byte 0 of the array" > f -> a flag of some sort > m -> "maximum number of bytes in ravel" > t -> the type > c -> reference count > n -> the length of the data > r -> rank > s -> pointers to shape and value > > My implementation of Jwd just prints out the arguments... > > JWd(x:2000, a:[k: 64 f: 0 m: 117321808 t: 2 c: $8000000000000001 n: 5 r: > $BAADF00D062E0001]) > > I guess really my main problem is I don't understand how to interpret the > "rank" and "reference count" fields. > I'd expect both of these to be small positive integers, like what I see in > the ioj. > > Without the rank, I don't know how to parse the shape and value. > > Hrm. I guess technically I know from the docs that all (11!:n) are rank 1, > so maybe I can just ignore that field? > > I will investigate further. > > > On Sat, Apr 15, 2023 at 5:01 PM Raul Miller <[email protected]> wrote: > > > Jwd sounds like version 6 of J. This predates Jqt. > > > > There's some docs at > > > https://www.jsoftware.com/docs/help602/user/win_driver_cmd_ref_overview.htm > > > > I hope this helps, > > > > -- > > Raul > > > > On Sat, Apr 15, 2023 at 4:57 PM Michal Wallace <[email protected] > > > > wrote: > > > > > > Hey all, > > > > > > I've been working on JPrez again -- a console-based presentation tool > > > that can record and play back interactions with a J REPL. > > > > > > It also lets you specify text to be recorded for voice overs to narrate > > the > > > interaction (for making videos), and over the past week I've embedded > > > JPrez inside a windows binary that looks like a normal text console but > > > can peek inside JPrez and actually let me record and play audio for > > > the individual voice over lines. > > > > > > However, right now I'm doing everything from the host application. It > > polls > > > Jprez to see what's on the screen and what the current line of text is > > > (jprez suggests a filename for a corresponding wav file). > > > > > > That all works fine for recording one line at a time, but if I want to > > > actually > > > play the presentation, I'd much rather have J drive the interaction. > > > > > > I basically already have a J front end, but I don't know what to do > with > > > Jwd, > > > or how to use it from the J side. I've picked up that it's using 11!:n > > > under the > > > hood, but I haven't found much information about how it's meant to be > > used. > > > > > > Do any docs exist? > > > > > > Where should I look in the jsource and jQt code bases to find examples? > > > > > > Thanks! > > > > > > -Michal > > > ---------------------------------------------------------------------- > > > For information about J forums see http://www.jsoftware.com/forums.htm > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm > > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
