Jump to content
IGNORED

Are there no good windows IDE's with Assemblers for Z80


juice2839

Recommended Posts

Say the video in the other thread that you got it working... congrats!

 

It works pretty good. I just suck at making words with the Allophones. Someone that was more artistic or creatively inclined could make the thing do some really cool stuff. I'd like to make a program where you could pick the Allophones with the joystick and arrange them, then play them to make a word on the Coleco itself, but I'd have to get up to speed on programming for the Coleco. I'm hoping someone will find this interesting and decide to make something cool with it. Like Berzerk or WOW. Check out the other thread I uploaded a video of it saying "You've just been fried by the wizard of war ha ha ha" well it kinda sounds like that. Like I said I suck at making words with it..

Link to comment
Share on other sites

Say the video in the other thread that you got it working... congrats!

 

If you want to see some horrible code this is what I used to test it.. To bad the formatting goes to crap when you paste it here. I am so rusty at assembly, but this weekend maybe I'll brush up...

 

org #8000
vdp1: equ #be ;mtx #1 - cv=$be - msx=$98
vdp2: equ #bf ;mtx #2 - cv=$bf - msx=$99
sound: equ #f0 ;mtx #6 - cv=#f0 - msx=n/a
;ALL 64 OF THE ALLOPHONES
PA1: equ 0
PA2: equ 1
PA3: equ 2
PA4: equ 3
PA5: equ 4
OY: equ 5
AY: equ 6
EH: equ 7
KK3: equ 8
PP: equ 9
JH: equ 10
NN1: equ 11
IH: equ 12
TT2: equ 13
RR1: equ 14
AX: equ 15
MM: equ 16
TT1: equ 17
DH1: equ 18
IY: equ 19
EY: equ 20
DD1: equ 21
UW1: equ 22
AO: equ 23
AA: equ 24
YY2: equ 25
AE: equ 26
HH1: equ 27
BB1: equ 28
TH: equ 29
UH: equ 30
UW2: equ 31
AW: equ 32
DD2: equ 33
GG3: equ 34
VV: equ 35
GG1: equ 36
SH: equ 37
ZH: equ 38
RR2: equ 39
FF: equ 40
KK2: equ 41
KK1: equ 42
ZZ: equ 43
NG: equ 44
LL: equ 45
WW: equ 46
XR: equ 47
WH: equ 48
YY1: equ 49
CH: equ 50
ER1: equ 51
ER2: equ 52
OW: equ 53
DH2: equ 54
SS: equ 55
NN2: equ 56
HH2: equ 57
OR: equ 58
AR: equ 59
YR: equ 60
GG2: equ 61
EL: equ 62
BB2: equ 63
org #8000
db #aa,#55 ;55aa show title aa55 jmp to START
db #00,#00 ;vector 1 (always 0000 or ram 7xxx)
db #00,#00 ;vector 2 (always 0000 or ram 7xxx)
db #00,#00 ;vector 3 (always 0000 or ram 7xxx)
db #00,#00 ;vector 4 (always 0000 or ram 7xxx)
dw START ;vectorcode
db #C9,#00,#00 ;jmp rst $08
db #C9,#00,#00 ;jmp rst $10
db #C9,#00,#00 ;jmp rst $18
db #c9,#00,#00 ;jmp rst $20
db #c9,#00,#00 ;jmp rst $28
db #c9,#00,#00 ;jmp rst $30
db #c9,#00,#00 ;jmp rst $38
db #c9,000,000 ;jmp nmi (vert.blank int vdp)
db "TEST CV",#2F ;titlescreen (if aa55)
db "LINE 2",#2F ;Line 2
db "2013",#2F ;display year :)
;**************************************************************
START:
di
ld sp,#73b9 ;SET STACK POINTER
call #1FD6 ;TURN OFF SOUND
TRYPORT: ld d,7 ;
ld e,%11000000 ;MAKE PSG OUTPUT
call outer1 ;send it to PSG
AGAIN2: ld d,14 ;
ld e,0 ;PORT ALL 0's
call outer1 ;send it to PSG
ld bc,5000
call PAUSE ;wait a second
LETSTALK:
;HELLO
;HH EH LL AX OW
ld d,14
ld e,27 ;HH1
call SAYIT
ld e,7 ;EH
call SAYIT
ld e,45 ;LL
call SAYIT
ld e,15 ;AX
call SAYIT
ld e,53 ;OW
call SAYIT
ld e,#0
;STARTED
;SS SS PA3 TT2 AR PA3 TT2 IH PA1 DD2
ld d,14
ld e,55 ;SS
call SAYIT
ld e,55 ;ss
call SAYIT
ld e,2 ;PA3
call SAYIT
ld e,13 ;TT2
call SAYIT
ld e,59 ;AR
call SAYIT
ld e,2 ;PA3
call SAYIT
ld e,13 ;TT2
call SAYIT
ld e,12 ;IH
call SAYIT
ld e,0
call SAYIT
ld e,33 ;DD2
call SAYIT
ld e,0
call SAYIT
;AND
;AE NG DD1
ld d,14
ld e,26 ;AE
call SAYIT
ld e,44 ;EH
call SAYIT
ld e,21 ;DD1
call SAYIT
ld e,0 ;PA1
call SAYIT
;READY
;RR1 EH EH PA1 DD2 IY
ld d,14
ld e,14 ;RR1
call SAYIT
ld e,7 ;EH
call SAYIT
ld e,7 ;EH
call SAYIT
ld e,0 ;PA1
call SAYIT
ld e,33 ;DD2
call SAYIT
ld e,19 ;IY
call SAYIT
ld e,0
call SAYIT
ld bc,20000
call PAUSE
;jp LETSTALK
;LETS SAY THE WOW PHRASE
ld hl,WOW1
MORE: ld a,(hl)
ld d,14
ld e,a
call SAYIT
ld a,e
cp #ff
jp z,ENDWOW
inc hl
jp MORE
ENDWOW:
ld bc,20000
call PAUSE
jp LETSTALK
SAYIT:
ld a,#c0 ;THIS IS MY HORRIBLE WAY OF TOGGLING BIT 7 AND 8 FROM HIGH TO LOW TO CONTROL THE ALD LINE OF THE
add a,e ;SPO256-AL2 i ACTUALLY ONLY NEED BIT 8. LATER I WILL USE BIT 7 TO WATCH THE LRQ LINE FROM THE SPO256
ld e,a
call outer1
ld a,e
sub #c0
ld e,a
call outer1
ld bc,1000 ;INSTEAD OF THIS PAUSE
call PAUSE ;EVENTUALLY I WILL LOOK AT
ret ;A BIT FROM THE AY-3-8912 HOOKED
;TO THE LRQ LINE OF THE SPO256
;AND WAIT FOR IT TO GO LOW
:THIS INDICATES IT IS READY FOR
;THE NEXT ALLOPHONE. NOW I JUST
;PAUSE TILL I THINK IT SHOULD BE DONE
:WITH THE LAST SPOKEN ALLOPHONE
outer1:
ld a,d
out (#50),a ; send specified value
ld a,e
out (#51),a ; send specified value
ret
;******************************************************************
; SUB-RUTINE..: PAUSE ;
; Function....: Pause in 100uS. times value in BC ;
; Input.......: BC reg ;
; Output......: no ;
; call........: NONE ;
; ;
;******************************************************************
PAUSE: push af
inc b
inc c ; ADJUST THE LOOP
PAUSELOOP1: ld a,#13 ; ADJUST THE TIME 13h IS FOR 4 MHZ
PAUSELOOP2: dec a ; DEC COUNTER. 4 T-states = 1 uS.
jp nz,PAUSELOOP2 ; JUMP TO PAUSELOOP2 IF A <> 0.
dec c ; DEC COUNTER
jp nz,PAUSELOOP1 ; JUMP TO PAUSELOOP1 IF C <> 0.
djnz PAUSELOOP1 ; JUMP TO PAUSELOOP1 IF B <> 0.
PAUSESLUT: pop af
ret
STOP: jp STOP
;LIBRARY OF WORDS
;EACH WORD TERMINATED WITH A #FF
;AND HOLDS A MAX OF 10
;ALLOPHONES
LIBRARY:
db ZZ,YR,OW,00,00,00,00,00,00,#ff ;ZERO
db WW,AX,NN1,00,00,00,00,00,00,#ff ;ONE WON
db TT2,UW2,00,00,00,00,00,00,00,#ff;TWO,TOO,TO
db TH,RR1,IY,00,00,00,00,00,00,#ff ;THREE
db FF,FF,OR,00,00,00,00,00,00,#ff ;FOUR,FOR,FORE
db FF,FF,AY,VV,00,00,00,00,00,#ff ;FIVE
db SS,SS,EH,EH,VV,IH,00,00,00,#ff ;SIX
db SS,SS,EH,EH,VV,IH,NN1,00,00,#ff ;SEVEN
db EY,PA3,TT2,00,00,00,00,00,00,#ff;EIGHT,ATE
db NN1,AA,AY,NN1,00,00,00,00,00,#ff;NINE
db TT2,EH,EH,NN1,00,00,00,00,00,#ff;TEN
db AX,LL,AR,MM,00,00,00,00,00,#ff ;ALARM
;WIZARD OF WAR WORDS
;You've just been fried by the Wizard of Wor! Ha ha ha ha
WOW1: db YY2,UW2,UW2,VV,00,JH,AX,SS,SS,TT1,00 ;YOU'VE JUST
db BB2,EH,EH,NN1,00,FF,FF,RR1,AY,DD1,PA3 ;BEEN FRIED
db BB1,AY,PA3,PA3,TH,AE,AA,PA3 ;BY THE
db WW,IY,SS,SS,IH,IH,RR2,DD2,PA3,AW,VV,PA3 ;WIZARD OF
db WW,AO,RR2,PA3,PA3,PA3,PA3 ;wor
LAUGH: db TT2,AO,HH2,HH2,AO,AO,PA4,TT2,AO,HH2,HH2
db AO,AO,PA4,TT2,AO,HH2,HH2,AO,AO,PA4,#ff ;LAUGH
Edited by juice2839
  • Like 1
Link to comment
Share on other sites

If you need some information on assembly language programming for the Coleco (and other related systems), I started a series on this, which includes templates to get you started etc.

I also shows you how to setup an editor to get error information back from the assembler, so you can jump to the error etc.

First article is located here

There is an associated video for each article.

  • Like 1
Link to comment
Share on other sites

If you need some information on assembly language programming for the Coleco (and other related systems), I started a series on this, which includes templates to get you started etc.

I also shows you how to setup an editor to get error information back from the assembler, so you can jump to the error etc.

First article is located here

There is an associated video for each article.

 

Nice. Very nice editing. Looks professional.

Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...