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