+FALCOR4 Posted April 5 Share Posted April 5 I'm looking for the TI Assembler commented source code. Not the E/A cart code. I'm guessing that it was probably sourced from some 990 package originally? Any ideas? Thanks. Quote Link to comment Share on other sites More sharing options...
+9640News Posted April 5 Share Posted April 5 I would be interested in it as well. Quote Link to comment Share on other sites More sharing options...
+retroclouds Posted April 5 Share Posted April 5 Would also be interested. I’m looking to embedd an assembler in my Stevie editor. So far I have never seen the source code of any actual assembler that runs on the TI-99/4a itself. Quote Link to comment Share on other sites More sharing options...
HOME AUTOMATION Posted April 5 Share Posted April 5 (edited) E/A's, source code is written in GPL... Downloads/Disassembly Edit: Come to think of it ...I guess the actual assembler is on DISK 1. The Editor/Assembler module ...The last section of the above, is somewhat relative to this topic. ...The Line-By-Line assembler is 9900, machine language. Edited April 5 by HOME AUTOMATION Quote Link to comment Share on other sites More sharing options...
+FALCOR4 Posted April 5 Author Share Posted April 5 32 minutes ago, HOME AUTOMATION said: E/A's, source code is written in GPL... Downloads/Disassembly Edit: Come to think of it ...I guess the actual assembler is on DISK 1. The Editor/Assembler module ...The last section of the above, is somewhat relative to this topic. ...The Line-By-Line assembler is 9900, machine language. I'd also like to get the line-by-line assembler source code but that might be more difficult. A last resort would be to use the Diskassember on it and start ploughing through the code to figure it out. I also selfishly try the easy way first. 😁 1 Quote Link to comment Share on other sites More sharing options...
+Lee Stewart Posted April 5 Share Posted April 5 You might gain some insight from David Pitts’ asm990 assembler on his Texas Instruments TI-990 Page. He worked on the TI-990 from the beginning and wrote and/or collaborated on its utilities including the assembler. It is written in C. ...lee 5 Quote Link to comment Share on other sites More sharing options...
+FALCOR4 Posted April 5 Author Share Posted April 5 1 hour ago, Lee Stewart said: You might gain some insight from David Pitts’ asm990 assembler on his Texas Instruments TI-990 Page. He worked on the TI-990 from the beginning and wrote and/or collaborated on its utilities including the assembler. It is written in C. ...lee Thank you, Lee! Very interesting site and history. I'll try to make contact with Dave and see if he has some original code he might share. My thought is if the 99/4 assembler came from a 990 source then I might be able to put some of the parts and pieces back together from the 990 code that represent the 99/4 code. We'll see. 4 Quote Link to comment Share on other sites More sharing options...
HOME AUTOMATION Posted April 6 Share Posted April 6 ...Maybe not exactly what you're looking for: DTIC ADA096549: A Users Manual for a PDP-11 Cross Assembler (CRASS) for the TI-9900 Microprocessor. Written in GIRL-FORTRAN! Quote Link to comment Share on other sites More sharing options...
Stuart Posted April 6 Share Posted April 6 On 4/5/2023 at 7:51 PM, FALCOR4 said: I'd also like to get the line-by-line assembler source code but that might be more difficult. A last resort would be to use the Diskassember on it and start ploughing through the code to figure it out. I also selfishly try the easy way first. 😁 The LBLA source code is actually easier ... see the attached source code listing for my MiniMem LBLA & Utilities Cartridge (http://www.stuartconner.me.uk/ti/ti.htm#minimem_lbla_tibug_disassembler_cartridge) which include the (slightly modified) MiniMem LBLA. This is largely commented, and it seems was developed from the no-labels LBLA (also attached) for the TM990 range of modules. MP325_990-402_Asm (LBLA User Guide and Listing).pdf MiniMem LBLA & Utilities Cartridge.lst 4 1 Quote Link to comment Share on other sites More sharing options...
+FALCOR4 Posted April 7 Author Share Posted April 7 Thank you @HOME AUTOMATION and @Stuart, this is good stuff that I've never seen before. Really good! @Lee Stewart, I talked to Dave and he suggested that the assembler may have been derived from the TXMIRA (TSDS system assembler), but he wasn't sure. 3 Quote Link to comment Share on other sites More sharing options...
+Ksarul Posted April 7 Share Posted April 7 One other potential source would be the code used in the BASIC Support Module, as that later evolved into the Mini Memory. I suspect that the Assembly code portions got reused in a lot of places, as Sumiko Endo was the primary coder for both of them, IIRC, as well as the E/A. TI BASIC Support Module (Restored).pdf 3 1 Quote Link to comment Share on other sites More sharing options...
+FALCOR4 Posted April 7 Author Share Posted April 7 1 hour ago, Ksarul said: One other potential source would be the code used in the BASIC Support Module, as that later evolved into the Mini Memory. I suspect that the Assembly code portions got reused in a lot of places, as Sumiko Endo was the primary coder for both of them, IIRC, as well as the E/A. TI BASIC Support Module (Restored).pdf 512.53 kB · 3 downloads Thanks @Ksarul. I had totally forgotten about that module. I went into my archives and found a file marked: "TI BASIC Support Module (Complete)" that I may have gotten from you years ago. Do you know how that might be different than the one you posted here? Anyway, the standalone debugger/assembler code might prove to be very helpful. Quote Link to comment Share on other sites More sharing options...
+Ksarul Posted April 7 Share Posted April 7 54 minutes ago, FALCOR4 said: Thanks @Ksarul. I had totally forgotten about that module. I went into my archives and found a file marked: "TI BASIC Support Module (Complete)" that I may have gotten from you years ago. Do you know how that might be different than the one you posted here? Anyway, the standalone debugger/assembler code might prove to be very helpful. It is the same file, @FALCOR4. I renamed it at some point. . . 2 Quote Link to comment Share on other sites More sharing options...
F.G. Kaal Posted April 8 Share Posted April 8 (edited) On 4/5/2023 at 8:51 PM, FALCOR4 said: I'd also like to get the line-by-line assembler source code but that might be more difficult. A last resort would be to use the Diskassember on it and start ploughing through the code to figure it out. I also selfishly try the easy way first. 😁 Here you have it ... something I did a few years ago. lbla.a99 is the final product of the 4 stages I disassembled the LBLA. Lbla.zip Edited April 8 by F.G. Kaal 7 1 Quote Link to comment Share on other sites More sharing options...
+FALCOR4 Posted April 8 Author Share Posted April 8 Outstanding! Thank you, @F.G. Kaal 1 Quote Link to comment Share on other sites More sharing options...
+FarmerPotato Posted April 8 Share Posted April 8 Around 1985, I was given some 5.25" floppy disks. They are backups of source code directories on a 990. One of them is Commander Systems' Disassembler. It runs under TXDS or DX10. A rare glimpse into a 3rd party's 990 assembly language source. I don't think the disks contained the Assembler source. DISAS1.txt DISAS3.txt DISAS4.txt DISAS2.txt 5 2 Quote Link to comment Share on other sites More sharing options...
+FarmerPotato Posted April 8 Share Posted April 8 (edited) CARTRIDGE sources from Editor/Assembler These are the original, fully commented CARTRIDGE sources. They are backups of a directory "SD2.ASSM.SRC". (Software Development 2?) See the later directory names, below under GCAS. The individual files are concatenated into 3 "archives". Within those, files are separated by +++++. (like Unix shar files) The original filenames were: part 1: SRC ALUTIL KSCAN, VDP, DSRLNK, LOADER, XMLLNK, GPLLNK ASSEM All menu screens in the cartridge. July 17, 1981 Author S.Endo BASIC Routines callable from console BASIC. Sept 09, 1981 Author S.Endo BUG BUG FILE - bugs corrected on September 4, 1981 ERROR GPL ERROR HANDLING ROUTINES July 17, 1981 Author S.Endo GCAS part 2: SRC GROM6000 LOADER USERS part 3: OBJ GROM6000 ALUTIL is machine language source, the rest are GPL source. According to comments (below) their object code files were GROM and ALUTIL. They were concatenated to make the cartridge file ASSMBLR. GCAS is a batch file, collecting the GPL sources. From comments in EA2.txt, the cartridge would built by command line: ************************************************************ * STANDALONE EDITOR & ASSEMBLER FOR 99/4 * ************************************************************ ************************************************************ ************************************************************ * USE GCA COMMAND ON THE FOLLOWING FILES * * GCA FILE NAME SD2.ASSM.SRC.GCA * * * OUT PUT FILE NAME IS SD2.ASSM.OBJ.GROM * * TO LIST WHOLE GPL CODE SD2.ASSM.LST.GROM * * * CONCATINATE LOADER TO THIS GPL OBJECT FILE * * SD2.ASSM.OBJ.GROM * * SD2.ASSM.OBJ.ALUTIL * * OUTPUT FILE SD2.ASSM.OBJ.ASSMBLR * * * * AUTHOR SUMIKO ENDO September 1981 * ************************************************************ GCA SD2.ASSM.SRC.GCAS SD2.ASSM.OBJ.GROM where file GCAS was ?COPY ARCHIVE.EDTASM.V090881.SRC.USERS ?COPY ARCHIVE.EDTASM.V080581.SRC.ASSEM ?COPY ARCHIVE.EDTASM.V080581.SRC.LOADER ?COPY ARCHIVE.EDTASM.V080581.SRC.ERROR ?COPY ARCHIVE.EDTASM.V090881.SRC.BASIC ?COPY ARCHIVE.EDTASM.V090881.SRC.BUG Unfortunately, USERS and LOADER (in part 2) are corrupted. Interesting Tidbits: Calling attention to a few details in here: • Comment on DSRLNK: "Search ROM CROM GROM for DSR" Some other DSRLNK versions will only search ROM! • Here is the source code to the Assembler. Kidding!!! It's just the GPL part. Love that first comment. *** ************ Now assemble !!!!!! ********* *** CALL CLRTOP Clear editor information ALL SPACE XML ASM Assemble the program. BS EMSG Error routine shared with editor ********* Close files before going back to menu ****** * ASMOUT CALL CLRTOP Clear editor information DST PAB1,@SREF Close source file CALL CLOSE DST PAB2,@SREF Close object file CALL CLOSE $IF .BIT(ALST) @FLAG .EQ. 1 THEN DST PAB3,@SREF Close list file CALL CLOSE $END CLR @FLAG ********* CALL CONT Issue message and continue. BR START Go back to menu screen. XML ASM is XML >21 . It must have entered the file ASSM# after it was in memory. I didn't know there was an XMLLNK table to run things out of low RAM. The cartridge has this little XML lookup table: From part 2: the XML table would vary depending on whether you were in EDIT# or ASSM#. **** * EQUATES * * XML EQUATES * LOADX EQU >21 EXECUTE LOADER SAVEX EQU >22 EXECUTE SAVE ROUTINE EDITX EQU >23 EXECUTE EDITOR * ASM EQU >21 EXECUTE ASSEMBLER * ALSUP EQU >21 EXECUTE ASSEMBLY LANGUAGE CODE TGOBLD EQU >22 TAGGED OBJECT LOADER. • EA6000 This is object code, probably the output OBJ.GROM. It begins with the comment: GROM F 11/27/84 12 25 12 I think somebody had tested in 1984 that it could still assemble properly! The floppy disks were given to me in 1985. • Small caps charset. It has GPLLNK number 4A, very cute! I think the small caps address varied with later 4A console ROMs, so this would get it correctly. From part 2: CHAR2$ EQU >18 CHARACTER TABLE ADDRESS IN MONITOR CHAR3$ EQU >4A LOWER CASE CHARACTERS and here "small characters" must refer to the regular (TI BASIC) capitals, as opposed to the BIG CAPITALS on the title screen. DST >900,@FAC Load small characters. CALL CHAR2$ CLR RAM(>800) Clean up TI logo stuff. MOVE >FF FROM RAM(>800) TO RAM(>801) * * MOVE 7 FROM ROM(#VDPRG2) TO VDP(1) SET UP VDP REGISTER. * CHCEK IF ERAM EXISTS CALL BUG1 Fix the bug * MOVE 16 FROM ROM(#CDATA) TO CHAR(>1E) LOAD CURSOR CHARS Later on, subroutine 4A loads the small caps (lowercase) if the console is a 4A. Otherwise 99/4, where it puts little bars "C0" into chars 96-127, a-z. *********************************************************** * BEGIN -- First entry point * *********************************************************** BEGIN DCLR @IDCODE CLEAR ALL FILES IN MEMORY **** * Initilazation section * Color >F5 (color table 0 through 12), blue screen * Define VDP registers, load character sets, * No motion and no sprites **** * BEGIN2 CALL COLOR Load color table ST 5,@KEYBRD Scan keyboard 5. SCAN Enable keyboard for /4A $IF @KEYBRD .EQ. 0 THEN MUST BE 4A KEYBOARD DST >B00,@FAC CALL CHAR3$ Load lower case character $SELSE DST >A00,@FAC CALL CHAR2$ Load semi-lower character DST >B00,@FAC First character definition CHRLP ST >C0,RAM(@FAC) Place two dots for lower case DADD 8,@FAC $IF @FAC .DL. >C00 GOTO CHRLP Fix next character $END IF CLR @KEYBRD Scan standard keyboard * DST >900,@FAC Load small characters. CALL CHAR2$ CLR RAM(>800) Clean up TI logo stuff. MOVE >FF FROM RAM(>800) TO RAM(>801) Thierry Nouspikel's version, diassembled and commented: A disassembly of the E/A cartridge is in Thierry Nouspikel's excellent titechpages. See here: https://www.unige.ch/medecine/nouspikel/ti99/ea1.txt EA1.txt EA6000.txt EA2.txt Edited April 8 by FarmerPotato Replace EA2.txt which had raw bytes appended 3 Quote Link to comment Share on other sites More sharing options...
jbdigriz Posted April 11 Share Posted April 11 (edited) On 4/6/2023 at 1:10 PM, HOME AUTOMATION said: ...Maybe not exactly what you're looking for: DTIC ADA096549: A Users Manual for a PDP-11 Cross Assembler (CRASS) for the TI-9900 Microprocessor. Written in GIRL-FORTRAN! Nice find. Edited April 11 by jbdigriz Quote Link to comment Share on other sites More sharing options...
jbdigriz Posted April 11 Share Posted April 11 (edited) There have been some highly accomplished female FORTRAN programmers, actually, such as NASA's Dorothy Vaughn, who was the subject of a film biography not long ago, iirc. Edited April 11 by jbdigriz 2 Quote Link to comment Share on other sites More sharing options...
SteveB Posted April 12 Share Posted April 12 Check out https://www.imdb.com/title/tt4846340/ . A must-see movie I really enjoyed. Very interesting trivia from IMDB: Astronaut John Glenn did specifically request that Katherine Johnson [co-worker of Dorothy] review all of the calculations for the Friendship 7 mission - (his dialogue in the film based on actual NASA transcripts*) - before he could be confident enough to proceed, but which in reality actually occurred a few weeks before launch: not as depicted in the film whilst awaiting the actual launch. And Katherine Johnson's calculations (more realistically) actually took (just!) three days to confirm. 4 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.