Hi all,

just some news of the SMSQmulator, which I believe is coming along nicely.

Much is now working correctly.
Basic works.
PE & WMAN work.
It's now possible to have a bigger screen (I normally use 1024x512) but screen access remains slow.

Keyrow and mouse work - you can, for example, move windows (such as the qpac2 files window) around the screen,even, with the "new" move modes.


This is my usual boot prog on SMSQmulator:

100 constants
110 use_defaults
120 LRESPR nfa1_qmon_bin
130 LRESPR nfa1_qref_bin
140 LRESPR nfa1_qpac2
150 LRESPR dev1_WSET_EXE
160 OUTLN#0,xlim,ylim-bto,0,bto
170 setw
180 qpac2
190 EX sysmon
200 HOT_DO "B"
210 PAUSE 10
220 HOT_DO sleep$
230 PAUSE 10
240 EXEP "sbasic";"lrun sfa1_boot2"
250 :
260 :
270 DEFine PROCedure qpac2
280 REMark set up hotkeys for qpac2
290   ERT HOT_WAKE('f','files';'\sfn\ddev1_')
300   ERT HOT_WAKE('h','hotkeys')
310   ERT HOT_WAKE ('t','things')
320   ERT HOT_WAKE ('k','channels')
330   ERT HOT_WAKE( 'r','rjob')
340   ERT HOT_THING(sleep$,'Button_Sleep')
350   ERT HOT_THING('.','Button_Pick')
360   ERT HOT_WAKE('E','exec')
370   ERT HOT_WAKE ('j','jobs')
380   ERT HOT_WAKE ('b','Sbasic')
390   ERT HOT_PICK("B","")
400   qp2
410 END DEFine qpac2
420 :
430 DEFine PROCedure qp2
440 REMark set up buttons for qpac2
450   HOT_GO
460   BT_SLEEP 'Channels'
470   BT_SLEEP 'Rjob'
480   BT_SLEEP 'exec'
490   REMark BT_SLEEP 'files';'\sfn\ddev1_'
500 END DEFine qp2
510 :
520 :
530 DEFine PROCedure use_defaults
540 LOCal lp%
550 REMark set up default dirs & devices
560   DEV_USE 1,mydrive$
570   DATA_USE "dev1_basic_"
580   DEST_USE "dev1_"
590   PROG_USE "dev1_progs_"
600   dev$="dev1_booty_"
610   dev2$='dev1_progs_'
650 END DEFine use_defaults
660 :
670 DEFine PROCedure constants
680   tot_files=38:tot_len=357034
690   xlim=SCR_XLIM:ylim=SCR_YLIM
700   xx=(xlim-512)/2
710   sleep$=CHR$(232)
720   bto=28
730   mydrive$="sfa1_"
740 END DEFine constants
750 :
760 DEFine PROCedure ws
770 LOCal xp
780   xp=xx+100
790   WINDOW xlim,ylim,0,0:PAPER 0:CLS
800   WINDOW#0, xlim,ylim-28,0,28:PAPER#0,0
810   WINDOW#2, xlim,ylim-28,0,28
820   INK 7:OVER 1 :CSIZE 2,1
830   FOR n=1 TO 10
840    CURSOR xp+n,100+n
850    PRINT "WOLF Business Computer";
860   END FOR n
870   CURSOR xp+n,100+n
880   INK 2:PRINT "WOLF Business Computer"
890   CSIZE 0,0:INK 7
900   OVER 0
910 END DEFine ws
920 :
930 DEFine PROCedure sa
940   SAVE_O sfa1_boot
950 END DEFine sa
960 :
970 DEFine PROCedure setw
980 WSET_DEF 256,34,xlim-256,ylim-34,255,0,0,4,256,ylim-bto-34,xlim-256,bto,255,2,2,7,xlim-256,ylim-bto,0,bto,255,7,7,2
990 WSET
1000 END DEFine setw
1010 :
1020 DEFine PROCedure q
1030   QREF_A "qmon"
1040   PRINT "pausing ...."
1050   PAUSE -1
1060   QMON#1,sfa1_progs_gccdhrystone
1070 END DEFine q
1080 :
1090  DEFine PROCedure tt
1100   LRESPR nfa1_test_exe
1110   QREF_A "ttest"
1120   QMON#1
1130 END DEFine tt

SMSQmulator works under linux & windows. Somebody also tried it on a mac, here are some keyboard problems to be solved.

I've implemented two device drivers giving you access to the underlying file system. One of these is a Native file access driver (reads / writes files to the native file system) another is an Smsqe file access, where you can save files on the native filesystem with an smsqe header (so you can, for example, do
EXEC sfa1_bogomips
where bogomips is on a subdir called QLFiles somewhere on the hard disk.


I mention the bogomips prog, because I used that to test the speeds of SMSQmulator.

On the slowest machine around here (a 3 year old laptop), I get :
Smsqemulator 6.61 bogomips
but
QPC 50.06 bogomips - so SMSQmulator is about 8-10 times slower than QPC, and it'll probably be even slower than that when heavy screen redrawing is involved.

....

Not that everything else is well, either.

There are at least two known bugs. One stops QLiberated progs that read DATAS from working - you get the famous red error window telling you that the prog is out of DATA. This will be a tough one to figure out, because trawling through QLiberated code is just awful!

Also, Qmon can't as yet be used to execute other programs, eg
"QMON sfa1_progs_clock" fails : the program itself works, but QMON doesn't pop up as it should (whereas it does when you use it directly).

There also seem to be some problems with C compiled progs, but I don't have many of those, I'll have to check.

So, there is still qute some work to do, but all in all, a satisfactory progress.

Wolfgang
_______________________________________________
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm

Reply via email to