Jump to content


New Members
  • Content Count

  • Joined

  • Last visited

Everything posted by D-Type

  1. It's whatever you choose to provide, from binary only to full boxed edition with overlay, plastic box protector and other bells and whistles. @phoboz releases his games on a loose cart, I think they originally came with just a hand-written label (maybe they still do). Vectrex – Atari and Vectrex (tjocktv.se) AFAICT, he seems to have sold plenty because they're well done, fun to play and people talk favourably of them, I certainly enjoyed playing SpideX in the most recent Vector War X. And here's the thing...his games are on GitHub, you could download the code and make your own cart, so no wonder they're popular titles 😀
  2. Thanks for your explanations. I like this inline optimisation, because (I think) I can understand it! However, it looks to me that you can only inline code-primitives, loops and data words i.e. you couldn't put one of your own non-primative words in the loop. Am I right? On one hand, putting your own words in the loop would dilute the inline optimisation significantly anyway, but on the other hand, if you inlined primatives only, couldn't you could put it in a dedicated code word instead quite easily? Also, didn't you show an inliner some time back that did inline non-primatives, but not at the code level, at the reference level (using the CFA? Sorry, I'm no guru). IIRC, then I guess this is a different inliner? I'm always interested in ways of speeding up my CamelForth 6809 system, but have more learning to do first 👍
  3. Never touched the yoke on mine. I think there was some discussion about that on the "Vectrex fans unite" Facebook forum recently, try having a search around there?
  4. I calibrated one of mine recently and I aligned everything with the middle of the three, when I did that, the top and bottom extended lines also lined up well also.
  5. Hi Albert, I finally received my AtariVox, thanks for shipping, the package is very nice. I also had some initial issues getting it to work, due to the switch settings, but luckily I remembered a thread on the Facebook group that mentioned it. That thread mentions the switches are reversed, but it looks to me that the settings as shown in the manual I have are simply swapped between VecVox and VecVoice. Another thought, when you look in the manual at the switches, it's not obvious if the white square or the black square indicates where you put the switch. You can work it out from the photo in the manual that it's the black square, but that actual switches on the device are definitely white! Now, after hearing someone on the Facebook forum had some issues with their AtariVox, I gave mine a tryout on three different Vectrexes using Berzerk Ultimate/VecVox. - Two worked OK. - One didn't, you could make out parts of sentences initially, but the sentences became more broken after 5 or 10 seconds playing and then were not audible after maybe 20 to 25 seconds. A Vectrex power cycle restored it to partial working but then becoming broken again. I didn't test a Vectrex reset. I'd be interested to know if there is a solution to this.
  6. Thanks for the explanation. It all seems so simple, but I don't yet understand the inner workings enough to really judge 🙂 10 bytes doesn't really seem much of an overhead...does anyone care about memory usage these days? Maybe it's a problem on the '99, I know it has some strange architectural challenges, maybe that's one of them. I read also the Inlining thread, it wasn't how I remembered it, but it's food for thought for my own Vectrex future enhancements! Currently I'm working on interfacing the Vectrex BIOS routines from Forth i.e. creating an API. Nothing public yet, but I'll be putting v1 on Github eventually. It actually already is on Github, but Private.
  7. What is the state of the art for '99 Forth cross compilers regarding macro inlining of small code words? I was thinking about how to improve the speed of my 6809 Vectrex/Camel Forth and came to a similar conclusion as this thread i.e. instead of rewriting the compiler as STC (not enough time, never going to happen) I could make it make it STC-ish by inclining code and reducing the call overhead. (I remembered the inlining thread that came after this one and searched for it, but first came across this thread - will reread the inlining thread next. Simple inlining was actually what I was thinking about using initially, but of course the mind wanders...)
  8. Postpone still confuses me as I learned and used Forth 83 for 10 years in the 90s. From memory, Starting Forth print editions don't mention Postpone, only Compile. (But there is an ansi'fied web & pdf version which has text modified to describe Postpone instead, I think.) The definition of Compile is much easier to understand and it does what you expect, so I started with that, as it's used by Postpone. Honestly, learning Compile or Postpone on their own isn't enough, you need to learn about immediate and compile modes etc. together else none of it makes sense. Starting Forth covers it all over a few meaty chapters, but you might need to read and think about it several times before it sinks in. (At least I had to.) Maybe try the SF chapters in the first edition pdf that's on the web and understand Compile, then deal with about Postpone later on?
  9. My serial port is provided by an ARM-based multicart that puts a UART into my address space and it gives me 921,600 baud with a 256 byte buffer both ways, which doesn't fill up. Thus the test is quite "clean"!
  10. How fast was the Pascal version? Not really comparable, but CamelForth running on 1.5MHz Vectrex runs the following code to a PC terminal via a serial interface with a buffer that doesn't overflow in 16 seconds: : U.R \ \ u width -- ; Display u right-aligned in a field n characters >R <# 0 #S #> R> OVER - 0 MAX SPACES TYPE ; variable ii : counter 0 ii ! begin ii 1 over +! @ dup 5 u.r 2000 = until ;
  11. People tend to want the things they can't have. There are millions of games out there that play just as well as Vectrex games, but Vectrex games are special because they are on a vector monitor. I don't understand why someone would want to play them in an emulator so badly. Why not buy a Vectrex and some games and wait for those special moments when a game you've wanted for years becomes available? Getting everything I wanted immediately would kill the enjoyment of the hobby for me. IMHO...
  12. This is the sad fact for Forth in modern times, everyone's so busy building their own Forth for the sake of building their own Forth, that there's no showcase applications being made! I decided not to build my own Forth, I'm adapting CamelForth 6809 to make a game or two that people can play on the Vectrex. I have to stop myself fiddling with the core Forth system every five minutes to make it better - that's the most difficult part!
  13. A quick question...how long does the binary transfer take, say for an 8k file? Back in the day when I was using a Dataman S4, I recall it taking about 10 seconds for a good chunk of a 32k EPROM. I don't use a Vectrex emulator for development, I work only on physical hardware, so this is pretty important for the edit-compile-download-test cycle that I use.
  14. That's a really useful guide, thanks for posting!
  15. D-Type

    Vectrex SD Cart?

    Hi Richard, I already have a VecMulti, so I don't need to order another. However, I would like to say Thanks! for jumping back into the community for a while to make some more carts so people can run homebrew. I'm sure it will help keep the community alive. Be sure to promote the usage of the device as an easy development solution, I haven't tried mine like this yet, but it's got to be faster than burning EPROMs!
  16. D-Type


    So the question, then, is whether it's better than RnS? As the latter is native 6809, albeit without a dedicated Vector generator, possibly it could be better than the original 6502 game. As I'm on holiday now, I can't test, but what do others think?
  17. So I finally, got round to speed testing FIND on the Vectrex Camel Forth: There are roughly 250 words in my Vectrex dictionary. This was with a phone stopwatch, so +/- 0.2 seconds, plus the result was pushed out to a 921600 baud terminal.. Entering 50 numbers onto the stack from 0 to 9 = 4.84 seconds or 0.96 for 10 numbers. Including/excluding 0 1 2 3 4 makes no difference, so I presume they're not defined as constants. (I had a quick look and couldn't find them.) However, FIND is not in code, it's defined as: : FIND \ c-addr -- c-addr 0/1/-1 not found/immed/normal LATEST @ BEGIN \ -- a nfa 2DUP [email protected] BF AND SWAP [email protected] \ -- a nfa n1 n2 = IF 2DUP CHAR+ SWAP DUP CHAR+ SWAP [email protected] S= ELSE 1 THEN DUP IF DROP NFA>LFA @ DUP THEN 0= UNTIL \ -- a nfa OR a 0 DUP IF \ if found, check immed status NIP DUP NFA>CFA \ -- nfa xt SWAP IMMED? 0= 1 OR THEN ; 6809 FTW!
  18. FIND is only used when compiling, correct? If yes, I guess using a cross compiler on a PC almost exclusively, which compiles my 5k binary in a couple of seconds, means this doesn't really make a lot of difference to me. I'm still interested, though, to try the 1 2 3...9 10 Enter test the see how fast the Vectrex 6809 does it. When I'm back from holiday...
  19. At some point in my Vectrex 6809 Camel Forth adventure, I'm going to need these optimisations, thanks for posting. Originally, Vectrex carts were 4k, later ones were 8k. More recent homebrew carts have been up to 64k via simple 32k bank switching. Memory size isn't a problem any more, but program speed always is. The Vectrex runs at 1.5MHz and so to get a flicker-free 50Hz screen update you need to get each update done in 30,000 cycles. There are no frame buffers or separate vector generator hardware available, it's all got to be done in real time by the 6809!
  20. Actually something I forgot to mention, I once owned a TI-99/4A. I can't remember where I got it from, but my eBay auction text from Jan 2002 when I listed it said "This is an auction for a Texas Instruments TI99/4A computer main unit only. I have no power supply or other leads so I do not know if it works." No wonder I can't really remember much about it, except it seemed really nicely made. I'm a bit sad now that I didn't stick it in a box in the garage for later!
  21. Ah yes...actually I read your release notes etc. perhaps 4 or 5 weeks back, then I went on holiday for a week and forgot everything about it :-) My memory now of what I read is that you compiled (assembled?) the primitives and put that onto the '99 and then loaded the rest of Forth and any extensions using the '99 to compile. When you've got access to disk/flash, I guess that gives you a nice usable system to do that. My CamelForth is running on 6809 and Brad R's "Chromium" cross-compiler is quite complete, so I'm compiling everything on the PC. As the target is the Vectrex with it's vector monitor and joystick, there is no keyboard or character-based display, and <1k of usable RAM, so compiling on the Vectrex is a non-starter without hardware mods. I do have a serial port/terminal added to mine for interactive testing, but a ~700 byte dictionary has some limitations! My aim is to allow creation new cartridge programs/games by other developers, so hardware changes can only be minimal, thus PC is the IDE. There are some great emulators for the Vectrex with build-in debuggers and one has a full IDE for assembly language development, but it still works quite nicely with the output from the Chromium compiler. With some help from the Forth community, I have Camel Forth 6809 Chromium compiler now running on Gforth instead of F83 and with plain text files instead of block files, I saw this as mandatory to get any new users. One day I'll learn how to use Github... I'm new to the TI processors,a quick look shows the 430 to be similar to the '99 processor, but with more capability, so it makes perfect sense to port 430 Camel Forth to the '99. It looks like you've put a lot of effort into your Forth, just like the other two Forths for the TI, they all look excellent. I've really enjoyed reading about them and the '99 in general, especially after learning so much about the machine on the Floppy Days series of '99 podcasts. I owe it to myself to download Classic99 and give'em a go!
  22. So now there's 3 Forth systems for the TI? I assume this one is based on Brad's Camel Forth? But, by the look of it, you're not cross compiling from a PC? I'm also using Brad's Camel Forth, but the 6809 variant and using his Chromium cross compiler. Target is the Vectrex, probably a lot less work than you need to put it as it has the correct processor!
  • Create New...