Jump to content

George Phillips

  • Content Count

  • Joined

  • Last visited

Community Reputation

28 Excellent

About George Phillips

  • Rank
    Space Invader

Contact / Social Media

Profile Information

  • Gender
  1. "Memory Size?" is definitely a misleading prompt. It's really the address of the last byte available to basic. If no answer is given BASIC will detect the available amount of RAM and set the address to the top of the RAM. RAM starts at 0x4000 (16384) so for a 16K machine RAM ends at 0x7FFF (32767). Besides storing the program, BASIC needs some working storage so on a 16K machine the maximum available memory for a program is about 15,300 bytes. If you type in 32467 to "Memory Size" the available program memory will be about 15,000 bytes. But why would you want to give BASIC less than all the RAM? Some BASIC programs require some memory be reserved for machine language subroutines and BASIC has no way to do that. A BASIC program would typically come with instructions as to what you should answer to "Memory Size?" before loading the program. A typical answer for cassette systems with 16K is 32000 as that reserves more than enough space for little machine language subroutines and is easy for the user to remember and type.
  2. Regarding booting into ROM BASIC, just press <ENTER> on both the Cass? and Memory Size? prompts. Putting in 120k for Memory Size? will cause BASIC to crash. To convert .cas file to .wav for the Model III you can use "Play Cas": http://knut.one/PlayCAS.htm which will play to the speakers or save as a .wav file.
  3. It's pretty common for the contrast and brightness pots to have problems. Usually they just need a little lubrication to be loosened up. The Cass? prompt is actually asking if you want the BASIC cassette routines to operate in high or low speed mode. Type <ENTER> or H<ENTER> for high speed, L<ENTER> for low speed. High speed is "Model III" mode, 1500 buad, low is "Model I" mode at 500 baud allowing you to save and load tapes that can be used on a Model I. They didn't have the ROM space to put in a more informative message. Or felt like adding a command to switch cassette modes inside BASIC. Though you can do so with a POKE.
  4. I like the calendar. Incidentally, March is a Model 4. White case, white special keys, F1, F2, F3 function keys and arrow keys in a cluster. Though it is running in Model III mode.
  5. The link at the end goes back to the AtariAge forum.
  6. Hmmm, something like this should work: trld file.cmd out.cas I may need to see the exact command to see what's going wrong. Be warned that ".bas" to ".cas" conversion is not likely to do what you want. For details see: http://48k.ca/trld.html
  7. I don't think you need header files specific to t1000.bgi as Turbo C just uses that as a driver to present an abstract graphics interface. graphics.h and graphics.lib should suffice. However, my experience is limited to the CGI, Hercules and VGA drivers. I expect you'll find those files in a Turbo C download such as here: https://archive.org/details/msdos_borland_turbo_c_2.01
  8. RND() takes an INT parameter so if N >= 12 there will be a problem. That depends on %CT so hard to say if that can happen. DEFINT doesn't override DEFDBL. It's just that it comes first to set the default but then DEFDBL comes later and changes G, J and K. That CMD statement would be causing the ?L3 error. Don't know what it does, though. The Model I had a number of DOS variants so what it means will depend on whether it was meant for TRS-DOS, NEWDOS, LDOS or MULTIDOS.
  9. Just to add a refinement or two on your result note that the variables are must more limited because of the DEFINT A-Z which appears first. That makes the default type INT which can only store in the range -32768 .. 32767. So even going to 32768 gold would cause an overflow. The DEFDBL might be overkill as even single precision (SNG - the default type) can store about 23 or 24 bits of integer values and then less precise integers when exponents get involved. Or any single precision floating point number, too, of course.
  10. The TRS-80 is slightly unusual in that it only sends carriage return to mark the end of a printed line. Back in 1981 or so we got an Epson MX-70 for our Model III and were distressed to see it overstriking the same line over and over when we LLIST'ed a BASIC program. Turns out Epson had anticipated this and all we needed to do was change a jumper inside the printer. Take a quick peek in the manual to see if the printer you're looking at has that capability. Should say something about only requiring Carriage Return to start a new line rather than the usual Carriage Return and Line Feed. I'd think line printers up until the mid-eighties would have retained the feature but I don't really know.
  11. The keyboard is directly addressed and pretty simple (see below). The keys themselves are just switches which connect rows and columns. I can't see any way they'd cause keys to move across columns. A shift key could be stuck on but it would have to be physically jammed down. The usual problem with these keyboards is keys stop working due resistance build up inside the key, broken traces or bad solder joints on the keys. The buffer/inverters that read the columns may be going wrong. A stuck bit from them would explain the shift key problem. I suppose it is possible they could cause the columns to apparently shift. If you do open your machine to poke around be very careful you don't damage the neck on the CRT. MEM. 128 64 32 16 8 4 2 1 ...................................... Model 1/3 Model 4 map 2 14337= G F E D C B A ` $3801 $F401 14338= O N M L K J I H $3802 $F402 14340= W V U T S R Q P $3804 $F404 14344= Z Y X $3808 $F408 14352= 7 6 5 4 3 2 1 0 $3810 $F410 14368= / . - , ; : 9 8 $3820 $F420 14400=SPC RT LT DN UP BRK CLR ENT $3840 $F440 14464= F3 F2 F1 CAP CTL RSH LSH $3880 $F480
  12. You may be better off avoiding the PCOPY entirely. Just flip between two display buffers. Using PMODE without SCREEN will let you draw to an off-screen buffer. However, BASIC is so slow it may not make a heck of a lot of difference.
  13. trs80gp will load a BASIC program in either ASCII or tokenized form from the command line. Usually "trs80gp program.txt" is all you need. You can edit inside the emulator and use LLIST to save a copy (which gets appended to trs80-printer.txt). Or you can CSAVE and it'll let you save it as a ".cas" file. But then it isn't as easy to convert that back to ASCII.
  14. trs80gp runs on windows and is geared towards software development: http://48k.ca/trs80gp/trs80gp-1.9.7.zip That's a slightly hidden more recent version, main page is here: http://48k.ca/trs80gp.html Programs can be loaded directly from the command line. With zmac's (http://48k.ca/zmac.html) .bds output format you get source-level debugging. Extremely accurate video emulation means you can program beam level effects like this: http://48k.ca/ball.html And it generally is very accurate on timing having exact cycle counts per frame and video wait state emulation. I'm the author and am very willing to accept feature requests. I think there's a fair number of people who use it but mostly I improve it as I investigate hardware details or need something to help out a programming project. I've been meaning to release an updated version officially but haven't got around to writing up the documentation.
  • Create New...