xxx Posted November 19, 2020 Share Posted November 19, 2020 can any1 else help me with my assembler inputting control characters when i paste them into the assembler? Quote Link to comment Share on other sites More sharing options...
xxx Posted November 19, 2020 Share Posted November 19, 2020 2 hours ago, apersson850 said: I see no point whatsoever in creating Playground programs for yourself. To create them, you already have every piece of hardware needed to not need the Playground programs. You create them for other people, to run them on unexpanded consoles. But that auditorium is pretty small today. I've used my complete TI 99/4A to create programs that could run on computers with just Extended BASIC, 32 K RAM and casssette player. But that was back then, when there were no eumulators and not all people had everything. its handy if u have an emulator and u want to run things on an unexpanded machine Quote Link to comment Share on other sites More sharing options...
atrax27407 Posted November 19, 2020 Share Posted November 19, 2020 Which editor are you using? Quote Link to comment Share on other sites More sharing options...
MueThor Posted November 19, 2020 Share Posted November 19, 2020 (edited) Dear apersson850, Quote I see no point whatsoever in creating Playground programs for yourself. To create them, you already have every piece of hardware needed to not need the Playground programs. You create them for other people, to run them on unexpanded consoles. But that auditorium is pretty small today. You are not alone. I bet with you that there are some more persons in this forum, who are interested in different possibilities of what would have been possible, if way back the TI-99/4a console was unexpanded or at least a minimalist system already equipped with built-in 32k RAM and the Extended Basic cartridge. Don't forget, for most TI users nearly every add-on part was quite expensive then. Especially, when you have been a pupil at school. This question respectively objective mentioned before was and is the reason for my reawakened interest in the computer TI-99/4a. Additionally, it is also the reason, why I am not so keen on software needing "modern-day" solutions like F18A and SAMS. At last, with regard to this objective in my eyes the utmost allowable add-on part would be FinalGROM 99, which represents the hardware simulation for a cartridge. Regards Edited November 19, 2020 by MueThor Quote Link to comment Share on other sites More sharing options...
xxx Posted November 19, 2020 Share Posted November 19, 2020 45 minutes ago, atrax27407 said: Which editor are you using? ive tried both ti writer and the editor assembler, ti writer just hangs when u run the assembler and editor assembler just comes up with loads of (different) errors. (multiple symbols and invalid mnemotic) Quote Link to comment Share on other sites More sharing options...
+Lee Stewart Posted November 19, 2020 Share Posted November 19, 2020 3 hours ago, MueThor said: Additionally, it is also the reason, why I am not so keen on software needing "modern-day" solutions like F18A and SAMS. I am not sure what exactly you mean by “modern day”, but I do not think I would put SAMS in that category. It has been around since the early 1990s. ...lee 2 1 Quote Link to comment Share on other sites More sharing options...
RXB Posted November 19, 2020 Share Posted November 19, 2020 3 hours ago, MueThor said: Dear apersson850, You are not alone. I bet with you that there are some more persons in this forum, who are interested in different possibilities of what would have been possible, if way back the TI-99/4a console was unexpanded or at least a minimalist system already equipped with built-in 32k RAM and the Extended Basic cartridge. Don't forget, for most TI users nearly every add-on part was quite expensive then. Especially, when you have been a pupil at school. This question respectively objective mentioned before was and is the reason for my reawakened interest in the computer TI-99/4a. Additionally, it is also the reason, why I am not so keen on software needing "modern-day" solutions like F18A and SAMS. At last, with regard to this objective in my eyes the utmost allowable add-on part would be FinalGROM 99, which represents the hardware simulation for a cartridge. Regards Hmm the GRAM devices have been around longer then SAMS, Western Digital Hard Drive Controller has been around about same time. Heck even the RAMDISK was around that time. So even my stuff was way back in 1987. Quote Link to comment Share on other sites More sharing options...
apersson850 Posted November 19, 2020 Share Posted November 19, 2020 Yes, I had the Maximem GRAM/RAM module (16 K RAM, 48 K GRAM) back in the 1980's. As well as the 64 K RAM expansion inside the console, in addition to 32 K RAM in the expansion box. I was rather referring to that today, "nobody" would persist in running things on a bare console. The enthusiasts, like me and many of you, already have very expanded machines. Those not using the hardware, but a simulator, can run any hardware they like. 2 Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted November 19, 2020 Author Share Posted November 19, 2020 4 hours ago, xxx said: can any1 else help me with my assembler inputting control characters when i paste them into the assembler? You need to provide more information if you want help. "Paste" makes me think you are using Classic99. In any case, the assembler reads from disk and writes to disk. How are you "pasting them into the assembler?" A detailed description of what you are doing would be helpful and maybe some screen shots. Let's start with the basics. Have you ever successfully written, assembled, loaded and run an assembly language program? 3 Quote Link to comment Share on other sites More sharing options...
+FarmerPotato Posted November 19, 2020 Share Posted November 19, 2020 22 hours ago, BeeryMiller said: I tried another route, essentially downloading the TXT files through XMODEM which saved the files as DIS/FIX 128 since there were no TIFILES headers. I then used a program from Al Beard, TRANSFORM, for the Geneve that would read the DIS/FIX 128 and convert to a DIS/VAR 80 file. It stripped out the CR/LF issue I had, however, the labels were all screwed up and the first few lines of each file was missing. Not sure what was going on, so that is when I went back to MyWord to find a solution. We really need to find a method with some very clear step by step directions to transfer DIS/VAR 80 source up to and back down from Github without all these hurdles. I know some have mentioned some tiimagetool (???) features, but a clear set of tool(s) to automate a single file to a hundred or more source files at a time would be an asset. The simplest tool I could think of would be an interface function that goes talks with some tool that sends commands to GitHub to get the files, then saves the files with TIFILES headers to the TIPI. Then, if something needed to be uploaded, it would send the other way with some method to mark directories and/or individual files. I say this as there is code like FunnelWeb, MDM5, MDOS, MyWord, ABASIC, PSystem, HRD4000B+, and a host of TI-99/4A programs where this would be extremely beneficial. Not to discourage anyone from using GitHub, but it would be very helpful if comments did not exceed past column 80 as those comments get scrolled to the next line and an assembler will want to treat it as an instruction or honk for an error. Also, not sure whether the asterisks character is an allowable character for adding comments within the source on the xdt side of things. I have not played with xdt to know if comments after the instruction have to be commented with the semicolon or not. Commented source code looks great, but if comments without a semicolon is a problem for GitHub, then it really limits the ability to upload older source code. Like I said earlier, I pulled some code down from GitHub written to assemble, etc. with xdt that is not directly portable to the Geneve that I will spend several evenings porting it over into a format suitable for GenASM to process. It's great the code was posted so don't get me wrong, however it would not be easily portable back into the Editor/Assembler assembler nor GenASM for the Geneve. I accomplish what I need with xdm99 in the xdt package. It has options to add a FIAD (your ordinary DOS text) to a TI disk image, where it appears as DV80. Then you extract it from the dsk as TIFILES. On the PC I keep all my version-controlled Gitlab files in DOS format. My makefile uses xdm to create a TI dsk image that has the binaries and source code, which is the distribution. Here are two rules that take DOS files to TIFILES format https://gitlab.com/FarmerPotato/gameoflife/-/blob/master/Makefile LIFEO.tfi: LIFEO # convert to TIFILES $(PYTHON) $(XDM) -f DF80 -T $< LIFE.tfi: LIFE $(PYTHON) $(XDM) -f PGM -T $< SRCS=LIFES LIFEIMGS LIFECARTS LOADCHARS FILES=$(TFIS) $(SRCS) disk: $(FILES) $(PYTHON) $(XDM) -X 360 $(DSK) $(PYTHON) $(XDM) $(DSK) -f DF80 -a LIFEO $(PYTHON) $(XDM) $(DSK) -f DV80 -a $(SRCS) $(PYTHON) $(XDM) $(DSK) -f PGM -a LIFE # Outputs DSK=GAMEOFLIFE.DSK TFIS=LIFEO.tfi LIFE.tfi PYTHON=/usr/bin/python XAS=/cygdrive/c/TI99/xdt99/xas99.py XDM=/cygdrive/c/TI99/xdt99/xdm99.py hmm. That represents two ways I tried to do the job. The short way is just this line, which goes from DOS, putting DV80 in the dsk: $(PYTHON) $(XDM) $(DSK) -f DV80 -a $(SRCS) I use the Cygwin utilities package, for make and python. I unpack xdt at c:\ti99\xdt99 1 Quote Link to comment Share on other sites More sharing options...
HOME AUTOMATION Posted November 19, 2020 Share Posted November 19, 2020 4 hours ago, xxx said: can any1 else help me with my assembler inputting control characters when i paste them into the assembler? I see what you mean... ...TABs replacing multiple spaces, in an inconsistent pattern! ...Will this be any better. I dunno. PAGE EQU >837E SUB EQU >8382 SUBPAG EQU >8386 *NEXT ROUTINE MOVES ALL CHARS UP ONE PIXEL USES A BUFFER AT >8360->836F MOVEUP DATA MOVEUE-MOVEUS MOVEUS BL @SUB DATA CLEAR LI R0,>03F1 MOVEU1 SWPB R0 MOVB R0,*R15 SWPB R0 MOVB R0,*R15 LI R1,16 LI R2,>8360 MOVEU2 MOVB *R14,*R2+ DEC R1 JNE MOVEU2 AI R0,>3FFF SWPB R0 MOVB R0,*R15 SWPB R0 MOVB R0,*R15 LI R1,16 LI R2,>8360 MOVEU3 MOVB *R2+,*R10 DEC R1 JNE MOVEU3 AI R0,>C011 CI R0,>0700 JLT MOVEU1 BL @PAGE DATA LOWERC MOVEUE LOWERC DATA LOWERE-LOWERS LOWERS LI R0,LOWDEF-1 A R13,R0 now R0 points to beg lc defs LI R3,>4608 address in VDP of "a" plus >4000 for write LI R4,16 LOWER1 SWPB R0 MOVB R0,*R15 SWPB R0 MOVB R0,*R15 MOV R4,R1 R1=16 now LI R2,>8360 address of buffer LOWER2 MOVB *R14,*R2+ \ DEC R1 read chardefs into buffer JNE LOWER2 / SWPB R3 MOVB R3,*R15 SWPB R3 MOVB R3,*R15 MOV R4,R1 R1=16 now LI R2,>8360 address of buffer LOWER3 MOVB *R2+,*R10 \ DEC R1 write chardefs to VDP JNE LOWER3 / A R4,R3 A R4,R0 CI R3,>4700 past {? JLT LOWER1 BL @PAGE DATA BORDER LOWERE BORDER DATA BORDEE-BORDES length of page BORDES LI R0,>4000 first screen pos LI R2,>DB00 left brace with offset BL @>8300+BORDLP-BORDES LI R0,>42E0 BL @>8300+BORDLP-BORDES LI R0,>401F LI R1,23 BORDE3 SWPB R0 \ MOVB R0,*R15 set so can write byte top screen SWPB R0 MOVB R0,*R15 / AI R0,32 MOVB R2,*R10 write byte NOP MOVB R2,*R10 DEC R1 JNE BORDE3 FRST3 BL @PAGE DATA HONEY BORDLP LI R1,32 SWPB R0 \ MOVB R0,*R15 set so can write byte top screen SWPB R0 MOVB R0,*R15 / BORDL1 MOVB R2,*R10 write byte DEC R1 JNE BORDL1 B *R11 BORDEE ************************************ HONEY DATA HONEYE-HONEYS HONEYS LI R0,HONEYC-1 A R13,R0 MOV R0,@>83CC LI R0,>0100 MOVB R0,@>83CE MOV @>83FD,R0 ORI R0,>0001 MOV R0,@>83FD BL @PAGE DATA UFO HONEYE ************************************ UFO DATA UFOE-UFOS UFOS LI R0,>E281 16x16 sprites MOVB R0,@>83D4 store value for magnified sprites MOVB R0,*R15 SWPB R0 MOVB R0,*R15 LI R0,>0043 will write to VDP at >0300 MOVB R0,*R15 SWPB R0 MOVB R0,*R15 LI R2,>8300+UFODAT-UFOS LI R1,17 UFOL1 MOVB *R2+,*R10 DEC R1 JNE UFOL1 JMP UFOON LI R1,28 UFOLP LI R0,>C000 MOVB R0,*R10 SWPB R0 MOVB R0,*R10 MOVB R0,*R10 MOVB R0,*R10 DEC R1 JNE UFOLP UFOON BL @PAGE DATA UFOMOT UFODAT DATA >2040,>DC08,>4060,>DC0B,>6080,>DC0F,>80A0,>DC04 DATA >D000 UFOE *********************************************** UFOMOT DATA UFOMOE-UFOMOS UFOMOS LI R0,>8047 >4780 MOVB R0,*R15 SWPB R0 MOVB R0,*R15 LI R1,>8300+UFOMDT-UFOMOS LI R0,16 UFOMLP MOVB *R1+,*R10 DEC R0 JNE UFOMLP LI R0,>0400 MOVB R0,@>837A BL @PAGE DATA RSLOOP UFOMDT DATA >FDF2,>0000,>FFE0,>0000,>FE08,>0000,>0118,>0000 UFOMOE ***************************************** RSLOOP DATA RSLOOE-RSLOOS RSLOOS LI R9,37 LI R4,TEXTA-1 offset from beginning A R13,R4 BL @PAGE DATA SCROLL RSLOOE ******************************************* *this just fits in the available space. The program is from >8300 *to >8351 and the 30 byte long buffer is from >8352 to >836E *The buffer could be from >8354 to >8371 if 2 more bytes were needed. SCROLL DATA SCROLE-SCROLS SCROLS BL @SUB DATA KSCAN LI R5,>0041 second line down LI R6,>8352 SCROL1 SWPB R5 MOVB R5,*R15 SWPB R5 MOVB R5,*R15 MOV R6,R7 SCROL2 MOVB *R14,*R7+ CI R7,>8370 JNE SCROL2 AI R5,>3FE0 SWPB R5 MOVB R5,*R15 SWPB R5 MOVB R5,*R15 MOV R6,R7 SCROL3 MOVB *R7+,*R10 CI R7,>8370 JNE SCROL3 LIMI 2 LIMI 0 AI R5,>C040 CI R5,>02E1 JLT SCROL1 BL @PAGE DATA PRINT SCROLE **************************************** PRINT DATA PRINTE-PRINTS PRINTS SWPB R4 MOVB R4,*R15 SWPB R4 MOVB R4,*R15 MOV R6,R7 PRINT2 MOVB *R14,R8 AI R8,>6000 MOVB R8,*R7+ CI R7,>8370 JNE PRINT2 LI R0,>42C1 start printing here SWPB R0 MOVB R0,*R15 SWPB R0 MOVB R0,*R15 MOV R6,R7 PRINT3 MOVB *R7+,*R10 CI R7,>8370 JNE PRINT3 LIMI 2 LIMI 0 AI R4,30 DEC R9 JEQ RS BL @PAGE DATA SCROLL RS BL @PAGE DATA RSLOOP PRINTE ********************************* CLEAR DATA CLEARE-CLEARS CLEARS LWPI >8300+CLRWS-CLEARS MOVB R0,*R1 SWPB R0 MOVB R0,*R1 SWPB R0 CLRLP MOVB R2,@>8C00 DEC R3 JNE CLRLP LWPI >83A2 BL @SUBPAG DATA RETURN CLRWS DATA >0040 R0 = >4000 reversed DATA >8C02 R1 = vdpwa DATA >8000 R2 = space with offset DATA 768 R3 = counter CLEARE ******************************** *BELOW IS A SUBROUTINE TO SCAN THE KEYBOARD *IF IT FINDS A KEY IT LOOPS TILL NO KEY IS PRESSED *THEN RETURNS VIA "RETURN" KSCAN DATA KSCANE-KSCANS KSCANS LI R11,>0500 MOVB R11,@>8374 LI R12,>FF00 LIMI 2 LIMI 0 KSLP LWPI >83E0 \ MOV R11,@>836E BL @>000E keyscan MOV @>836E,R11 LWPI >83A2 / * MOV @>837C,R4 check for new key pressed * ANDI R4,>2000 * JEQ KSLP CB R12,@>8375 JNE KSCANS keep looping as long as pressing key BL @SUBPAG want to preserve pointers telling where ton DATA RETURN KSCANE **************************************** *************************** *BL @SUBCON returns from a SUB. Gets the page, adds the VDP t *DATA RETURN writes to >8C02 (*r15) * gets position in page from >83d2 and puts into R11 * INCT R11 so points to next instruction, then enter r ***************** RETURN DATA RETURE-RETURS RETURS MOV @>83D0,R11 Get page to return to A R13,R11 Add VDP offset MOVB @>83B9,*R15 lsb of R11 MOVB R11,*R15 msb of R11 MOV @>83D2,R11 position in page when sub was called INCT R11 next instruction LI R12,>8300 JMP RETURS+>0094 B @>8394 RETURE LOWDEF DATA >0000,>3804,>3C44,>3C00 a DATA >4040,>7844,>4444,>7800 b DATA >0000,>3C40,>4040,>3C00 c DATA >0404,>3C44,>4444,>3C00 d DATA >0000,>3844,>7C40,>3C00 e DATA >1824,>2078,>2020,>2000 f DATA >0000,>3C44,>443C,>0438 g DATA >4040,>7844,>4444,>4400 h DATA >1000,>3010,>1010,>3800 i DATA >0800,>0808,>0808,>4830 j DATA >4040,>4448,>7048,>4400 k DATA >3010,>1010,>1010,>3800 l DATA >0000,>6854,>5454,>5400 m DATA >0000,>5864,>4444,>4400 n DATA >0000,>3844,>4444,>3800 o DATA >0000,>7844,>4478,>4040 p DATA >0000,>3C44,>443C,>0404 q DATA >0000,>5864,>4040,>4000 r DATA >0000,>3C40,>3804,>7800 s DATA >2020,>7820,>2024,>1800 t DATA >0000,>4444,>4444,>3C00 u DATA >0000,>4444,>2828,>1000 v DATA >0000,>4454,>5454,>2800 w DATA >0000,>4428,>1028,>4400 x DATA >0000,>4444,>443C,>0438 y DATA >0000,>7C08,>1020,>7C00 z DATA >1038,>7CFE,>7C38,>1000 { DATA >0001,>0103,>073F,>7FD6 UFO defs char 124 DATA >7F3F,>0911,>0000,>0000 DATA >0000,>0080,>C0F8,>FCD6 DATA >FCF8,>2010,>0000,>0000 TEXTA TEXT ' ATARIAGE recently published ' TEXT 'a short program written by ' TEXT 'James Abbatiello called ESCAPE' TEXT 'THE BASIC SANDBOX. The program' TEXT 'does not do much - it scrolls ' TEXT 'HELLO, WORLD down the screen. ' TEXT 'The point of the program is ' TEXT 'that it uses assembly language' TEXT 'to display the text. It does ' TEXT 'the impossible, running ' TEXT 'assembly language on an un- ' TEXT 'expanded TI-99/4A which every ' TEXT 'one knows cannot be done. ' TEXT 'James closed his article by ' TEXT 'asking if anybody cared to try' TEXT 'their hand at making a more ' TEXT 'interesting payload for this? ' TEXT ' After some thought I decided' TEXT 'to to develop Abbatiellos ' TEXT 'idea as far as I could. This ' TEXT 'demonstration program shows ' TEXT 'the results of my efforts. ' TEXT ' Despite the tight memory ' TEXT 'constraints, there is an im- ' TEXT 'pressive amount of potential. ' TEXT 'Super fast assembly language ' TEXT 'programs with sound lists and ' TEXT 'sprites with auto motion are ' TEXT 'now possible on an unexpanded ' TEXT 'TI-99. ' TEXT ' Now I will offer a challenge' TEXT 'of my own. Would anyone care ' TEXT 'to use this tool to develop a ' TEXT 'finished program - perhaps an ' TEXT 'arcade quality game? ' TEXT ' Harry Wilhelm ' TEXT ' ' HONEYC BYTE 9,133,42,144,166,8,176,204,31,223,18 BYTE 3,167,9,176,9 BYTE 3,166,8,176,18 BYTE 3,167,9,176,9 BYTE 3,166,8,176,18 BYTE 3,167,9,176,9 BYTE 6,164,28,176,201,10,208,18 BYTE 6,172,31,191,204,31,223,9 BYTE 6,140,31,144,175,7,176,18 BYTE 3,166,8,176,9 BYTE 3,175,7,176,18 BYTE 3,166,8,176,9 BYTE 3,175,7,176,18 BYTE 3,166,8,176,9 BYTE 6,162,21,176,199,9,208,18 BYTE 6,172,31,191,204,31,223,9 BYTE 6,133,42,144,166,8,176,18 BYTE 3,167,9,176,9 BYTE 3,166,8,176,18 BYTE 3,167,9,176,9 BYTE 3,166,8,176,18 BYTE 3,167,9,176,9 BYTE 6,164,28,176,201,10,208,18 BYTE 9,140,31,159,172,31,191,204,31,223,9 BYTE 9,141,56,144,164,28,176,199,9,208,28 BYTE 6,164,28,176,201,10,208,28 BYTE 6,164,28,176,195,11,208,28 BYTE 6,164,28,176,201,10,208,28 BYTE 9,133,42,144,166,8,176,204,31,223,18 BYTE 3,167,9,176,9 BYTE 3,166,8,176,18 BYTE 3,167,9,176,9 BYTE 3,166,8,176,18 BYTE 3,167,9,176,9 BYTE 6,164,28,176,201,10,208,18 BYTE 6,172,31,191,204,31,223,9 BYTE 6,140,31,144,175,7,176,18 BYTE 3,166,8,176,9 BYTE 3,175,7,176,18 BYTE 3,166,8,176,9 BYTE 3,175,7,176,18 BYTE 3,166,8,176,9 BYTE 6,162,21,176,199,9,208,18 BYTE 9,140,31,159,172,31,191,204,31,223,9 BYTE 9,141,56,144,174,18,176,193,7,208,18 BYTE 3,199,9,208,9 BYTE 3,193,7,208,18 BYTE 3,199,9,208,9 BYTE 3,193,7,208,18 BYTE 3,199,9,208,9 BYTE 6,172,37,176,193,7,208,9 BYTE 3,196,6,208,9 BYTE 3,201,5,208,9 BYTE 9,133,42,144,164,28,176,196,5,208,18 BYTE 9,140,31,159,172,31,191,204,31,223,9 BYTE 3,141,56,144,9 BYTE 3,172,37,176,9 BYTE 6,172,37,176,196,28,208,9 BYTE 9,133,42,144,173,56,176,204,31,223,18 BYTE 6,140,31,159,172,31,191,43 * BYTE 0 * DATA HONEYC BYTE >04,>9F,>BF,>DF,>FF,>00 END Some of the comments got clipped though. FIAD... DEMOS Quote Link to comment Share on other sites More sharing options...
+9640News Posted November 19, 2020 Share Posted November 19, 2020 I've seen comments clipped as well in the approach I was using last night where the comments exceeded past column 80. Last night, I finished going through about 10 files addressing comments that exceeded line 80 as well as some other issues that needed to be changed for GenASM compatability. Beery 1 Quote Link to comment Share on other sites More sharing options...
+9640News Posted November 19, 2020 Share Posted November 19, 2020 17 minutes ago, FarmerPotato said: I accomplish what I need with xdm99 in the xdt package. It has options to add a FIAD (your ordinary DOS text) to a TI disk image, where it appears as DV80. Then you extract it from the dsk as TIFILES. On the PC I keep all my version-controlled Gitlab files in DOS format. My makefile uses xdm to create a TI dsk image that has the binaries and source code, which is the distribution. Here are two rules that take DOS files to TIFILES format https://gitlab.com/FarmerPotato/gameoflife/-/blob/master/Makefile LIFEO.tfi: LIFEO # convert to TIFILES $(PYTHON) $(XDM) -f DF80 -T $< LIFE.tfi: LIFE $(PYTHON) $(XDM) -f PGM -T $< SRCS=LIFES LIFEIMGS LIFECARTS LOADCHARS FILES=$(TFIS) $(SRCS) disk: $(FILES) $(PYTHON) $(XDM) -X 360 $(DSK) $(PYTHON) $(XDM) $(DSK) -f DF80 -a LIFEO $(PYTHON) $(XDM) $(DSK) -f DV80 -a $(SRCS) $(PYTHON) $(XDM) $(DSK) -f PGM -a LIFE # Outputs DSK=GAMEOFLIFE.DSK TFIS=LIFEO.tfi LIFE.tfi PYTHON=/usr/bin/python XAS=/cygdrive/c/TI99/xdt99/xas99.py XDM=/cygdrive/c/TI99/xdt99/xdm99.py hmm. That represents two ways I tried to do the job. The short way is just this line, which goes from DOS, putting DV80 in the dsk: $(PYTHON) $(XDM) $(DSK) -f DV80 -a $(SRCS) I use the Cygwin utilities package, for make and python. I unpack xdt at c:\ti99\xdt99 I see what you are reporting, but not being familiar with Cygwin or python, I would have never gotten there. I'm not a linux or python user, so that is a bit beyond my skillset at the moment. What I am hoping someone will do ( @shift838 or someone else with the skills if they are listening) will have is an installer that sets everything up on various systems (Windows a must), and then you give it a path you would like to move to<>from and it either being smart enough to do the conversion on the fly, or you tell it, and it is done from Github. Simplest scenario, I launch a Windows program, point it at the TIPI for the source file directory (and potentially subdirectories). Then, point it at Github, and necessary files move from one destination to the other with DIS/VAR 80 files converted to TXT files as needed and other formats (Program Files, others??) remaining untouched. I think at that point, more users will feel comfortable setting things up. Quote Link to comment Share on other sites More sharing options...
+FarmerPotato Posted November 19, 2020 Share Posted November 19, 2020 2 hours ago, BeeryMiller said: I see what you are reporting, but not being familiar with Cygwin or python, I would have never gotten there. I'm not a linux or python user, so that is a bit beyond my skillset at the moment. What I am hoping someone will do ( @shift838 or someone else with the skills if they are listening) will have is an installer that sets everything up on various systems (Windows a must), and then you give it a path you would like to move to<>from and it either being smart enough to do the conversion on the fly, or you tell it, and it is done from Github. Simplest scenario, I launch a Windows program, point it at the TIPI for the source file directory (and potentially subdirectories). Then, point it at Github, and necessary files move from one destination to the other with DIS/VAR 80 files converted to TXT files as needed and other formats (Program Files, others??) remaining untouched. I think at that point, more users will feel comfortable setting things up. You mentioned xdt - how do you launch that currently? Python is only mentioned because XDT is written in Python and you need it to run. I could make more of a step-by-step tutorial for doing this. I do all this in Windows, after installing Cygwin tools. Cygwin installs git, python, every else needed. I think I hear that you want an easy way to put Github and Tipi together, and move edits both directions from/to tipi. If you do all your editing on Windows, then you just need a one-way conversion, from DOS to DV80. If you also do some editing on the TI, then you need a two-way transfer, where the DV80 is copied back to DOS text. I only go one direction, from Windows to DV80. I would likely make a script on Windows/Cygwin for me. But exactly the same script would run directly on the Pi--you'd keep a ssh window logged into Pi to run it. The script that I have (by Makefile above) only goes one way - from my source on Windows, to DV80. You can use the Git GUI client on Windows to do all the github stuff. It's point and right-click to act on each file or directory. Quote Link to comment Share on other sites More sharing options...
+9640News Posted November 19, 2020 Share Posted November 19, 2020 20 minutes ago, FarmerPotato said: You mentioned xdt - how do you launch that currently? Python is only mentioned because XDT is written in Python and you need it to run. I could make more of a step-by-step tutorial for doing this. I do all this in Windows, after installing Cygwin tools. Cygwin installs git, python, every else needed. I think I hear that you want an easy way to put Github and Tipi together, and move edits both directions from/to tipi. If you do all your editing on Windows, then you just need a one-way conversion, from DOS to DV80. If you also do some editing on the TI, then you need a two-way transfer, where the DV80 is copied back to DOS text. I only go one direction, from Windows to DV80. I would likely make a script on Windows/Cygwin for me. But exactly the same script would run directly on the Pi--you'd keep a ssh window logged into Pi to run it. The script that I have (by Makefile above) only goes one way - from my source on Windows, to DV80. You can use the Git GUI client on Windows to do all the github stuff. It's point and right-click to act on each file or directory. Actually, I would plan on all editing to be on the Geneve and not Windows. When things are ready to go to GitHub, copy files and/or subdirectories from HFDC to TIPI. Then, launch the Windows program to send files up. If someone else does an update, then send the files back down to the TIPI where I can then move them back to the HFDC. Beery Quote Link to comment Share on other sites More sharing options...
+OLD CS1 Posted November 19, 2020 Share Posted November 19, 2020 4 hours ago, apersson850 said: I was rather referring to that today, "nobody" would persist in running things on a bare console. The enthusiasts, like me and many of you, already have very expanded machines. Those not using the hardware, but a simulator, can run any hardware they like. "Nobody," of course. There are also some who get into the 99/4A with just a console. Granted, a little bit of research tells you what more you need to be up-to-date, and maybe they will or will not run an emulator. They still have this console, and wonder what they can do to start out, or maybe get hooked while they investigate committing more money to the cause. With a Commodore 64, you grab a 64 and a 1541 and you are off to the races. Apple II: most come with a disk controller in slot 6 and a drive. Atari 8-bit: console and a 1050. Atari ST or Amiga: these almost always have a drive built in (some 520STs are sans-drive.) The TI-99/4A: well, the most basic setup to have in modern terms is a FG99 and nanoPEB, but if you want original hardware like you can do with almost every other system, you have to invest in a PEB and disk controller which run today about the same prices as you would have paid 35 years ago -- $250 plus extortion-rate shipping for the PEB in varying configurations, another $200 or so if you want a floppy controller then $25 to $100 for the drive. The least we can do is have something that whets their whistles while they ponder further investment. We have cartridges, but for some people loading a program from storage media is more of the nostalgic experience for which they are looking. And besides, we climb the mountain because it is there 4 Quote Link to comment Share on other sites More sharing options...
xxx Posted November 20, 2020 Share Posted November 20, 2020 (edited) 7 hours ago, senior_falcon said: You need to provide more information if you want help. "Paste" makes me think you are using Classic99. In any case, the assembler reads from disk and writes to disk. How are you "pasting them into the assembler?" A detailed description of what you are doing would be helpful and maybe some screen shots. Let's start with the basics. Have you ever successfully written, assembled, loaded and run an assembly language program? yeah i have but not on a ti99. im pasting from notepad with the paste function in the edit menu in classic99 into the assemblers editor. and im trying to get demo-s that comes with playground to work. Edited November 20, 2020 by xxx Quote Link to comment Share on other sites More sharing options...
xxx Posted November 20, 2020 Share Posted November 20, 2020 8 hours ago, HOME AUTOMATION said: I see what you mean... ...TABs replacing multiple spaces, in an inconsistent pattern! ...Will this be any better. I dunno. PAGE EQU >837E SUB EQU >8382 SUBPAG EQU >8386 *NEXT ROUTINE MOVES ALL CHARS UP ONE PIXEL USES A BUFFER AT >8360->836F MOVEUP DATA MOVEUE-MOVEUS MOVEUS BL @SUB DATA CLEAR LI R0,>03F1 MOVEU1 SWPB R0 MOVB R0,*R15 SWPB R0 MOVB R0,*R15 LI R1,16 LI R2,>8360 MOVEU2 MOVB *R14,*R2+ DEC R1 JNE MOVEU2 AI R0,>3FFF SWPB R0 MOVB R0,*R15 SWPB R0 MOVB R0,*R15 LI R1,16 LI R2,>8360 MOVEU3 MOVB *R2+,*R10 DEC R1 JNE MOVEU3 AI R0,>C011 CI R0,>0700 JLT MOVEU1 BL @PAGE DATA LOWERC MOVEUE LOWERC DATA LOWERE-LOWERS LOWERS LI R0,LOWDEF-1 A R13,R0 now R0 points to beg lc defs LI R3,>4608 address in VDP of "a" plus >4000 for write LI R4,16 LOWER1 SWPB R0 MOVB R0,*R15 SWPB R0 MOVB R0,*R15 MOV R4,R1 R1=16 now LI R2,>8360 address of buffer LOWER2 MOVB *R14,*R2+ \ DEC R1 read chardefs into buffer JNE LOWER2 / SWPB R3 MOVB R3,*R15 SWPB R3 MOVB R3,*R15 MOV R4,R1 R1=16 now LI R2,>8360 address of buffer LOWER3 MOVB *R2+,*R10 \ DEC R1 write chardefs to VDP JNE LOWER3 / A R4,R3 A R4,R0 CI R3,>4700 past {? JLT LOWER1 BL @PAGE DATA BORDER LOWERE BORDER DATA BORDEE-BORDES length of page BORDES LI R0,>4000 first screen pos LI R2,>DB00 left brace with offset BL @>8300+BORDLP-BORDES LI R0,>42E0 BL @>8300+BORDLP-BORDES LI R0,>401F LI R1,23 BORDE3 SWPB R0 \ MOVB R0,*R15 set so can write byte top screen SWPB R0 MOVB R0,*R15 / AI R0,32 MOVB R2,*R10 write byte NOP MOVB R2,*R10 DEC R1 JNE BORDE3 FRST3 BL @PAGE DATA HONEY BORDLP LI R1,32 SWPB R0 \ MOVB R0,*R15 set so can write byte top screen SWPB R0 MOVB R0,*R15 / BORDL1 MOVB R2,*R10 write byte DEC R1 JNE BORDL1 B *R11 BORDEE ************************************ HONEY DATA HONEYE-HONEYS HONEYS LI R0,HONEYC-1 A R13,R0 MOV R0,@>83CC LI R0,>0100 MOVB R0,@>83CE MOV @>83FD,R0 ORI R0,>0001 MOV R0,@>83FD BL @PAGE DATA UFO HONEYE ************************************ UFO DATA UFOE-UFOS UFOS LI R0,>E281 16x16 sprites MOVB R0,@>83D4 store value for magnified sprites MOVB R0,*R15 SWPB R0 MOVB R0,*R15 LI R0,>0043 will write to VDP at >0300 MOVB R0,*R15 SWPB R0 MOVB R0,*R15 LI R2,>8300+UFODAT-UFOS LI R1,17 UFOL1 MOVB *R2+,*R10 DEC R1 JNE UFOL1 JMP UFOON LI R1,28 UFOLP LI R0,>C000 MOVB R0,*R10 SWPB R0 MOVB R0,*R10 MOVB R0,*R10 MOVB R0,*R10 DEC R1 JNE UFOLP UFOON BL @PAGE DATA UFOMOT UFODAT DATA >2040,>DC08,>4060,>DC0B,>6080,>DC0F,>80A0,>DC04 DATA >D000 UFOE *********************************************** UFOMOT DATA UFOMOE-UFOMOS UFOMOS LI R0,>8047 >4780 MOVB R0,*R15 SWPB R0 MOVB R0,*R15 LI R1,>8300+UFOMDT-UFOMOS LI R0,16 UFOMLP MOVB *R1+,*R10 DEC R0 JNE UFOMLP LI R0,>0400 MOVB R0,@>837A BL @PAGE DATA RSLOOP UFOMDT DATA >FDF2,>0000,>FFE0,>0000,>FE08,>0000,>0118,>0000 UFOMOE ***************************************** RSLOOP DATA RSLOOE-RSLOOS RSLOOS LI R9,37 LI R4,TEXTA-1 offset from beginning A R13,R4 BL @PAGE DATA SCROLL RSLOOE ******************************************* *this just fits in the available space. The program is from >8300 *to >8351 and the 30 byte long buffer is from >8352 to >836E *The buffer could be from >8354 to >8371 if 2 more bytes were needed. SCROLL DATA SCROLE-SCROLS SCROLS BL @SUB DATA KSCAN LI R5,>0041 second line down LI R6,>8352 SCROL1 SWPB R5 MOVB R5,*R15 SWPB R5 MOVB R5,*R15 MOV R6,R7 SCROL2 MOVB *R14,*R7+ CI R7,>8370 JNE SCROL2 AI R5,>3FE0 SWPB R5 MOVB R5,*R15 SWPB R5 MOVB R5,*R15 MOV R6,R7 SCROL3 MOVB *R7+,*R10 CI R7,>8370 JNE SCROL3 LIMI 2 LIMI 0 AI R5,>C040 CI R5,>02E1 JLT SCROL1 BL @PAGE DATA PRINT SCROLE **************************************** PRINT DATA PRINTE-PRINTS PRINTS SWPB R4 MOVB R4,*R15 SWPB R4 MOVB R4,*R15 MOV R6,R7 PRINT2 MOVB *R14,R8 AI R8,>6000 MOVB R8,*R7+ CI R7,>8370 JNE PRINT2 LI R0,>42C1 start printing here SWPB R0 MOVB R0,*R15 SWPB R0 MOVB R0,*R15 MOV R6,R7 PRINT3 MOVB *R7+,*R10 CI R7,>8370 JNE PRINT3 LIMI 2 LIMI 0 AI R4,30 DEC R9 JEQ RS BL @PAGE DATA SCROLL RS BL @PAGE DATA RSLOOP PRINTE ********************************* CLEAR DATA CLEARE-CLEARS CLEARS LWPI >8300+CLRWS-CLEARS MOVB R0,*R1 SWPB R0 MOVB R0,*R1 SWPB R0 CLRLP MOVB R2,@>8C00 DEC R3 JNE CLRLP LWPI >83A2 BL @SUBPAG DATA RETURN CLRWS DATA >0040 R0 = >4000 reversed DATA >8C02 R1 = vdpwa DATA >8000 R2 = space with offset DATA 768 R3 = counter CLEARE ******************************** *BELOW IS A SUBROUTINE TO SCAN THE KEYBOARD *IF IT FINDS A KEY IT LOOPS TILL NO KEY IS PRESSED *THEN RETURNS VIA "RETURN" KSCAN DATA KSCANE-KSCANS KSCANS LI R11,>0500 MOVB R11,@>8374 LI R12,>FF00 LIMI 2 LIMI 0 KSLP LWPI >83E0 \ MOV R11,@>836E BL @>000E keyscan MOV @>836E,R11 LWPI >83A2 / * MOV @>837C,R4 check for new key pressed * ANDI R4,>2000 * JEQ KSLP CB R12,@>8375 JNE KSCANS keep looping as long as pressing key BL @SUBPAG want to preserve pointers telling where ton DATA RETURN KSCANE **************************************** *************************** *BL @SUBCON returns from a SUB. Gets the page, adds the VDP t *DATA RETURN writes to >8C02 (*r15) * gets position in page from >83d2 and puts into R11 * INCT R11 so points to next instruction, then enter r ***************** RETURN DATA RETURE-RETURS RETURS MOV @>83D0,R11 Get page to return to A R13,R11 Add VDP offset MOVB @>83B9,*R15 lsb of R11 MOVB R11,*R15 msb of R11 MOV @>83D2,R11 position in page when sub was called INCT R11 next instruction LI R12,>8300 JMP RETURS+>0094 B @>8394 RETURE LOWDEF DATA >0000,>3804,>3C44,>3C00 a DATA >4040,>7844,>4444,>7800 b DATA >0000,>3C40,>4040,>3C00 c DATA >0404,>3C44,>4444,>3C00 d DATA >0000,>3844,>7C40,>3C00 e DATA >1824,>2078,>2020,>2000 f DATA >0000,>3C44,>443C,>0438 g DATA >4040,>7844,>4444,>4400 h DATA >1000,>3010,>1010,>3800 i DATA >0800,>0808,>0808,>4830 j DATA >4040,>4448,>7048,>4400 k DATA >3010,>1010,>1010,>3800 l DATA >0000,>6854,>5454,>5400 m DATA >0000,>5864,>4444,>4400 n DATA >0000,>3844,>4444,>3800 o DATA >0000,>7844,>4478,>4040 p DATA >0000,>3C44,>443C,>0404 q DATA >0000,>5864,>4040,>4000 r DATA >0000,>3C40,>3804,>7800 s DATA >2020,>7820,>2024,>1800 t DATA >0000,>4444,>4444,>3C00 u DATA >0000,>4444,>2828,>1000 v DATA >0000,>4454,>5454,>2800 w DATA >0000,>4428,>1028,>4400 x DATA >0000,>4444,>443C,>0438 y DATA >0000,>7C08,>1020,>7C00 z DATA >1038,>7CFE,>7C38,>1000 { DATA >0001,>0103,>073F,>7FD6 UFO defs char 124 DATA >7F3F,>0911,>0000,>0000 DATA >0000,>0080,>C0F8,>FCD6 DATA >FCF8,>2010,>0000,>0000 TEXTA TEXT ' ATARIAGE recently published ' TEXT 'a short program written by ' TEXT 'James Abbatiello called ESCAPE' TEXT 'THE BASIC SANDBOX. The program' TEXT 'does not do much - it scrolls ' TEXT 'HELLO, WORLD down the screen. ' TEXT 'The point of the program is ' TEXT 'that it uses assembly language' TEXT 'to display the text. It does ' TEXT 'the impossible, running ' TEXT 'assembly language on an un- ' TEXT 'expanded TI-99/4A which every ' TEXT 'one knows cannot be done. ' TEXT 'James closed his article by ' TEXT 'asking if anybody cared to try' TEXT 'their hand at making a more ' TEXT 'interesting payload for this? ' TEXT ' After some thought I decided' TEXT 'to to develop Abbatiellos ' TEXT 'idea as far as I could. This ' TEXT 'demonstration program shows ' TEXT 'the results of my efforts. ' TEXT ' Despite the tight memory ' TEXT 'constraints, there is an im- ' TEXT 'pressive amount of potential. ' TEXT 'Super fast assembly language ' TEXT 'programs with sound lists and ' TEXT 'sprites with auto motion are ' TEXT 'now possible on an unexpanded ' TEXT 'TI-99. ' TEXT ' Now I will offer a challenge' TEXT 'of my own. Would anyone care ' TEXT 'to use this tool to develop a ' TEXT 'finished program - perhaps an ' TEXT 'arcade quality game? ' TEXT ' Harry Wilhelm ' TEXT ' ' HONEYC BYTE 9,133,42,144,166,8,176,204,31,223,18 BYTE 3,167,9,176,9 BYTE 3,166,8,176,18 BYTE 3,167,9,176,9 BYTE 3,166,8,176,18 BYTE 3,167,9,176,9 BYTE 6,164,28,176,201,10,208,18 BYTE 6,172,31,191,204,31,223,9 BYTE 6,140,31,144,175,7,176,18 BYTE 3,166,8,176,9 BYTE 3,175,7,176,18 BYTE 3,166,8,176,9 BYTE 3,175,7,176,18 BYTE 3,166,8,176,9 BYTE 6,162,21,176,199,9,208,18 BYTE 6,172,31,191,204,31,223,9 BYTE 6,133,42,144,166,8,176,18 BYTE 3,167,9,176,9 BYTE 3,166,8,176,18 BYTE 3,167,9,176,9 BYTE 3,166,8,176,18 BYTE 3,167,9,176,9 BYTE 6,164,28,176,201,10,208,18 BYTE 9,140,31,159,172,31,191,204,31,223,9 BYTE 9,141,56,144,164,28,176,199,9,208,28 BYTE 6,164,28,176,201,10,208,28 BYTE 6,164,28,176,195,11,208,28 BYTE 6,164,28,176,201,10,208,28 BYTE 9,133,42,144,166,8,176,204,31,223,18 BYTE 3,167,9,176,9 BYTE 3,166,8,176,18 BYTE 3,167,9,176,9 BYTE 3,166,8,176,18 BYTE 3,167,9,176,9 BYTE 6,164,28,176,201,10,208,18 BYTE 6,172,31,191,204,31,223,9 BYTE 6,140,31,144,175,7,176,18 BYTE 3,166,8,176,9 BYTE 3,175,7,176,18 BYTE 3,166,8,176,9 BYTE 3,175,7,176,18 BYTE 3,166,8,176,9 BYTE 6,162,21,176,199,9,208,18 BYTE 9,140,31,159,172,31,191,204,31,223,9 BYTE 9,141,56,144,174,18,176,193,7,208,18 BYTE 3,199,9,208,9 BYTE 3,193,7,208,18 BYTE 3,199,9,208,9 BYTE 3,193,7,208,18 BYTE 3,199,9,208,9 BYTE 6,172,37,176,193,7,208,9 BYTE 3,196,6,208,9 BYTE 3,201,5,208,9 BYTE 9,133,42,144,164,28,176,196,5,208,18 BYTE 9,140,31,159,172,31,191,204,31,223,9 BYTE 3,141,56,144,9 BYTE 3,172,37,176,9 BYTE 6,172,37,176,196,28,208,9 BYTE 9,133,42,144,173,56,176,204,31,223,18 BYTE 6,140,31,159,172,31,191,43 * BYTE 0 * DATA HONEYC BYTE >04,>9F,>BF,>DF,>FF,>00 END Some of the comments got clipped though. FIAD... DEMOS 13.38 kB · 2 downloads neither work, they both produce errors Quote Link to comment Share on other sites More sharing options...
atrax27407 Posted November 20, 2020 Share Posted November 20, 2020 FWIW, @xxx sent me a copy of the DEMO code that he was having problems with a few days ago. I downloaded the file and transferred it to my TI as a D/V80 file using PC-TRANSFER. When I loaded it into the F'WEB program editor, I discovered that is was filled with control characters. I Then used (R)eplace (S)tring and replaced all of the control characters with a <space> character. I then ran the file through the assembler in the F'WEB package and it assembled fine with 0000 errors. I sent the "cleaned" source code back to him and he had problems with it. It seems that the source editor that he is using is flawed and control characters are entered into the code on his end. 1 Quote Link to comment Share on other sites More sharing options...
apersson850 Posted November 20, 2020 Share Posted November 20, 2020 11 hours ago, OLD CS1 said: And besides, we climb the mountain because it is there Some do, yes. I'm more the person who does it because there's no road around it. I like what you can accomplish with small systems. I've done a lot of programming on various programmable calculators, including writing software which required overlays being read in from magnetic cards for different tasks, since everything didn't fit in memory at the same time. But today I use variable names that are long as a winter in the north of Sweden (like linkTable[index].positions.adjust[index2] or folderAutomation.settings.usePerfCenter, cut from the last program I was working on), just because it's more efficient for me to remember what their purpose is, compared to if I call them A and B. Quote Link to comment Share on other sites More sharing options...
HOME AUTOMATION Posted November 20, 2020 Share Posted November 20, 2020 7 hours ago, xxx said: neither work, they both produce errors Help me, help you... ...where, errors? Quote Link to comment Share on other sites More sharing options...
xxx Posted November 20, 2020 Share Posted November 20, 2020 2 hours ago, HOME AUTOMATION said: Help me, help you... ...where, errors? what editor/assembler are you using? Quote Link to comment Share on other sites More sharing options...
HOME AUTOMATION Posted November 20, 2020 Share Posted November 20, 2020 (edited) It also accepted the original file. Edited November 20, 2020 by HOME AUTOMATION spellin' Quote Link to comment Share on other sites More sharing options...
xxx Posted November 20, 2020 Share Posted November 20, 2020 (edited) 31 minutes ago, HOME AUTOMATION said: It also excepted the original file. my end... this is the best i can do if i load file in directly... Edited November 20, 2020 by xxx Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted November 20, 2020 Author Share Posted November 20, 2020 12 hours ago, xxx said: yeah i have but not on a ti99. im pasting from notepad with the paste function in the edit menu in classic99 into the assemblers editor. and im trying to get demo-s that comes with playground to work. DEMO-S is actually DEMO-S.txt The .txt tells you this is a windows format file; not a TI format file. (although I don't think it's required, I always append .txt to a windows format file) You can open this with a text editor such as Notepad, Notepad++ or whatever you prefer. You can make changes and when done save the revised file. Classic99 must be configured so it can read and write windows format files. Here is how I have set it up for DSK1. Now to assemble. Load the assembler (Not the editor-you don't need that!!!) And that should assemble properly for you. The DEMO-S is a relic from using the TI editor asssembler package where I used DEMO-S for source code and DEMO-O for object code. If I were redoing this I'd get rid of the -S and -O and make it simply DEMO.TXT and DEMO.OBJ 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.