-
Content Count
3,144 -
Joined
-
Last visited
Content Type
Profiles
Member Map
Forums
Blogs
Gallery
Calendar
Store
Everything posted by Willsy
-
I would say it's the 9901 chip. You really need a multi-meter. You could try examining the solder joints round the male keyboard connector on the motherboard. If you have a soldering iron, melt them and re-make them, in case the 5V or 0V lines have gone open-circuit. Otherwise, it would be impossible for the *entire* keyboard to not work, since the keyboard is actually a number of seperate circuits IIRC. It's a purely mechanical device, with no electronics on it. So the fact that no keys works at all would tend to imply that a) The keyboard is not getting a power supply b) The 9901 is faulty If it were the 9901, one would expect the whole machine to just lock solid, and not even boot, but the 9901 has to be a suspect in this particular fault. You can buy two 9901's for $18 plus shipping here: eBay Auction -- Item Number: 220824044636 Mark
-
How's the book coming? Not too bad. Still loads to do though The problem is that I chose to make it difficult for myself! The book not only teaches all the TurboForth words, it also teaches *Forth*. I considered this essential as most people in the (current) TI community don't know Forth, so without a book to teach them Forth programming they wouldn't be able to do anything more than 'kick the tyres' and then they would lose interest. *Hopefully* the book will show them what Forth *is*, show that it's not as difficult as it looks and encourage people to sit down and give it a good spanking, rather than kick the tyres! Mark
-
I'm too wrapped up in the world of Forth at the moment to take anything else on. I'd be happy to do something after that though, probably in about 6 months.
-
Woah! Hell of a job RetroClouds! Nice one! I also added a new function to Classic99. It's called bool ready=makeCupOfTea(bool sugar); Sadly, it only works in the UK. My C skills are not up to the job of YACK ready=cupOfRancidPiss(coffee); which seems so popular across the pond
-
You can use directories/sub-directories in classic99. Just use a . OLD DSK1.SUB.DIRECTORY.FRED Would load dsk1/sub/directory/fred
-
Indoor soccer. I was so ashamed of that game, I wouldn't let my friends see it!
-
That makes me laugh! Why? Because I remember being shown TI Forth in (I think) 1989 at a TI meeting, by Alan Rutherford and the legendary Stephen Shaw. They were trying to get me to "see the light". I thought it was the most ridiculous thing I had *ever* seen on a computer! An absolutely stupid idea! Reverse Polish Notation? What *idiot* thought that would be a good idea? 20 years later, I told myself I'd finally sit down and figure out what this "Forth thing is all about...". I was so impressed that I sat down and developed my own Forth system!
-
A couple of weeks guys and I should have another batch of cartridges on eBay. I've been quite ill the last couple of weeks and am only just now getting back on my feet Mark
-
I think TI99-PC will take a disk image file and convert it to PC-99 but don't quote me on it. I would ping the Y-group(s) for answers or EM Ernest Pergram. He will know the answer. The TI99DIR Tools menu has the following options (I'm using version 5.2k, there might be a more up to date version on Fred's web site) Convert TI file to PC file Convert PC file to TI file Convert TIFILES file to V9T9 file Convert V9T9 file to TIFILES file Convert PC99 Disk Image to V9T9 Disk Image Show PC99 disk image track and sector layout Backup TI formatted SCS / IDE / WDS / or CF7A+ disk image Restore TI formatted SCS / IDE / WDS / or CF7A+ disk image
-
Just a quick edit... TF has the words 1+ and 2+ for adding 1 and 2 to the value on the stack. This is faster than doing 1 + and 2 + 0 VALUE SEED $8379 [email protected] TO SEED : RND SEED 31421 * 6927 @ + DUP TO SEED ; VARIABLE HE : CHART 1 GMODE 1 SCREEN 4 5 0 COLOR 5 15 0 COLOR DATA 4 $0000 $0000 $0000 $007E 33 DCHAR DATA 4 $0000 $0000 $007E $007E 34 DCHAR DATA 4 $0000 $007E $007E $007E 35 DCHAR DATA 4 $007E $007E $007E $007E 36 DCHAR DATA 4 $040E $1F04 $0404 $0C04 40 DCHAR DATA 4 $0404 $1C04 $0404 $0C04 41 DCHAR DATA 4 $0404 $1F04 $0400 $0000 42 DCHAR DATA 4 $0000 $FF44 $0400 $0000 43 DCHAR DATA 4 $0406 $FF46 $0400 $0000 44 DCHAR 40 0 V! 1 0 41 22 VCHAR 42 736 V! 23 1 43 30 HCHAR 44 767 V! BEGIN 31 1 DO RND 19 MOD 1+ HE ! 1 I 32 HE @ VCHAR HE @ 1+ I RND 4 MOD 32 + 1 VCHAR HE @ 2+ I 36 21 HE @ - VCHAR LOOP AGAIN ; CHART
-
Ha! Welcome to Forth Mark
-
Regarding blocks: Code in Forth is usually distributed in source form, in a blocks file. It is simply compiled as and when it is needed. Therefore a Forth application may consist of many consequtive compiled compiled blocks of code, or many disparate (perhaps optional) blocks of code. When a block is loaded, it is kind of treated as if the stuff in the block is being typed really fast by the user at the keyboard! The compiler actually doesn't know where the data has come from - block or keyboard. This means you can treat blocks just like batch and/or script files. TurboForth will faithfully execute whatever it finds in the block. For example, create your blocks file like this: MKBLK DSK1.BLOCKS 80 (creates a blocks file with enough room for 80 blocks (80K)) S" DSK1.BLOCKS" USE (the space after S" is important!) Now edit block 1: 1 EDIT In block type: .( Hello world!) CR : TEST 100 0 DO I . LOOP ; TEST Now exit the editor (FCTN 9) Now save the block you edited to disk with FLUSH Now reboot with COLD What do you see? Regarding blocks and FLUSH: TF has a 6 block cache. If you edit a block, it will sit in ram until such time as the cache is full, at which point it gets FLUSHed to disk for you. This is to minimise round-trips to the disk drive unless necessary. If you edit a block and wish you hadn't just press QUIT (FCTN =) to abandon your edits. May the Forth be with you.
-
He he! Confusing eh? Forth will really screw with your brain, then you'll realise, it's actually really really easy, and there is no mystery. The golden rule, as Lucien already said: There is no syntax. Only words seperated with spaces. 99.9% of the time, words 'communicate' via the stack. One word may leave something on the stack, to be consumed by the next word. In the case of the loop example: : TEST 100 0 DO I . LOOP ; Firstly, 100 and 0 are placed on the stack (0 at the top). DO is then called. He is pre-programmed to pop the top two numbers off the stack. He knows that the top number (0) is the loop start point. He knows that the next number on the stack (100) is the loop termination point. He stores this data somewhere (we don't need to know where) so that he and his friends (I and LOOP) can use it later. I is then called. I is not a variable. It is a word, just like everything else. I knows where DO keeps his stashed data (the 0 and the 100) and pushes the current loop value (0) to the stack. . is just another word. It takes the top most value off the stack, and displays it. LOOP takes the 0 stashed by DO, and adds 1 to it. It compares it to the loop termination value (100) and if less than, sets the PC back to the word just after DO. That's it. Even : and ; are words. ":" turns on the compiler, and ";" turns it off again. Even variables are implemented as words: VARIABLE FRED Now type FRED at the keyboard. You get OK:1 Huh??????? We just *executed* a variable?? How is that even possible? Well, the word VARIABLE created a word *for us* in the dictionary, who is pre-programmed to return a pointer to his 'storage space' when executed. So the value you got on the stack after typing FRED is an address. A pointer. You can use this address with the words @ (fetch) and ! (store) to read and write data: 99 FRED ! (store 99 'in' FRED) FRED @ . (displays 99). Head hurt yet?
-
Just tried it, but all I get is a blank screen. Am I doing something wrong? EDIT: I tried this in classic99. Do I need some kind of 80 columns device? Classic99 doesn't support 80 column mode at the moment. Fred Kaal's emulator does, and there is a version of a TurboForth available for it on the the TurboForth website. As an aside, Fred's emulator also emulates the other hardware functions on the 9938 such as hardware line draw and rectangles etc.
-
Matthew If you want something more interesting on the screen, type this in: : CSET 2 GMODE 8 0 DO 256 0 DO I EMIT LOOP LOOP ; Then just type CSET and press enter
-
I think I just pee'd in my pants a little. Yep. I WANT ONE OF THESE NOW!!
-
Yeah I noticed that too!
-
For 40 column type 0 GMODE For 32 column type 1 GMODE For 80 column type 2 GMODE
-
how does a single bit tell you anything?
-
How are you setting the mode? Register direct, or are you using the bulk-load indirect method through R17? If the former, then TF on the 99/4A with an F18A can use 80-columns; and that would be a good reason to support it. :-) I can also make a definite way to detect the F18A. I'm using the former method.
-
Agreed! Did you have "type-ins" in the States? I know you had 99er, but were there any others? Had this appeared in C&VG here in Blighty it would have knocked peoples socks off!
-
The vertical movement of the ground. I remember you did something in assembly a few years back. I'd like to see something in XB if possible.
-
Sure :-) Just drop into the classic99 DSK1 folder. STARDUST.zip
