My 6502 chip runs & stops
-
folorunsoa
- Posts: 15
- Joined: 11 Oct 2005
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.
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
-
leeeeee
- In Memoriam
- Posts: 347
- Joined: 30 Aug 2002
- Location: UK
- Contact:
folorunsoa wrote:
I have downloaded both the TASS and the sunshine softwares on my Windows XP platform but they did not work.
Email me and I'll send you the earlier version that I know at least works on Win98.
Lee.
- BitWise
- In Memoriam
- Posts: 996
- Joined: 02 Mar 2004
- Location: Berkshire, UK
- Contact:
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/
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
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
-
folorunsoa
- Posts: 15
- Joined: 11 Oct 2005
Request for Sunshine Software for 60/80 Universal Programme
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.
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
-
folorunsoa
- Posts: 15
- Joined: 11 Oct 2005
Installation & Running of TASS on Windows XP
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!
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
Re: Installation & Running of TASS on Windows XP
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
The error message:
Assembling file: xyz.asm
***Fatal** Can't locate file xyz.asm
Error Message : 1
Warning Message: None
Passes: 1
Range : None
Quote:
Even existing .asm file created before using TASM and passed to be OK are usually returned with errors. Please help!
hope that helps...
Daryl
-
folorunsoa
- Posts: 15
- Joined: 11 Oct 2005
DOWNLOADED TASS STILL NOT WORKING
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
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
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
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
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:
Here is the assembly listing:
Daryl
I took the liberty of editing your code to correct the syntax for TASS.
This assembles without errors:
Code: Select all
;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
Code: Select all
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 ---
-
folorunsoa
- Posts: 15
- Joined: 11 Oct 2005
MY TASS NOW WORKS
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.
Once again thank you.
folorunsoa
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.
...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
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: Select all
00 F0 A2 08 ...
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
-
folorunsoa
- Posts: 15
- Joined: 11 Oct 2005
ONLY OBJ FILE CREATED
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
You need to use the /L flag to get the list file.
TASS /L
TASS /L
- 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
- GARTHWILSON
- Forum Moderator
- Posts: 8773
- Joined: 30 Aug 2002
- Location: Southern California
- Contact:
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.