TASM TI-83 Problem



  • Hat einer eine Idee, wie ich über TASM folgenden Code zum Laufen bekomm:

    .nolist
            #include "ion.inc"  		;the area in itallics is the standard
            .list		    		;ion header. you can change the name 
    
    #ifdef TI83P		    		;displayed by ion and the 2 labels
            .org    progstart-2
            .db     $BB,6D
    #else
            .org    progstart
    #endif
            ret
            jr      nc,lblStart 		;jumps to the label lblstart
            .db     "Hello World",0	;The title displayed by ION
    lblStart: 					;defines where lblstart is
    	bcall(_clrlcdf)			;Clear the screen
    	bcall(_homeup) 			;puts the cursor in the homerow
    	ld	a,0				
    	ld	(CURCOL),a			;Loads a (which is zero) into the x coord.
    
    ld	a,0
    	ld	(CURROW),a			;Loads a (which is zero) into the y coord.
    	ld	hl,txtHelloWorld		;Loads the text from txtHelloWorld into hl
    	bcall(_puts)			;Puts the text on the screen
    	bcall(_getkey)			;Waits for keypress before continuing
    	bcall(_clrlcdf)				
    	ret					;returns to basic mode
    txtHelloWorld:				;a label used for jumping and other things
    	.db	"This is where   " 	;if you want multiple lines, don't have
    	.db	"the text will be" 	;a ,0 after the "
    
    .db	"displayed,      "
    	.db	"each line has to"
    	.db	"16 charachters  "
    	.db	"long, there can "
    	.db	"only be 7 lines ",0	;this defines the end of the text
    .end						;defines the end of a program
    .end
    
    Assembling file:   test.asm
    **Error** test.asm(2) Unknown character
    **Error** test.asm(5) Unknown character
    **Error** test.asm(8) Unknown character
    **Error** test.asm(10) Unknown character
    **Error** test.asm(11) Code or data emission to undeclared segment
    **Error** test.asm(26) Code or data emission to undeclared segment
    **Fatal** test.asm(38) Unexpected end of file encountered
    Error messages:    7
    Warning messages:  None
    Passes:            1
    Remaining memory:  409k
    

    Komm nimmer weiter, ich hab schon alles probiert...

    Hier ein paar Seiten, mit Infos:
    http://www.geocities.com/tutorman_2000/83/asm1.html
    http://www.ftp83plus.net/Tutorials/Beg83AsmA.htm
    http://www.z80.info/z80href.txt
    http://web.archive.org/web/19990218173937/http://www.geocities.com/SiliconValley/Bay/5626/asmles1a.htm
    http://www.ticalc.org/pub/win/asm/z80asm.hlp
    Wäre echt nett, wenn mir einer hilft überhaupt das ganze zum Laufen zu bekommen, weil wenn ich erstmal assemblieren kann, dann ist der Rest kein Prob mehr.



  • .NOLIST
    #DEFINE equ .equ
    #DEFINE EQU .equ
    #DEFINE end .end
    #INCLUDE "ti83asm.inc"
    #INCLUDE "tokens.inc"
    .LIST
    	.org 9327h
    	call _clrLCDFull ;Clears the Screen
    	ret ;Returns to what it was doing
    	.end ;Ends the program
    END
    

    Selbst das funkt net:

    Assembling file:   test.asm
    **Error** test.asm(1) Illegal instruction
    **Error** test.asm(2) Unknown character
    **Error** test.asm(3) Unknown character
    **Error** test.asm(4) Unknown character
    **Error** test.asm(5) Unknown character
    **Error** test.asm(6) Unknown character
    **Error** test.asm(8) Illegal instruction
    **Error** test.asm(9) Undefined symbol: _CLRLCDFULL
    **Error** test.asm(10) Code or data emission to undeclared segment
    **Error** test.asm(11) Illegal instruction
    Error messages:    10
    Warning messages:  None
    Passes:            1
    Remaining memory:  411k
    


  • Ist das der normale Borland TASM, den du benutzt?
    Sieht fast so aus.
    Da es sich dabei jedoch um einen Assembler fuer x86-Code handelt, wirst du deinen Code damit auch nicht zum Laufen bringen koennen.



  • Brauch ich denn einen anderen TASM?



  • http://www.ticalc.org/archives/files/fileinfo/287/28793.html

    z80 Workshop release 1.3
    Want a z80 editor/compiler that has more than NotePad? Well, here is what you need! It has many useful features: -Label jumper (box on right of screenshot). Click a link in that box, and jump straight to that label in the source! Magic! -Compile button (runs TASM & DevPac8X for you [included]). -'Tools' menu - allows you to add useful programs, like VTI, iStudio, or any other programming tools you might own. -Helpful errors! If TASM dumps a nasty one on you, a box pops up- click an error to jump to its line in the code! *Update* - Fixed bug that caused 'File already opened' error box if you tried to save before the program had finished loading.

    Das Ding arbeitet auch mit Tasm, jedoch lässt sich das ganze danach auch assemblieren...
    Einziges Problem, wenn ich das Programm auf dem Rechner laufen lasse, kommt dann ein Fehler: Divided by Zero.

    Das ist eines der Templates:

    #include "../ti83plus.inc"
    #define	bcall(label)	RST 28h \ .dw label
    
    	.org    $9D93
    	.db     $BB,$6D
    
    	;Code goes in here.
    
    .end
    END
    

    edit: Quote-Tags gesetzt



  • Ja, fuer nicht-x86-Code (zB. also fuer TI) kannst du den Borland TASM nicht benutzen.

    Aber offenbar hast du den richtigen TASM ja inzwischen gefunden...?
    ...



  • jupp, war aber nicht vollständig, bei dem oben.

    Hab jetzt tasm301 geladen, funkt auch + 83link und devpac83

    tasm301+83link für normale asm anwendungen
    tasm301+devpac83 für ion-anwendungen

    Und ich weiß jetzt auch, wieso es immer einen Fehler gab:

    Da gibts so eine Art Hack um ASm auf dem 83er zu aktivieren:

    Send(9prgmNAME

    Bis man sich den ganzen Mist ausgesucht hat 🙄

    Man muss sich alle Dateien von verschiedenen Seiten oder mit verschiedenen Methoden besorgen, da diese ganzen Anwendungen so alt sind, dass sie so gut wie keine sau mehr anbietet, bzw. viele Seiten einfach down sind (einer der jüngsten TI-83-ASM-Seiten ist von 1999) und viele kann man nur noch über archive.org anschaun, wenn überhaupt.



  • .NOLIST
    #DEFINE equ .equ
    #DEFINE EQU .equ
    #DEFINE end .end
    #INCLUDE "ti83asm.inc"
    #INCLUDE "tokens.inc"
    .LIST
    .org 9327
    
        nop
        jr Start
        .dw $0000
        .dw Name
    
    Name:  .db "ClearHome",0
    
    Start:
       call _clrLCDFull
       ret
    
    .end
    END
    

    Ungefähr so muss das ganze beim normalen z80 asm aussehen und bei ION:

    .nolist              ;\
       #include "ion.inc"   ; \
       .list                ;  \
    #ifdef TI83P            ;   \
       .org  progstart-2    ;    | Standard Ion
       .db   $BB,$6D        ;   /  Program Header
    #else                   ;  /
       .org  progstart      ; /
    #endif                  ;/
       ret                  ; use xor a if libraries are not used
       jr    nc,start       ; jump to the start
                            ; of the program
       .db   "This is the description",0
    start:
       ret
    .end
    .end
    

    So, ich werd mich da jetzt erstmal einarbeiten, das Topic kann geschlossen werden, es werden aber sicherlich noch andere Folgen 😉


Log in to reply