6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Sat Nov 23, 2024 5:04 pm

All times are UTC




Post new topic Reply to topic  [ 40 posts ]  Go to page Previous  1, 2, 3  Next
Author Message
 Post subject:
PostPosted: Sat Nov 26, 2005 8:41 pm 
Offline

Joined: Tue Oct 11, 2005 4:59 am
Posts: 15
Dear Forum Members,

I have downloaded both the TASS and the sunshine softwares on my Windows XP platform but they did not work.

My question now is: Will it work on Windows 98 or which other operating software will they work best? Iam tempted to look for and instal plain MSDOS. Please, confirm for me on which platform will they work.

Thank you.

_________________
folorunsoa


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Sun Nov 27, 2005 5:49 am 
Offline
User avatar

Joined: Fri Aug 30, 2002 9:02 pm
Posts: 1748
Location: Sacramento, CA
I've run TASS on win95, win98, Win2000, and XP without trouble.

I'm not sure why you cannot. What kind of error does XP report?


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Sun Nov 27, 2005 1:01 pm 
Offline

Joined: Fri Aug 30, 2002 2:05 pm
Posts: 347
Location: UK
folorunsoa wrote:
I have downloaded both the TASS and the sunshine softwares on my Windows XP platform but they did not work.

I downloaded and tried the Sunshine software as it's later than mine and it doesn't seem work at all.

Email me and I'll send you the earlier version that I know at least works on Win98.

Lee.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon Nov 28, 2005 4:47 pm 
Offline
User avatar

Joined: Tue Mar 02, 2004 8:55 am
Posts: 996
Location: Berkshire, UK
Service pack 2 killed off support for 16 bit DOS apps under XP. Quite a few of my old command line favorites bit the dust.

Frank updated his assemblers to Win32 recently but I haven't tried them out myself yet (too busy working on my own Java based relocating macro assembler).

http://www.kingswood-consulting.co.uk/assemblers/

_________________
Andrew Jacobs
6502 & PIC Stuff - http://www.obelisk.me.uk/
Cross-Platform 6502/65C02/65816 Macro Assembler - http://www.obelisk.me.uk/dev65/
Open Source Projects - https://github.com/andrew-jacobs


Top
 Profile  
Reply with quote  
PostPosted: Tue Dec 06, 2005 5:35 am 
Offline

Joined: Tue Oct 11, 2005 4:59 am
Posts: 15
Dear Leeeeee,

Thank you for your assistance. You should please send your own version of the sunshine software by attachment to my address: folorunsoa@yahoo.co.uk

Once again, thank you.

_________________
folorunsoa


Top
 Profile  
Reply with quote  
PostPosted: Tue Dec 06, 2005 6:30 am 
Offline

Joined: Tue Oct 11, 2005 4:59 am
Posts: 15
As I complained earlier, the TASS would not run. I could not create a new .asm file. Assuming I want to create a new .asm file; xyz.asm and I type at prompt: tass xyz.asm

The error message:

Assembling file: xyz.asm
***Fatal** Can't locate file xyz.asm
Error Message : 1
Warning Message: None
Passes: 1
Range : None

Even existing .asm file created before using TASM and passed to be OK are usually returned with errors. Please help!

_________________
folorunsoa


Top
 Profile  
Reply with quote  
PostPosted: Tue Dec 06, 2005 2:19 pm 
Offline
User avatar

Joined: Fri Aug 30, 2002 9:02 pm
Posts: 1748
Location: Sacramento, CA
folorunsoa wrote:
As I complained earlier, the TASS would not run. I could not create a new .asm file. Assuming I want to create a new .asm file; xyz.asm and I type at prompt: tass xyz.asm

The error message:

Assembling file: xyz.asm
***Fatal** Can't locate file xyz.asm
Error Message : 1
Warning Message: None
Passes: 1
Range : None

Ah, TASS won't create a new file for you. All it does is read an already created assembly file and produces the assembled output. You will need to create your file using any plain-text editor (notepad, wordpad, etc).

Quote:
Even existing .asm file created before using TASM and passed to be OK are usually returned with errors. Please help!


I found that the syntax for TASM and TASS are slightly different. If the program assembled fine using TASM but reports errors with TASS, read the errors and correct the syntax. This is mostly things like single quotes vs. double quotes, and psuedo-ops like .db vs. .byte, etc.

hope that helps...

Daryl


Top
 Profile  
Reply with quote  
PostPosted: Mon May 08, 2006 4:21 pm 
Offline

Joined: Tue Oct 11, 2005 4:59 am
Posts: 15
Dear Forum Members,

Below you find the result of my tass execution. It could still not locate my testpro file even though the file was saved as testpro.asm in the same 6502tassx directory. Hence, I have not been able to make any appreciable progress.

Microsoft(R) Windows 98
(C)Copyright Microsoft Corp 1981-1998.

C:\WINDOWS\Desktop>CD 6502TASSX

C:\WINDOWS\Desktop\6502tassx>TASS TESTPRO.ASM
6502 Turbo Assembler Shareware Version Copyright (c) 1997 Taboo Productions
This program HASN'T BEEN REGISTERED for use in commercial purposes!

Assembling file: TESTPRO.ASM
**Fatal** Can't locate file: TESTPRO.ASM
Error messages: 1
Warning messages: None
Passes: 1
Range: None
Remaining memory: 482k

C:\WINDOWS\Desktop\6502tassx>

Could you help with what I must have done wrong to warrant the above result. I am hereby attaching the testpro.asm file for you to run on your system.

Thank you once again.
folorunsoa


;T-Junction TRAFFIC SIGNALLISATION

CODE1=$F800 ;LIGHTING SEQUENCE
CODE2=$F810 ;LIGHTING SEQUENCE
TIME =$F820 ;TIMING SEQUENCE
DDRA =$A003 ;DATA DIRECTION REG.A
DDRB =$A002 ;DATA DIRECTION REG.B
I/O PA=$A001 ;O/P PORT A
I/O PB=$A002 ;O/P PORT B
T1CL =$A005 ;T1 COUNTER LOW
T1CH =$A006 ;T1 COUNTER HIGH
IFR =$A00D ;INTERRUPT FLAG REG.
MEM1 =$0100 ;TEMPORARY MEMORY
MEM2 =$0101 ;TEMPORARY MEMORY
MEM3 =$0102 ;TEMPORARY MEMORY

.ORG $F800
.BYTE $92,$51,$30,$30,$28,$25,$26,$26,$6E

.ORG $F810
.BYTE $12,$12,$96,$99,$95,$B3,$43,$22,$12

.ORG $F820
.BYTE $0F,$05,$03,$0B,$05,$03,$09,$05,$03

.ORG $F000
START:
L1 LDX #$08 ;LOAD REG.X WITH SEQUENCE VALUE
L2 LDA $F800,X ;LOAD ACC. WITH CODE1 INDEX X
STA PA ;STORE IN I/O PORT PA
LDA $F810,X ;LOAD ACC. WITH CODE2 INDEX X
STA PB ;STORE IN I/O PORT PB
JSR TIMER ;CALL DELAY
DEX ;DECREMENT REG.X
BPL L2 ;IF PLUS REPEAT
JMP L1 ;BEGIN AGAIN

;TIMER SUBROUTINE

TIMER: LDA $F820,X ;LOAD ACC. WITH TIMING INDEX X
STA MEM1 ;STORE IN TEMPORARY MEMORY 1
JSR INTERVAL ;CALL 1.00-SEC INTERVAL
L3 DEC MEM1 ;DECREMENT MEMORY 1
BPL L3 ;IF PLUS REPEAT
RTS ;RETURN FROM SUBROUTINE

;1.00-SEC INTERVAL SUBROUTINE

INTVL LDY #$14 ;LOAD REG. Y WITH 20
L4 LDA #$50 ;INITIALISE VIA TIMER
STA T1CL ;COUNTER LOW & HIGH
LDA #$C3 ;TO OBTAIN A VALUE
STA T1CH ;OF 0.05 SEC.
LDA IFR ;CHECK FOR END
AND #$20 ;OF COUNT
DEY ;DECREMENT REG. Y TO COUNTDOWN
BNE L4 ;IF NOT REPEAT
RTS ;RETURN FROM SUBROUTINE

.ORG $FFFC ;RESET VECTOR
.BYTE $00,$F0

.END

_________________
folorunsoa


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon May 08, 2006 5:29 pm 
Offline
User avatar

Joined: Fri Aug 30, 2002 9:02 pm
Posts: 1748
Location: Sacramento, CA
I was able to run TASS on your program on Windows XP (SP2).

I placed it in a folder named 6502TASSX on my desktop.

It does have several syntax errors but I did not get the "cannot find file" error. Some ideas:

try keeping your directories and file names to the DOS 8.3 convention.
Make sure your file is not marked as read only.
Add a PATH statement that includes your working directory.

Let us know if any of those help!

Daryl


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon May 08, 2006 8:11 pm 
Offline
User avatar

Joined: Fri Aug 30, 2002 9:02 pm
Posts: 1748
Location: Sacramento, CA
I made some more tests and I do believe you are having some long file name conflicts with Tass. Make sure the directories and file names are all DOS 8.3 compatible.

I took the liberty of editing your code to correct the syntax for TASS.

This assembles without errors:

Code:
;T-Junction TRAFFIC SIGNALLISATION

CODE1=$F800 ;LIGHTING SEQUENCE
CODE2=$F810 ;LIGHTING SEQUENCE
TIME =$F820 ;TIMING SEQUENCE
DDRA =$A003 ;DATA DIRECTION REG.A
DDRB =$A002 ;DATA DIRECTION REG.B
IOPA =$A001 ;O/P PORT A
IOPB =$A002 ;O/P PORT B
T1CL =$A005 ;T1 COUNTER LOW
T1CH =$A006 ;T1 COUNTER HIGH
IFR  =$A00D ;INTERRUPT FLAG REG.
MEM1 =$0100 ;TEMPORARY MEMORY
MEM2 =$0101 ;TEMPORARY MEMORY
MEM3 =$0102 ;TEMPORARY MEMORY

 *= $F000
START
L1 LDX #$08 ;LOAD REG.X WITH SEQUENCE VALUE
L2 LDA $F800,X ;LOAD ACC. WITH CODE1 INDEX X
 STA IOPA ;STORE IN I/O PORT PA
 LDA $F810,X ;LOAD ACC. WITH CODE2 INDEX X
 STA IOPB ;STORE IN I/O PORT PB
 JSR TIMER ;CALL DELAY
 DEX ;DECREMENT REG.X
 BPL L2 ;IF PLUS REPEAT
 JMP L1 ;BEGIN AGAIN

;TIMER SUBROUTINE

TIMER LDA $F820,X ;LOAD ACC. WITH TIMING INDEX X
 STA MEM1 ;STORE IN TEMPORARY MEMORY 1
 JSR INTVL ;CALL 1.00-SEC INTERVAL
L3 DEC MEM1 ;DECREMENT MEMORY 1
 BPL L3 ;IF PLUS REPEAT
 RTS ;RETURN FROM SUBROUTINE

;1.00-SEC INTERVAL SUBROUTINE

INTVL LDY #$14 ;LOAD REG. Y WITH 20
L4 LDA #$50 ;INITIALISE VIA TIMER
 STA T1CL ;COUNTER LOW & HIGH
 LDA #$C3 ;TO OBTAIN A VALUE
 STA T1CH ;OF 0.05 SEC.
 LDA IFR ;CHECK FOR END
 AND #$20 ;OF COUNT
 DEY ;DECREMENT REG. Y TO COUNTDOWN
 BNE L4 ;IF NOT REPEAT
 RTS ;RETURN FROM SUBROUTINE

 *= $F800
 .BYTE $92,$51,$30,$30,$28,$25,$26,$26,$6E

 *= $F810
 .BYTE $12,$12,$96,$99,$95,$B3,$43,$22,$12

 *= $F820
 .BYTE $0F,$05,$03,$0B,$05,$03,$09,$05,$03

 *= $FFFC ;RESET VECTOR
 .BYTE $00,$F0



Here is the assembly listing:
Code:

6502/65C02 Turbo Assembler listing file of "testpro.asm"
done on Mon May 08 13:03:59 2006

.f000                              start

.f000  a2 08      ldx #$08         L1 LDX #$08 ;LOAD REG.X WITH SEQUENCE VALUE
.f002  bd 00 f8   lda $f800,x      L2 LDA $F800,X ;LOAD ACC. WITH CODE1 INDEX X
.f005  8d 01 a0   sta $a001         STA IOPA ;STORE IN I/O PORT PA
.f008  bd 10 f8   lda $f810,x       LDA $F810,X ;LOAD ACC. WITH CODE2 INDEX X
.f00b  8d 02 a0   sta $a002         STA IOPB ;STORE IN I/O PORT PB
.f00e  20 17 f0   jsr $f017         JSR TIMER ;CALL DELAY
.f011  ca         dex               DEX ;DECREMENT REG.X
.f012  10 ee      bpl $f002         BPL L2 ;IF PLUS REPEAT
.f014  4c 00 f0   jmp $f000         JMP L1 ;BEGIN AGAIN
.f017  bd 20 f8   lda $f820,x      TIMER LDA $F820,X ;LOAD ACC. WITH TIMING INDEX X
.f01a  8d 00 01   sta $0100         STA MEM1 ;STORE IN TEMPORARY MEMORY 1
.f01d  20 26 f0   jsr $f026         JSR INTVL ;CALL 1.00-SEC INTERVAL
.f020  ce 00 01   dec $0100        L3 DEC MEM1 ;DECREMENT MEMORY 1
.f023  10 fb      bpl $f020         BPL L3 ;IF PLUS REPEAT
.f025  60         rts               RTS ;RETURN FROM SUBROUTINE
.f026  a0 14      ldy #$14         INTVL LDY #$14 ;LOAD REG. Y WITH 20
.f028  a9 50      lda #$50         L4 LDA #$50 ;INITIALISE VIA TIMER
.f02a  8d 05 a0   sta $a005         STA T1CL ;COUNTER LOW & HIGH
.f02d  a9 c3      lda #$c3          LDA #$C3 ;TO OBTAIN A VALUE
.f02f  8d 06 a0   sta $a006         STA T1CH ;OF 0.05 SEC.
.f032  ad 0d a0   lda $a00d         LDA IFR ;CHECK FOR END
.f035  29 20      and #$20          AND #$20 ;OF COUNT
.f037  88         dey               DEY ;DECREMENT REG. Y TO COUNTDOWN
.f038  d0 ee      bne $f028         BNE L4 ;IF NOT REPEAT
.f03a  60         rts               RTS ;RETURN FROM SUBROUTINE

>f800  92 51 30 30 28 25 26 26 6e   .BYTE $92,$51,$30,$30,$28,$25,$26,$26,$6E

>f810  12 12 96 99 95 b3 43 22 12   .BYTE $12,$12,$96,$99,$95,$B3,$43,$22,$12

>f820  0f 05 03 0b 05 03 09 05 03   .BYTE $0F,$05,$03,$0B,$05,$03,$09,$05,$03

>fffc  00 f0                        .BYTE $00,$F0

--- end of code ---


Daryl


Top
 Profile  
Reply with quote  
 Post subject: MY TASS NOW WORKS
PostPosted: Tue May 09, 2006 3:58 pm 
Offline

Joined: Tue Oct 11, 2005 4:59 am
Posts: 15
Thank you Daryl. It works now. I was able to assemble without any error. But how do I get my assembled listings (file) and possibility of converting to an object file too. I have also taken a good note of the slight differences in syntax between tasm and tass.
Once again thank you.

_________________
folorunsoa


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Tue May 09, 2006 4:32 pm 
Offline
User avatar

Joined: Fri Aug 30, 2002 9:02 pm
Posts: 1748
Location: Sacramento, CA
Glad to hear you got it going!!!!

Once you have a successful assembly, TASS will generate an object file. Since it was created with the C-64 in mind, the object file's suffix will be .O64

This file is the binary object file with the 2 byte starting address in the first two positions.

Code:
00 F0 A2 08 ...

...where 00 is the low start address byte, F0 is the high start address byte, and A2 is the LDX # opcode (from your sample code).

If you need only the object code without the start address, use a HEX editor to remove the first two bytes. There a several free HEX editors available online.

Daryl


Top
 Profile  
Reply with quote  
 Post subject: ONLY OBJ FILE CREATED
PostPosted: Wed May 10, 2006 8:54 pm 
Offline

Joined: Tue Oct 11, 2005 4:59 am
Posts: 15
On successful assembly, both obj. and list files should be created. However, my TASS created only the obj. file named Testprox.O64 (Note the capital 'T' to differentiate it from the source file with small 't'). When I tried to open the obj file with wordpad, it displayd trash. I later downloaded XVI32 hex editor which I tried to use to open the file. But the system displayed: 'error opening Testprox.O64'. Surprisingly, no list file was created when the source file was assembled. I read that the list file should be testprox.L64, but it was not created. Please help!!

_________________
folorunsoa


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Wed May 10, 2006 10:08 pm 
Offline
User avatar

Joined: Fri Aug 30, 2002 9:02 pm
Posts: 1748
Location: Sacramento, CA
You need to use the /L flag to get the list file.

TASS /L[list file name] source file.


I'm not sure why you couldn't open the object file. My EEPROM programmer software lets me view and edit the output files so I'm not sure which hex editor to recommend. I used to use LIST.COM back in the old DOS days. It could not edit files, only view them.

Daryl


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Wed May 10, 2006 10:47 pm 
Offline
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8545
Location: Southern California
I'm not familiar with the particular assembler you're talking about, but I might offer a question anyway. Do you need to run a linker to get the hex code ready for an EPROM programmer or something like that? I used the 2500AD assembler years ago, and its .obj output would look like total garbage in a text editor (as any pure machine language would) unless the editor has a hex mode. After running the linker, you'd have the .hex file, which contained 0-F readable digits.


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 40 posts ]  Go to page Previous  1, 2, 3  Next

All times are UTC


Who is online

Users browsing this forum: Google [Bot] and 50 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to: