MV - CPCEMU Disk-File Disk-Info (JOYCE)PTrack-Info  R P *R(1ͻ!͒` 1~#fo("))͒44 #!4`(~=#B!~  C? ~ +< 8G} O#????????EMTZ!q#r!+6{+r|@ @(y 8@͒8OO8>' G͒ͨ2 B J PJ !w~(< yg!o8q+w+p+w> f *0  >:x208>=  !0:8F#0~y#Track-Info  R XPALETTECOM RTC COM QUIT COMEXPORT COMIMPORT COM DOSDIR COM TIMINGS COM7 JOYCEDRVFIDTIMINGS C )VGA FIDUTILS DOCCJVGACOM COMPCKEY COM#DDJOYCE PRLTrack-Info  R )_ 00:?AG? AG?))))0 DM! S0^_ S00:07)]T))ͥ öͥl"y"*yͥö"{"*{This program will only run in the JOYCE emulator $XPALETTE v1.00 Syntax: XPALETTE background foreground or: XPALETTE br bg bb fr fg fb Changes the screen colours under JOYCE The first form acts like PALETTE on the CPC; "background" and "foreground" are numbers from 0 to 63 (0 is black, 63 is white). The secA ! XPALETTE 1.00 (c) John Elliott Date: 06/07/97 T 08<( ̀JOYCE!ko&6:j((@gl!k~GOW~_go!k^fnFNV >#~&(8#~&(07sr##:j<2j 7|@}I R0_rz͛ÖzͤÖzͭÖz&ͶÖz&ͿÖ'd }0_r_yr{0(OrxXrPMCAT COM2PMEXT COMnCPMSET COMrLCPOPCOM COM)tPP COMzPPIP COM#PREPARE COM"{ɔond form takes six numbers, which give exact red/green/blue values for the background and foreground. $IF COMzIFEQ COM~ IFLEN COMINITDIR COMaINSTALL COMY)#S2KEYERL COMLBREXT COMB˾6LDIR COMh6LIB COM8,LINK COM!{+LOGO COMLOHD COM&bD d! JOYCE QUIT v1.00 (c) John Elliott Date: 06/07/97 W 08<(d ̀JOYCEo&6~#(.-(P/(L[(H0& ͇8S~#&(ͯ0 > %!}ݾ 3|ݾ -{ݾ '>*~ʿO 2#ÌH(?Œ;: ;*2Y(N _F22:_nf#F%NF88B0[.[~&#ÑDM! ͯ_ ͯ00:?AG? AG?))))0 DM! 0_ 00:07)]T)C b! JOYCE RTC v1.00 (c) John Elliott Date: 06/07/97 V 08<(b ̀JOYCEo&6~#-(&[("/(\( i> /~C(?(H *.N666Hi2!8j0b-kb-J b:lbobnf "iDM(`i)) "mKi("i;  !"i!"kù0#+"iDMm(*m "m"io _ 8R#"i`i#oB"k*m:k_:iW~O~G~OGy?O??W zJ)N_ F F*a{ N _N@""]*This program will only run in the JOYCE emulator $There are files on drive M:. If you quit they will be lost. Press Y to leave JOYCE, N to cancel: $bJOYCE QUIT v1.00 Syntax: QUIT { number } { [O] } The number is the error level to return to DOS (defaults to 98) [O] - quit without checking whether there are files on M: $(]Q|}!>C( <= !>7jR0 = !~=!͇=!͐=!&͙=!&͢='ͿͩͿͩdͿͩ Ϳͩ}0__y{0(OxX.:,[]/\|Warning: No files match $Warning: Cou{{#| !*~ͫ v &O<|7+:!*ͫ*#~ʎ:(;(.(͚(!0K#~(] #K*(*#"{*K.! (# ! ~#:(;(.(͚(!0+6$! !:W_ ~$( _#S<405~6#O (=(=(==(><|( È ! 6# Œ ͟ %~Gyxo-~<@_ : . #~_y{  ld not parse $ $z|CONLSTAUXNULRSX???0CON:LST:AUX:NUL:RSX:SANDR COMSD COM$8SET COM\Q :SETBLEEPCOM;SETDIR COM SHOW COMBq.SHOWGRP COM6 SID COMCG{SNAKE COMVSORT COM ~ƔSPD COM͔SPDBJ COM Ô! ~=OO* ^ #: !}D<Ã!%~ =2,4U\77? !,6OU 2,=_ O :, _ nf~:(.~:('~:( ^Vw%D~b 8#: !D~_E _z!{<~ͤ A8Q0 @~#: #: !Ds#r#^Vs#rD^Vww%nf:-G> *.͛(<ùO!~( (yy!Oͤ ##=y B  B  B  &B  &B  '7 ! 7 ! d7 !  7 ! }0_ _y {0(O xX $ - OK $ - Open failed. $F ! Joyce EXPORT v1.00 (c) John Elliott Date: 06/07/97 Y 08<(  ̀JOYCE-ob6~#([(- ~H?O 2z  ~=($[( -((#( /(\(: #͈!6 >)ͶN ͷ | ÷ bk͖&<ʌ! " S Ҍ͕ѷ7! 6* K |( +" |<  C G0 ѷ7& ͷ >7 ͷ 7L |(1T] :z $ ͷ ͜ ͤ Y(N N ́  ͷ L "> |@ ÷ [>  }T ÷ [>  file(s) processed. $Syntax error. Syntax is EXPORT x:/path/file or EXPORT x:/path/file=cpmfile For help, type EXPORT [HELP] $ - Overwrite? $ $*.*EXPORT>$EXPORT v1.00 for JOYCE Syntax: EXPORT {x:/path/}cpmfile }g ÷ > !  > ~? +(/(\ >##= r! d>.d ͷ !L~(_ #~ (# ! ~ #L~#! ~# ++~:( /(\( #~ ! "{ { |< d ͷ *{ w7 ÷ 4 v &< >=o&  ~(O>O#&<(!!~#^#Vg.:B?7s"C2"!""o6~ʎ[n\( ͚˜#:G#([   [!  [&D""~͒|<>"*#": 8!&{*|ʎK! 0,yo&  :2:2Track-Info  R 3&m<&mE'bLbLdbL bL}0__y{0(OxX nf~:(.~:('~:( ^Vw%~:8#: !~77z!ª{Ҫ<~ͥA8Q0 @~#: #$ file(s) processed. $Type IMPORT [HELP] for help. $More than 255 matching files present. $ <- $*.*f n IMPORT v1.00 for JOYCE Syntax: IMPORT {cpmfile=}{x:/path/}dosfile { [O] } Both the CP/M and DOS filenames can be ambiguous. Add the [O] option to overwrite existing CP/M files automatically. $Invalid filename: $Delete failed. $} CONLSTAUXNULRSX??? CON:LST:AUX:NUL:RSX:F 6! JOYCE IMPORT v1.12 (c) John Elliott Date: 01/09/97 Y 08<(6 ̀JOYCE-!W DMo&6~#>-(#[( ( (+" ~#=((1-( [(rrr K Cj " ~#-([( * ~( ([( -( (#6j ͽ|<ʎ:o ̱̱[ ! :d G͉|$!d 46 $D ͉"| 2c ! 6n ḯ(N= 9:b #Y( N _ͬn Q< s [͉ [͉|(!c 4! n x7Ϳ8r! n >Ϳn Q!t :c 2 n Qi÷ͬ*d &D :d > ! o  ? ~#!n ] ! ~#_~H( ?(O2b  > ` *j ~( =(_#ͬl!o p  6? _-~O# wg}| y<wc7?͡Q7(y"6# Qc(=( =( ==(cc_c2  <7 v ! 6# z1_01! &͡ Q8|¾Q< | <ɯ> 1%~,Gyxo-~<@_:.#~_y${ '! 7~=OO* ^#C:!}Dgî!%~ =2 _Ҁ͇77? ! 6zҀ 2 =_ z :  _1nf~:(.~:('~:( ^Vw% ~͍8#: ! ~ʊpڊz!{<~A8Q0 @~#: #: ! s#r#^Vs#r ^Vww%nf: G> * (<O!~( (yy!O ##=ym!m*mTrack-Info  R ~og _Snf}2#^!sV _gnf nf" ~%( og 6 6666~- #4~0!(+u^!sV( :w~* n f ~##u t w#~. 0#~* n f ~##u t w#$ :w~ !n&u~l #6~#w_DʱO("Xʷch d(jo(sʽu( x(_z 6~( ~w6~_W!sF(6!n&nnn~ʈ n f ^#V#~#foá 66n f N#FC#u t i`} !"*Eu~(FH0~wF~H0 ~ݖw6~ &! ~5 *~#"og~5 ~ ! ~5 n f ~##u t w+"6~n f ^#V !zog!9un&)n f u t ! F5~H8~#wS_N(G~ y ! nf}(+utnfq#uti`C Snf N ~ :66!!n&͠ R n&_!_!nfn&͠ R(66~nfw#ut 66n(S6! * ! Compiled with Hi-Tech C 6 .~ .~ #~ .{ #.>!"*!RMD kb6!!N# 6!O K* W< K>o&ɯo&PF( x g.͢!9]sn͢!9!ͼ!9srut͹!9!ͼ!9srutn͢!9^Vnf^Vnf͎T_g^V!\nnf ##~#fo~_W!sVŽËÔÑì!ͷ!9!< !9nf\6<6nf ##N#F!9]T!pͭutnf\^~w _Snf~ !_v ~w~(^ nf 66n&0R(n !_SnfN(~(^V!Rut} !_nfnfn&͠ ^VR(66nfutn(!_S* }( nf"  ! _Snf* ut" _S nf͎_R : *s(<ÑO!~( (yy!Oͥ ##=y555&5&5'd }0__y{0(OxX!ͷ!9!< !9~nCN~NQNWTo!ͷ!9!< !9>~NÌ~nÌÕÒí!ͷ!9!< !9>›_S!nf!9_S! nf nf9_S*D UD ""3*DU""S*This program will only run in the JOYCE emulator $ file(s) found. $Type DOSDIR [HELP] for help. $[More]$ $*.* | $DOSDIR v1.00 for JOYCE Syntax: DOSDIR {x:/path/}afn Lists DOS files accessible to JOYCE. Note: If you have a path, you must append a filename. For example: DOSDIR D:/DRDOS/*.* not D:/DRDOS $CON:LST:AUX:NUL:RSX:,:Track-Info  R tatistic r = %ld Statistic ZC = %ld Calculations complete. Do you want to set the PCW to %d%% speed (Y/N)?Y Speed set for this session. Do you want to save the JOYCE settings for future sessions (Y/N)?Y N N (null)      f_!}g_Sn&" _S~ ! !n&!_! }g}!+SnfR(!_*utnf "nf_S*R_! }_!]s{_*}< *f_S o&_S^ _S^V Nog_S^V N_S6n&04~H8_S~nfw_V n f ͯnf#s^V n f ͯnf##s_+ 0"}_|(>Wlx!8 )j:..0 ?! ( (-(+ 8 )  AAAAAABBBBBB 0123456789ABCDEFes it. $MD)) O !R^#V#N#Fp+q+r+s J_R{{W{z<|dR|R<|}|R B(>BBͭͨɯ |||)8z8 {8!|8 }8R?j:|DM!Bg~ _W!\6 ~(0 ~(*^Vnf !B!Bsrut 6~ ~ݶݶݶ 4 !>~!U_^Vnf nu~!U_!5 ~ݶݶݶ ~ _W!\|!ѷR^u u^ nb\0~ w! nffF 5 ~ H~('!-nff5 ~#ognff~ 5 n&_`fnfn$oͯsrut`|͆YP`$YPo`|͆o`$o!R!B|MD!BMD!B{>RR8<)jz(RR03333?:= x({J!ͣ)y?0)x!8 ,!!yHyyx?0Z)jt og!n f +u t #} nf_6'͑nf ~#ut ogutn&n f +u t #} ]s×͑n)&~$w_!Ru]n f \0~ w!^$V%n&f'ͬ!!M~ nf !^!y!!y6!!z!ỳ!!n&n&ynf ̀!"} I^nf ut {!U!$^n f Ru t nb~ ݶ w n&^ V nfR_g!utuuu!!iu!Xsrut~S*} !"8  8r8!*"* r!+!#!9!9^#V#9Z3ENVThis program requires a Z80 processor $TIMINGS - set timings for the Joyce emulator Syntax: TIMINGS { n } Sets PCW speed to n%% of correct value (default 100%%) Target speed : %d%% RTC.COM is not installed. Type RTC [C] then run this program again. This program will only run in the JOYCE emulator. Please wait for a few minutes. Statistic t1 = %ld Statistic t2 = %ld Sݶ_nfs#r#q#p^Vnf_S n&<<<<}og͐~o&_SnfN#F!i zogsrut!++++nf##~og'zog++++<!++++nf###~og'zog++++<!++++nf####~og'zog++++^Vnf_S~H8!_*n&͐"un)&~(((! o|g}(~( !6(n&!_S* ut}(!" nf_!!}gut}(S* ut}(!" nTrack-Info  R  #include #include #include #include #include /* Set up the Joyce timings. We do it like this: */ /* Put the Z80 in a tight loop for 18000 ticks. On a real PCW, this would take exactly one minute. On JOYCE, this takes t = C(Z + nS) seconds. where: n = no. of screen refreshes, S = proportional time for screen refresh, Z = proportional time the Z80 spends running, C = host CPU speed factor. We need to find n such that t = 60. "FID<z†<[`!!!W0X7K >!!osw{Ä> >>>7?ɯJOYCEDRV.FID requires the JOYCE emulator to run. @@$ C is constant for a given host CPU. Z is constant for a given Z80 core. S is constant for a given version of JOYCE. 18000 ticks corresponds to 54000 ticks on the JOYCE internal "900Hz" clock, so n = 54000 / r where r = JOYCE screen refresh setting So, to assess timings: 1. Set r = 144. Then t1 = C(Z + 375S). 2. Set r = 72. Then t2 = C(Z + 750S). So t2 - t1 = 375CS. So t1 = CZ + t2 - t1. So 2.t1 - t2 = CZ. So, to solve for t=60 we have: 60 IF COMzIFEQ COM~ IFLEN COMINITDIR COMaINSTALL COMY)#S2KEYERL COMLBREXT COMB˾6LDIR COMh6LIB COM8,LINK COM!{+LOGO COMLOHD COM&b = CZ + ((CS.54000) / r) = 2.t1 - t2 + ((CS.54000) / r) CS = 1/375(t2-t1) so 60 = 2.t1 - t2 + (144(t2-t1) / r) 60 + t2 - 2.t1 = 144(t2-t1) / r r = 144(t2-t1) / (60 + t2 - 2.t1) */ typedef unsigned char byte; /* Prototypes for Z80 functions */ int isjoyce(void); /* Returns 0 on PCW, 255 on JOYCE */ void wait18000(void); /* Wait 18000 ticks */ byte settimer(byte); /* Set the "screen refresh" timer. */ #asm psect text global _isjoyce global _wait18000 global _settimer _settimer: pop bc ;Return address pop de ;Param 1 push de push bc ld c,e ;C=screen timing parameter ld de,0 ;Don't alter the tick/Z80 cyle ratio. ld a,0FEh defb 0EDh, 0FEh ld l,a ld h,0 ;HL gives timing settings ret _isjoyce: xor a ;Test for JOYCE. defb 0EDh, 0FEh ld l,a ld h,0 ret _wait18000: di ;This also stops the PCW's keyboard & clock. ld bc,18000 ;So to rTrack-Info  R le(1) { char c = getch(); if (c == 'Y' || c == 'y') { settimer(r & 0xFF); printf("Y\nSpeed set for this session. \n"); printf("Do you want to save the JOYCE settings for future sessions (Y/N)?"); while(1) { char c1 = getch(); if (c1 == 'y' || c1 == 'Y') { #asm ld a,8 ;Save settings defb 0EDh,0FEh #endasm printf("Y\n"); exit(0); } if (c1 == 'n' || c1 == 'N') { printf("N\n"); exit(0); } } } if W minute */ } void main(int argc, char **argv) { time_t t1, t2, t3; int target_time; long r; unsigned char *bios; if (argc > 1 && !isdigit(argv[1][0])) { printf("TIMINGS - set timings for the Joyce emulator\n\n" "Syntax: TIMINGS { n } \n\n" "Sets PCW speed to n%% of correct value (default 100%%)\n\n"); exit(0); } if (argc < 2) target_time = 60; else target_time = (6000 / atoi(argv[1])); if (target_time < 5 || target_time > 120) target_time = 60; pri(c == 'N' || c == 'n') { printf("N\n"); exit(0); } } } :PMARC COMQ>PMCAT COM2PMEXT COMnCPMSET COMrLCPOPCOM COM)tPP COMzPPIP COM#PREPARE COM"{ɔntf("Target speed : %d%%\n", 6000 / target_time); bios = (unsigned char *)(*((unsigned int*)1)); /* Because the timing test stops the PCW clock in its tracks, we need the PCW clock to be slaved to the PC clock. Check that the BIOS entry is subverted. */ if (bios[0x4B] != 0xED) { fprintf(stderr,"RTC.COM is not installed.\n" "Type RTC [C] then run this program again.\n"); exit(1); } if (isjoyce() != 255) { fprintf(stderr,"This program will only run in the JOYCE emulator.\n"); exit(1); } printf("Please wait for a few minutes.\n"); /* Assess host CPU speed. This gives us quite a nice estimate of the host CPU speed, in that ZC = (2.t1 - t2) gives a number dependent only on CPU and emulation speed. If the emulator core doesn't change, then we can guess CPU speed. On a P166 under Win95, ZC = 15. On a P75 under OpenDOS, ZC = 25 */ t1 = GetPause(144); printf("Statistic t1 = %ld\n", t1); t2 = GetPause(72); printf("Statistic t2 = "FIDKz Edi!W0X7K > !7!~~~ÀÂÀÊ7Y> YVGA VGA.FID requires the JOYCE emulator (v1.20+) and an 800x600 screen to run. %ld\n", t2); r = 144 * (t2-t1); r /= (target_time + t2 - (2*t1)); if (r > 144) r = 144; /* Any more and the screen gets too jerky */ if (r < 18) r = 18; /* 50Hz, standard PCW refresh rate */ r = ((r + 3) / 6) * 6; /* Should be a multiple of 6, reduces flicker */ printf("Statistic r = %ld\n", r); t3 = GetPause(r & 0xFF); printf("Statistic ZC = %ld", (2*t1 - t2)); printf("\n\nCalculations complete. Do you want to set the PCW to %d%% speed (Y/N)?", 6000 / t3 ); whiead the time elapsed, we need to use wait1: in a,(0F4h) ;the PC's RTC. and 0fh jr z,wait1 ;Wait 18000 ticks = 60 secs. dec bc ld a,b or c jr nz,wait1 ei ret #endasm time_t GetPause(byte Sr) /* Switch refresh rate to Sr. Wait one PCW minute */ { /* and compare it to real time */ byte otimer = settimer(0); time_t time1, time2; settimer(Sr); time1 = time(0); wait18000(); time2 = time(0); settimer(otimer); return time2-time1; /* Time elapsed during PCTrack-Info  R PCW screen (OFF) and 800x600 colour screen (ON). $VGA ON OFF SANDR COMSD COM$8SET COM\Q :SETBLEEPCOM;SETDIR COM SHOW COMBq.SHOWGRP COM6 SID COMCG{SNAKE COMVSORT COM ~ƔSPD COM͔SPDBJ COM Ô$I$m--------------------------------------------------- GSX-80 1.1 01 Oct 83 Serial No 5000-1232-654321 Copyright (C) 1983 Digital Research, Inc. lts to DISKS/x.DSK where `x' is the drive letter. How many drives you get depends on your environment, but on my system I get five under CP/M (C:,D:,E:,F:,and G:), and thirteen under LocoScript (C: to L: and N: to P:). To enable JOYCEDRV, copy the file JOYCEDRV.FID to your start-of-day disc image. When you start up, you will be told which drive letters it has managed to obtain. If you try to use a disc image that is not in MYZ80 format, JOYCE will not be able to access it. Under CP/M, youfile. If no path is supplied, the file appears in the current DOS directory. The third form creates a DOS file with a name that may be different from the CP/M name. If the [O] option is present, existing DOS files with the same name as an exported file will be overwritten without asking. Otherwise you are asked for confirmation. Both filenames may include wildcards, and the second and third forms can include CP/M driveletters and user numbers: EXPORT D:/TEXT/*.TXT=M2:*.ASC w will get an "invalid drive" error; under LocoScript, you will get a "FID error". JOYCEDRV disc images cannot be ejected from the JOYCE menu; they behave as hard drives. QUIT ---- Syntax: QUIT { number } { [O] } QUIT will exit JOYCE. With no parameters, it will check whether there are files on drive M: which may need saving, and if there are it will ask for confirmation. The number parameter is the error level which JOYCE should return. If there is no number parameter, JOYCE retuill export all the .ASC files on drive M, group 2 to the directory D:/TEXT. IMPORT ------ IMPORT will read DOS files into the CP/M filesystem. It sets exact file sizes. The syntax is: IMPORT {x:/dospath/}dosfile { [O] } IMPORT du:=x:/dospath/dosfile { [O] } IMPORT du:cpmfile=x:/dospath/dosfile { [O] } The first form imports the DOS file (or files) to the current drive and user area. The second form imports the file (or files) to the specified driveE . ! JOYCE v1.12 PCKEY (c) John Elliott Date: 09/08/97 X 08<(.  R8̀JOYCE>2*-!!~#[(+-('/(#?(2 : .: 0' l~#H( ?( /(( ͇͟< ] !ͤ û: (]͟ͺ(F!w = Ϳ _N ̤ Y ͤ ͇͟< !; !Z18͇: !~#*))" Z" *  <" ![  K 6# x !"j[ * %"[$" Z! _+| "jZ<(* F 7! JOYCE v1.10 VGACOM (c) John Elliott Date: 27/07/97 Y 08<(7 ̀JOYCE!]9(<(K 3(: nlSlj1> Slj1> *9#! 2!"@"0*@This program will only run in the JOYCE emulator $$Cannot find "VGA" device. Check VGA.FID is loaded. $VGACOM - for JOYCE 1.10+ Syntax: VGACOM ON or VGACOM OFF Switches JOYCE output between B" 0Ç!p ͙ !͇!p!*͖0 ( ( (w#6767w!75 S T 52 E,7,! ~# (| (7 (3E(N(L(B(T b7(< 0 #T 2S * : GąOąWą_ą T ~# ( (+~# ( +BDM!^{# ͤ x( x( %  | }H8o===g}g.: ((*)) srut*#") > ) G> Track-Info  R  L or B. $Unexpected end of line. $^ Error at the "^": $ : Cannot delete existing file. $ : failed to open file. $ : failed to create file. $ : file exists, delete (Y/N) ?$rJOYCE PCKEY - John Elliott, 9 August 1997.u Syntax: PCKEY { } The keyfile is a text file, listing the PC keys and PCW keys. Each line is formed: { } where: is a number from 0-127 is a sequence of letters describing which interna FIDz "< R8> !^V7!|!Kxxxxxxxx.FID will not run in this environment. Keyboard mappings loaded. ͕05~̾#O (=(=(==(><|(l table should be altered: N: Normal (XT type keys) E: Extended (AT keypad etc) L,B: Not used, reserved is the PCW key number. 256 => JOYCE menu. 257 => Exit JOYCE. $PCKEY: No filename supplied. Type PCKEY [HELP] for more info. $ ͕f~O# wg}| Ny<8w) ͙ ͇y[6# N8͇) (=( =( ==() ) _) 2<)  ì ! 6# °) ͕01!&͙ ͇8|͇< | <ɯ> ) %~bGy=x#o-ͱ ~2<@_ : I. #~_yZ{ ] I!m~=OO* ^ #y: !}D͝!%~ =2͕Ҷͽ77? !6ʰҶ 2=_ ð : _)  o&6 #JOYCE utilities =============== The following utility programs are supplied with JOYCE. They are designed to access features of the emulator which have no equivalent on a real PCW. You will find them on the disc image UTILS.DSK. DDJOYCE.PRL ----------- DDJOYCE is new in v1.20. It is a GSX driver for the host PC's graphics screen, allowing high-resolution colour graphics to be used from CP/M. To use it, edit your ASSIGN.SYS file. Remove the entry which reads 01 @:DDSCREEN and re6 !W !W L ) "!"i |<) |) L "!"i ) ~ ( #6# 6 #6#nf~:(.~:('~:( ^Vw%R~ͅ 8#: !R~6 h 6 z!© {ҩ <~ A8Q0 @~#: #: !Rs#r#^Vs#rR^Vww%é nf:;G> *<r (<Ð O!~( (yy!O ##=y    & & '  d   }0_ _y {place it by 01 @:DDJOYCE It has not been possible to test DDJOYCE against the three GSX applications I know of (DRAWMON, DR Draw or DR Graph) and I would be interested to hear of any issues with these programs. DOSDIR ------ DOSDIR displays the contents of a DOS directory. Syntax is: DOSDIR or DOSDIR {x:/path/}filespec Note that if you include a path you must include a filename. The command DOSDIR C:/IMAGES/ is invalid, but DOSDIR C:/IMAGES/*.* 0(O xX CON:LST:AUX:NUL:RSX:PAPER COMWPATCH COMLPAUSE COM ȔPCWBMP COM*Lbays. RTC by itself will set the PCW's clock from the PC's clock. The timing of the PCW's clock will then depend on the speed of emulation, which is another way of saying that it will gradually diverge from the PC's clock. RTC [C] links the PCW's clock to the PC's clock; it will be set to the correct time whenever CP/M reads it. TIMINGS ------- Syntax: TIMINGS or: TIMINGS nn TIMINGS sets the emulation speed. It does this by changing the screen refresh frequency. If you run TIMINGS with no parameters, it will set the PCW's emulation to 100% speed. If you want a different speed, you can add a numeric parameter, for example TIMINGS 120 for 120% speed. TIMINGS prints various statistics while it is calculating the correct refresh rate. See the source file TIMINGS.C for a full explanation, but briefly: t1 and t2 are two times in seconds, used to work out how fast the emulation is. r is the screen refresh setting. It ranges from 18 (50Hz, like a real PCW) to 144 (6.25Hz, which is perfectly usable for text). ZC is a factor related to host processor speed. The smaller it is, the faster the host processor. VGA and VGACOM -------------- VGA.FID is new in JOYCE v1.10. It is designed to allow the PCW to take advantage of the PC's graphics screen. Once VGA.FID has loaded, type VGACOM ON to activate it, and VGACOM OFF to deactivate it. Your PCW screen will now be 100 columns x 36 lines. Nearly all the normal PCW escapeTrack-Info  R ? JOYCE GIOS v1.20 Date: 08/09/97 Copyright John Elliott Jկ<( s !"K> .M(!l"> JOYCE emulator not present $JOYCE GSX support is not present $  eters allows all 262144 different colours to be selected, rather than just 64. Instead of a colour being represented by one number, it is represented by three: XPALETTE 0 0 32 255 255 251 will give you a very dark blue background and a foreground with the slightest tinge of yellow. To get that PCW8000 green-screen look, you can use: XPALETTE 0 9 or, if you're a stickler for accuracy: XPALETTE 0,0,0 0,128,56 XPALETTE does not mind how the numbers are separated (with commas, spaces, *s or whatever) and accepts Hex numbers preceded with & (128=&80 etc.). Note! Unlike PALETTE 0 0, XPALETTE 0 0 really does select black on black. This is not recommended. il you exit JOYCE. 2. The option in the Settings menu to swap CTRL and ALT uses the same method as PCKEY. It is probably best not to map CTRL or ALT. 3. Key 256 brings up the JOYCE menu. Key 257 brings up the Exit Confirmation screen. QUIT --Track-Info  R Track-Info  R Track-Info  R Track-Info  R         Track-Info  R          Track-Info  R         Track-Info  R          Track-Info  R         Track-Info  R          Track-Info  R         Track-Info  R          Track-Info  R         Track-Info  R          Track-Info  R Track-Info  R Track-Info  R Track-Info  R Track-Info  R Track-Info  R Track-Info  R Track-Info  R Track-Info  R Track-Info  R Track-Info  R Track-Info  R Track-Info  R Track-Info  R Track-Info  R Track-Info  R Track-Info  R Track-Info  R Track-Info  R Track-Info  R Track-Info  R Track-Info  R Track-Info  R Track-Info  R Track-Info  R Track-Info  R Track-Info  R Track-Info  R Track-Info  R Track-Info  R Track-Info  R Track-Info  R Track-Info  R Track-Info  R Track-Info  R Track-Info  R Track-Info  R         Track-Info  R          Track-Info ! R!! !!!!!!!Track-Info ! R!! !!!!!!!Track-Info " R"""" """""Track-Info " R"""" """""Track-Info # R###### ###Track-Info # R###### ###Track-Info $ R$$$$$$$$ $Track-Info $ R$$$$$$$$ $Track-Info % R% %%%%%%%%Track-Info % R% %%%%%%%%Track-Info & R&&& &&&&&&Track-Info & R&&& &&&&&&Track-Info ' R''''' ''''Track-Info ' R''''' ''''Track-Info ( R((((((( ((Track-Info ( R((((((( ((Track-Info ) R))))))))) Track-Info ) R))))))))) Track-Info * R** *******Track-Info * R** *******Track-Info + R++++ +++++Track-Info + R++++ +++++Track-Info , R,,,,,, ,,,Track-Info , R,,,,,, ,,,Track-Info - R-------- -Track-Info - R-------- -Track-Info . R. ........Track-Info . R. ........Track-Info / R/// //////Track-Info / R/// //////Track-Info 0 R00000 0000Track-Info 0 R00000 0000Track-Info 1 R1111111 11Track-Info 1 R1111111 11Track-Info 2 R222222222 Track-Info 2 R222222222 Track-Info 3 R33 3333333Track-Info 3 R33 3333333Track-Info 4 R4444 44444Track-Info 4 R4444 44444Track-Info 5 R555555 555Track-Info 5 R555555 555Track-Info 6 R66666666 6Track-Info 6 R66666666 6Track-Info 7 R7 77777777Track-Info 7 R7 77777777Track-Info 8 R888 888888Track-Info 8 R888 888888Track-Info 9 R99999 9999Track-Info 9 R99999 9999Track-Info : R::::::: ::Track-Info : R::::::: ::Track-Info ; R;;;;;;;;; Track-Info ; R;;;;;;;;; Track-Info < R<< <<<<<<<Track-Info < R<< <<<<<<<Track-Info = R==== =====Track-Info = R==== =====Track-Info > R>>>>>> >>>Track-Info > R>>>>>> >>>Track-Info ? R???????? ?Track-Info ? R???????? ?Track-Info @ R@ @@@@@@@@Track-Info @ R@ @@@@@@@@Track-Info A RAAA AAAAAATrack-Info A RAAA AAAAAATrack-Info B RBBBBB BBBBTrack-Info B RBBBBB BBBBTrack-Info C RCCCCCCC CCTrack-Info C RCCCCCCC CCTrack-Info D RDDDDDDDDD Track-Info D RDDDDDDDDD Track-Info E REE EEEEEEETrack-Info E REE EEEEEEETrack-Info F RFFFF FFFFFTrack-Info F RFFFF FFFFFTrack-Info G RGGGGGG GGGTrack-Info G RGGGGGG GGGTrack-Info H RHHHHHHHH HTrack-Info H RHHHHHHHH HTrack-Info I RI IIIIIIIITrack-Info I RI IIIIIIIITrack-Info J RJJJ JJJJJJTrack-Info J RJJJ JJJJJJTrack-Info K RKKKKK KKKKTrack-Info K RKKKKK KKKKTrack-Info L RLLLLLLL LLTrack-Info L RLLLLLLL LLTrack-Info M RMMMMMMMMM Track-Info M RMMMMMMMMM Track-Info N RNN NNNNNNNTrack-Info N RNN NNNNNNNTrack-Info O ROOOO OOOOOTrack-Info O ROOOO OOOOO