Date: Tue, 16 Jan 1996 02:30:15 +0100 From: Juergen Lock <nox@jelal.hb.north.de> To: jmz@cabri.obs-besancon.fr Cc: ports@freebsd.org, nino@complang.tuwien.ac.at Subject: Re: Someone want to make a port of this? Message-ID: <199601160130.CAA00513@saturn> In-Reply-To: <9601102213.AA27832@cabri.obs-besancon.fr> References: <5314.821291909@westhill.cdrom.com>
next in thread | previous in thread | raw e-mail | index | archive | help
In article <9601102213.AA27832@cabri.obs-besancon.fr> you write: >>>>>> gpalmer writes: > > >> From the WWW page (http://www.complang.tuwien.ac.at/nino/stemu.html): > > > Description > > > STonX is an Atari ST Emulator for Unix and the X Window System. It is > > distributed under the GNU License, meaning that source code is > > available as well - and, of course, it's free software. > [...] > > >What a coincidence. I just built it yesterday! It compile (and runs) >without any problem. I will make a port. Hey and i thought i was the only one playing with this :) here are some patches that make it run even better (0.6.3), well the Keysyms diffs only if you have a german TOS and keyboard... (i don't know if its time to make a real `port' yet, development is quite fast at the moment... besides, does DISTFILES undestand http: locations yet?) have fun Juergen # This is a shell archive. Save it in a file, remove anything before # this line, and then unpack it by entering "sh file". Note, it may # create directories; files and directories will be owned by you and # have default permissions. # # This archive contains: # # patches/ # patches/patch-aa # patches/patch-ac # patches/patch-ad # patches/patch-ca # patches/patch-cb # patches/patch-cc # patches/patch-da # patches/patch-db # patches/patch-de # echo c - patches/ mkdir -p patches/ > /dev/null 2>&1 echo x - patches/patch-aa sed 's/^X//' >patches/patch-aa << 'END-of-patches/patch-aa' XIndex: Keysyms X@@ -28,9 +28,8 @@ X E ST_E X R ST_R X T ST_T X-Y ST_Y X-#German TOS: X-#Z ST_Y X+#Y ST_Y X+Z ST_Y X U ST_U X I ST_I X O ST_O X@@ -44,9 +43,8 @@ X J ST_J X K ST_K X L ST_L X-Z ST_Z X-#German TOS: X-#Y ST_Z X+#Z ST_Z X+Y ST_Z X X ST_X X C ST_C X V ST_V X@@ -70,17 +68,24 @@ X KP_9 ST_KP_9 X KP_Divide ST_KP_DIV X KP_Multiply ST_KP_MULT X+KP_Decimal ST_KP_DOT X Alt_L ST_ALT X Escape ST_ESC X-minus ST_MINUS X-equal ST_EQUAL X-grave ST_GRAVE X+#minus ST_MINUS X+ssharp ST_MINUS X+#equal ST_EQUAL X+acute ST_EQUAL X+#grave ST_GRAVE X+numbersign ST_GRAVE X+#asciitilde ST_GRAVE X BackSpace ST_BS X Delete ST_DELETE X Insert ST_INSERT X Tab ST_TAB X-bracketleft ST_SQ_OPEN X-bracketright ST_SQ_CLOSE X+#bracketleft ST_SQ_OPEN X+udiaeresis ST_SQ_OPEN X+#bracketright ST_SQ_CLOSE X+plus ST_SQ_CLOSE X Up ST_UP X Left ST_LEFT X Right ST_RIGHT X@@ -89,15 +94,25 @@ X Shift_L ST_LSH X Shift_R ST_RSH X Caps_Lock ST_CAPSLOCK X-semicolon ST_SEMIC X-apostrophe ST_APOST X-backslash ST_BACKSL X+#semicolon ST_SEMIC X+odiaeresis ST_SEMIC X+#apostrophe ST_APOST X+adiaeresis ST_APOST X+#backslash ST_BACKSL X+#numbersign ST_BACKSL X+#asciitilde ST_BACKSL X+asciicircum ST_BACKSL X+less ST_ISO X comma ST_COMMA X period ST_DOT X-slash ST_SLASH X+#slash ST_SLASH X+minus ST_SLASH X Return ST_RETURN X KP_Enter ST_KP_ENTER X KP_Subtract ST_KP_MINUS X KP_Add ST_KP_PLUS X-Help ST_HELP X-Undo ST_UNDO X+Home ST_HOME X+#Help ST_HELP X+#Undo ST_UNDO X+Print ST_HELP X+Break ST_UNDO END-of-patches/patch-aa echo x - patches/patch-ac sed 's/^X//' >patches/patch-ac << 'END-of-patches/patch-ac' XIndex: config/x86-linux.h X@@ -10,7 +10,7 @@ X #define PCREG "%ebp" X #undef SRREG X #define IS_BIG_ENDIAN 0 X-#define SMALL 1 X+#define SMALL 0 X X #define STONX_AUDIO_LINUX X END-of-patches/patch-ac echo x - patches/patch-ad sed 's/^X//' >patches/patch-ad << 'END-of-patches/patch-ad' XIndex: configure X@@ -1130,6 +1130,12 @@ X regs="-fomit-frame-pointer" X conf="config/x86-linux.h" X ;; X+i*86-*bsd*) X+ echo 'A 80x86-based BSD box...' X+ regs="-fomit-frame-pointer -ffixed-ebx -ffixed-ebp" X+ copt="-O3" X+ conf="config/x86-linux.h" X+ ;; X mips-sgi-irix*) X echo 'Wow, an SGI!' X conf="config/mips-sgi-irix.h" END-of-patches/patch-ad echo x - patches/patch-ca sed 's/^X//' >patches/patch-ca << 'END-of-patches/patch-ca' XIndex: main.c X@@ -201,7 +201,16 @@ X { int i,c=1; X char *args[64]; X for (i=0;i<64;i++) args[i] = malloc(sizeof(char)*256); X- while (fscanf(rc,"%s",args[c]) != EOF) c++; X+ while (fscanf(rc,"%s",args[c]) != EOF) { X+ if (args[c][0] == '#') { X+ int ch; X+ while ((ch = fgetc(rc)) != EOF && X+ ch != '\n') X+ ; X+ continue; X+ } X+ c++; X+ } X fclose(rc); X fprintf (stderr, "Using configuration file:%s\n", stonxrc); X process_args (c, args,1); END-of-patches/patch-ca echo x - patches/patch-cb sed 's/^X//' >patches/patch-cb << 'END-of-patches/patch-cb' XIndex: Keysyms X@@ -116,4 +116,3 @@ X #Undo ST_UNDO X Print ST_HELP X Break ST_UNDO X-numbersign ST_ISO END-of-patches/patch-cb echo x - patches/patch-cc sed 's/^X//' >patches/patch-cc << 'END-of-patches/patch-cc' XIndex: xlib_vdi.c X@@ -1315,6 +1315,7 @@ X void vdi_post (UL as) X { X UW *a; X+ UW v_cel_ht; X UL pblock = DREG(1); X control = LM_UL(MEM(pblock)); X intin = LM_UL(MEM(pblock+4)); X@@ -1326,12 +1327,13 @@ X SM_W(INTOUT(1),vdi_h-1); X fprintf(stderr,"abase=$%lx\n",abase); X a=MEM(abase); X+ v_cel_ht=LM_UW(a-0x2e/2); X SM_W(a-0x15a,vdi_w-1); X SM_W(a-0x159,vdi_h-1); X SM_W(a+1,scr_width/8); X SM_W(a-1,scr_width/8); X SM_W(a-22,scr_width/8-1); X- SM_W(a-21,scr_height/16-1); X+ SM_W(a-21,scr_height/v_cel_ht-1); X SM_W(a-20,scr_width*2); X SM_W(a-6,scr_width); X SM_W(a-2,scr_height); X@@ -1340,10 +1342,12 @@ X void linea_post (UL as) X { X UW *a=MEM(DREG(0)); X+ UW v_cel_ht=LM_UW(a-0x2e/2); X abase=DREG(0); X SM_W(a+1,scr_width/8); X+ SM_W(a-1,scr_width/8); X SM_W(a-22,scr_width/8-1); X- SM_W(a-21,scr_height/16-1); X+ SM_W(a-21,scr_height/v_cel_ht-1); X SM_W(a-20,scr_width*2); X SM_W(a-6,scr_width); X SM_W(a-2,scr_height); END-of-patches/patch-cc echo x - patches/patch-da sed 's/^X//' >patches/patch-da << 'END-of-patches/patch-da' XIndex: configure X@@ -1058,7 +1058,7 @@ X X ; return 0; } X EOF X-if eval $ac_link; then X+if eval $ac_link $inc; then X rm -rf conftest* X def="$def -DSH_MEM" X shm=ok END-of-patches/patch-da echo x - patches/patch-db sed 's/^X//' >patches/patch-db << 'END-of-patches/patch-db' XIndex: configure X@@ -1133,7 +1133,7 @@ X ;; X i*86-*bsd*) X echo 'A 80x86-based BSD box...' X- regs="-fomit-frame-pointer -ffixed-ebx -ffixed-ebp" X+ regs="-fomit-frame-pointer -ffixed-ebx -ffixed-ebp -fno-strength-reduce" X copt="-O3" X conf="config/x86-linux.h" X ;; END-of-patches/patch-db echo x - patches/patch-de sed 's/^X//' >patches/patch-de << 'END-of-patches/patch-de' XIndex: xlib_vdi.c X@@ -519,36 +519,47 @@ X GCBackground|GCForeground|GCFillStyle|GCStipple|GCFunction, &gv); X } X X-static void init_vwk (int i, W *w_in) X+static void init_vwk (int i, W *w_in, int resetp) X { X+ extern int shiftmod; /* shift mode */ X XGCValues gv; X- vwk[i] = malloc (sizeof(VWK)); X+ if (!resetp) X+ vwk[i] = malloc (sizeof(VWK)); X gv.function = GXcopy; X gv.line_width = 1; X gv.foreground = 1; X gv.background = 0; X gv.plane_mask = 1; X gv.graphics_exposures = False; X- gv.font = sysfont[2]; X- vwk[i]->font_index = 2; X+ vwk[i]->font_index = (shiftmod >= 2) ? 2 : 1; X+ gv.font = sysfont[vwk[i]->font_index]; X vwk[i]->font_yoff = 0; X vwk[i]->font_ver = 0; X vwk[i]->font_hor = 0; X vwk[i]->font_eff = 0; X vwk[i]->wrmode = 1; X- vwk[i]->gc = XCreateGC (display, xw, VMASK, &gv); X+ if (resetp) X+ XChangeGC (display, vwk[i]->gc, VMASK, &gv); X+ else X+ vwk[i]->gc = XCreateGC (display, xw, VMASK, &gv); X vwk[i]->fill_color=1; X vwk[i]->line_color=1; X vwk[i]->text_color=1; X vwk[i]->fill_perimeter=0; X+#if 1 X+ vwk[i]->fill_style=4; X+ vwk[i]->fill_interior=1; X+#else X vwk[i]->fill_style=0; X vwk[i]->fill_interior=0; X+#endif X vwk[i]->line_type=0; X vwk[i]->line_pattern=0; X vwk[i]->line_width=0; X vwk[i]->line_ends=0; X vwk[i]->clipping=0; X bzero((char *)vwk[i]->mode,sizeof(int)*4); X+ set_fontparms (i); X } X X static void v_opnwk (void) X@@ -574,7 +585,7 @@ X init_data(); X SW(CONTRL(4),45); /* XXX handle */ X for (i=0; i<MAX_VWK; i++) X- init_vwk (i, INTIN(0)); X+ init_vwk (i, INTIN(0), 0); X xi = XCreateImage (display, visual, 1, XYBitmap, 0, NULL, vdi_w, vdi_h, 16, 80); X #if XBUFFER X xbuffer = XCreatePixmap (display, xw, vdi_w, vdi_h, depth); X@@ -606,6 +617,18 @@ X /* do what v_opnwk() does now */ X } X X+static void v_clsvwk (void) X+{ X+ int h = LM_W(CONTRL(6)); X+ T(v_clsvwk); X+#if 0 X+ if (ph >= 11) return; X+#endif X+ if ((unsigned)h<MAX_VWK) X+ /* reset vwk */ X+ init_vwk (h, INTIN(0), 1); X+} X+ X static void v_pline (void) X { X int x, y, xo, yo, i=1; X@@ -1303,7 +1326,9 @@ X IGNORE(vqm_attributes) X IGNORE(vqf_attributes) X IGNORE(vqt_attributes) X+#if 0 X IGNORE(v_clsvwk) X+#endif X IGNORE(vq_extnd) X IGNORE(v_contourfill) X IGNORE(v_get_pixel) END-of-patches/patch-de exit
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199601160130.CAA00513>