****************** * Issue Number 7 * ****************** April 2007 Free to Download Magazine for Commodore Users NEWS Lotek64 #20 is out 10:15 New issue of the German language magazine Lotek64 #20 is finished Content of Lotek64 #20: Interview with Yogibear / Protovision Hobby+Elektronik 2006 report Religious gaming Fighting game marathon 20 issues of Lotek64 Keyrah and Competition Pro Beast (synthesizer) Handhelds, part 7: GP32 The Last Ninja family ...and a lot more! The pdf version is now available at www.c64-mags.de. -=-=-=-=- Winvice The Versitile commodore emulator receives an upgradehttp://www.viceteam.org/ This file lists the most important user- visible changes for eachofficial release of VICE. See `src/ChangeLog' for a more detailedlist of all the changes in the code. * Changes in VICE 1.21 ====================== ** General - Added sound recording support. - Added aiff, iff, mp3 and wav sound dump drivers. ** C128 changes --------------- - Added digimax support. - Fixed some minor VDC graphics bugs. * * C64 changes -------------- - Added MMC64 support. - Added digimax support. - Added Action Replay III support. - Improved compatibility of TFE emulation. ** PET changes -------------- - Added SID cartridge support. - Extended the PET REU emulation to include 512/1024/2048KB. ** PLUS4 changes ---------------- - Added SID cartridge support. - Fixed some minor TED graphics bug. ** VIC20 changes ---------------- - Added SID cartridge support. ** Drive changes ---------------- - Added support for Dolphin DOS 2 & 3 and Professional DOS 1571. The GUI is partially missing, command line switches have to be used. ** Unix changes --------------- - New Hungarian translations. - Fixed some bug in the XAW file selector. - New fullscreen mode based on XRandR - although restriced to XVideo HW scaling. See also BUGS. - Raster synchronization based on openGL extension `GLX_SGI_video_sync'. See openGL-sync.txt for details. - Fixed colormap handling on certain Gnome systems (sporadic black menus, e.g. reported by some FC users). - New fullscreen mode based on XRandR - although restriced to XVideo HW scaling. See also BUGS. - Raster synchronization based on openGL extension `GLX_SGI_video_sync'. See openGL-sync.txt for details. - Fixed colormap handling on certain Gnome systems (sporadic blackmenus, e.g. reported by some FC users). - ffmpeg support should work again. ** MS-Windows changes --------------------- - Added Hungarian translations. - Added giflib/libungif dll support. ** OS/2 changes --------------- - Fixed a video resource bug that prevented VICE from running. ** Mac OSX X11 changes ---------------------- - Added Gtk+ Port - Introduced single "smart" Application Bundle VICE.app - Added command line launcher for Terminal.app and xterm - Added build scripts for all external libraries and universal buildsof VICE ** AmigaOS changes ------------------ - Fixed some UI dialog bugs. - Added Hungarian translations. - Added more (previously missing) UI elements. - Added native MorphOS icons. - Fixed for native AmigaOS4 compile. - Added VBCC build scripts. - New experimental ppc-warpos port. - New experimental ppc-powerup port. ** BeOS changes --------------- - Fixed to also run on ZETA. - New ppc-beos port. - Added (previously missing) UI elements. ** Miscellaneous changes ------------------------ - Fixed the setting of illegal filenames. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Readers Comments Commodore Machines Additional Information By Viktor Varga I have read all the issues of your magazine, and in the 4th Issue I read an article about the machine types. My additions to these: 1) The SX-64 dies, because the Commodore markets the SX-64 and DX-64 together (sx-64 with two drive) and lot of people waited for the better version. (This resulted in poor sales of the SX-64.) (if you search the net for the same stories, this vapourware-like condition killed the company, who manufactured the enterprise computer. They advertised a computer together with the Enterprise, so the sales was not good, and they did not get enough sales to release that.) 2) The Plus/4 and C16 has more sales in east Europe for two reasons: - the modern computers like Motorola chiped Amigas were on the COCOM list. - they were sold on discount prices, when the western market said no for these types of machine. These were my comments. About design question :I have read, what is with the design of the Commodore. A design was not covered by the copyright law nowadays, but it should be a registered product design like patents. So you should check the local patent office, is there any Valid patent about it. About your magazine Sometimes I miss the referenced pictures from the page, and sometimes, I cant understood, why is missing something. (for example: in the last issue, there was an armalyte copyright in the middle of an article. Some of the articles are only philosophing, which sometimes seems tobe agonising. :) If you want to extend your article why not the Commodore is the popular computer nowadays, there are some simple reason: 1) Pc was modular, you should not get the whole thing, if you don't have enough money for it 2) By the time, regarding to evolution of peripheries, easy to replace the old part with a new technology 3) There are concurrent manufacturers, so there are market competition, which is pushes the price down.These reason, why cant Commodore stay on the market, and why Applegoes to the X86 platform. It enough for today. :) Viktor COMMODORE FREE Victor Thanks for the information, but some of the screenshots from Commodore free were threatened with Copyright infringement, even items I had copies with Vice emulator, the copyright holder still owns the images. JOHN Hi, I just found your website and downloaded issues 4 & 5. I see mention that you had to take off issues 1-3. I just wanted to ask if you still have them and if you could email them to me? I'd love to read the earlier issues and I'm also sort of a collector so having the entire set in pdf would be great. :) If you don't have them, do you know if they are found elsewhere on the web? Thanks John COMMODORE FREE Again I have had lots of requests for the earlier articles, but as agreed with the copyright holders I cant send them out or have them for download. Jocelyn I just discovered your magazine and i want to thank you very much for this great piece of art. I'm a huge fan of the commodore 64 (i programmed a lot in the 80's!) and i'm glad that i found your magazine. I was searching for a Commodore 64 dedicated magazine and this is the only one i found.Thanks again! Regards, Jocelyn Commodore Free Hello thanks for the Comments, you know what I am going to say, why not write about your programming experiences from the 80`s and send them to the magazine Stephane First off, awesome idea materialized into an excellent reading experience. I've enjoyed it beyond my descriptive abilities. :-). Truly brilliant work. I have two questions. 1, Since I just noticed commodorefree.com (via a forum post about your issue 5 being out. I read issue 5 then issue 4. There are copyright at stakes for issue 1 to 3 and that's really too bad as I would have loved to read them as well tremendously. There's no way to get a copy of those 3 first issues is there? I would really appreciate that alot out of my own personal interest and curiosity. 2. I've read what you accept for submissions. Though it didn't quite seem like an official list of article types per se ;-). So my second question is if you would accept a tutorial on some programming practice on any commodore computer. For example: how to program sounds on the commodore 28 in BASIC 7.0 among other ideas I have. Stephane Commodore Free Any articles would be welcomed, especially articles related to programming, but even experiences with Commodore machines would be welcome. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Interview with Wills Patten By Commodore Free Magazine Q. can you introduce yourself to our reader A. I am 79 years young and a passion for Commodore beginning with a Vic- 20 in 1984. I am married to a wonderful saintly lady (Phyllis) who, while not a Commodore user herself (uses an emachine) supports me and encourages me with my devotion to Commodore. Q Wills can you tell us about your magazine A. My Journal is called GEOS Publication. Currently it has been a 16 page publication, the first 8 pages of which are devoted specifically to Commodore Computers and Commodore GEOS predominantly. The second 8 pages (maximum allowed by geosPublication) is a conglomeration of humor, Documentations on history, trivia, pee cees, cartoons, self-esteem, etc. One of my obstacles was I began getting further and further behind in keeping up with getting issues out on time due to various obstacles related to keeping my Commodore system operative. At one time my subscriptions were almost 200 strong, but currently has reduced to just under 50, which tends to be the story of many Commodore publications. Q. I understand you have now closed the magazine can you explain why A. The above explains some of the reasons. Beyond this, due to lack of revenue, and trying to keep it going with money out of my wife and my joint bank account, the margin of profit has been zilch for several years. I do not have the cash to invest in my business as I should be able to. Another reason is an inexcusable fault of my own, somehow I lost my mailing list, and due to a mix-up in up-grading my HD I lost a file of my current mailing list. If I find a fairly current mailing list (my good wife correctly tells me I am a poor housekeeper in my office) I intend to put out one more issue, which will give my currently paying subscribers (I have more than I should complimentary subscriptions) some options on future alternatives they will have.) Q. Tell us about Commodore what machines do you own A. My system consists of A Commodore 128, 1571 drive, FD-2000 drive (currently inoperative), a RAMLink, 2 gig HD, Zoom Modem, and a Commodore 1802 Monitor. I also have a pee cee, an emachine with 40 gigs, 3 1/2" drive, HD, monitor, external zip drive; all of which I consider supporting hardware for my Commodore. I obtain and download for my Commodore my graphics and documents for use in my Journal. While my first love has and and always will be my Commodore system, finally succumbing to accept as a gift a pee cee from my son and wife, I have never been sorry. I now have a lot of respect for what my pee cee can do for my Commodore. Q. What is your favourite Commodore magazine A. At present I subscribe to no Commodore magazine, since my predominant love in the Commodore world is for GEOS. I used to take the CMD Magazine, and before that RUN and one or two others. Q. Do you have any other projects on the go with the closure of your magazine A. Well, at first a thought I would just re-retire (I am a retired minister) from the desktop publishing business, and just dabble in basic programming and maybe either machine language or GEOS programming. I may still do some of this. But then I got the inspiration that I do not yet wish to be put out to pasture... yet. I am having a dialog with Gaelene to see if I can convert my present GEOS Publication website to a predominantly personal website with perhaps a little information and promotion of another publication with 8-16 pages, probably not copywrited as GEOS Publication is. It will be partly a family website, partly to publicise this new publication. It will be financed partly by me and freewill contributions. It will be a conglomeration of documents, including Commodore, pee cees, humour, self-esteem and moderate Christianity, cartoons, and God only knows what else. Q. Why use Commodore what was the pull of the machine A. My continuing devotion to Commodore is today as it was in the 1980s, the comparatively ease of use and learning how to use it. Pee Cees are so much more complicated, but I have not found them to difficult to use for my own needs. But as I have always insisted, I have always loved my Commodore system first and foremost, and primarily use my pee cee system to support and enhance my Commodore work. Q. What do you think Commodore failed to do in its history My thinking on this may have some disagreement with other Commodore users, and I respect that. However here is my thinking on this: (1) I think Commodore executives were too afraid to spend money for advertising more and often venturing out and manufacturing for sale some other brainstorm upgrades and improvements etc. (for example, the C65) Perhaps they were afraid they could not do this and maintain their high salaries. But irregardless they eventually went bankrupt from poor management. (2) I feel both CBM and Commodore users (for the most part) have always been too smug and isolated from the whole computer world. The concept and reality of IBM compatible computers (PCs) was the right idea and became a great advantage for the pee cee world of computers. Commodore did of course dabble in this, but did not push and promote this properly with their compatible IBM computers. I believe I am correct that the Amiga also had compatibility slots. We should have recognised that we can still maintain our independence and yet work cooperatively and congenially with the pee cee world community of computers. The success of the United States has always been using the concept of both competition and cooperation in a balanced manner. Perhaps CMD had some intensions in these concepts since their hardware copied to some extent the pee cee hardware. Q. how do you feel seeing Commodore name on new devices like MP3 players etc A. I use Windows Media players and have not yet acquired a MP3 player so I know little or nothing about this. Q. everyone has what I call a Dumb day when everything goes wrong what was your dumb day and what went wrong A. I believe I covered this also at least somewhat. I have had hardware breakdowns and at first Maurice was excellent at meeting my needs. Him buying out CMD was a brainstorm, but I guess was more than he could sufficiently chew. But now I have problems getting my Super CPU repaired and if necessary find a source for a new one I can afford. Part of this whole thing is mental, and I have faith in the Commodore hardware and programming and utilities, etc. I still do, but may not live to see what the future holds. For me it is amazing how we have survived and continued to hold together in spite of our difficulties. Homestewad is a wonderful bond for Commodore users, Gaylene and Rod a tremendous Accessories and facilitator, etc. We have many pillars of our Community and a few are options that depend on the nature of the individual Commodore operator and what his or her objectives are. Q. what did you learn from the Dumb day A. That there is always a better day coming. Q. have you anything you would like to add I think I probably have said enough, except I owe much of my motivation to my wife and of course most of all to Almighty God. Willis Thanks for your time Good luck Take care My pleasure.... My very best to everyone :>)={=< -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ********************* * Programming II * ********************* By Dave Moorman (LOADSTAR) THE SHELL When you have played with your program long enough -- and have some idea how variables and PRINT work -- type: NEW We are going to now prepare a disk or disk image and save a program. As you certainly know, when you turn off a computer, anything in memory will disappear -- lost forever. To save our work, we have to SAVE our work. [If you are learning how to program from the VICE emulator on NICKEL GAMES, you won't have to do this until later. Your emulator is already "attached" to a disk image called MYDISK.D81."] PREPARING A DISK -- REAL C-64 Connect the disk drive to the computer and turn both on. Type (carefully and exactly) OPEN 1,8,15,"N0:MYDISK,01":CLOSE1 And press . When the cursor reappears, Type: LOAD"$",8 Then LIST. This will show your disk directory. It also erases whatever program is in memory. PREPARING A DISK IMAGE -- VICE Press . Navigate to the folder where you want to keep your programs. You can create a new folder if you want -- just like with any Windows program.Type in the filename textbox: mydisk but do not press yet. Instead, look down at the lower left of the dialog box. You will see the word VICE in a textbox. Change it to mydisk Also change the ID to 01. Another box shows D64. This will be fine for now. Click on CREATE IMAGE. Then click OPEN. You have just created a disk image and attached it to VICE. NOTE: Every disk or disk image should have a unique ID. We just used 01 in the above examples. Whenever you format a real disk or make a disk image, give it a different ID, which can be any two alphanumeric characters. When you launch VICE (other than with NICKEL GAMES), you will need to "attach" a disk image to it. This is just like putting a real disk in a real drive. Press , navigate to the disk image you want (it will have a .D64 or .D81 extension) and click OPEN. Getting a disk directory in VICE is the same as with a real C-64: LOAD"$",8 LIST Now you are ready to create a Scratch and Save Shell. NEW your memory and type: 59999 END 60000 D = PEEK(186): IF D<8 THEN D=8 60001 OPEN1,D,15,"I0": N$="SHELL.RTN" 60002 PRINT#1,"S0:"+N$:CLOSE1 60003 SAVE N$,D 60004 VERIFY N$,D: END Be sure you have typed everything correctly. You MUST type out all the letters in "PRINT#1," on line 60002! Then Type: GOTO60000 When you are successful (IE, no errors), Type: LOAD"$",8 LIST You should see 0 "MYDISK " 01 2A 1 "SHELL.RTN" PRG 663 BLOCKS FREE. (With VICE, the disk label ("MYDISK") will look strange unless you typed in all capital letters in the textbox in the lower left of the dialog box. Press to make uppercase lower, and the strange characters upper case.) Now, whenever you begin a new program, load your Shell Routine with: LOAD"SHELL.RTN",8 then LIST 60001 And change "SHELL.RTN" to whatever you are going to call your new program. For example: 60001 OPEN1,D,15,"I0": N$="MY FIRST" Save your new program with GOTO60000 While you are working on your program, take a moment every so often to type GOTO60000 in Immediate Mode. Your latest version will be saved to your disk. This technique guarantees that you will always save your program to the correct filename. Whatever name you LOAD will be the name that is scratched and saved. We won't go into all the particulars of this code, except to mention three things. First, you can put more than one command on a line. In fact, a program line can be up to two screen lines long. Second, notice how the numeric variable D is used. It is set to the last used device number -- usually the disk drive from which you loaded the program -- which the computer keeps in location 186. Disks are always device number 8 or higher. By using D, we don't have to think about which device we are using, and the same value will be used every time. Third, by making N$ hold the name of the program, we know that the correct filename will be scratched (S0:) and saved. This is really advanced stuff -- but it serves any programmer so well, I wanted to get you started off right. I learned to do this after a tragic experience. I was working on two programs that worked together. "B.PROG" set things up in the computer (called a BOOT), then loaded and ran "PROG" (the main program). All went fine until I accidentally saved "B.PROG" to the file name of "PROG". Suddenly, I had two files with the Boot program, and lost the main program (and some 30 hours of work) completely. Salvation is not just a theological nicety when it comes to computers. Check out John 3:16 to see what happens to "bad little programs!" (NOTE: They "perish!") So I started using this scratch and save routine with every program. No matter what the name is, it is saved to the correct filename. I learned something else. That main program was getting clunky, with lots of fixes and fixes of fixes. When I lost it, I was about two-thirds through it. By then, I really knew what I needed to do. So recreating it took only a few hours. The result was a much better, faster, more elegant program. Sometimes when a program becomes too ungainly, I clench my teeth and delete it! It means rewriting everything. But often, that is a GOOD THING. LOOPING Computers are great at doing things over and over again. They accomplish this with a LOOP. The program that waits for keystrokes is a loop, asking "Has a key been pressed?" over and over. Here is an Infinite LOOP: 10 GOTO 10 When you run this, nothing will happen! The program keeps jumping to line 10, over and over. On a PC, this would be called a "lock-up!" But you have the key (VICE: ). Press it, and you will break out of the loop. For a more useful (and interesting) loop, try this: 10 X = 0 20 X = X + 1 30 ? X; 40 GOTO 20 Here X is set to 0, then the contents of X have 1 added, the result put back into X. This is called "incrementing." Line 30 prints X, and line 40 jumps back to line 20. X is incremented and printed, then the program loops again. Again, this is an infinite loop. The only way to stop it is to press . What we need is to stop the program when a certain "condition" is true. Hey! we have a Conditional Jump! 10 X = 0 20 X = X + 1 30 ? X; 40 IF X<100 THEN 20 50 END In this case, line 40 asks a conditional question. Is the value in X less than 100? If so, (THEN) we jump back to line 20. If not, we "fall through." We have several conditional operators that compare two values (or strings!). X < A X less than A X > A X greater than A X <= A X less than or equal to A X => A X equal to or greater than A X = A X equal to A X <> A X not equal to A You might want to play around with the above program until you are familiar with how all these comparisons work. Here is an example of two nested loops: 10 Y = 0 11 X = 0 20 ? X; Y 30 IF X < 5 THEN X = X + 1:GOTO 20 40 IF Y < 4 THEN Y = Y + 1:GOTO 11 50 END Try to figure out what this will do before running it. One of the essential skills of a programmer is to be able to read code exactly the way the computer will. You might want to "desk check" this program. Write on a piece of paper: X Y --- --- 0 0 Then, step through the program, changing the values as the computer would: X Y --- --- 0 0 1 0 2 0 etc. FOR-NEXT LOOPS Conditional jumps work just fine, but we have a better way to do counted loops. If you want to count from 1 to 10, you can use: 10 FOR X = 1 TO 10 20 ? X; 30 NEXT 40 END X is set to 1 and when the computer encounters NEXT, X is incremented. When X is greater than 10, the NEXT "falls through" to the next line. We can count by values other than 1. 10 FOR X = 1 TO 100 STEP 5: ? X; 20 NEXT: END We can count backwards. 10 FOR X = 100 TO 0 STEP - 12: ? X; 20 NEXT: END We can even nest FOR-NEXT loops. 10 :FOR X = 0 TO 5 20 : FOR Y = 0 TO 5 30 : ? X*6+Y; 40 : NEXT 50 :? 60 :NEXT 70 END (I indented the inner loop so it is easier to read.) One important thing to remember whenever using FOR-NEXT Loops: Always, ALWAYS exit the loop through the NEXT command. ALWAYS! Whenever a FOR command is encountered, information is stuffed away in a special place in memory called the Stack. If you do something like this: 10 FOR X = 1 TO 10 20 IF X = 5 THEN 40 30 NEXT 40 ? X 50 END You have jumped out of the loop illegally. The stuff on the Stack is not removed, and you can get OUT OF MEMORY ERRORs or other strange problems. If you need to jump out of a FOR-NEXT loop, use code like this: 10 Y = 0: FOR X = 1 TO 10 20 IF X = 5 THEN Y = X: X = 100 30 NEXT 40 ? X, Y 50 END The "found" value will be in Y. If Y is 0, then the value was not found. This will become more important later. Try this routine using different values in line 20 -- such as IF X = 55 THEN.... GOSUB We have mentioned GOTO, which jumps to a given program line number. Sometimes, you will want to use the same code at different times in a program. Rather than write the code over and over, you can write a Subroutine. This example is too simple, but here goes... 10 FOR X = 1 TO 10 20 GOSUB 100 30 NEXT 40 GOSUB 100 50 END 60 : 100 ? X 110 RETURN Line 100 - 110 is the subroutine. When GOSUB 100 is encountered, the program jumps to line 100. When the RETURN command is encountered, the program returns to the place where it did the GOSUB command. Be sure to keep the program from wandering into the subroutine without a GOSUB. You will get a RETURN WITHOUT GOSUB ERROR. To see how it works, remove line 50. ARRAYS Just one more thing before we get to the BASIC Bible -- our list of BASIC commands, functions, and operators. We have discussed how a variable is like a little box. But what if you have several boxes that are in some way related to each other? We have Arrays! If a variable is a box, an array is a chest-of-drawers. Imagine a file cabinet called V$ that has three drawers. The drawers are numbered. We can put string data in drawer 0, 1, or 2. 10 DIM V$(2) This DIMensions the V$ array with three "elements." We always have element 0, so DIM V$(2) has three elements. 20 V$(0) = "DAD" 21 V$(1) = "LAD" 22 V$(2) = "MOM" 30 FOR X = 0 TO 2 40 ? V$(X)" - "; 50 NEXT: ?: END Here is another way to "load" an array: 10 DIM V$(3) 20 FOR X = 0 TO 3 30 READ V$(X) 40 NEXT 50 FOR X = 3 TO 0 STEP -1 60 ? V$(X) 70 NEXT 80 END 100 DATA "MOM","LAD" 101 DATA "SIS","DAD" Each time READ is encountered, the next item in the DATA statements is read into V$(X). Each string item should be set off with double-quote marks. Also, note that no comma is used at the end of line 100. The end of the line serves as a separator between "LAD" and "SIS" .Here is something else you can do with arrays. Add these lines to the above: 80 Y = 0: FOR X = 0 TO 3 85 IF V$(X) = "LAD" THEN Y = X: X = 3 90 NEXT: IF Y = 0 THEN ?"NOT FOUND": END 95 ? V$(Y)" FOUND!": END You can see why it might be important to exit a FOR-NEXT loop legally! You can use arrays to hold lists of information which you can alphabetize or search. While we are at it, here is a simple way to sort an array. 10 DIM A$(3) 15 REM READ IN THE ARRAY 20 FOR X = 0 TO 3: READ A$(X): NEXT 25 REM NOW SORT IT 30 FOR X = 0 TO 2: LO = X: LO$ = A$(X) 40 FOR Y = X + 1 TO 3 50 IF A$(Y), the edit screen goes into "quote mode." Then you can press any keys -- including color, cursor, home, or clear screen, and the action will be embedded in the string. You can try this: 10 POKE 53280, 0 20 POKE 53281, 0 30 ?"WHITE RED "; 35 ?"CYAN" 40 ?"ORANGE BROWN "; 45 ?"LT. RED" (CTRL means CONTROL. On VICE is . C= is the "chicken-lips" Commodore key. On VICE, is . That makes sense, right?) You have a great collection of special graphics characters built into the C-64. On a real machine, you can see them printed on the keys. For VICE users, you will just have to do some experimenting. Try this: 10 ?" 20 ?" 30 ?" You should see HI in large letters. The most important keys are: LEFT T RIGHT T DOWN T UP T UPPER LEFT CORNER UPPER RIGHT CORNER LOWER LEFT CORNER LOWER RIGHT CORNER HORIZONAL LINE VERTICAL LINE About the only letter you cannot make with these 10 graphic characters is an X. Well, that pretty much covers the basics of BASIC structures and controls. Now we have a bunch of commands, functions, and operations to learn. You will want to play with each of these commands to get familiar with them. Then keep this book handy as you begin programming .But mostly, have fun! -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ************************** * HEX FILES PART 2 * ************************** Hello all and welcome to the second part of this course for budding Commodore 64 programmers. In the previous instalment we got to grips with the basics of the C64 itself and introduced a first batch of assembly language commands that, after they're converted to machine code, our C64 can understand. This time around, I plan to bring a few more in to play as well as expand on what's gone before. To begin with, LDA and LDX have both been covered independently last time but they can also work together to much greater effect - so lets get things off to a start straight away with the first little example: ldx #$00 ; set X register to zero lda #$01 ; set accumulator to zero sta $0400,x ; store contents of A into $0400+X rts If we were to run this, a letter A would appear at the top left corner of our screen. Nothing exiting so far, huh? Well, if we were to alter the first command to read LDX #$01 and re- run it the results would be slightly different in that the A would now be one character to the right. So how does this actually work you ask. Well, the first command sets the value in the X register and the second sets the accumulator (A register) in the same way as before. But the STA command has been altered slightly so that instead of just putting the contents of A to a set place (in this case memory location 1,024) it adds the value in X to the location. So if X is 0 then the A character appears at 1,024 and if it were 40 then the A will be one line down because there are forty characters a line.This is the basics of loops in machine code, but before we can introduce them properly we need to first look at another facet of machine code. When writing code it is necessary to leap back and forth through the program in the same way that BASIC can with GOTO's and GOSUB's. Because we have no line numbers we need some way of identifying a piece of code to jump to which is what labels do. A label is not actually a command its a word, but it's like naming a piece of your program so that you can then refer to it by that name. Classic examples are calling a loop loop or your control routine readstick (for reading the joystick) but just about any word that doesn't have an instruction in can be used. Labels do have other uses which we will cover later but for now I'll leave this definition. Time for another example I think, this time showing the use of a label and our next two commands. This next example would, if executed, put eight A's at the top left of the screen: Ldx #$00 ; set X register to zero lda #$01 ; put 1 in the accumulator loop sta $0400,x ; our very first label! inx ; INcrement X (as before) cpx #$08 ; ComPare X to see if it's 8 bne loop ; Branch if Not Equal to loop rts ; exit Why have I confused you and introduced two new commands together? Well, lets cover each command in turn. First, CPX is short for ComPare X and its job is to compare things to the X register (fairly obvious, eh?) In the example above we are checking to see if X has the value of #$08 but if we wanted to put say nine A's we merely change the command to CPX #$09. But when we have done this comparison we need to then do something with the results. And this is where Branch if Not Equal, or BNE comes in. The basic flow of this loop goes like thus. We put a zero in X and a one in A (for character 1, which is the A we would see on screen). Then we hit the main loop which puts the contents of A into location $0400 + X, which is $0400 since X is zero. Then we add one to X and compare it to eight to see if it's reached the end, if not we branch back to loop and put another character down at $0400 + X (which is now $0401 since X is 1). This continues until X does reach eight. When this happens the BNE is ignored (after all, it is equal now) and we fall through to the end. Some of you may be a bit confused by this logic, thinking that since we stop when X reaches eight then surely the eighth character wouldn't appear on screen because the loop would stop, but it makes more sense when you remember that we are counting from zero and not one. So far we have been examining routines purely in theory but I'm sure we are getting to the point where all of you want to start seeing results from your code. From here onwards, we'll be using the C64Asm cross assembler, although the source is fully compatible with the native Turbo Assembler for now. To start you all off I'll just give you the basics of starting it up and we will enter the previous example as source code and show it working. Because we are now moving into the "real" world of programming the listing is slightly different. First, open a copy of Notepad (or your text editor of choice) and enter the following variation on the code we've seen thus far: * = $0900 ldx #$00 lda #$01 loop sta $0400,x inx cpx #$08 bne loop rts The only difference is the * = $0900 at the top; this is a command to tell the assembler where we want our code to go (in this case $0900 in memory, which is 2304 in decimal). Now we want to see our code going, so it's time to assemble it. First, save the file out as "test.txt" and then you'll need to navigate into the same directory in DOS and type c64asm test.txt program.prg and you should see the following appear: Assembling TEST.TXT PROGRAM.PRG created from $9000 to $090c Now that's a happy bunny, it can be fed to a passing emulator or moved to a real C64 and tested; to try it in WinVICE simply drag the PRG file over to the emulator's window and drop it, then type SYS2304 and voila - your very first machine code program! Well, that's the second part over with but before you carry on to the next installment I'll leave you with a little challenge. Can you figure out how to change our example to put eleven characters on the screen in the listing above and change them from "A" to "C"? Why not play with the code and see what you can come up with! If you have any questions about this article or machine code in general, email me and I'll order an economy size tub of rice pudding and come round to yours. The source code for the routines above can be downloaded here for easier reference. http://www.oldschoolgaming.com/files /c64/hex_files/part_2_files.zip Printed with owners pemission [ Jason Kelk ]:. http://www.oldschoolgaming.com -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ***************************************** * JAVA emulation of Commodore * ***************************************** JSIDPlay is Based on JaC64 - Java C64 Emulator. JSIDPlay is available on-line with the HVSC SID collection available from here. Go and have a listen to some of the classic SIDs (if you have not already done it)! Features ADSR emulation including ADSR bug Emulation of combined waveforms using same method as re-sid (sample- lookup) Filter (LP/BP/HP) with resonance Synchronization, ring modulation, etc. Interrupts from both vertial beam and timers which enable different play- speeds (e.g. not only 50Hz tunes) Bank switching PSID sample play (Galway Noise, and ordinary samples) Supports .sid files (PSID, some RSIDs) Animation/Oscilloscope shows all SID voices, ADSR, frequency, etc while playing. Delay and Filter Effect units to get echos, flangers, chorus, filter sweeps, etc added to the SID music. How to use it! If you just want to use it here at my site there is not too much to say about it, just click some of the songs from Hubbard and Galway and listen, or enter a HVSC song path and listen to it instead. Note that there might be some bugs in the player so not every song is working. If you instead want to use it on your own web-site as a music player you need to know a bit more. First, you will need some HTML-code to embed the Java applet into your web page, this is some basic code that should work in most browsers (note that the codebase is up one directory in this case - if in the same, it is not necessary to specify codebase is used for finding the roms, etc which are shared with JaC64). Your browser is ignoring the Java Applet! There are a few important parameters that can be used to get different versions of the applet and to control which sid and song to be played. These are: playsid - which specifies the sid to play when JSIDPlay is loaded/started playsong - specifies the song number to play (if another than the default song should be played) viewmode - specifies what to show. Nothing gives the Normal mode and "status" shows the oscillators, filters, etc: Status Mode, and finally setting the value to "controls" will give Controller Mode. Setting the value to anything else ("none" for example gives a Label-only mode. When the applet is running there are a number of Javascript calls that can be used to control the applet. Some are (see them in action on the JSIDPlay page): playSIDFromURL(String url) - to play a SID from a URL, usage example: Zoids nextSong() - to play the next song of the SID, usage example: Next song reset() - to reset the SID player setEffect(int index) - to set one of the default effects. Where 0 is no effect, 1,2,3 is flanger effect, 4,5 is phaser, 6,7 is chorus, 8,9 is echo, 10,11,12 is feedbacked echo, and 13,14 is filter sweeps. Implementation The implementation of JSIDPlay is heavily based on JaC64 since SIDs are basically C64 code playing a SID-tune. The CPU, CIA Timers, parts of the VIC emulation and the SID chip from JaC64 are used. Emulating SID in Java Emulation of the SID chip have been done on several platforms (which of Amiga was the first, I believe). The challenge to get it working in Java was both performance and the Sound API, especially when I starded before J2SE1.3 when there was no JavaSound ;-). Since JavaSound (javax.sound) it was a much easier task. . JSIDPlay is available on-line with the HVSC SID collection available from here. Go and have a listen to some of the classic SIDs (if you have not already done it)! Features ADSR emulation including ADSR bug Emulation of combined waveforms using same method as re-sid (sample- lookup) Filter (LP/BP/HP) with resonance Synchronization, ring modulation, etc. Interrupts from both vertial beam and timers which enable different play- speeds (e.g. not only 50Hz tunes) Bank switching PSID sample play (Galway Noise, and ordinary samples) Supports .sid files (PSID, some RSIDs) Animation/Oscilloscope shows all SID voices, ADSR, frequency, etc while playing. Delay and Filter Effect units to get echos, flangers, chorus, filter sweeps, etc added to the SID music. How to use it! If you just want to use it here at my site there is not too much to say about it, just click some of the songs from Hubbard and Galway and listen, or enter a HVSC song path and listen to it instead. Note that there might be some bugs in the player so not every song is working. If you instead want to use it on your own web-site as a music player you need to know a bit more. First, you will need some HTML-code to embed the Java applet into your web page, this is some basic code that should work in most browsers (note that the codebase is up one directory in this case - if in the same, it is not necessary to specify codebase is used for finding the roms, etc which are shared with JaC64). Your browser is ignoring the Java Applet! There are a few important parameters that can be used to get different versions of the applet and to control which sid and song to be played. These are: playsid - which specifies the sid to play when JSIDPlay is loaded/started playsong - specifies the song number to play (if another than the default song should be played) viewmode - specifies what to show. Nothing gives the Normal mode and "status" shows the oscillators, filters, etc: Status Mode, and finally setting the value to "controls" will give Controller Mode. Setting the value to anything else ("none" for example gives a Label- only mode. When the applet is running there are a number of Javascript calls that can be used to control the applet. Some are (see them in action on the JSIDPlay page): playSIDFromURL(String url) - to play a SID from a URL, usage example: Zoids nextSong() - to play the next song of the SID, usage example: Next song reset() - to reset the SID player setEffect(int index) - to set one of the default effects. Where 0 is no effect, 1,2,3 is flanger effect, 4,5 is phaser, 6,7 is chorus, 8,9 is echo, 10,11,12 is feedbacked echo, and 13,14 is filter sweeps. Implementation The implementation of JSIDPlay is heavily based on JaC64 since SIDs are basically C64 code playing a SID-tune. The CPU, CIA Timers, parts of the VIC emulation and the SID chip from JaC64 are used. Emulating SID in Java Emulation of the SID chip have been done on several platforms (which of Amiga was the first, I believe). The challenge to get it working in Java was both performance and the Sound API, especially when I starded before J2SE1.3 when there was no JavaSound ;-). Since JavaSound (javax.sound) it was a much easier task. JaC64 - Java based Commodore 64 Emulator JaC64 is completely written in Java and can be run from a modern web browser like Firefox, Internet Explorer or Netscape Navigator. During the development I've been reading a lot of very good documentation on the commodore 64 on the Internet and I'd like to say thanks to all people that made those available ! (many of the documents can be found at ftp.funet.fi/pub/cbm). Supported features CPU 6510, most of the 6510/02 instructions RAM/ROM and Bank Switching (ROM - on / off, IO on / off) Interrupts (IRQ, NMI) from Scan, CIA timers, etc. VIC Graphics (text modes, hi-res, multicolor) - now line-based, sprites (normal, expanded, multicolor, collisions) SID (6581) Sound, with support for most of the SID features such as 3- oscillators/4 waveforms + mix, ADSR, synch., ring-mod, filters, etc. CIA - timers Keyboard & Joystick Support for .c64 .prg/p00 and .t64 files (directly into memory, no real diskdrive or tape emulation) Known bugs Some instructions might be incorrect (some games and demos does not work) CIAs is not 100% implemented Some gfx bugs due to VIC implementatin Use it on your own page You can use this c64 emulator on your own page. The only thing I want from you is a link to my c64 page (http://www.dreamfabric.com/c64/). Download a zip file with the c64 emulator and an example web-page here. Remember that a lot of games does currently not work with this emulator so if you dont get your games started it can be because a bug in the emulator. The downloadable version is much older than the one available on Sourceforge (many more games work using it - I'll update the one here soon). JSIDPlay - a Pure Java SID Player Based on JaC64 I have also made a SID-player (JSIDPlay) available from here. Go and have a listen to some of the classic SIDs! Features ADSR emulation including ADSR bug Emulation of combined waveforms using same method as re-sid (sample- lookup) Filter (LP/BP/HP) Synchronization, ring modulation, etc. Interrupts - IRQ (50 times per second) - soon support for other playspeeds Bank switching PSID sample play (Galway Noice, and ordinary samples) Supports .sid files (PSID, some RSIDs) Better "timing" than ordinary JaC64 emulator (via sound-player) Animation/Oscilloscope shows all SID voices, ADSR, frequency, etc while playing. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ***************************** * Interview with Joakim * ****************************** Commodore Java Emulation http://www.dreamfabric.com/c64/ and http://www.jac64.com Q Please introduce yourself to our reader I am 36 years old and work at the Swedish Institute of Computer Science with sensor network research and development. I have a wife and two sons (20 months and 1 month old). During my spare time I have spent quite a lot of time working with the JaC64 and JSIDPlay project. Q Where do you live I live in Solna, Stockholm, Sweden. Q What introduced you to Commodore I was introduced by a friend that had a Commodore C64. At the time I had a Texas Instruments TI99/4A but it was not as cool and feature packed as the C64. Q what machines do you own and do you still use Commodore machines I currently have a C64 and an Amiga 4000. I am only using the C64 when playing some good old games with my 20 months old son. Q Your website features a Commodore Emulator Implemented in Java and a Java sid player (amongst other items) what is the java fascination In the beginning I just wanted a nice performance test for Java and I was missing my Commodore computers, so I figured that writing a C64 emulator in Java would be a good performance test for Java. Another important thing with Java is that it is quite easy to get it running on the web, in your browser. This makes it possible for people that developed C64 software, to show it live on their websites. Q is the Java Commodore a full implementation Not 100% full implementation, some details missing in the CIA chips and maybe some minor details somewhere else too. But it is close to a full implementation (but with some bugs left to fix). Q Please tell our reader about the Java sid player I am a fan of the SID chip which I think is the coolest chip in the C64 and there are so many nice SID tunes available so I just had to implement a SID player. This was quite easy since I had the emulation of the CPU and the SID chip implemented already. The first version was not playing all tunes very well (no NTSC support, many bugs, etc) but the current version uses the sidplayer routine by Dag Lemm, the same that is used in SIDPlay. Q what are the technical requirements to use this item A recent version of Java (later than Java 1.3). Q This is a dumb question but I presume its only available online Well, I have development versions that I am using. The GUI are very unpolished but it runs on my local computer from the command prompt. If anyone would like to run it "off-line" I'll polish the GUI and release one. Q do Sids have to be in a certain format or can any be used on the player Most Sids work, but Sids using basic is currently not supported, and some other Sids might not work due to bugs in the player. Q How does the player work - does it support drag and drop The player is basically a Java applet which you either give some initial parameters or you call some methods with Javascript. This will cause the applet to do things such as load a Sid song from the Web - site, play next Sid song, or set the volume. It has no support for drag and drop, but for a downloadable version that would be a good feature to have. I guess that using Javascript and clever programming it would be possible to have some kind of drag and drop even in the applet. Q Do you have any other plans for Java Commodore applets? - maybe a image browser I think the plan is the make the JaC64 and JSIDPlay applets as good as possible before going for the next project (an Amiga emulator maybe). Q what problems did implementing a Commodore emulator and a Sidplayer in Java present you It is a lot of work getting all the details right, but luckily there are very good documentation on the C64 on the Internet. I think that the VIC chip is the hardest chip to get right; the timing of every detail needs to be very precise to avoid getting strange graphics bugs. Q From a personal point of view "where did commodore go wrong" I believe that they missed out on a few important things: (1) The did not find ways to upgrade their successful computers. They never released anything with C64 compatibility, and never really managed to make the Amiga powerful enough. (This was what the PC- platform actually handled very well). (2) They were killing themselves with odd marketing tricks - like trying to sell their (low-end) computers as business computers even when they knew that it was the entertainment market that was their main market And from reading "On the Edge" it seems like the management of commodore did not get the chance to everything the liked to do. Q What sorces are available if someone decided to produce there own Java applets All sources are available at sourceforge! Just search for JaC64 and you will find it! Q Is there any question you would like to have been asked Maybe one of the common questions I get from my site: * Will there be a mobile version of JSIDPlay? Yes hopefully, but currently the implementation I have is too slow even for my SE P990 so I guess it might take some time before I have a fast SIDPlayer in Java for mobiles. Interview with Luigi Q please tell our reader a little about yourself A. I'm a 29 years old electronics engineer with a master degree in computer networking and network security. I like computers, informatics, vintage hardware, reading and cooking.I have been working as a software engineer for quite some time now. Having to spend so much time in front of computers to write software is not what I dream, so I'm still searching for an occupation that fits my needs of professional growth and satisfaction. I like to spend some time looking at software and disassembling C64 loaders and games. I belong to the Hokuto Force cracking group, even if I haven't been working at any of our C64 releases for a long time now. Q where do you live A. Currently I live in Italy. Q what was your first experience of Commodore machines A. My family bought a Commodore 64 when I was 12. A few friends of mine had one too, so we used to share and copy tape games. It was really exciting to have a home computer with which to play but also to learn how to program. I think I typed in all the BASIC code listed on the C64 User Manual at least once ;) Q what was you first machine and do you still use Commodore machines A. Before buying a C64 I owned an Atari 2006 with lots of cartridges. I also own an Amiga 500 with a 512 kB memory expansion.Yes, I still use my Commodore machines, e.g. to play some classic titles I like very much. Recently I spent quite some time testing my latest project on my Commodore 64, so I've been playing a lot and I converted some of my tapes to TAP files as well. Q Your website has many items listed can you tell us a little about each item DC2N - This is the latest project of mine. It is a Commodore Datasette emulator with which one can load C64/C16/VIC20 TAP files from a SD Card to the real machines, duplicate tapes, and even produce TAP files from tapes. Tap icon - Well, I thought it was a pity the TAP and T64 formats hadn't their own icon. It was developed using Deluxe Pain IV on an Amiga and later retouched with some PC software. Browsing my TAP folders looks nicer now :) Tap clean front end - Another of the pieces of software on which I'm actually working at. I think many readers know Final TAP from Subchrist Software UK. In short, for those who don't know it: It aims to be the ultimate TAP check and clean tool and it is really appreciated by the TAP community. The source code of the console version has been recently published under the GPL license and a sourceforge project, TAPClean, was derived from it. I belong to its development team and I received a few requests by its users for a GUI version. They used the GUI version of Final TAP before, but the latter is not supported anymore afaik. I guess that, as we went on adding support to decode tape loaders to TAPClean, the GUI version users felt a bit annoyed by the fact there weren't new updates. So that, I decided to write a graphic front end for TAP Clean, with the basic features available in the GUI version of Final TAP. The latest beta, available for download, includes almost all the previously missing features and adds some new ones a few users and I felt the need for. Tap Moni - This is a "remake" of the old "tape justage" tool, aka "head tester". I used the console version to inspect the TAP files I produced some years ago since it runs without problems under plain MS-DOS too. I could spot tape problems and correct a wrong alignment of the datasette heads using this tool.Only the GUI versions are actually supported and updated. There's also a DC2N edition that reads DC2N TAP files directly. C64 basic lister - Along with typing in the programs listed in the C64 user Manual, I produced some good software using CBM BASIC. So that I thought it would have been nice to be able to cut'n'paste the listing into a few electronic documents.The additional features (e.g. nested cycles indentation and alignment of line numbers) came at a later time, together with support for a few extended BASIC sets. I think I will make a library other people may use to untokenize BASIC programs, being then free to list them as they like (with colors, syntax highlighting, and so on). 6510 Dasm 2 - The same considerations done for C64 BASIC Lister apply here, more or less, I'm working at a new engine written from scratch for TAPClean Front End, which together with some new additional features will be the starting point for CBM Dasm v3 (the GTK+ version of this tool). I will make a library other people may use to disassemble 6510 binaries too. BMP2koala - I admit this was born to save to a C64 file format the pictures I produced with a demo program I had once. It was a PCX->C64 image converter supporting various formats, iirc, but the save option was disabled, of course. Tapwav - When I made this tool there was no easy way to save TAP files back to tapes, but the one that consisted into producing a wav file and recording it to tape. I was really involved into the TAP file research at those times, so I decided to make one such tool. Inspect win32 - it's just a demo program. Its console counterpart can extract binary data from TAP files and the GUI version aimed to be very configurable and easy to use. I never found the time to complete it and I don't think there's the need to do so, since TAPClean does that too, and it does that pretty well :) Q i came across you site while looking for a way to print out Commodore basic listings on an emulator, the application is perfect easy to use fast clean and even indents code, my only real problem is when printed to a laser printer the text keeps reverting back to ASCII although its right on screen would you like to comment. A The problem is the lack of a proper fontset to print those listings. I could not work at any but the two that come with the archive. I'm confident someone with the required knowledge will do that sooner or later. Q DC2n this looks a very interesting project can you give our reader more information on this project A. In the beginning I just wanted to make a datasette emulator, without the FAT-16 filesystem support, and without the TAP production feature. Then I realized DC2N would have been much more user-friendly and useful with those additional features. In fact, I know some Linux users are not wanting to use MTap/PTap because they require a FAT partition on the HD and MS-DOS to run. I didn't know about any effective alternative to those tools when I started working at DC2N, so that these features were implemented as well.I designed the hardware, the onboard fimware and the PC software to convert the 16-bit format supported by DC2N to the legacy TAP format. A few net-friends of mine gave me some help with other tasks and a lot of moral support. Q Are all the projects produced by yourself - or do you work with other coders A. I received hints and suggestions from friends (mainly net-friends), consulted online manuals and technical documents, and so on. All the code was written by me from scratch, but the UART and LCD drivers in DC2N which are an excellent work of Peter Fleury, available on his webpages. Q Your site weems to have had a large number of hits 14945 on the webcounter - Have you had many comments or suggestions A. I haven't received so many comments since I created those webpages, but the ones I received helped a lot.I seldom receive suggestions. I'd like to receive more to improve the software and complete the information available from my pages. Recently I received one from a guy who asked me to add a new feature to TapWav. I will be happy to work at that when I get some time. Q I am still a fan of tapes, because for me they recreate my Commodore experience and memories, dashing back from the shops with a game and waiting - watching the flashing orders, then the bitmap graphics and maybe a loading screen then into the game - the build up of excitement still gets to me, although now with tapes and tape machines failing due to age - i spend more time cleaning heads and waiting than actually game play, would you like to comment A. I am a fan of tapes as well, so my suggestion is to wait for a DC2N, then save 2 thousand TAP files to a 4GB SD Card and forget about having to clean and hope before being able to play ;) Q Do you have any other applications indevelopment A. I can think mainly of Graphix 2006 that was not yet mentioned here. Basically I go on working at every tool of mine, updating it whenever its users and I think something should be changed/improved, if I have got enough time to do so.I'm also wanting to write my own game engine after having disassembled The Last Ninja on the C64. I started disassembling it with my own tools and I had lots of ideas to improve/speed up the task. Those ideas are a guideline while writing the disassembler in TAPClean FE, as I told you before. Finally, I'm working at libtap, a multiplatform static library to encapsulate files inside TAP files that load using one of the supported turbo loaders along with the standard CBM loader. The library and a test pogram will be soon published. Q If our reader is thinking he may like to help what should he do to help you A. Comments and suggestions are really welcome here. Also some help/comments about the PCB design of DC2N is welcome. Some help with the visualization and printing of C64 fonts with CBM BASIC Lister would be welcome too :) Q Can any tapes be copied and used on the DC2n or have you found versions that refuse to load A. DC2N can reproduce any TAP file: Even those loaders that rely on very short pulsewidths load fine on a real Commodore 64. The DC2N timer used for PLAY and RECORD runs at 2 MHz, so it's very accurate. Q Has anyone meantined Copyright to you or given problems A. I never received any complain in that sense. I respect intellectual property so that I would do my best to solve any such problem. Q Do you intend keeping a tape archive or are you leaving that to others A. I know about online tape preservation archives with 1600+ verified and cleaned TAP files, and a new one is going to show up. I do know the guys who work at the latter and I trust they will do a very good work, with lots of tape information and crystal-clean verified TAP files. Q DC2n what major problems did you have to overcome with the evelopment of this application A. Honestly one of the major problems was to find the tape port connector that connects DC2N to a real C64. Peepo, who is supporting this project and going to build his own prototype, found out Nicolas was the right person to ask for it, so that I was able to order those to build my prototype and, hopefully, a few others soon. I would order quite many connectors, but actually there don't seem to be enough persons interested in this project to place such an order. Another problem was the production of the PCB, for which I thank Bo and Francis who offered their help. Two PCBs were produced thanks to their interest in this project. Q DC2n does this need a special cable to work A. It has to be connected to the C64 tape port, just as if it was a real datasette. No special additional hardware / software is needed to use it.Actually I'm working with a test firmware and I interact with DC2N by means of its console port, also for debugging purposes, connected to my laptop. The final product won't require the connection to a PC for it has the required onboard buttons and a LCD to interact with. Q is there any question you would have liked to have been asked ? A. "Why do you do that?" It's my way to preserve the glory of Commodore homecomputers and encourage people to develop new projects on those machines by means of cross-platform development tools. I'm not interested in my personal glory or money. Q personally what do you think "commodore did wrong" A. Marketing and hardware design, but I'm not experienced in any of those topics neither ;) It's been a pleasure. I look forward to reading the next issue of the Commodore free magazine :) Cheers, Luigi. Commodore Free For more information and to download these excellent tools visit the website : http://digilander.libero.it/tcengineer/c6 4/index.htm#BL -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ************* * xu1541 * ************* The xu1541 is the modern way to connect CBM IEC bus devices to todays USB equipped PCs and it is meant to replace the printer port solutions based on the so-called original x1541 cable. The xu1541 interface allows you e.g. to attach a VC1541 disk drive to your desktop PC as depicted below. This allows for easy transfer of disk images from and to the old units and helps you preserve your ancient data. The xu1541 is a proprietary interface. It does not transform the vc1541 into a standard usb mass storage compliant device. Instead it provides a means to send low level IEC commands forth and back via the USB. PC software developed to support this interface may then directly access the disk drive and the contents of a disk inserted. It should also be possible to access other IEC devices like printers. Currently e.g. the CVS version of the opencbm software supports this interface. Intended audience This project is still under development. It works with my own 1541-II and my SX-64's internal floppy drive. As a PC only two machines have so far been used which are my Sony Vaio TX3 notebook and my XCube barebone based desktop. First tests by other people have shown that there's still work to be done and e.g. none of the 157X drives currently works. And there's also a problem with an old Pentium based Laptop computer. At least the 157X part should be fixable in software, although i don't own a 157X myself. So i currently recommand this for people who are willing to cope with glitches and will perhaps even do some testing and bug hunting. We hope to have a end-user- proven version, soon. Stay tuned! Design goals The xu1541 was designed to be made of easily obtained parts, easy to assemble and cheap. In order to avoid having to write all the necessary PC software the xu1541 was designed to easily integrate into existing software developed for the original x1541 parallel cable family. The xu1541 is not meant to be the all-in-one cable. It is meant to connect the PC to CBM IEC serial periphery like the vc1541 floppy disk drive. It cannot act as CBM IEC client and can thus not be used to emulate a floppy disk drive with the PC. Furthermore it does not support the so-called nibbler, meaning that the cable cannot be used to transfer copy protected disk images from and to the vc1541. These limitations are due to the simplicity of the design. A CBM IEC floppy emulation requires an interface to respond faster to incoming requests from the C64 than the xu1541 currently can do with the software USB implementation. Nibbler support requires a 8 kilobytes (one vc1541 disk track) buffer which exceeds the 1 kilobytes RAM present in the Atmega8 used on the xu1541. These options are left for future and more complex and more expensive USB to IEC solutions. The xu1541 is fully compatible with all tools delivered with the opencbm package. It therefore fully supports e.g. the tools cbmctrl, cbmcopy, cbmformat and d64copy. It allows to control the disk drive (e.g. read the drive status or the directory), it allows to format a disk, to copy single files from and to the disk, and to copy entire not-copy-protected disk images (d64 images). The xu1541 was developed on and for a Linux PC and the cbm4linux toolset, the linux version and predecessor of opencbm. But the xu1541 has also been designed to work with Windows/cbm4win as well and a port of opencbm to MacOS (cbm4mac) is being planned and should finally be able to bring cheap and simple c64 file transfer to the MacOS platform. Implementation The xu1541 is based on some other projects. These are: lcd2usb, a project of mine which i have based the first xu1541 prototype on, opencbm, formerly cbm4linux, a framework for accessing the CBM IEC bus under linux and windows, cbm4win, the windows incarnation of opencbm, AVR USB, a great software implementation for the AVR, usbtiny, another software USB implementation for the AVR, AVRUSBBoot, a USB boot loader for the AVR, libusb, a user space USB interface library, and libusb-win32, the windows port of the libusb. The firmware of the xu1541 device is based on the software USB solutions for the AVR cpu. It also includes parts of the source code from opencbm, namely parts of the linux kernel driver for the x1541 cable family. This includes generic CBM IEC routines following the communication style of the stock c64 as well as the special "speeder" modes supported by opencbm. On the PC side the opencbm framework has been updated to be able to redirect the IEC communication via USB. It thus now uses the libusb to access the USB based xu1541. Other software intended to make use of the xu1541 cable thus needs libusb support as well. This e.g. means that very old DOS programs like Star Commander cannot easily be updated to support the xu1541 since there's no USB support for DOS. On the other hand the platforms that lack a printer port driver for the old x1541 cable family but have libusb support can be equipped with the xu1541. This is e.g. true for MacOS X, Solaris and some freeBSD platforms which weren't able to support the x1541 printer port cable family and thus weren't supported by opencbm so far. CBM IEC support The current xu1541 can act as a CBM IEC master only. This means that it can play the role of a C64 and control a floppy disk or printer. It can not be connected to a C64 in order to act as a virtual disk drive. This is due to the fact that the software USB solution used in this project prevents the AVR from being able to react fast enough on incoming requests (the USB stack requires that no other hardware interrupts are being used). This very interesting application is left for the successor of the xu1541. In order to support the CBM IEC protocol at a reasonable speed, some aspects of the protocol are handled inside the xu1541 itself. The downside of such an approach is that "speeder" support has also to be hardcoded into the firmware of the xu1541. The speeder support routines present in the current xu1541 version are the "serial1", "serial2" and "pp" (d64copy and cbmcopy versions) routines from the opencbm package. The latest version of the xu1541 firmware package includes a boot loader to ease the implementation of new speeder routines and to help the xu1541 to keep pace with the ongoing development of opencbm. The xu1541 also allows to control each IEC control line seperately over the USB. This approach is only recommended for low performance things like device initialization etc. Using this approach causes a seperate USB transfer to take place for every single change of one of the IEC lines resulting in several USB transfers for every single bit to be tranferred. This is possible but nowhere near fast. This approach is therefore e.g. only being used during device initialization right before the accelerated "speeder" modes are being used. The data transfer phase itself then uses the specialized pre- defined byte transfer routines mentioned before. This entire approach has the advantage of moving only the timing critical byte transfer routines into the xu1541 itself and thus reducing the probability of having to change these functions in the firmware once e.g. bugs in the current speeder protocol implementations are found. Host support Since the xu1541 implements a proprietary USB-to-CBM-IEC protocol only host software aware of the xu1541 is able to make use of the interface. The xu1541 cable is supported by the following host software: CVS version of opencbm opencbm version 0.4.0 needs a patch (this patch is quite old, buggy and for reference only, use the CVS version instead) The hardware The hardware is designed to be as simple as possible. It therefore consists of through-hole components only. Additionally all components are cheap (less than EUR 5 total) and easily available e.g. from Reichelt. The entire device is powered from USB and doesn't need an additional power supply. Version 1.0 of the xu1541 incl. its adaptor for firmware upload The xu1541 includes two IEC connectors (X2 and X3). Both are connected in parallel and can both be used at the same time. The parallel port connector SV1 can be used to connect one of those parallel speeder cables that once were a popular way to speed up the slow 1541 in these ancient days. Version 1.1 of the PCB allows for two popular types of the DIN 6 sockets. The version sold bei Reichelt (see part list below) fits as well as the Hirschmann connector. The parts: Part Qty Name Reichelt Part No. Q1 1 12Mhz crystal, HC49U package 12-HC49U-S R1 1 1.5k ohm resistor 1/4W 1,5k R2, R3 2 68 ohm resistor 1/4W 68 R4 1 220 ohm resistor 1/4W 220 R5, R6, R7 3 10 ohm resistor 1/4W 10 C1, C2 2 22pF ceramic capacitor, 2.54mm KERKO 22P C3, C5 2 100nF capacitor, 5.08mm Z5U-5 100N C6 1 10ćF electrolytic capacitor RAD 10/35 SV1 1 20 pin parallel connector WSL 20G SV2 1 10 pin ISP connector WSL 10G X1 1 USB-B print connector USB BW X2, X3 2 6 pin DIN sockets MABP 6 LED1 1 LED 3mm yellow LED 3MM GE IC1 1 Atmega8-16 DIP ATMEGA 8- 16 DIP -- 1 socket for IC1 GS 28P-S D1, D2 2 3.6V zener diode ZD 3,6 Firmware upload The AVR CPU of the xu1541 requires a firmware to be installed in order to make it work. If no boot loader is installed (yet) on the xu1541, a special download cable/interface connected to connector SV2 is required to download either the firmware or the boot loader. Various download solutions exist from the simple STK200 compatible interface to devices like the stk500, the AVR-Doper, or the AVR Dragon. Once such a cable is connected, the firmware is uploaded from a PC using programmer software like uisp (linux), avrdude (windows, macos and linux) or Ponyprog (linux and windows). The Makefile in the firmware archive is prepared to support the stk200 compatible adapter using avrdude under linux. To use it just enter "make program". This should also work under Windows. The command required to manually flash the firmware (firmware-xxxx.hex in this example) using the stk200 compatible adaptor is: avrdude -c stk200 -p atmega8 -U lfuse:w:0x9f:m -U hfuse:w:0xc9:m -U flash:w:firmware-avrusb.hex or avrdude -c stk200 -p atmega8 -U lfuse:w:0x9f:m -U hfuse:w:0xc9:m -U flash:w:firmware-usbtiny.hex Two versions of the firmware (and the boot loader) exist. Both provide the same functionality but are based on different AVR usb implementations. It shouldn't make a difference which version you use. But if you encounter problems it may be worth giving the other version a try. Please report such incompatibilities. Using the boot loader The xu1541 includes an optional boot loader. This boot loader has to be installed once using the methods explained above. The command required to flash the boot loader (bootldr-xxxx.hex in this example) using the stk200 compatible adaptor is: avrdude -c stk200 -p atmega8 -U lfuse:w:0x9f:m -U hfuse:w:0xc8:m -U flash:w:bootldr-avrusb.hex or avrdude -c stk200 -p atmega8 -U lfuse:w:0x9f:m -U hfuse:w:0xc8:m -U flash:w:bootldr-usbtiny.hex Please notice the different fuse settings which are due to the fact that the boot loader is being installed and run in a seperate memory section than the firmware. Once the boot loader is installed, it can be used to easily install the firmware itself via USB. In order to install the firmware on a boot loader equipped xu1541 the following steps are required: Unplug the xu1541 Place a jumper switch between pin 9 and 10 of the 10 pin header (SV2) Plug device in, the LED should go on and stay on (the boot loader is active) Use upload tool with latest firmware: ./xu1541_update ../firmware/firmware- xxxx.hex Unplug device Remove the jumper switch Plug the device into the USB, the LED should flash a fraction of a second (the firmware is active) Use the device as usual Downloads Till Harbaum-Impressum http://www.harbaum.org/till http://www.harbaum.org/till/xu1541/in dex.shtml -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Telarium forgotten software warehouse By John Ingram I have finally completed my "recollection of eight of the greatest adventures from the greatest adventure publisher this side of Infocom. (Shadowkeep, Below the Root, Dragonworld, Perry Mason and the Manderin Murder, Fahrenheit 451, Amazon, Nine Princes in Amber and Rendezvous with Rama.) Even amongst adventure gamers, Telarium is barely known. This is a crime of huge proportions and needs to be rectified. These games are celebrating their 21st birthday (more or less) and in this world of emulation really need to be played by more people. When I think of all the adulation Infocom has had over the years and yet never mastered person to person shenanigans like Nine Princes in Amber. Never ever managed any real life situations anything like as well as the court case in Perry Mason and the Mandarin Murder, and never created a totally true to the original follow on story for a great novel of our time like Telarium did with Fahrenheit 451, that is as masterful as the original book and is the only computer game in existence that can proudly sit alongside a classic story held in such high esteem.It is so sad that these games are so ignored today, so sad they don't have 1/100th the comments of much lesser games on the various C64 websites. No. They did not release dozens of titles like Activision or Firebird. No, they did not market their titles as well as they could have at the time. But to release eight titles of such consistent high quality within it's genre, to bring these titles to market with the care and attention to packaging they did and to put the effort and time (and no doubt money) to make sure these titles would stand up in every way to the famous books they were based on and the writers of such calibre of Earl Stanley Gardner, Ray Bradbury, Michael Crichton and Arthur C. Clarke, Telarium knew it was taking on a huge challenge to produce works of very high quality to stand alongside well loved books and author's - and it succeeded. With no other titles bought or D64's downloaded have I ever thought, like I did with these Telarium titles that I would have been so much happier giving my money to the programmers, etc. for these titles than to the owners of the games now. Never ever did I think so hard as when downloading Telarium D64's that those D64's would not be enough. That I would want and need the originals, that would be my way of supporting these titles that should have been showered with awards at the time and should be held in reverence as much as any Elite or Alter Ego or Deadline or Enchantment. So I say two thumbs way up for a brave software publisher that took a huge chance and failed, but nevertheless left behind these great software titles to us and to history. They deserve to be remembered amongst the great software houses of the day and their titles should be up there with the best of interactive fiction and gaming in general. History Up to 1984, the company was called Trillium and produced the big 10x8 fold over folio packages. Then it became Telarium and went over to regular box Packaging. Then it was taken over by Spinnaker Software. Telarium also wrote for Wyndham Classics that were designed for younger people. Dragonworld was also written for younger teens, although I enjoy it as an adult and see nothing really childish in it other than the puzzles are easier. There are rumors that titles were dumbed down from Trillium to Telarium, but I haven't seen it. I think it just confusing because there are no age ranges on the packages, you are just supposed to know from the writers/books they are associated with. So Dragonworld for younger people, but Fahrenheit 451 absolutely for adults. Amazon for a wider range of ages, but Rendezvous with Rama probably for a more adult market. All I can say is I played Perry Mason Trillium version way back when, and I am playing the Telarium version now - and I am seeing absolutely no differences that make my mind go - "that ain't right!" Also Shadowkeep is just not out there anywhere that I have found. Not sure it was ever on C64, although some sites say it was. I found the Apple II version and downloaded an Apple II emulator for it. Only game for that emulator I want - so far! But don't forget Shadowkeep is an RPG rather than typical Telarium adventure. Also forgot to say I am searching for Scoop to round out my Telarium titles, although not generally known as a Telarium game but rather a Spinnaker one, so didn't include it in my "Tribute". Telarium went defunct sometime before 1989, but some of the games continued to be marketed by Spinnaker a while after that. Their excellent games and their beautiful packages make TELARIUM-products worth collecting. President speaks "Welcome to Telarium" By C. David Seuss, President of Telarium, Fall 1984 "I've been a game player for years, and as you might expect, I've been interested in computer adventure games for just about as long as the computer has been around. Ever since the original Adventure, I've eagerly tried every new game that's come along. And I've always been frustrated. It's no fun when the "story" suffers from a distinct lack of plot and character development. I wanted real character interaction, a chance to encounter new worlds, deal with new situations. Instead, I often spent hours playing "guess what word the parser is looking for" and solving trivial puzzles. Puzzles are fine, but lots of meaningless puzzles and the frustration of getting terminally stuck just don't do it for me. In each TELARIUM game, you are the main character. All the puzzles you encounter are ones that would be encountered if you were really there. TELARIUM is the expression of a would-be adventure game player. We've worked hard to produce games that aren't filled with the frustrations that have plagued so many other games, and to build in real plots and characters. We're not all the way there yet. But we're trying. Let me know what you think." Links http://www.if- legends.org/~adventure/Telarium_Cor poration.html -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Interview with Christian Vogelgsang Creator of Diskimagery64 By Commodore Free Magazine Q Please introduce yourself to our reader Hi, my name is Christian Vogelgsang. I am a 34 year old software developer, currently working in a small software company that I founded with 5 Collegues after leaving university. We are developing CAD/CAM solution, mainly for the automotive industry. Q Where do you live I live with my fianc‚ Simone in Erlangen, Germany. Erlangen is a small university town located near Nuremberg in Bavaria in the south of Germany. Q What introduced you to Commodore machines Back in 1982, my father introduced me to the wonderful world of home computers by buying one of the first Commodore 64 computer in our town. Actually, the only shop which sold them was located in Munich and that was a 180 km (per direction) journey to reach the store. In the first two years my dad mostly worked with this machine, but Fortunately he also bought a joystick and introduced me to computer gaming. Gaming Was real fun and showed what was possible on this fascinating machine. But I soon got bored with gaming alone and started to program with BASIC. That quickly lead me to the point where I found out that the small command set of version 2.0 was not enough to program something not totally boring... As a Christmas gift I got a Simon's BASIC cartridge that allowed me to start programming some graphics stuff. A few months later I bought myself the great C64 Reference Manual and a Sybex Assembler disk and book edition. This lead myself to assembler programming... and I still use this language as my favourite one on this machine - ok, now the tool is Style's Turbo Assembler or a cross assembler on my Mac... Q what machines do you still own and what Commodore machines do you actively use I actively use a Commodore 64 setup with 1541 floppy. I own 5 complete configurations including all kind of different C64 models (Old Rev C., C64 II, C64G, "Aldi" C64) and 1541 types (old revs, 1541 II). I have a 1084 and a 1084S Monitor. One setup is Actually connected on my desk; the other Ones are stored away. I use some modern hardware including the Retro Replay with RRNet adapter to connect my Mac to the C64 and I use a MMC64 cartridge To transfer data via SD Card. Q Please tell our reader about diskimagery DiskImagery64 is a disk editor for all D64, D71 and D81 image files used in all kind of C64 emulators and also in the MMC64 hardware. On my Apple Mac there was always a lack of such tools and I initially started DI64 to fill this one. The disk editor allows you to copy files from your host (here Mac's)file system to a commodore disk image and vice versa. I started to manage all my disk images I had on my hard disk with DI64. I added options to quickly mount such an image in my favourite emulator (here VICE) or run a selected program there with a single key stroke. With the emerge of nice tools that allowed to transfer files or data via the RRNet ethernet adapter directly through your local home network to your good old C64, I wanted to have these nice features directly embedded in DI64.I started to port code that was available for Windows or Linux for this task to my Mac and reversed engineered the missing network protocols by sniffing the network traffic between a C64 and the windows reference application. Now the current release version 0.7 has all essential tools available: you can edit disk images, test the images in an emulator and quickly transfer the disk images to real disks residing in the 1541 connected to the C64 via Ethernet. Furthermore, you can directly transfer and run a single PRG on the C64 with a single mouse click on your host or share any number of files on your host system as a virtual network drive on your C64. Q what makes this software unique? Its the first full featured C64 disk editor that is portable and runs on Mac OS X, Linux and Windows directly compiled from one source code. Furthermore, it has a direct integration of your favourite emulator on the system and last but not least an extensive set of network protocols implemented that greatly facilitate working with a real C64 connected via Ethernet. Q Why would our reader wish to download the software what benefits would it give him If you own a Mac or Linux system, then you finally get a full featured D64 disk editor for your platform. If you want to quickly test a large bunch of disk images in your emulator then you will enjoy the tight integration of DI64 with e.g. VICE. If you own a network adapter and a real machine then DI64 is a Must have that contains all kinds of network data transfer tools from and to your retro hardware combined in a single easy usable GUI. Q I see you released the source code as "open-source" does this mean our reader can download the code and make any alteration they wish? Yes, the source is released as Open- Source under the GNU Public License (GPL).This allows anyone to download the source, have a look at the inner Workings develop the source further and even release own work derived from this. In contrast to source that is in the public domain, the GPL regulates the distribution of derived work and for example requires each re- user of my source to keep the copyright of my code parts intact and to release his/her source with the same GPL requirements. This helps me to have some protection of my copyright but also gives me the freedom to share my source and thus my ideas. I greatly profit from all kinds of open- source software, ranging from small tools running freely on my Mac or whole operating systems (Linux) running on my server. So releasing my source as open source is a way of giving something back to these generous software presents given to me. Furthermore, releasing the source helps interested readers to better understand the inner workings of the software, gives developers a tool to identify bugs more quickly and to give more detailed bug reports. Finally, other developers might contribute new and interesting features that I have never dreamed of. Q One comment/ suggestion, Would it be possible or is it already possible and I haven't found out how to Read TXT and SEQ files from within the Application, Maybe with the ability to copy the text and convert PETSCII to ASCII and Vice Versa Currently, DI64 transfers all files as raw data from and to a disk image. You have to make sure that the file on your system's hard disk already have the correct (PETSCII) encoding if you want to transfer it. That can be improved in future versions. DI64 already checks the file extension and tries to map it Automatically to a CBM DOS file type, e.g. a file named test. seq will resulting a CBM SEQ file called 'test'. Q another suggestion Maybe a Geo write document Viewer, extractor Sorry, I never got really in touch with the whole GEOS thing. Maybe because I never owned a C64 mouse... joystick control is IMHO no way to really Control a GUI. Ok, I admit that I am a command line freak, too ;) At this point let's hope that open source works as expected and an interested and more skilled GEOS developer will take my source and maybe add the Requested features ;) Q I notice you have a DTV hack yourself could you Describe the design to our reader and what problems you encountered in its assembly. Yes, soldering and hardware hacking is also a hobby of mine. So building an own DTV mod really got my interest as it combines hardware and CBM hacking. I used one of the numerous published build instructions available on the net and creating my version took only an afternoon. I chose to use a generic box case where I placed all connectors inside and integrated a small circuit board with power conversion and pin outs for all connectors found in the case. I removed the main circuit from the joystick case and soldered wires to all points that need to be connected for power, reset, video and audio out, Joysticks and PS/2 keyboard. That's the trickiest part as it requires soldering wires to very small contact holes found on the circuit board. A SMD soldering iron and no nervous hand is really of great use here. All wires got connectors soldered to it so you can now attach the main circuit to my connector board without any soldering. That allows to quickly remove or even replace the main circuit without any hassle. I own a PAL DTV 2 and a DTV 3, so I can quickly exchange them without soldering. Recently, I found a very interesting add-on: an integrated SD Card reader that emulates a 1541 floppy (http://pontoppidan.info/lars/index.php ?proj=mmc2iec) and perfectly fits inside a DTV mod. I am currently working on its integration in my DTV mod, so stay tuned and have a look at my blog (http://www.lallafa.de/blog). Q Do you read commodore Free magazine Yes, I do. I heard about your magazine in one of the Commodore Forum's I visit regularly and since then I always grab a PDF issue if it is released. Yes, I prefer the PDF version over the txt or disk version as reading a longer journal is much more comfortable with a decent font, a nice layout and a larger resolution - or maybe I am just getting older ;) I always greatly appreciate all efforts to publish up to date information about our historic computing environment. Only this keeps the machine alive! Q do you think there is any commercial worth left in the Commodore range of machines To be realistic, the CBM machines including the Commodore Amiga computers are all now outdated compared to today's hardware and therefore not used in most professional applications. Nevertheless, with all old things there are few people that still share interest in these retro machines, are very enthusiastic about it and thus are often willing to spend money even today to improve their retro environment. This ensures the existence of a handful stores and hardware developers that still develop and sell new retro hardware add-ons (e.g. the RRNet or the MMC64). Well, yes it's a tiny niche compared to the whole hardware industry, but its nice to see that those people actually can make a living from this. Q do you have any other projects you are working on Commodore or none commodore related Most computer related projects that I am still working on in my free time are either Commodore or hardware hacking related. My Commodore projects Include DI64 and maintaining the official Mac version of the VICE emulator. I do some experiments with networking directly on the C64 but there are currently No releases available. One of my web-based projects is my blog, where I write up all my findings about Macs, the C64, VICE and its Mac Port and all combinations of these topics. My current hardware projects include the DTV modding and building small robots from construction kits. I am a great fan of the Lego Mindstorms kit and I am looking forward to its new incarnation Mindstorms NXT. Additionally, I built the robot that was presented in the german c't computer magazine and I am experimenting with different control software implementations. Q From the website you seem to be more of an Apple/ linux user is this correct, and what is the benifit of the Linux or apple Mac operating system Yes, definitely. I got my first experiences with operating systems on my Amiga 500 and Amiga 2000. Later on I switched to a PC with MS DOS and later Windows 3.11. It was like going back to stone age... no more large memory allocs, no more preemptive tasks, no flexible graphics, no nice shell, nothing! I was very disappointed and really about to sell my PC when I learned about Linux at the university. That saved my day and gave me back many of the things I was so desperately missing. From then on I use Linux on all my PC-based computers. Later on I wanted to have a mobile computing platform and with the release of Mac OS X (the first unix- based Mac OS) and Apple's really well thought Out portables design it quickly convinced me to buy my first Powerbook. Since then I absolutely prefer my MacBook Pro over every other modern Computer, because of its unique combination of a powerful unix based operating system with real multi user support, all the nice unix tools (shell, compilers, scripting languages, ...) and all that wrapped up in a very elegant and comfortable user environment. Q people have tried porting Linux to the Commodore machines have you tried any of the versions and would you like to comment on them? A few years ago, I played a little with Lunix on the C64. It was a nice approach to bring the philosophy of a unix system back on a 8 bit platform. It proved that bringing unix is possible but also showed that the Constrained memory poses extra difficulty in porting for example existing tools. As Lunix lacked real applications and only provided some OS tools, general interest was unfortunately not too high and soon faded away. Nevertheless, I nice project and it really gave a the great feeling of having a real shell on the C64 ;) Q is there any question you would have liked to have been asked Maybe, "Do you regret spending so much time of your life for free with hardware that is almost as old as you?" - That would be a clear: NO - je regret rien! Q If you were given 1 million pounds what would you do Puh, a difficult one at last! First of all I'd like to build a house for my soon- to-be-wife, myself and my family later on. A larger part will be saved and also charitable donations will not be forgotten. Finally, new and old hardware needs always to be updated ;) Commodore Free Thanks for the interview -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ******************************** * Mini Games Competition * ******************************** http://www.minigamecomp.org.uk/ FAQ Q: What's this about a "moderator"? A moderator is responsible for verifying that the program meets submission/size requirements, that it works in an emulator, and so on. If you would like to see a platform represented (or would like to volunteer! Yeah!) please email the organizer and we'll work something out! Q: Can moderators submit entries? Absolutely. As long as a submission meets the requirements, it may compete. Q: I'm writing a game for multiple platforms. How should it be submitted? The general idea is one game, one vote. Therefore, please pick a version that you'd like to compete, and place the rest in the "extras" area. Q: I'm concerned about 24/7 voting. Will people vote consistently over time? What if someone updates an entry? As a competition, should we even be able to download games early, let alone vote? The votesheet is just a piece of paper for keeping notes. You still have to submit it, at the end of the contest, when you're satisfied with it. If someone updates an entry -- well, after you play that updated entry, you can update your votesheet. Finally, as to being able to download, I believe that downloading games during the contest stimulates interest in the contest, and I don't believe it has caused any issues the last two years. And, of course, there are just too many entries. So, I suggest trying the votesheet this way, and if we find it causes problems we can do something different next year. Q: Please clarify the rule about starting with RUN. The general idea is that the game should be started in the standard way for the platform, whatever that may be. On a Commodore machine and the speccy, it's LOAD followed by RUN, on a CP/M or MS-DOS machine you'd just type the name of the executable on the command line. So no loaders (they count toward the size), the user shouldn't have to type any special commands to start (like SYSxxxx on a C=), and so on. Autostarting executables are OK. This makes life much, much easier on those trying to run (and judge) the programs. Q: My platform has a big header and is at a disadvantage. Actually, the header losses are all about the same. More broadly, every platform has some dead weight in the executable, including differences in sprite sizes, bitmaps, screen clearing, CPU architectures, system resources, etc. The competition will never be "fair". The computers are so different in their capabilities that it's impossible to create a perfectly level playfield. The computers have different strengths, and different weaknesses. Be creative, use nasty tricks, and make as good a game as you can in 1K or 4k. Q: But... It's a nightmare. Consider the CPC AMSDOS header -- 128 bytes. Most of that, however, is empty, and programmers routinely store code and data in it. Checking that this header doesn't contain code/data is a truly awful prospect; by contrast, including headers gives around a 10-byte penalty -- just like pretty much every other platform. Let's say you take away the header restriction. Commodore 64 and Speccy files do not autoboot, so they need a BASIC program to start with RUN. Now you need to either not count the BASIC header, or else remove the RUN restriction. Now life is tougher on users, so maybe external loaders should now be allowed -- can we put a title or other information in the loader? Then, of course, C64 programs also store a two-byte load address in the file, so maybe that shouldn't be counted. And in the first contest MV stored the score in the BASIC line number, so maybe that should be counted after all. But if you want to get really technical, then the file structure includes... But then this obscure computer has... But compared to this other computer it... And remember, this makes life much, much easier on those trying to run (and judge!) the programs, especially on unfamiliar platforms. Q: But... It's like representative democracy: it's not that it's the best system, it's that it's the least worst system. Q: How do I determine file size? Commodore 64: Extract from a .d64 if necessary, then ls -l (unix) or dir (dos) -- i.e. memory plus two bytes. Speccy: the .TAP file can be at most 25 bytes more than the size limit imposed by the category (basically it's the memory used: the 17-byte header, data block byte, and checksum do not count, but the BASIC header etc. does). CPC: Use CAT. NES and 2600 cartridges: The .NES file header is NOT counted. The 6502 interrupt vectors are. Otherwise, all unused bytes must be set to zero. Apple 2: Files should be submitted on a DOS3.3 .DSK image. The file size is the 256 times the number of sectors minus one. For other platforms check the forum or ask the moderator. If there is no moderator, the organizer. Q: I'd like to make an Atari 2600 VCS game, but the minimum cartridge size is 2K. Use the last 1024/4096 bytes of the cartridge, fill the rest with 0s, and don't use the 0s as data (or code, but I don't know what a lot of BRK would be good for). (And we'll find you a moderator, if you really do want to submit a 2600 game!). Q: Can I submit previously written stuff? Yes, as long as you've written everything yourself. You are for obvious reasons not allowed to use other people's material without their express permission. This includes graphics and tunes (i.e. ripping is verboten). Standard things like compressors and assemblers are fine of course. Rules All entries are welcome, the 3 size categories will be held seperate from one another, though they can be submitted at any time up until they closing dates. The file size is the size of code+data as is natural for your system - i.e. emulator only data is not included. The following is this years sizes 1kbyte (1024 bytes max) 2kbyte (2048 bytes max) 4kbyte (4096 bytes max) Screenshots should be of the actual game, as there is no point in 'doctoring' the picture to make game look better, people will play them. Forum discussions that may influence votes are to be avoided. Keep the games clean of porn, profanity etc. The games must be submitted using a common emulator format. Any excess fileformat space should be filled with 0's - i.e. the NES's minimum INES fileformat size is 16k so for 1k, 15k is filled with 0's. The Data+code must be in one continous block, not seperated in different sections of the Rom/Bin. It is your responsibility to submit a game screenshot and description for the webpage. Entries should use standard hardware/software features of their system and not require extra hardware/software features, though something like ram expansion is allowed along as it is stated in the games instructions. Compression may be used, as long as the decompressor is stored within the game. No FLASH/Web page based games are allowed in this competition. Last year we have had an entry which was done in Flash, which we could not accept. Any games like this will not be evaluated. Most important of them all. Have loads of fun programming your game for this compo. 1k category, this will run until 31st July 2007, 10pm GMT time the 2k size category will run until August 31st, 10pm GMT the 4k size will run until September 30th, 10pm GMT -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Interview with Robert Guite From the "Mini games website" Q - who are you please introduce yourself I'm Robert Guite and have been with the competition since 2002, i took over running the site in 2005 and gave it a specific web address though its been available via the pointer address http://ffd2.com/minigame/ regardless of where it previously been hosted. Q - how many people work to maintain the project The actual site side, just me and Richard but there are platform moderators who's job is to check entries are valid. Q - What machines are included in the competition? Any 8bit machine can enter. Q - What machine do you receive the most entries for That fluctuates to the category and the year but Atari 2600, c64 and spectrum always have a healthy turn out. Q - Is the competition purely the result of the moderators or can anyone vote The voting is open but the votes are checked for any suspicious 'vote rigging' before they are tallied up to give the final result. Q - Obviously with this being a Commodore magazine Ihave been looking at some of the older years entries for the Commodore 64 versions, they are to say the least very impressive do you have any comments to the software quality The quality of all games in general is good, though some platforms suffer more at low files so appear low quality or the programmer is new and not experience (or both) but I believe everyone tries well with their own particular entry. Q - I looked at the 1k entries and they are very nice games some with sound I don't like to single out one game but I was impressed by Kilodium from " Aleksi Eeben" the game is smooth and very nice on the eye All the entries are nice, the computer systems in particular highlight what can be achieved in this file size category. Q - Are all the past years games available for download Yes since I've been running it, though currently the 2001 games is not but will be soonish along with the 2002- 2004 games (currently available on the previous years links). Q - Come on you must receive some rubbish please enlighten us It is a matter of opinion of which are good and rubbish so I leave it to the people looking at the games to decide as everyone has preferences. Q - How would our reader enter the competition? They would simply write a game to one of the size categories (this year is 1,2 and 4k) and then fill out the submit form and place the game in a zip file and submit it. Q - Who are the moderators and how are they chosen currently they are: Spectrum - Paolo Ferris Sega - Maxim Commodore 8bits - Richard Nes, GB, Atari 2600 and MSX - myself. Anybody can volunteer to be a moderator, they just need to be willing to do the job and within a reasonable time span to get back to me on Whether the game is valid. Q - What does the winner receive in the way of a prize There is no prize and never has been, the competition is run in the spirit of fun and the real competition can be seen as improving your coding skills and bettering your previous games if you've done one before. Q- Does every entry appear on your website for Download Every game that is valid (which i believe all have been for the past two years) is featured for download. Q - Can all the games be played on real machines - how is this possible when some of the machines are console cartridge only In most cases yes, but in the cases of the consoles they may or may not as they generally require some form of homebrew hardware cartridge to allow them to be played on hardware which not everyone may be able to get/make, certainly i believe the atari 2600 games do as they have quite a healthy community and hardware is available to buy. Q - in your opinion as the games size increases 1K 4K8K does the quality increase ? It depends on the authors and what they're trying to do, they may concentrate on more levels than say making it more pretty or it maybe the same as a 1k game, but written by a less experienced author, in which case the quality may be very good for that particular person. Q - Why the file sizes of 1K 4K and 8K? The file sizes change from year to year, that was just the sizes picked for last year. Q- what machines do you own and do you have any Commodore equipment Nowdays, a pc, a gameboy advance and a gamecube - I've never used a real commodore. Q - Mini games? Why and whose idea was the project I believe Matthew Westcott started the original idea as a competition between the commodore machines and spectrum ones, who I'm not 100% as the original site is no longer available. It was then taken on by MagerValp who opened it up to other 8bits in 2002, 2003 to 2004 Steve Judd ran the competition and finally I took over, though the rules have stayed fairly the same. Q- Have you any tips for programmes - and do you have any game that is overdone? Try to be creative and try for a fun game, in most cases that will score better than a pretty but limited game. Tetris games have been produced quite a bit, and many scoring will be a bit negative towards 'another' one. Q- Would you like to see more of a certain game for Example more run and jump games Myself, I prefer platform games, but they are not particularly easy I know to produce in the file size categories. Q- Is there anything you would have liked to have been asked? I think that probably covers everything. Q - What would you do with 1million pounds :-) I would buy a house, spend some and put the rest in the bank for savings and security :) house taxes aren't cheap! -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Mr. LOADSTAR's Introduction to Programming the Commodore 64 Part 1 By Dave Moorman Introduction The best place in the world to learn and enjoy the art of computer programming is on the C-64. It is an old machine, and therefore a lot less complex than today's computers. It has BASIC 2.0 built-in, plus many Machine Language (ML) routines that can be used from BASIC. The processor is the MOS Technology 6510, a member of the 6502 family, which is very efficient. And the C-64 was designed to be adaptable on many levels. But mostly, it is inexpensive. A real C- 64 is always available on Ebay. Or, get the C64DTV and do some hardware hacking to add a disk drive and keyboard. Or download the Versatile Commodore Emulator (VICE) from the web for free. Whichever way you go, you have a great platform for the kind of programs one person can sit down and write. And you can write them just the way you want. I am going to make some assumptions. First, I must assume you have a C-64 and a disk drive or VICE. I assume you know how to format a disk (on a real machine) or create and attach a disk image (with VICE). I even must assume that if you are using VICE, you know the different keys you must press for certain characters. I also assume that beyond knowing how to LOAD and RUN a program, you have no idea how to go about writing one. That is what we will do in this series of articles. So, fire up your C-64. Get a new disk ready. Because HERE WE GO! I DREAM OF GENIE IN A LIGHT BROWN BOX On the blue screen, you see, in light blue, the word READY. Under it is a flashing block. This is the cursor. You are probably know what a cursor is, but just to make sure here is a definition. The cursor is the place where the next character you type will appear on the screen. Press [Home] and the cursor goes to the upper left corner of the screen. You can use the cursor keys to move the cursor around the screen. On the real C-64, you have two cursor keys -- [Down] and [Right]. Press [Shift- Down] to go Up, [Shift-Right] to go Left. (VICE has it much better -- four keys!) I will refer to Cursor Up, Cursor Down, etc. You will get used to using the Shift! Now press [Shift-Home]. This is [Clr], since it Clears the screen. Cursor around a bit to get used to it. Now, crack your knuckles, stretch, and prepare to meet the Genie! Inside your computer is a magic genie who will perform any command you give it. Try it. Type: DO MY TAXES Nothing happened? That is because the genie doesn't know you are finished typing. With the cursor flashing on the same line, press [RETURN]. ?SYNTAX ERROR READY [] Syntax Error" means "Huh? I don't understand." Fortunately, the genie is always forgiving. See, it is ready already. The problem is that the genie understands only a few commands. You must spell the commands correctly -- because this is a stupid genie. So try this: ?5+9 And press [RETURN]. (I won't mention it again. Whenever you are done typing, press [RETURN].) 14 Pretty clever. What should we call a magic genie that is really good at computing math problems? Anyway, the Question Mark means Print. You could type out PRINT instead, but why not just use the single character? You might have noticed that there is a space in front of the 1. That is to leave room for a minus sign, should one be necessary. ?5-9 -4 We have multiply and divide as well: ?16/2*3 24 The [/] is Divide, [*] is Multiply. When the genie does math, it always multiplies and divides first, then adds and subtracts. For example: ?3+2*5-1 does not equal 20. 12 That is because 2*5 is calculated first, then 3+10-1, which results in 12. However, you can force one calculation before another. ?(3+2)*(5-1) 20 There. Calculations in parentheses are always performed first. So, 3+2 = 5, 5- 1=4, 5*4=20. So, you have a calculator. Big deal! But wait. [?] means PRINT. What else can we print? ?YOUR NAME 0 Ok, I fooled you again. Letters are used as VARIABLEs -- little boxes that contain values. The genie thinks you want to print the contents of a variable. But you want to print, literally, "YOUR NAME". ?"YOUR NAME" YOUR NAME I hope you used your own name! This time the genie printed out exactly what was between the double-quotes. If you did not use double-quotes [Shift-2] you probably got a SYNTAX ERROR. But if you were wrong, don't fret. The genie is always READY for you to do it right. The characters between the double- quotes are said to be in a STRING, because they are strung together. In this case, it is a Literal String. What other kind of string is there? N$="YOUR NAME" And when you pressed [RETURN] nothing happened? Do this: ?N$ YOUR NAME N$ (pronounced "N string") is a String Variable. It is a box that contains a string. We also have Numeric Variables N=1234 READY. ?N 1234 N and N$ are two different variables. ?N$,N YOUR NAME 1234 Variables always begin with an alphabet character (A-Z) and can be one or two characters long. The second character can be alpha or a number. A, AB, P0, S5, and RX are all numeric variables. String variables have the dollar sign after the characters. A$, AB$, P0$, S5$, and RX$ are all string variables. Remember to pronounce the dollar sign as "string." IMMEDIATE vs. PROGRAM: The Battle of the Modes All this is fine and dandy, but so far we have nothing much more than a fancy calculator. That is because we have been working in IMMEDIATE Mode. That is, when you press [RETURN], the genie responds immediately. But we have another mode. Try this: 10 N$="AMOUNT TENDERED" Nothing happened, not even the READY. Actually, a lot happened inside the machine. Back in 1976, Bill Gates and Paul Allen wrote the first BASIC operating system for the Altair 8800 microcomputer. Memory was expensive and at a premium. So a clever idea was developed to indicate whether what was typed was to be computed immediately, or put into program memory. If the first character(s) of a line are numeric, the line is considered Program Mode. The text is placed into Program Memory, organized by the "line numbers." To look at what you have in your program, input LIST You will see... 10 N$="AMOUNT TENDERED" Add two more lines (press [RETURN] for each): 5 N=35.75 20 ?N$;N Now list the program again. 5 N=35.75 10 N$="AMOUNT TENDERED" 20 PRINTN$;N You have just written a program! To watch it work, input RUN You should see: AMOUNT TENDERED 35.75 This is just a beginning! SAVING AND LOADING YOUR PROGRAMS Now that you are an honest to goodness programmer, you will need to save your program to your disk (presumably in drive 8 and formatted). The quick way is to input: SAVE"MYPROG",8 The filename is "MYPROG" and you are saving it on drive #8. File names can be up to 16 characters in length. You can verify that the program has been correctly saved with: VERIFY"MYPROG",8 But this is usually not necessary, if your drive and disk are in good condition. Now you can turn your computer off, turn it back on, and load your program: LOAD"MYPROG",8 then LIST and RUN Now for some tricky stuff. If you change your program, you cannot simply save it to the same file name. The file is already on the disk and must be scratched first. BASIC 2.0 does have a SAVE@ command, but this has proven to be buggy, so don't use it! You can save your changes to a different filename: SAVE"MYPROG1",8 But we at LOADSTAR have a more excellent way. The following code will not make a lot of sense to you, but that won't be a problem. Once you type it in exactly as shown, you will have a SHELL program you can use for all your programs. Type: NEW To clear your memory, then enter these three lines: 60000 N$="SHELL" 60001 OPEN1,8,15,"S0:"+N$:CLOSE1 60002 SAVEN$,8 Once you have entered these lines (Pressing [RETURN] after each), input: GOTO60000 The program, named "SHELL" will be saved to your disk. Whenever you start a program, first LOAD"SHELL",8 LIST it, and change the string in line 60000. One of the neat things about the C-64 is its screen editor. To edit a line, all you have to do is list it, LIST60000 Move your cursor up to the place you want to edit, and type over the text. Pressing [RETURN] (regardless where it is on the line) will put the edited line in memory. So when you start a new program, make line 60000 read: 60000 N$="NEW NAME" whatever the new name might be. Then do the GOTO60000. A bit of history here. Long ago, I was working on three interrelated programs (I will call them PROG1, PROG2, and PROG3). I had just made some corrections in PROG3, but accidentally saved it as PROG1. Suddenly, PROG1 was gone. Hours of programming went where all bad little files go. I realized I needed a better way! My answer was to create a "scratch and save" routine, with the program's name embedded in the program itself. I chose line 60000 since BASIC only handles line number between 0 and 63999. Being line 60000, the routine is always at the bottom of the program. If some mistake or glitch messes up the code, my line 60000 will be garbled and I won't be able to save the gobblety-gook. (There is nothing worse than accidentally saving corrupted code. You are very unlikely to revive it. It is an occasion for a grown man to cry!) With this routine, every time I save every program, I use exactly the same "command:" GOTO60000. My fingers know this command by heart. Now as I write, I do a save after entering every few lines, and especially before I run my program. I later learned that the gurus at LOADSTAR had come up with the same trick, except they used line 10000. The particular number doesn't matter much -- just use the same line number all the time. Here is what the routine does. First, you put the program filename in N$. Then, you use a disk command to scratch the filename. Lastly, you save the filename. Again, we will get into the specifics later in this series. For now, just use "SHELL" (and change line 60000) to begin all new programs. READING THE DISK DIRECTORY Corners had to be cut to put all the power of BASIC 2.0 in a minimum of memory. Once such corner is that there is no Directory command. To see what is on the disk, you must 1. Save what you are doing (if anything) 2. LOAD"$",8 3. LIST You will see something like this: 0 ["DISK NAME " 98 2A] 1 "MYPROG" PRG 1 "SHELL" PRG The top line (in reverse) is the disk header -- the name you gave the disk when you formatted it. The number to the left on the next two lines is the Block Size of the file. A disk block is 254 bytes in size -- and a 1541 disk has 664 blocks available. Following the block size is the filename. At the right is the type of the file. PRG means Program. The last line tells how many blocks are available on the disk. Once you have looked at your directory, you can reload your program. Clumsy, yes -- but clever. The directory uses the same code as a program list, which saves memory. The only hassle is that looking at the directory destroys whatever you have in program memory at the time. But of course, you DID save it. Right? BACK TO BASIC It is time to get back to the task at hand -- learning how to make the computer do your bidding. Load up SHELL, list line 60000, and change the name to "HELLO". You must be as tired of the all-caps as I am of typing all-caps. Press [C=-Shift] (that's [Commodore Logo-Shift]) to switch to upper/lower case characters. Let's get to work! 10 ?"[clr]" 20 ?"[down]" 30 ?"Hello, World!" run There you go! If you list your program, you will notice that the "?" 's have become PRINT. And PRINT is a very powerful command in BASIC! When you press the double-quote, the computer enters Quote Mode. Anything you type (other than [RETURN] or ["]) will be embedded in the string. So, [clr] means [Shift- Home], and it clears the screen. [down] is the Cursor Down key. You can also insert text color changes right in the string. 30 ?"[ctrl-1]H[ctrl-2]e[ctrl-3]l[ctrl- 4]l[ctrl-5]o, World!" With this, each character in "Hello" will have a different color. Here are the various color controls (which may be printed on your number keys: CTRL Commodore Logo 1 Black 1 Orange 2 White 2 Brown 3 Red 3 Light Red 4 Cyan 4 Dark Gray 5 Purple 5 Med. Gray 6 Green 6 Light Green 7 Blue 7 Light Blue 8 Yellow 8 Light Gray While we are talking about colors, we must say we do not have any BASIC command to change the background or border color. However, we do have an all-purpose command that puts information right into memory -- POKE. And the color of the screen background and border are controlled by two locations in memory: 53280 - Border Color 53281 - Background Color So, 25 poke 53281,14 26 poke 53280,0 will change the background to light blue and the border to black. The numbers you poke for color are 0 - Black 8 - Orange 1 - White 9 - Brown 2 - Red 10 - Light Red 3 - Cyan 11 - Dark Gray 4 - Purple 12 - Med. Gray 5 - Green 13 - Light Green 6 - Blue 14 - Light Blue 7 - Yellow 15 - Light Gray As in Immediate Mode, you can print strings (literal or variables) or values (constants -- the actual numbers -- or variables). Numbers are printed with a preceding space and followed by a cursor right. Strings are printed exactly as they appear between the double- quotes. This is a good time for you to play around with the PRINT command. We can print several things on the same line by using the [;] (semi- colon) as a separator. 29 n$="Dave" 30 ?"Hello, ";n$ 31 age=57 32 ?"You are";age;"years old." Normally, the PRINT command adds a "carriage return" at the end of each line. This means that the cursor moves down to the next line and to the left edge of the screen. A semi-colon "defeats" the carriage return. So, if you want to print several things on one line but with different PRINT commands, put a semi-colon after the first printed line. Change line 30 above to add a semi-colon after n$, and see what happens. You will have to insert a space on line 32 by placing the cursor over the Y and pressing [Shift- Ins/Del] -- to add the space between the name and then next sentence. You can use a comma rather than the semi- colon, and the cursor will be moved to the next "tab" column. Try it out and see how it works. Another way to put the text where you want it on a line is with TAB. 40 ?tab(15)"This is nearly centered" Again, the only way to become acquainted with the commands and controls is to play with them. We have a whole slew of graphics characters available by pressing the C= (Commodore Logo) key and a letter key. Try them out. See if you can draw a box. Another fun exercise is to develop large letters: 50 ?"[c=-r][space][c=-r][space][c=-r] 51 ?"[c=-q][shift-*][c=- w][space][shift-minus] 52 ?"[c=-e][space][c=-e][space][c=-e] You can create almost any letter using [C=-Q], [C=-W], [C=-E], [C=-R], [C=- A], [C=-S], [C=-Z], [C=-X], [Shift-*], and [Shift-minus] in three layers. The embedded graphic and control characters are incredibly difficult to write about, so I will leave such things up to you. I am here, after all, to show you how to program! And program we will! So, play around. Have some fun. We will do some serious computing in the next episode! -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- The New Dimension Proudly presents DMC Music Compo 2007 Introduction: C64.SK had originally launched the SID compo which is every year. I thought it was about time that I done another competition. No SEUCK or Crap game competition this time. It is a cool music competition. If all goes really well, I might consider to do another compo of the same thing. Later on this year, but this time with JCH music editor :oD. So why is it a DMC compo, nothing else? Well it is mainly because I have used DMC in the past and present and still will use it as always. The DMC music composer tool really brings the heart to C64 music. You can compose cool types of style and sounds with DMC's varied sound settings. Plus it is also to bring back the kind of traditional style of C64 music. Using a C64 program instead of a cross platform music composer. :o) DMC has always been part of my pride of composing music on the C64. I've always loved it. Aim of Compo: The aim of this compo is to arrange and compose a masterpiece of music for the Commodore C64 using the Demo Music Creator in any form of style you like Compo rules: Simple really. All you need to do is compose music in one of the following music editors, which are as follows (on this .D64): Dmc V1.2 Dmc V2.0 Dmc V4.0 Dmc V5.0 Dmc V7.0 or which other DMC music creator (The higher version the better) you can find to arrange and compose your masterpiece. You will have until 30th April 2007 to arrange and compose your track. It can be anything from C64 old school jazz to c64 Techno / trance or if you wanted, death metal YEAAAAAH!. Chose your style and enjoy composing. You are NOT allowed to compose any cover tunes. Your tunes are NOT allowed to have rude names Do NOT mix other people's demo tunes and call it your own. You are welcome to use any demo tunes that support the music editor (Best thing for newbies) else refer to my DMC tutorial on the TND web site :o) The playing time of your tune does not matter at all although we will appreciate that your entry is at the most 5:00 minutes long and at the least 2:00 minutes. Submitting entries: You can submit your entry in two ways. Either via email to Richard or through private message on the TND forum, CSDB or Lemon64. You entry can be as SID or C64 PRG inside a .D64. Although we will do 2 versions of the tune. When you submit your tune please include the following information: Name of tune: Author: DMC version: Playing time: SID type: (Old or New) Nothing else. Deciding the winner: The winner will be decided by using a voting poll. The voting poll will only stay for 4 weeks after the closing date. Then the winner will be announced Compo entries: Will be available as we soon receive them Compo dates: Compo starts: 21st March 2007 and closing date is 30th April 2007 Voting will start on 1st May 2007 and close on 1st June 2007 where the winner will be announced and have a .D64 prize emailed to them. http://www.redesign.sk/tnd64/DMCco mpo.html =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Commodore are Back! Interview with Michiel Kroder from Commodore Gaming Q - Please can you introduce yourself to our reader 'Hello Commodore Free readers. My name is Michiel Kroder. I'm a bit of a game fanatic that got his real start at gaming with the C64. I studied Creative Writing and graduated BA and now I am lucky enough to work as a Content Manager for Commodore Gaming.' Q - How many people work for Commodore gaming 'It might be hard to believe, but up until now Commodore Gaming consists of no more than 7 energetic young men.' Q - What connection are you with the commodore of old 'Frankly, our only connection with the Commodore of old consists of our shared fond memories of playing Bubble Bobble and Ghosts 'n Goblins till deep into the night, waiting ages for cassettes to load and our love for the brand overall.To our great pleasure, it seems like there are possibilities to form alliances with Commodore veterans, however.' Q - Do your staff remember the 8 bit Commodore machines and the Amiga, did you personally own one of these machines 'Of course we do. If one of us did not remember the C64 or the Amiga or did not know what these pioneering machines were all about, then that person would not have been hired. My own mom and dad did not let me have a C64 or Amiga, but I was good friends with the kid from the neighbours and would be over at their home all the time, to play.' Q - At work I placed an A4 picture of the chicken head logon on the wall with the words Commodore, you would be surprised out of all the staff how many people owned/ Remembered or recognised the name with comments like "are they still producing machines" and " i owned a XXX commodore it was a great machine" would you like to comment 'Commodore has made a great impact on so many lives in a way that goes far beyond the regular experience of a brand. For so many people, the C64 was their first introduction to computing and the Amiga was just really ahead of its time. It's intimidating sometimes, but we hope to live up to the Commodore legacy, in our very own way.' Q - Do you own the Commodore name and chicken head logo C= 'Yes we do, but only in relation to gaming. Everything else is Commodore International's terrain.' Q - Commodore as a PC surely this has all been done before why are your machines different 'First of all, the mentality with which we enter the market is wildly different. All 7 of us are gamers, with different taste and expertise. Our cases and their internal parts are designed and configured in a way that a true PC gamer would assemble and modify his or her own PC. This further extends to the degree of customization we offer, where a buyer can choose out of a never seen before variety of case designs that will be burned into the cases themselves, in an exclusive manufacturing process. We offer this service at a very low cost and there will be plenty of Retro C64 designs to choose from! :) Furthermore, in a short time span we have developed good relationship with major players in the PC industry, and we have agreements that ensure we will have new top-level components (including CPU, Motherboards and Memory), before anyone else has them. We also believe we should be easy on gamers' wallets. That's why we are confident we can outprice most, if not all, of our competition. And lastly, we'll have a few surprises and exclusive, innovative technology (Ice Cube cooling on the power supply) up our sleeves.' Q- I notice you load a Commodore 64 emulator on your machines, why not other emulators, like Amiga etc what emulator is supplied with the machine and what games, how did you negotiate the Copyright for the games and emulator 'Well, unfortunately... Commodore does not own the rights to Amiga anymore, since, I believe, the mid nineties. Maybe in the future, we will be able to do something about that. I can't give you a final list of C64 games that will be on there, just yet. But I know that many Epyx and System 3 titles are among them. We are working with a UK company named Ironstone, that owns the rights to this collection of games now.' Q - Please tell us about the machines what Configurations are available and how would our reader purchase one, will the machines be sold in local electrical retailers 'The configurations can be found here... http://www.commodoregaming.com/pc shop/Game+PC/Gaming+PC+overvie w.aspx From halfway through April, the webshop will be up and support the UK, France, Germany, and Benelux. Late may the Commodore Gaming PCs can be found in electronic shops and chainstores, even.' Q - Commodore to our readers represents innovation, true some of the machines had various problems but they were innovative would you like to comment 'Oh... Oh... Oh..! I know what you are trying to say! You mean we aren't innovative? !:) In all seriousness, the old Commodore was not just innovative but pioneering. They played a large role in creating the home computer / pc business. Our current innovation, technology wise, lies in small things. But our real innovation lies with the mentality with which we approach the market. We are not some guys in suits employing gamers to make sure They have a cutting edge, trendy product, coupled with cutting edge, trendy marketing... We are these gamers ourselves.' Q - Do you have further plans for the Commodore name -"portable TFT screened version fo the Commodore 64/128 for example" 'It's our intention to revisit the old technology and build something new out of it, somewhere down the line. And when we will start our business and re-establish Commodore as a major force, we will have so many more possibilities to do so.' Q - Many of Our readers still use the Commodore 64/ and 128 as there main machines web browsing and email are possible on these Computers, new games appear regularly, what would tempt these users to upgrade 'Well, to be fair, we are aware of the fact that many Commodore fans shun today's mainstream PC technology and really don't expect any of them to upgrade, if they are fine with using the old machines for day today activities. But, as fellow Commodore fans, it is important to us that the Commodore community appreciates and supports what we are doing right now: To bring the C= back in the limelight, which it so much deserves.' Q - To many of our readers "ibm compatable" and "microsoft" are words of the devil, did you expect this attitude for Die hard users of the 8bit range 'Oh yes. It was a reservation some of us had to overcome as well. We thought long and hard, but came to the conclusion that it would be instant suicide to come out with a home computer with its own architecture, chipset and OS in today's PC climate. To enter the High End Gaming PC market is the most natural and up to date way to us to bring Commodore back, right at this moment. And like it or not, most games run on Windows. :) Once again, though: If we will be successful in our efforts to bring Commodore back to the forefront (and things are looking good), it will give us much more space to revisit the old technology and give back to the fans. After all, they helped to keep the name afloat all these years.' Q -one of the more striking items of the machine is the Cases, Can our reader supply there favourite Commodore picture to be used on the case or are the designs on the website "set in stone" 'Eventually, the number of designs on the website will be up in the thousands. We are still thinking of a good way for people to upload their own designs. And anyone can enter our upcoming competition and have their design become a limited edition C=kin.' Q - Who thought up the designs 'That's us. Our CEO and two of my co- workers to be exact. :)' Q - Would you like to give our readers the price of the various configurations, is an alternate operating System available for example Linux or are the machines Microsoft os only, also have you thought about say installing AMITHLON as an operating system, although we are well aware of the licensing problems faced by such and operating system 'The prices have not been set yet. Expect them to be somewhere in the 1200-5000 range. We will most probably offer alternative OS'es as well. Linux does not seem that probable right now, since it hardly runs any games. :( Amithlon might be interesting.' Q- Do you think the old Commodore business model is still viable, is there still a market for something like an updated commodore 64 or 128 'Oh, I certainly think there's a market for an updated Commodore 64, 128 or Amiga. Just less of a mainstream market and more of a niche market. And it's certainly a market that we are dying to explore and find out more about.' Q - Is your company purely designed to produce "ibm compatible machines" 'No. It's designed to further solidify the relationship between Commodore and Gaming and to re-establish Commodore as a major force in the gaming - industry. We will be able to do more than 'IBM-compatible' machines.' Q - how has the press treated the machines introduction to the market 'Overall, overwhelmingly positive and we have been given an amount of attention that exceeded our already high expectations. There is some cynicism here and there but that is only natural and healthy.' Q - What does "COMMODORE" say to you 'A ticking cassette tape player, the bashing of buttons, pure, addictive game play and some catchy and memorable tunes.' Q- How much customer interest has there been in the Machines 'At the CeBIT convention where we exhibited our machines, visitors that initially looked bored out of their minds stopped by our booths and we literally saw jaws dropping. That's retailers and consumers alike. Every day I'm getting e-mails in with people asking me where they can buy one... Just as with the press attention, it truly exceeds our high expectations.' Q- what question would you have liked to be asked, and why 'You already asked them. About innovation, 'the evil of IBM compatible machines' and the viability of the old Commodore Business model. Because that gave me a chance to explain more about our thought Process, what we intend to do and how we might be able to give back to the community.' Q - I wish you every success in your project, the machines design looks great, any tips on convincing my wife to let me purchase one 'Well, show her a C=kin design that you know will be to her taste. :) The rest should be easy, since even though it's a PC that's especially configured for gaming, she will be able to use it as a regular workstation and multimedia centre.' Q - Will the machine be sold Worldwide 'YES It will be a worldwide operation.' Q- lets imagine you were given 1 million pounds what would you do with the Money 'Wow... I will say now that I would use it to invest and fund some creative projects of myself and others and set up a charitable organisation. But I never had a million pounds in my hand, so I might just go crazy and spend it all on completing my record- and games collections.' =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- FROM 64k to 64 BIT Commodore Gaming Launches Range of Gaming PCs CeBIT, March 14th 2007: A new breed of gaming PCs with the highest specifications available for gamers and featuring a level of personalisation never before seen is launched tomorrow at CeBIT 2007 by Commodore Gaming. The new range includes four different models from an entry level gaming PC to an extreme specification model which is optimized to the highest level. Bala Keilman, CEO for Commodore Gaming, commented "The all new Commodore range of PC's will allow gamers of all levels to enjoy the best that PC gaming has to offer. From beginners to professionals, Commodore Gaming ensures that only the very best components are provided to deliver the ultimate PC gaming experience. We also wanted to bring something new to the market, in the spirit of our Commodore heritage, and have worked hard to design a fully personalized product" Uniquely, each gaming machine can be artistically customized to match personal taste, with Commodore offering specially selected art including street art, photography, PC game artwork (such as that of GRAW 2) and many other licensed images. Using a revolutionary painting process, the exterior of the Commodore Gaming PC becomes an open and inviting canvas just waiting to be experimented with. Fans and artists alike are requested to present their creative works to become the next limited edition C=kin. This focus on design and personalisation can even be seen in the small details: two multicoloured LED lights inside the fans can be independently controlled to change or enhance the mood with an ambient glow. Meanwhile, a new Ice Cube cooling system provides extreme levels of cooling, reducing the core temperature by up to seven degrees and ensuring optimum efficiency. These new gaming beasts are titled the Commodore Cg (entry level), Cgs, Cgx, Cxx (extreme level), each running Microsoft Windows Vista 64 bit operating system including the new gaming interface - DirectX 10. To provide full flexibility, each model can be customized from a range of high- end components before undergoing a full burn-in test prior to shipment to meet our quality commitment. Meanwhile, gamers can expect their systems to come equipped with only the best peripherals available from respected gaming brands including Raptor keyboards and Logitech speaker systems. The new range of optimised Gaming PCs are now available to see for the first time at the CeBIT show in Hannover, Germany, offering people the chance to play the high performance purpose-built machines with the latest PC games, including graphics-heavy blockbusters such as Supreme Commander and Ghost Recon: Advanced Warfighter 2. All Commodore Gaming PCs come with a full two year service and parts warranty. For an example product specification of the Cxx please see below. Full product retail and online availability to be announced during CeBIT. Visit Commodore Gaming at CeBIT- Hall 21, Stand D08. - Ends - For demonstrations and to arrange interviews with Commodore Gaming, please contact: Jools Moore Naked Ape Public Relations +44 (0) 771 773 4606 jools@naked-ape.co.uk Notes to editors: About Commodore Gaming Driven by a team of gaming veterans and enthusiasts across a broad range of disciplines Commodore Gaming is a passionate provider of products and services for the mobile, PC and Video game market. Having acquired the Commodore brand in late 2005 as part of a joint venture with Commodore International Corporation, Commodore Gaming aims to re-establish the brand as a leader in its industry. Specifications: Commodore Cxx: Processor: Intel(r) Core(tm)2 Extreme quad-core processor QX6700, 2.66 8M Cache Motherboard: ASUS(r) P5N32-E nForce 680i SLI Hard drive / Storage: 2x 150Gb 10000 Rpm Sata Raid 0 1x 500Gb 7200 Rpm Sata Memory: 4 Gb Corsair Dominator twin2x2048- 8500C5D, 1066MHz I/O.: 7in1 cardreader; (Front) USBx2 Firewire x 1 HeadPhone x 1 MicroPhone x 1 Optical: Philips DVDRW Power Supply: 1000W ICE Cube PSU Audio: Creative(r) SoundBlaster X-Fi Graphics: 2x nVidia 8800 GTX 768MB OS: Microsoft Windows Vista Ultimate =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ========== Ebay News I found the item listed below for a buy it now although I question if the price was right- see what you think ========================= Commodore 64 & 128 3.5 Disk Drive CMD FD 4000 RARE Sexy + 10 FREE ED DISKS NEW Item number: 280088994418 This item has ended with Buy it Now. price: US $1,050.00 ----------------------------------------------- ------------------ Ended: 07-Mar-07 02:15:54 GMT Postage costs: Calculate Calculate Post to: Worldwide Item location: New Jersey, United States Buyer: USER name removed by "commodore Free" Description Seller assumes all responsibility for listing this item. Item Specifics - Video Game Accessories Platform: Commodore Item Type: Disk Drive Condition: Used You are buying a CMD FD-4000 disk drive. The CMD FD-4000 is a 3.5 inch floppy disk drive designed to utilize the latest technology and provide greater storage capabilities for Commodore computers. This drive uses high density (HD) 3.5 inch disks for data storage of up to 1.6 Megabytes while retaining backward compatibility with Commodore 1581 formatted diskettes (800K). It also supports the Extended Density (ED) diskettes for a whopping 12,736 blocks free (3.2MB)!! WOW! >>>>>> I WILL ALSO INCLUDE 10 NEW ED DISKS!!!!!!!!!!!!!!!!!!! <<<<<< ----------------------------------------------- ------------ COMMODORE FREE Well someone got a bargin?! check out the full item information on the URL below http://cgi.ebay.co.uk/Commodore-64- 128-3-5-Disk-Drive-CMD-FD-4000- RARE- Sexy_W0QQitemZ280088994418QQi hZ018QQcategoryZ74945QQssPageN ameZWD2VQQrdZ1QQcmdZViewIte m?hash=item280088994418 ==========