-
Content Count
145 -
Joined
-
Last visited
Posts posted by vol
-
-
I have made a version of the pi calculator for Extended Basic (it is available for download in the same place). It works fine under Classic99. However I tried several other emulators. Surprisingly the timing results were different.
Let me show results for 1000 digits:
JS99 - 66.5 s
Classic99 - 69.1 s
MAME - 127.3 s
So these results are almost identical for JS99 and Classic99 but MAME shows a completely different number. I can assume that MAME doesn't emulate properly faster speed access to scratchpad RAM. I also checked results with stopwatch. All emulators print the same timings as my stopwatch. BTW I failed to runt V9t9, it seems that its code has problems with modern Java.
I've got another problem. I tried various XB cartridges with MAME:extended_basic_100.rpk
extended_basic_27.rpk
extended_basic_plus.rpk
extended_basic.rpk
I can successfully use only the first of them. All others give I/O ERROR 00 after
OLD DSK1.PIXB
I use the next line to start MAME
mess ti99_4a -cart extended_basic_100.rpk -ioport peb -ioport:peb:slot2 32kmem -ioport:peb:slot8 hfdc -flop1 pi.dsk
Why don't other XB variants work? Any hint? Thank you in advance. -
On 3/22/2021 at 10:48 AM, apersson850 said:And significantly so. The fact that you can use a short address to reach 1/256 of the total memory doesn't make that part behave like registers. The 6502 is still limited to a single 8-bit accumulator for many of its instructions.
Indeed, the 6502 zero page doesn't behave exactly like the TMS9900 registers but if you compare zp with the Z80 registers B, C, D, E you find out that zp behaves almost exactly like them.
The 6502 was designed primarily as a controller but it turned out versatile, fast and very cheap, and therefore it was pretty good for first cheap personal computers.
-
1
-
-
On 3/13/2021 at 7:07 PM, TheBF said:I think the thing that is missing in the revision is the actual difference between zero page memory and 9900 register workspaces.
The number of workspaces is limited only by memory in the 9900. You can create as many as will fit.
And I believe BLWP is the preferred way to call sub-routines by the architects, not BL with a simulated stack. (even though I use 2 at the same time)
Thank you. Of course, the 6502 doesn't have the WP register so its zero page addressing is more primitive. However some the 6502 based systems, for example the Commodore 128 or Apple III use the MMU chip which allows to relocate zero page to any location in memory. So they provide WP functionality using an external chip. Moreover the 65816 (the Apple IIgs, ...), 65CE02, 6809 (the Tandy CoCo, ...) have the direct page register which provides the same functionality as WP. Indeed, these processors missed the BLWP instruction that makes their memory-to-memory features less advanced than the TMS9900 register architecture.
I've also added information from Washington Post to my material:QuoteInterestingly, back in 1982, the TI-99/4A sales accounted for 34% of the US computer market for computers with an average retail price of $500. This was ahead of the Commodore VIC-20 (33%), Atari 400 (20%) and Tandy Coco (13%).
It is sad that TI stopped supporting the unique TI-99/4A architecture so early.
-
1
-
1
-
-
Thanks a lot for the corrections. I have fixed my blog entry, I also added some additional info there. For convenience, I also made a document where all the changes are highlighted in yellow. Any additional corrections will be greatly appreciated. I am not a native English speaker. So any general suggestions on how to make the text better are also welcome.
On 3/8/2021 at 1:02 PM, apersson850 said:To do a subtract immediate by using AI Rx,-VALUE isn't too difficult.
TI never changed to the Z80 CPU. It was just a suggestion, but it was turned down.
They did develop the TMS 9995, which was a 16-bit CPU with an 8-bit data bus (like the 8088). The TMS 9995 was much more efficient internally, and thus roughly three times faster. It was supposed to be used in the TI 99/8.
I try to joke about AI - you need some intelligence to use AI instead of subtraction.
TI stopped using their processors in their calculators since the 90s. They started using the Z80, and later 68000 and ARM.
Was there a 16-bit variant of the TMS9995?
On 3/8/2021 at 2:51 PM, mizapf said:I never heard about "pseudo-registers"; it's not a term used by TI. The TMS9900 is a memory-memory architecture, hence the registers are in memory. At first I though you referred to the hardware registers as pseudo-registers (because you cannot freely use them). Registers are referred to in instructions; you have to provide their 4-bit numbers, unlike accesses to memory locations where you provide the address. From the point of view of the instruction set, it is not correct to say that the TMS9900 only has 3 registers; it does have 16 registers. If you like, you could probably differentiate between the hardware view (3 registers: WP, PC, SR) and the software view (set of 16 registers, freely locatable in memory).
On 3/8/2021 at 3:39 PM, apersson850 said:Pseudo-registers is usually used by people who aren't too familiar with the design. They feel that registers have to be in the CPU to validate as registers. From that point of view it's correct that the TMS 9900 has three hardware registers that are obvious to the user. There are other internal registers too, but you can't directly use them.
Indeed the term pseudo-register is unofficial. However I just tried to find a common ground for the term register. The TMS9900 external registers are almost identical to the 6502 zero page memory and nobody calls this memory registers. The TMS9900 external registers are not the same as internal. Therefore I had to use a word which can show the difference.
-
I have almost finished my study about the TI99/4a. It is a very unusual machine which makes it very interesting. Its processor is also very interesting. It's sad that Texas Instruments had to switch to the Z80 instead of using some kind of the updated TMS9900. I have made a summary about the TMS9900. Any corrections or suggestions for the content or style are welcome. Thank you
-
2
-
-
23 hours ago, TheBF said:Update on the scroll.
I re-wrote your code in Forth Assembler and compared it to my scroll that uses Forth for looping (quite slow) and ASM routines to r/w VDP RAM but I use a 2 line buffer.
The video shows the results on Classic99 using a coarse elapsed timer. Screen capture shows the results. SCROLL-SLOW is almost 2X slower than mine which uses a lot of Forth.
Thank you. What a nice idea to use a Forth-like assembler! IMHO other platforms missed this idea.
I'm a big RPN fan.
Indeed my scrolling routine might be faster but for my project it is not very important. The speed of scrolling can noticeably affect only 100 digit results. For ER calculation, only values of CPU timing (without IO) are used. BTW I had to bend some rules in favor of the TI-99/4A because I must only use a system routine for displaying characters. But the TI-99/4A doesn't have such a routine.
IMHO my routine is faster than Basic PRINT anyway.
My primary interest is to make the number pi calculation faster using all tricks available on every system.
-
1
-
-
I have a project, a multi-platform number π calculator. It is available for the TI-99/4A with Editor/Assembler cartridge and 32 KB RAM expansion. The results are a bit surprising for me. The TI-99/4A Basic performance is likely the slowest among home computers but its processor at 3 MHz shows very good performance. It beats the [email protected] MHz, [email protected], or even VAX-11/730! I am not an experienced TMS9900 coder so it is possible that my code may be improved a bit. So let us try to make it faster. We need to optimize only 33 LOC:
!l4: s 12,7 ... jne -!l4It is also interesting to get results from real hardware. IMHO emulators are a bit faster than hardware.
-
4
-
-
I have been able to persuade T40XB to build the 38x21 Mandelbrot!
100 REM A BASIC, ASCII MANDELBROT 110 REM 120 REM THIS IMPLEMENTATION COPYRIGHT (C) 2019, GORDON HENDERSON 130 REM 140 REM PERMISSION TO USE/ABUSE ANYWHERE FOR ANY PURPOSE GRANTED, BUT 150 REM IT COMES WITH NO WARRANTY WHATSOEVER. GOOD LUCK! 160 REM TI-99/4A (T40) VARIANT BY LITWR, 2021 162 CALL LINK("T40") 163 CALL LINK("CHAR",126,"0000205408") 164 CALL LOAD(-20480,96,130,200,2,176,42,200,2,176,44,4,204,29,0,2,2,63,255,200,2,176,40,5,204) 165 CALL LOAD(-20456,51,130,6,76,30,0,2,2,177,0,200,2,131,196,4,91) 166 CALL LOAD(-20224,4,204,29,0,55,194,30,0,9,18,195,32,176,40,200,2,176,40,99,2,2,76,63,255) 167 CALL LOAD(-20200,168,12,176,44,23,2,5,160,176,42,4,96) 170 C$ = ".,'~=+:;[/<&?oxOX# " 175 REM 'PALLET' LIGHTEST TO DARKEST... 180 SO = 1 185 REM SET TO 0 IF YOUR MID$() INDEXES FROM 0. 190 MI = LEN(C$) 200 MX = 4 210 LS = -2.0 220 TP = 1.25 230 XS = 2.5 240 YS = -2.5 250 W = 38 260 H = 21 270 SX = XS / W 280 SY = YS / H 282 CALL PEEK(-31804,T0,T1) 284 IF T0<>177 THEN CALL LOAD(-20188,T0,T1) 290 CALL LOAD(-31804,176,0) 300 FOR Y = 0 TO H 310 CY = Y * SY + TP 320 FOR X = 0 TO W 330 CX = X * SX + LS 340 ZX = 0 350 ZY = 0 360 CC = SO 370 X2 = ZX * ZX 380 Y2 = ZY * ZY 390 IF CC > MI THEN 460 400 IF (X2 + Y2) > MX THEN 460 410 T = X2 - Y2 + CX 420 ZY = 2 * ZX * ZY + CY 430 ZX = T 440 CC = CC + 1 450 GOTO 370 460 P$=P$&SEG$(C$, CC - SO, 1) 470 NEXT X 480 CALL LINK("PRINT",25,1,P$) 485 P$="" 490 NEXT Y 510 CALL PEEK(-20438,T0,T1,T2,T3) 530 CALL LINK("PRINT",25,1,((T0*256+T1)*65536+T2*256+T3)/46875) 550 CALL KEY(0,X,Y) 560 IF Y=0 THEN 550This code can be copy-pasted.
I am very impressed by T40XB. It has even a command to show a directory listing - CALL LINK("CAT") - a very useful feature.
However T40XB is still not polished enough. Its glyph for the tilde character is corrupted so I had to define it in this program.
-
6
-
-
10 hours ago, Tursi said:TI BASIC (+EA): Hardware: 739 Classic99.038: 732 MAME (Mizapf): 728
XB: 821 Classic99.038: 815 MAME (Mizapf): 811
I have been able to figure out why your results differ from mine. It is because your code has an extra line 168. However I can't explain why this line affects timings. It is an odd mystery for me.
BTW line 540 is also redundant. But it is good to add line 560 IF B=0 THEN 550.
-
4 hours ago, Tursi said:How did you enter lines 164 and 166? Both BASIC and XB give me "LINE TOO LONG", which means too many tokens (rather than characters).
I broke them up and ran on real hardware... I also get different results under Classic99. Are you on an older version? Current is 399.038.
TI BASIC (+EA): Hardware: 739 Classic99.038: 732 MAME (Mizapf): 728
XB: 821 Classic99.038: 815 MAME (Mizapf): 811
There's only a 1% delta between those... since CPU clock can vary by +/- 5% (per datasheet and observation seems to match), that's within spec for all of them.
Thank you very much for your results. I use Classic.037, now I am rechecking my results, maybe I made a mistake somewhere.
I think your problem with long lines happened because you used the editor where you pasted the text. The editor has more limitations on the line length. I used xbas99 (from there) to convert the text into Basic.
-
5 hours ago, TheBF said:I am curious. Do you use the interrupt to poll the timer and accumulate in a memory location?
This is exactly how it is.
-
1
-
-
8 hours ago, Tursi said:ANSI BASIC didn't define a screen size poke.
TI wasn't interested in opening up anything at all on the machine... we all spent our youths wishing for such things, you're just learning it now! You're lucky you decided to use /Extended/ BASIC. Regular BASIC is slower still and doesn't even have CALL LOAD.
As for the timer, 0.35 seconds is enough time for /one/ instruction to finish - even the screen scroll is faster than that. Just have your interrupt routine read the timer to determine how long elapsed, instead of assuming it was 1/60th of a second.
But using the CLOCK is still the simplest.
Thank you very much. I have just made code which uses interrupt calls to check the 9901 timer. It works perfectly.
Just replace the next lines in the text above.
162 CALL INIT 164 CALL LOAD(-20480,96,130,200,2,131,172,200,2,131,174,4,204,29,0,2,2,63,255,200,2,131,170,5,204,51,130,6,76,30,0,2,2) 165 CALL LOAD(-20448,177,0,200,2,131,196,4,91) 166 CALL LOAD(-20224,4,204,29,0,55,194,30,0,9,18,195,32,131,170,200,2,131,170,99,2,2,76,63,255,168,12,131,174,23,2,5,160) 167 CALL LOAD(-20192,131,172,4,91) 290 CALL LOAD(-31804,176,0) 520 CALL LOAD(-31804,0) 530 PRINT ((T0*256+T1)*65536+T2*256+T3)/3000000*64It is interesting that the standard TI Basic (+Editor/Assembler cartridge) is noticeably faster than Extended Basic. I have gotten the next results
d7,1 691 TI-99/4A + Editor/Assembler cartridge (Classic99 emu)
d7,1 774 TI-99/4A + Extended Basic cartridge (Classic99 emu)I tried to use 't40xb' utility but it doesn't also allow to use 2 edge columns for PRINT.
-
1
-
-
1 hour ago, Tursi said:Yeah, TI was obsessed with standards on the home computer, so they honored the "safe text area" for PRINT
They could have offered a way to use a larger area. The Atari 800 has a POKE for this.
-
13 hours ago, Tursi said:But if you already have custom assembly code for timing, why the resistance to meeting your other goals? You could also time with the 9901 instead, but given the speed of TI BASIC, most people aren't concerned about millisecond accuracy.
Sorry, I don't like my code for handling the timer. My heuristic is not very good.
So thank you very much about mentioning the TMS9901. I have just checked documentation and found out that the timer has only 14 bits and it decrements at 46875 Hz rate. This gives us a maximum interval of just 0.35 seconds. It is too little.
Maybe I am wrong on these details. Any help is welcome.
-
19 minutes ago, mizapf said:Would CALL HCHAR(x,y,c) be an option (to write the character c at the given position x,y)?
No, because I want to use the same Basic code with different platforms. I also want to use only standard Basic.
15 minutes ago, Tursi said:as for the interrupts - scrolling takes numerous frames in BASIC, and no interrupts occur during that. Most other operations should be fast enough.
It is not so that easy. I have found out that it is not only about scrolling, the dependency is more difficult. In the Basic text above I had to add a compensating constant for every iteration, even if this iteration doesn't cause vertical scrolling. IMHO floating point routines can stop interrupts too.
-
47 minutes ago, arcadeshopper said:
1 - yes but you have to type in a program or load it from disk the program is in the disk controller manual which is on ftp.whtech.com if you don't have it
2 - basic is 32 col you can access 40 col mode with t40 by senior falcon here in aa check development resources
Sent from my LM-V600 using Tapatalk
Thank you very much. But Basic does not allow the use of the two outermost columns on the left and right. XB manual has even a phrase about the DISPLAY AT statement "Columns are numbered 1 through 28". The Atari 800 or MSX computers also disable their outermost columns in Basic by default but it is easy to enable them on these systems. So I am seeking for a way to enable all 32 columns for PRINT, LIST, etc. I want to print Mandelbrot with W=30.
-
I adjusted a program, which draws ASCII Mandelbrot, for the TI-99/4A. Use W=26 (line 250) to get a proper picture on the TI-99/4A.
100 REM A BASIC, ASCII MANDELBROT 110 REM 120 REM THIS IMPLEMENTATION COPYRIGHT (C) 2019, GORDON HENDERSON 130 REM 140 REM PERMISSION TO USE/ABUSE ANYWHERE FOR ANY PURPOSE GRANTED, BUT 150 REM IT COMES WITH NO WARRANTY WHATSOEVER. GOOD LUCK! 160 REM TI-99/4A VARIANT BY LITWR, 2021 164 CALL INIT 168 CALL LOAD(-31840,5,160,131,174,22,2,5,160,131,172,4,91,0,0,0,0) 170 C$ = ".,'~=+:;[/<&?oxOX# " 175 REM 'PALLET' LIGHTEST TO DARKEST... 180 SO = 1 185 REM SET TO 0 IF YOUR MID$() INDEXES FROM 0. 190 MI = LEN(C$) 200 MX = 4 210 LS = -2.0 220 TP = 1.25 230 XS = 2.5 240 YS = -2.5 250 W = 38 260 H = 21 270 SX = XS / W 280 SY = YS / H 290 CALL LOAD(-31804,131,160) 300 FOR Y = 0 TO H 310 CY = Y * SY + TP 320 FOR X = 0 TO W 330 CX = X * SX + LS 340 ZX = 0 350 ZY = 0 360 CC = SO 370 X2 = ZX * ZX 380 Y2 = ZY * ZY 390 IF CC > MI THEN 460 400 IF (X2 + Y2) > MX THEN 460 410 T = X2 - Y2 + CX 420 ZY = 2 * ZX * ZY + CY 430 ZX = T 440 CC = CC + 1 450 GOTO 370 460 PRINT SEG$(C$, CC - SO, 1); 470 NEXT X 480 PRINT 490 NEXT Y 510 CALL PEEK(-31828,T0,T1,T2,T3) 520 C = W*H*0.04 530 T0 = (T1*65536+T2*256+T3)/60 540 PRINT T0+C 550 CALL KEY(0,A,B)The TI-99/4A shows that its Basic is rather slow. All results are here.
I have several questions about the TI-99/4A.
1. Is it possible to get a disk directory listing in Basic or Extension Basic?
2. Is it possible to use 32 columns in Basic?I have used a custom code to sum the number of video interrupts. However the system sometimes skips these interrupts because it has accesses to video memory quite often. I had to use a heuristic correction to make the timer value more accurate. Maybe there is a way to make a system less prone to corrupt its timer?
-
2
-
-
On 2/19/2021 at 9:18 PM, Faicuai said:Of course, but from those three only Apple came in with something really ground-breaking, for the end-user / consumer. And those three do not share the same ground-breaking / innovative roots and place-time connections as Apple / IBM / Atari, which is presumablywhy they appear in Top-25 PCs of all time:
https://www.pcworld.com/article/126692/greatest_pcs_of_all_time.htmlhttps://www.pcworld.com/article/126692/greatest_pcs_of_all_time.html
Thanks, however it looks like an Apple ad The machine's coolness factor--an Apple trademark to this day
IMHO Apple II success depended much on their dominance in the US schools which had rather a special background. IMHO the Atari 800 can easily beat the Apple II in a fair fight.
On 2/21/2021 at 6:50 PM, Faicuai said:Ok, so here's what you can do to first check if everything is working properly on the setup and images I previously sent you:
1. Boot CP/M on Altirra following the exact same instructions posted above.
2. Once booted, go to Altirra and attach the SAME 180K image as Drive B (it is OK to momentarily replace the larger SDX we had there first).
3. Delete a file from CP/M boot A: drive like "peekram.bas" for instance. (issue an "ERA peekram.bas" command from CP/M prompt)
4. Launch ICDS right after.
5. Once there, type "A" and then "B:*.*". You SHOULD see a complete directory of B: image (identical to A: at boot time). Directory will progress slowly, as all traffic is SIO-to-SIO.
Thank you very much but I am again stopped on item 5, my system hangs
It shows red 1b in the drive mini-window. Indeed, B:*.* changes nothing.
-
8 hours ago, Faicuai said:At the heart of modern computer history, lies a "trilogy" of companies and products. Only three: Apple, IBM and Atari. These companies are connected not just in space, but also time.
Steve Jobs worked for Atari where he proposed creating a Personal Computer division. Steve Jobs later tried to hire Don Estridge (IBM/PC project leader, out of IBM-Boca Raton, Florida's facilities) to work into apple... And IBM considered the 800, the "boss", the real McCoy as their own OEM product-line:
The 800 was designed to compete with the Apple/II. It was the first (and most important) shot the company had at making a strong impact where Apple was already a leader, Therefore, the designs, architecture and products that came out of that effort where never really matched. later on.
ICDS handles two media-descriptirs: numbers 1: 2: refer to Atari-DOS (double-density) format. A: B: refers to CP/M format.
Try that first. I will try to help you with that Utility and loading it, if I find it.
Thank you very much for this interesting information. However there was a more known computer trio, the holy trinity (Commodore, Apple, and Tandy), which started popular personal computer production. Atari was the fourth.
I have read that Atari management wanted to sell more the Atari 2600 console than to promote the new Atari 400/800 line.
ICDS really doesn't work for me.
Are there other ways to transfer data to a Indus CP/M disk? Indeed it is interesting can ICDS work on real hardware or not? Maybe it is a bug of emulation. ICDS is an utility on the disk image you sent me. Thank you again.
-
On 2/15/2021 at 9:28 PM, Faicuai said:FYI, It is quite an undertaking to set everything in Altirra to a usable level, similar to actual HW/SW config. for CP/M, especially if you don't have a pre-loaded / configured HD image for SIDE2, with everything you need inside.
Let me know if this helps a bit more. I am not sure I can help you with system timers within Indus and its CP/M BIOS. But, again, I am not really sure why your benchmark depends on it, other than reading time for reporting purposes only.
Let me know how it goes.
Wow!
I have gotten the super Atari 800! What could such a machine cost in the 80s?!
I could successfully load CPM. I found something like a RAM-disk with CPM-files but it contains folders... How can one use folders under CP/M? I am also impressed much by the presence of well known BBC Basic.
Despite of having so a good virtual machine I am still stuck with the same problems.
I can't use ICDS.COM - when I try to show a folder contents it hangs.
BTW I noticed that utilities for CPM are still missed the very useful ZSID utility, they offer only much less useful DDT.
So my first task is to move ZSID on a CP/M-disk.
And I still have some hope that there is a way to reach timers from a CP/M program. I am almost sure that the Indus drive hardware doesn't have anything that could help but there should be some ways to get the Atari800 memory... However if the only way for this is to write a custom terminal emulator program that this will be too strong for me and I will give up my attempts to get timings.
Indeed my π-spigot implementation needs a timer values but just for timing and for nothing else.
Anyway thank you very much. I am very impressed by capabilities of the 8-bit Atari's. If Atari managers hadn't slowed down the development of this machine, it could have been much more mainstream and famous. -
I am trying to work with this system and I have several problems. Any help is welcome.
At first let me explain my working environment. I use the Altirra 3.90 emulator. I got a corrected CPM disk image in XFD-format. I got other Indus disk images from http://www.retrobits.net/atari/indus.shtml
My first problem I can't boot terminal disk from the Indus drive. This drive boots other disks, for example Indus GT System Master Disk but not Charger 40/80 Col. Terminal disk.
So I have to set the Indus drive as D2: and boot from the terminal disk inserted into D1: and D1: is a generic Atari disk drive. Then I put the CPM disk into D2: and boot from it. I get the CP/M prompt and can use the system.
My next problem comes when I try to use utility ICDS.COM from RAM Charger Utility Disk. I just put this disk into D2: and run this utility. It seems that it doesn't work.
I can't even show a directory listing for any drive with it. The system just hangs after I enter A: or 1: after its prompt for the show directory command.
Maybe RAM Charger Utility Disk is corrupted like the RAM Charger CP/M Boot disk and need to be in XFD-format? Without this utility I can't add files to CP/M disks.
There is also a question about contents of the RAM Charger CP/M BIOS disk. It seems that it contains no files.
It seems that any disk error hangs the system.
Is it the emulator error or this crash is also natural on real hardware?
I seek more technical information about the Indus GT. Is there any way to get a timer value for a CP/M program? I checked the Indus schematics and found out that the Indus doesn't use NMI and it uses masked interrupts only from drive control circuits. So there is no possibility to use any timer inside the Indus.
There are only chances to get timer from the Atari host. Is there any documentation about how the Indus communicate with the Atari? I tried to dig into Firmware ROM sources - https://atariwiki.org/wiki/Wiki.jsp?page=Indus GT Firmware ROM Source - but I have been not able to find anything relevant.
Thank you very much in advance for any help.
-
29 minutes ago, Stephen said:Everything you need you can find here:
http://trub.atari8.info/index.php?ref=indus_cpm_enThank you but it is rather outdated information, this thread is much better.
I have finally persuaded the terminal disk to boot. I have to set the Indus drive as D2: and boot the terminal disk from D1: which is set as a generic Atari drive.
So CP/M started for me!
However any disk error hangs the system.
-
1 hour ago, Faicuai said:Away from my retro-desk since yesterday afternoon. Just enjoying life a bit...
Will help you with those images (you need to fix sector 1-3 because they are written always as 128bytes even on 256bytes/sec DD images). That's why your boot is stalling.
Ince after that you should be on your way. On Altirra, use "console switches" to press Indus/GT buttons.
Cheers!
Thank you! I have been able to find a thread on this forum where I get the required image. But it is something strange that I still can't normally boot from the terminal disk. Maybe there is some little trick for this?
The Atari is quite an interesting system to explore.
Cheers!
-
19 hours ago, Faicuai said:I will prepare an .ATR for you, with what you need (give some time). We will guide you.
I have just found out information that CPM disks in ATR format are unreliable, one needs to use XFD-format disks. Would you like to help with such a disk image? And I am still stuck in problem of booting from the terminal disk.



OoeyGUI v4.0 Released!
in TI-99/4A Development
Posted
I am using Debian 10, my system satisfies the requirements but I got an error, version `GLIBC_2.29' not found (required by /mnt/store/current/retro/ti99-4/emu/ooeygui/libpython3.8.so.1.0)
I have MAME 0.229 installed. My system uses GLIBC_2.28 and Python 3.7.3. It seems there is no easy way to fix this... Is there sources for ooeygui somewhere? I can try to compile them.