[Coco] Basic09 6309 version

Bill Pierce ooogalapasooo at aol.com
Fri Jun 2 07:41:53 EDT 2017


Walter, if you downloaded VCC-2.100b from the VCC site, then the becker port was never broken. That's the release code and the becker port works in that code. It's James code with the changes that the becker port doesn't work. The links (releases) on James github, just link back to the VCC site. To get his code, you must clone it or download a tarball using the button at the top right of the code page, labeled "Clone or Download".
An easy way to tell which one you have is to go full screen. If it stretches over a widescreen, then you have the old release, if it maintains aspect (square), then it's James' code.

 

 

Bill Pierce
"Charlie stole the handle, and the train it won't stop going, no way to slow down!" - Ian Anderson - Jethro Tull

My Music from the Tandy/Radio Shack Color Computer 2 & 3
https://sites.google.com/site/dabarnstudio/
Co-Contributor, Co-Editor for CocoPedia
http://www.cocopedia.com/wiki/index.php/Main_Page

E-Mail: ooogalapasooo at aol.com

 

 

-----Original Message-----
From: Walter Zambotti <zambotti at iinet.net.au>
To: 'CoCoList for Color Computer Enthusiasts' <coco at maltedmedia.com>
Sent: Fri, Jun 2, 2017 3:59 am
Subject: Re: [Coco] Basic09 6309 version

BillI used the build that James created for me.  Not sure what build it was but a link to it is contained in one of the items in this topic/conversation.I didn't notice any issue with becker but that's because I don't use it.I was really only trying to get the 6309 MOD bug in basic09_6309 fixed.  Which it appears to have done!I also download the 2.01B final edit source from github and applied my code to vcc.  Same result.So in the end once the correct version of VCC is determined the fix can go in and X fingers it should work.Walter-----Original Message-----From: Coco [mailto:coco-bounces at maltedmedia.com] On Behalf Of Bill Pierce via CocoSent: Friday, 2 June 2017 12:53 AMTo: coco at maltedmedia.comCc: Bill Pierce <ooogalapasooo at aol.com>Subject: Re: [Coco] Basic09 6309 versionWalter, did you fix this using Jame's code base? If so, that fixes one of the only problems I had with his build. If this is the case, then Jame's fixes could be merged with the current default and a new release could be put together :-)  Bill Pierce"Charlie stole the handle, and the train it won't stop going, no way to slow down!" - Ian Anderson - Jethro TullMy Music from the Tandy/Radio Shack Color Computer 2 & 3 https://sites.google.com/site/dabarnstudio/Co-Contributor, Co-Editor for CocoPediahttp://www.cocopedia.com/wiki/index.php/Main_PageE-Mail: ooogalapasooo at aol.com  -----Original Message-----From: Walter Zambotti <zambotti at iinet.net.au>To: 'CoCoList for Color Computer Enthusiasts' <coco at maltedmedia.com>Sent: Thu, Jun 1, 2017 2:24 amSubject: Re: [Coco] Basic09 6309 versionJames Regarding VCC 2.01B and VS 2015.I loaded the VCC solution into VS2015 and attempted to built it.The becker project fails.Good news it is because the bool type is not supported by VS C and this is a known easy fix.Just add #include <stdbool.h> at the top of becker.c and it will build correctly.Hope this helps!Walter-----Original Message-----From: Coco [mailto:coco-bounces at maltedmedia.com] On Behalf Of zambotti at iinet.net.auSent: Sunday, 28 May 2017 3:38 PMTo: CoCoList for Color Computer Enthusiasts <coco at maltedmedia.com>Subject: Re: [Coco] Basic09 6309 versionJamesI managed to test the basic09_6309 MOD function and that now works correctly!Walter ----- Original Message -----From: "CoCoList for Color Computer Enthusiasts" To:"CoCoList for Color Computer Enthusiasts" Cc:Sent:Fri, 26 May 2017 09:09:12 +0000Subject:Re: [Coco] Basic09 6309 version I've been following this thread today (well, yesterday now I suppose) …  I have not given up on making modifications and improvements to VCC … I still plan on getting around to “the list” on GitHub … just have not had time since the beginning of the month. I’m hoping in the next couple or three weeks to find some time.  Nonetheless – I added these two changes from Walter (thanks Walter … if they work anyway, that is, ha! :)) – Walter, are you able to compile and test the code? If not I’m providing it bellow … this is now on my fork of VCC https://github.com/jross9/VCC (contains all the current VCC 2.0.1b changes + what I have done + Walters code)  I wasn’t going release executables until I got further along – but well, what the heck … this is unofficial, think of it as beta testing.  This zip contains executables (VS6 release compile) which includes the changes I have done so far (the big one is the aspect ratio in Window mode works, which is nice – make sure the setting is set inconfig) there are others – you’d have to read my notes on my fork on GitHub  http://jamesross.biz/VCC/VCC-JR_2017-05-26.zip Diff view of walters changes http://jamesross.biz/VCC/Untitled2.png So copy these file from the zip folder  http://jamesross.biz/VCC/Untitled3.png over a copy of and installed VCC like this  http://jamesross.biz/VCC/Untitled4.png If anyone would like to try this and test Walters changes + I would appreciate feedback if they find any problems w/ it ...  James ________________________________________ From: Coco  on behalf of Walter Zambotti Sent: Friday, May 26, 2017 7:14 AM To: 'CoCoList for Color Computer Enthusiasts' Subject: Re: [Coco] Basic09 6309 version Further my last. DIVQ div by zero uses 21 less and not 13 less (which is for DIVD) Anyway with that here are the two hopefully corrected instructions including corrected  cycle times and div by zero trapping. case DIVQ_E: //11BE Phase 5 6309 CHECK postword=MemRead16(IMMADDRESS(PC_REG)); if(postword) { temp32=Q_REG; W_REG=temp32/(postword); D_REG=temp32%(postword); cc[N] = NTEST16(W_REG); cc[Z] = ZTEST(W_REG); cc[C] = W_REG&1; cc[V] =1; //NOT DONE PC_REG+=2; CycleCounter+=InsCycles[md[NATIVE6309]][M3726]; } else { CycleCounter+=InsCycles[md[NATIVE6309]][M3726]-21; DivByZero(); } break; case DIVQ_X: //11AE Phase 5 6309 CHECK postword=MemRead16(INDADDRESS(PC_REG++)); if(postword) { temp32=Q_REG; W_REG=temp32/(postword); D_REG=temp32%(postword); cc[N] = NTEST16(W_REG); cc[Z] = ZTEST(W_REG); cc[C] = W_REG&1; cc[V] =1; //NOT DONE CycleCounter+=InsCycles[md[NATIVE6309]][M3635]; { else { CycleCounter+=InsCycles[md[NATIVE6309]][M3635]-21; DivByZero(); } break; -----Original Message----- From: Coco [mailto:coco-bounces at maltedmedia.com] On Behalf Of Walter Zambotti Sent: Friday, 26 May 2017 3:03 PM To: 'CoCoList for Color Computer Enthusiasts'  Subject: Re: [Coco] Basic09 6309 version I have had a look at hd6309.c and there are a number of 'concerns'relating to the 6309 emulation. If you look at the DIVD_M/E/D instructions for instance the: 1. CycleCounter appears to be erroneously incremented twice in the E & D variants: 2. The divide by zero cycle counter appears to be just plain wrong25-13 should be 12 for instance. There is an implementation of DIVQ_E how ever it doesn't implement the correct cycle count for division by zero nor does it raise the div by zero interrupt. I have added this to the X variant suggestion. But given that I have provided an X variant suggestion further below. Also the 6309 instruction set manual says this about the cycle counter for most of the DIV instructions: If a range overflow occurs, DIV? use 13 fewer cycles than what is shown in the table. Since determining an overflow still requires the full results to be produced there should no difference to the cycle counter. I suggest the manual should have said if a div by zero occurs then ... It seems that incorrect cycle counters probably don't stop the emulator from working fully but may affect timing dependant code. case DIVD_M: //118D 6309 NITRO *spostbyte=(signed char)MemRead8(PC_REG++);  if (*spostbyte)  {  *spostword=D_REG;  stemp16= (signed short)D_REG / *spostbyte;  A_REG = (signed short)D_REG % *spostbyte;  B_REG=(unsigned char)stemp16; cc[Z] = ZTEST(B_REG); cc[N] = NTEST16(D_REG); cc[C] = B_REG cc[V] =(stemp16 >127) | (stemp16  255) | (stemp16 < -256) ) //Abort  {  D_REG=abs (*spostword);  cc[N] = NTEST16(D_REG);  cc[Z] = ZTEST(D_REG);  }  CycleCounter+=25;  }  else  {  CycleCounter+=17;  DivbyZero(); }  break; case DIVD_E: //11BD 6309 02292008 Untested  *spostbyte=(signed char)MemRead8(IMMADDRESS(PC_REG)); if (*spostbyte) { *spostword=D_REG; stemp16= (signed short)D_REG / *spostbyte;  A_REG = (signed short)D_REG % *spostbyte;  B_REG=(unsigned char)stemp16; cc[Z] = ZTEST(B_REG); cc[N] = NTEST16(D_REG); cc[C] = B_REG cc[V] =(stemp16 >127) | (stemp16  255) | (stemp16 < -256) ) //Abort  {  D_REG=abs (*spostword);  cc[N] = NTEST16(D_REG);  cc[Z] = ZTEST(D_REG);  }  CycleCounter+=25; // So either this  }  else  {  CycleCounter+=17; //and this  DivbyZero();  }  CycleCounter+=InsCycles[md[NATIVE6309]][M2827];//or this but not both  break; case DIVD_D: //119D 6309 02292008 *spostbyte=(signed char)MemRead8(DPADDRESS(PC_REG++)); if (*spostbyte) { *spostword=D_REG; stemp16= (signed short)D_REG / *spostbyte;  A_REG = (signed short)D_REG % *spostbyte;  B_REG=(unsigned char)stemp16; cc[Z] = ZTEST(B_REG); cc[N] = NTEST16(D_REG); cc[C] = B_REG cc[V] =(stemp16 >127) | (stemp16  255) | (stemp16 < -256) ) //Abort  {  D_REG=abs (*spostword);  cc[N] = NTEST16(D_REG);  cc[Z] = ZTEST(D_REG);  }  CycleCounter+=27; // Increment here  }  else  {  CycleCounter+=19; // and here 27 -13 should be 14  DivbyZero();  }  CycleCounter+=InsCycles[md[NATIVE6309]][M2726]; // but NOT also here  break; case DIVQ_E: //11BE Phase 5 6309 CHECK postword=MemRead16(IMMADDRESS(PC_REG)); temp32=Q_REG; W_REG=temp32/(postword); D_REG=temp32%(postword); cc[N] = NTEST16(W_REG); cc[Z] = ZTEST(W_REG); cc[C] = W_REG&1; cc[V] =1; //NOT DONE PC_REG+=2; CycleCounter+=InsCycles[md[NATIVE6309]][M3726]; break; Suggested DIVQ_X instruction (based on DIVQ_E) case DIVQ_X: //11AE Phase 5 6309 CHECK postword=MemRead16(INDADDRESS(PC_REG++)); if(postword) { temp32=Q_REG; W_REG=temp32/(postword); D_REG=temp32%(postword); cc[N] = NTEST16(W_REG); cc[Z] = ZTEST(W_REG); cc[C] = W_REG&1; cc[V] =1; //NOT DONE CycleCounter+=InsCycles[md[NATIVE6309]][M3635]; { else { CycleCounter+=InsCycles[md[NATIVE6309]][M3635]-13; DivByZero(); } break; -----Original Message----- From: Coco [mailto:coco-bounces at maltedmedia.com] On Behalf Of David Ladd Sent: Friday, 26 May 2017 1:19 PM To: CoCoList for Color Computer Enthusiasts Subject: Re: [Coco] Basic09 6309 version James, Thank you for pointing that out. Actually I went through reviewing the hd6309c file and found several6309 OpCodes that aren't implemented yet. So we need to stay vigilant on making sure to test programs on real CoCo's with real 6309's first before blaming the code/programs. As we are finding out that VCC has some CPU instructions related to the 6309 that aren't supported yet. Walter, good find and bringing this to the list. I am personally surprised that we haven't had this happen more often. More stuff to add to the list of things to work on. +-----------------------------------------------------------------------+ | David Ladd a.k.a. PacoOtaktay a.k.a. Drencor |  | YouTube: http://www.youtube.com/user/PacoOtaktay |  | YouTube Gaming Live:https://gaming.youtube.com/user/PacoOtaktay/live |  | Websites: http://dwladd.com & http://www.theterrorzone.com |  | G+: https://plus.google.com/113262444659438038657 |  | G+: https://plus.google.com/+DavidLaddPacoOtaktay |  | |  | Do you have your CoCo 3 yet? |  +-----------------------------------------------------------------------+ On Thu, May 25, 2017 at 4:13 PM, James Jones  wrote: > If https://github.com/VCCE/VCC is any indication, a number of the  > DIVQ_* cases in hd6309.c sit unimplemented--or more accurately, it  > looks like only DIVQ_E is implemented. The rest mostly emit a log  > message and all count the number of cycles the instruction takes. > > On Thu, May 25, 2017 at 3:22 PM, Wayne Campbell  > wrote: > > > I was just covering the bases. In the julian day thread it was  > > suggested  > I  > > try running the 6809 version in VCC and see what happens, so I did. > > > > On Thu, May 25, 2017 at 12:07 PM, Bill Pierce via Coco <  > > coco at maltedmedia.com  > > > wrote: > > > > > The 6809 version of basic09 would not have a "divq" instruction as  > that's  > > > exclusive to the 6309 processor, so it's only logical that if the  > > > divq function of VCC is bugged, the 6809 software should run fine. > > > This only seems to be happening when that instruction is encountered. > > > > > > > > > > > > > > > > > > Bill Pierce > > > "Charlie stole the handle, and the train it won't stop going, no  > > > way to slow down!" - Ian Anderson - Jethro Tull  > > >  > > > My Music from the Tandy/Radio Shack Color Computer 2 & 3  > > > https://sites.google.com/site/dabarnstudio/ > > > Co-Contributor, Co-Editor for CocoPedia  > > > http://www.cocopedia.com/wiki/index.php/Main_Page > > > > > > E-Mail: ooogalapasooo at aol.com > > > > > > > > > > > > > > > > > > -----Original Message----- > > > From: Wayne Campbell > > > To: CoCoList > > > Sent: Thu, May 25, 2017 1:54 pm > > > Subject: Re: [Coco] Basic09 6309 version  > > >  > > > Oh, and I was still emulating the 6309 processor.On May 25,2017 > > > 10:53 > > AM, > > > "Wayne Campbell"  wrote:> I put the 6809  > > > version  > of  > > > B09 in the CMDS directory and ran a copy of the> JD procedure with  > > > no  > > > FLOAT() functions. It ran without errors and no> Hitting DIVQ_X  > > > error > in  > > > VCC.>>> On May 25, 2017 2:17 AM, "Bill Pierce via Coco" <  > > > coco at maltedmedia.com>> wrote:>>> I did a search through the  > > > nitros9 sources and only found 6 references to>> "divq". 2 were in  > > > asm and  > disasm  > > > which were only references for the>> programs asm/disasm  > > > functionality  > > and  > > > no actual running code, 2 were in 2>> of Boisy's test routines in  > > > one  > of  > > > his folders (not used for anything), and>> the other 2 were in  > > > basic09  > > and  > > > runb. So they are the only 2 nitros9>> modules that would rare  > > > their  > ugly  > > > heads on this.>>>> I do remember some years ago when Joseph was  > > developing  > > > VCC that there>> was some mention of something being missing in  > > > the  > 6309  > > > core. I've searched>> but couldn't find where I saw it (it was  > > > loooong ago). I've even mentioned>> it in the issues on the VCC  > > > repo issues  > page. > > > We may have found what it was.>>>>>>>>>>>> Bill Pierce>> "Charlie  > > > stole  > > the  > > > handle, and the train it won't stop going, no way to>> slow down!" > > > - > Ian > > > Anderson - Jethro Tull>>>> My Music from the Tandy/Radio Shack  > > > Color Computer 2 & 3>>  > > > https://sites.google.com/site/dabarnstudio/>> > > > Co-Contributor, Co-Editor for CocoPedia>>  > http://www.cocopedia.com/wiki/  > > > index.php/Main_Page>>>> E-Mail:ooogalapasooo at aol.com>>>>>>>>>>>> > > > -----Original Message----->> From: Walter Zambotti <  > > zambotti at iinet.net.au>>>  > > > To: 'CoCoList for Color Computer Enthusiasts' > > > >> > > > Sent: Thu, May 25, 2017 3:31 am>> Subject: Re: [Coco] Basic096309 > > > version>>>> >This could explain the Hitting DIVQ_X error that VCC  > > > version>>>> >keeps  > > > complaining>> about.This error could be isolated to either VCC or  > > > BASIC09_6309.We can>> eliminate which one is the problem by  > > > running the  > > > BASIC09_6309 version on a>> real 6309 coco and not in VCC. If the  > > > same problem persists then the>> problem in in BASIC09_6309. If  > > > it does not persist then the problem is in>> VCC.I don't have a  > > > 6309 in my CoCo so  > I  > > > can't volunteer to help.Any takers>> out there?Walter-----Original  > > > Message-----From: Coco [mailto:>> coco-bounces at maltedmedia.com] On  > > Behalf  > > > Of Wayne CampbellSent: Thursday,>> 25 May 2017 12:11 PMTo: > > > CoCoList < > > > coco at maltedmedia.com>Subject: Re:>> [Coco] Basic09 6309  > > > versionThis  > > could  > > > explain the Hitting DIVQ_X error that>> VCC keeps complaining  > > > about.On  > > May  > > > 24, 2017 8:52 PM, "William Astle" > lost at l-w.ca> wrote:My guess  > > > is  > the  > > > VCC isn't implementing DIVQ>> correctly, probably by not providing  > > > the remainder unless regular integer>> division is also  > > > failing.--Coco  > > mailing  > > > listCoco at maltedmedia.comhttps://>> pairlist5.pair.net/mailman/  > > > listinfo/coco-- Coco mailing>> listCoco at maltedmedia.comhttps://  > > > pairlist5pair.net/mailman/listinfo/coco>>>> -->> Coco mailing  > > > list>> Coco at maltedmedia.com>> https://pairlist5.pair.net/  > mailman/listinfo/coco  > > >>>--  > > > Coco mailing listCoco at maltedmedia.comhttps://  > pairlist5.pair.net/mailman/  > > > listinfo/coco  > > >  > > > --  > > > Coco mailing list  > > > Coco at maltedmedia.com  > > > https://pairlist5.pair.net/mailman/listinfo/coco > > > > > > > > > > > -- > > Wayne > > > > The Structure of I-Code > > http://www.cocopedia.com/wiki/index.php/The_Structure_of_I-Code > > > > decode > > http://cococoding.com/wayne/ > > > > -- > > Coco mailing list > > Coco at maltedmedia.com > > https://pairlist5.pair.net/mailman/listinfo/coco > > > > -- > Coco mailing list > Coco at maltedmedia.com > https://pairlist5.pair.net/mailman/listinfo/coco > -- Coco mailing list Coco at maltedmedia.com https://pairlist5.pair.net/mailman/listinfo/coco -- Coco mailing list Coco at maltedmedia.com https://pairlist5.pair.net/mailman/listinfo/coco -- Coco mailing list Coco at maltedmedia.com https://pairlist5.pair.net/mailman/listinfo/coco -- Coco mailing list Coco at maltedmedia.com https://pairlist5.pair.net/mailman/listinfo/coco-- Coco mailing listCoco at maltedmedia.comhttps://pairlist5.pair.net/mailman/listinfo/coco-- Coco mailing listCoco at maltedmedia.comhttps://pairlist5.pair.net/mailman/listinfo/coco--Coco mailing listCoco at maltedmedia.comhttps://pairlist5.pair.net/mailman/listinfo/coco-- Coco mailing listCoco at maltedmedia.comhttps://pairlist5.pair.net/mailman/listinfo/coco


More information about the Coco mailing list