ElectricLab Posted August 9, 2018 Share Posted August 9, 2018 I am just 1000% opposed to promoting multipurposing the TIPI's PI. To each their own. I have lots of counter arguments, but none of that has to do with gcc. (Does anyone really think I waste any time transferring files in my dev workflow when there are 200 ways to automate that for Unix to Unix?) I can respect your stance on further multi-purposing of the tipi-connected Pi, especially since in increases the likelihood of problems and need for support which is outside the scope of TIPI, but people might still expect you to help. Also - No, I didn't imagine you were manually copying files. I was referring to the transfer time required, automated or no Quote Link to comment Share on other sites More sharing options...
+9640News Posted August 9, 2018 Share Posted August 9, 2018 I have almost zero knowledge on the use of the Raspberry PI or anything Unix related. I have two PI's, one never even used, waiting for the TIPI. The other I have played around with a bit but beyond getting a working image to get online, that is about it. I did not even know the "lite" version had no desktop. Myself, I was interested in some of the work Matt was doing and wondering if I could kill two birds with one stone with the gcc utilities and the TIPI. Thought it would make an interesting development platform if the possibility existed for either the TI-99/4A or Geneve. At some point in time, I will need to get one of those books for "Dummies" to fully understand the layout, directories, etc. At this point in time, I just do not know the system to know what it can or can not do, or its limitations, thus my inquiry. Beery Quote Link to comment Share on other sites More sharing options...
+jedimatt42 Posted August 9, 2018 Share Posted August 9, 2018 That's all funny... Ok, people can expect that I'd help, but they'd be wrong. I don't have gcc setup on any raspbian system... and cannot help with systems I don't have. That's what you are for! --------- Let's not forget the real question at hand! Atari guy wants -lgcc to work. And so do we. I've put hours into trying to figure that out, but have not been able to get it to build. Insomnia's recommendation a few weeks ago wasn't enough to get there. I'm still stuck on this too. Luckily, I don't have an immediate need, but I can see Irata Online requiring more maths. -M@ Quote Link to comment Share on other sites More sharing options...
TheMole Posted August 9, 2018 Share Posted August 9, 2018 Right. Where's the best place to get started with this bad-boy? Uhm, sorry Willsy, not sure what else you're asking for... did you miss my prior post or was something not clear? http://atariage.com/forums/topic/164295-gcc-for-the-ti/?p=4088115 Quote Link to comment Share on other sites More sharing options...
tschak909 Posted August 9, 2018 Share Posted August 9, 2018 $ /cygdrive/d/tms9900/bin/tms9900-gcc protocol.c /cygdrive/d/tms9900/lib/gcc/tms9900/4.4.0/../../../../tms9900/bin/ld: cannot find -lgcc collect2: ld returned 1 exit status this is after building libgcc and running make install in the build dir to install it. -Thom Quote Link to comment Share on other sites More sharing options...
tschak909 Posted August 9, 2018 Share Posted August 9, 2018 Before I start cobbling together a Makefile from libti99, has anyone made a generic Makefile for ti99 projects? -Thom Quote Link to comment Share on other sites More sharing options...
tschak909 Posted August 10, 2018 Share Posted August 10, 2018 Getting farther, my little test harness is compiling, but... tms9900-gcc -c crt0.c -std=c99 -Os --save-temp -I/home/thomc/Workspace/libti99 -I/cygdrive/d/tms9900/lib/gcc/tms9900/4.4.0/include -o crt0.o tms9900-gcc -c main.c -std=c99 -Os --save-temp -I/home/thomc/Workspace/libti99 -I/cygdrive/d/tms9900/lib/gcc/tms9900/4.4.0/include -o main.o tms9900-ld crt0.o main.o --script=linkfile -L/home/thomc/Workspace/libti99 -lti99 -o plato.elf -Map=mapfile elf2ea5 plato.elf plato.bin Warning: no "_init_data" symbol found ??? -Thom Quote Link to comment Share on other sites More sharing options...
tschak909 Posted August 10, 2018 Share Posted August 10, 2018 FWIW, I was able to build libgcc and place it in tms9900's libgcc libdir, use a -L for that lib directory, and link against it. -Thom Quote Link to comment Share on other sites More sharing options...
tschak909 Posted August 10, 2018 Share Posted August 10, 2018 Ok, so I've checked in the first commit of PLATOTerm99 code: http://github.com/tschak909/platoterm99 It compiles and an elf and bin spits out. But, ea5split doesn't produce anything, am assuming that it's because it's not quite 8K in size, yet? When I try to take the bin and plop it over into classic99 as PLATO in my DSK1 folder, and load with option 5, I get an I/O error 2...what am I doing wrong? (yes, dsk1 is mounted, and I can run other binaries in that folder)... -Thom Quote Link to comment Share on other sites More sharing options...
+chue Posted August 10, 2018 Share Posted August 10, 2018 Before I start cobbling together a Makefile from libti99, has anyone made a generic Makefile for ti99 projects? -Thom There are makefiles in the sample projects in the first post of this thread. The sample projects are: hello, hello2, and hello_cpp Quote Link to comment Share on other sites More sharing options...
tschak909 Posted August 10, 2018 Share Posted August 10, 2018 Yeah, I found them, and borrowed some from the test project. but I'm wondering why my resulting ea5 binaries from elf2ea5 won't load... -Thom Quote Link to comment Share on other sites More sharing options...
+jedimatt42 Posted August 10, 2018 Share Posted August 10, 2018 Ok, so I've checked in the first commit of PLATOTerm99 code: http://github.com/tschak909/platoterm99 It compiles and an elf and bin spits out. But, ea5split doesn't produce anything, am assuming that it's because it's not quite 8K in size, yet? When I try to take the bin and plop it over into classic99 as PLATO in my DSK1 folder, and load with option 5, I get an I/O error 2...what am I doing wrong? (yes, dsk1 is mounted, and I can run other binaries in that folder)... -Thom You need to make sure the crt module is the first / at the head of your program... An EA5 file is a memory image, and execution starts at the address where it is first loaded into. Your code is setup to link into >A000... upper 24k of the memory expansion... good. typical. But the first instruction in needs to be there at >A000... Just move crt to the top of the list from here: https://github.com/tschak909/platoterm99/blob/5f5fad476d253b9326d304f545a52c94fa537439/Makefile#L34 to here: https://github.com/tschak909/platoterm99/blob/5f5fad476d253b9326d304f545a52c94fa537439/Makefile#L28 There are other approaches, but they all involve making sure the first instruction in the image is the instruction you want it to run first -M@ Quote Link to comment Share on other sites More sharing options...
+jedimatt42 Posted August 10, 2018 Share Posted August 10, 2018 It's actually misleading that there is even a label attached to _start... as it isn't a special symbol, and our gcc linking tools don't pay it any regard. -M@ Quote Link to comment Share on other sites More sharing options...
tschak909 Posted August 10, 2018 Share Posted August 10, 2018 ok, interesting. Sorry, I'm literally going a zillion miles an hour, trying to make as many mistakes up front, as I can. Hm. still not working. Am noticing that each of the runnable images have the name of the first file within the first few bytes of the file, am I missing something? Also, I really don't know how much RAM this will need.. the 6502 version takes up 24K of RAM currently, so I would say anywhere from 16K to 24K... -Thom Quote Link to comment Share on other sites More sharing options...
+jedimatt42 Posted August 10, 2018 Share Posted August 10, 2018 The files that have their name in them are a 'container' file for hosting a TI file on a foreign filesystem... EA5SPLIT creates files contained in the TIFILES format... 128 bytes into that is the real TI binary.... 6 bytes into that is were your first instruction has to be. Hopefully our 32k will be sufficient. Let me clone and see what I can see... -M@ Quote Link to comment Share on other sites More sharing options...
tschak909 Posted August 10, 2018 Share Posted August 10, 2018 I found the problem. somehow in my constant compiling and recompiling the toolchain to fix things, I munged up ea5split. Now the binary seems to run, if going to a green blank screen..that's okay.. at least I know it's attempting to load, I'll go forward now and see if I can start filling in the system dependent code.... my immediate goal is to get the terminal to output the protocol-encoded data in splash.c to render the splash screen. Once this works, 75% of the terminal is done, then it's hooking up serial and keyboard I/O. -Thom Quote Link to comment Share on other sites More sharing options...
+jedimatt42 Posted August 10, 2018 Share Posted August 10, 2018 Cool... the VDP memory map isn't setup yet... That's why you get just a green screen. set_text(); charsetlc(); before your putstring, and then I'm seeing some output... Take a look at the libti99/testlib.c for how this stuff is strung together... -M@ Quote Link to comment Share on other sites More sharing options...
tschak909 Posted August 10, 2018 Share Posted August 10, 2018 and with a few more functions, we have a successful bring-up! Now i'll go ahead and do a TI splash. -Thom 7 Quote Link to comment Share on other sites More sharing options...
TheMole Posted August 10, 2018 Share Posted August 10, 2018 and with a few more functions, we have a successful bring-up! platoterm_ti.PNG Now i'll go ahead and do a TI splash. -Thom Awesome! Quote Link to comment Share on other sites More sharing options...
tschak909 Posted August 10, 2018 Share Posted August 10, 2018 one last post in this thread on PT, I've done the TI splash, a bit more appropriate. now I am to the point where I _really_ need help on RS232 and TIPI routines. -Thom (p.s.) Why is there a green border I can't seem to get rid of? I want border and background to be the same) 1 Quote Link to comment Share on other sites More sharing options...
+arcadeshopper Posted August 10, 2018 Share Posted August 10, 2018 one last post in this thread on PT, I've done the TI splash, a bit more appropriate. now I am to the point where I _really_ need help on RS232 and TIPI routines. platoterm_ti2.PNG -Thom (p.s.) Why is there a green border I can't seem to get rid of? I want border and background to be the same) Screen color needs to be set to Black then bgcolor(); Sent from my LG-H872 using Tapatalk Quote Link to comment Share on other sites More sharing options...
tschak909 Posted August 10, 2018 Share Posted August 10, 2018 Yup, that did it. the API slightly confusing, there is bm_setforeground, bm_setbackground, bordercolor(), and bgcolor()... urgh. -Thom Quote Link to comment Share on other sites More sharing options...
tschak909 Posted August 10, 2018 Share Posted August 10, 2018 What are the limitations of color in bitmap (GRAPHICS II) mode? I can try to graft in color support (the protocol decoder supports 24-bit color, but I will try to add support for the default system color constants, at least) -Thom Quote Link to comment Share on other sites More sharing options...
Asmusr Posted August 10, 2018 Share Posted August 10, 2018 (edited) What are the limitations of color in bitmap (GRAPHICS II) mode? I can try to graft in color support (the protocol decoder supports 24-bit color, but I will try to add support for the default system color constants, at least) -Thom For each row of 8 pixels you can only use two of the 16 colors. Edited August 10, 2018 by Asmusr Quote Link to comment Share on other sites More sharing options...
tschak909 Posted August 10, 2018 Share Posted August 10, 2018 Ok, that might be sufficient to add some color support. I will add it and see what happens. (but first I _really_ need some working RS232!) -Thom Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.