D-Bug & Automation Forum
General >> Random Access >> Hello
http://d-bug.mooo.com/dbugforums/cgi-bin/yabb2/YaBB.pl?num=1234397529

Message started by techie_alison on 12.02.09 at 00:12:09

Title: Hello
Post by techie_alison on 12.02.09 at 00:12:09
So what happens here then??   :D

Aly

ps. guess I better set my profile up and put a picture on.

Title: Re: Hello
Post by Christos on 12.02.09 at 00:29:01
Hi Aly,
Welcome. :)


Title: Re: Hello
Post by techie_alison on 12.02.09 at 00:34:45
Christos!!!  Heyo!!  :)

Thank you.

Are you same Christos that I know already?  I know CJ, GGN, and a few others on here from my travels.

Aly x

ps. some computer pictures on flickr; http://www.flickr.com/photos/old_computers/ .  hint.  the monitor plinths are handy, easy and cheap to build too.  :)

Title: Re: Hello
Post by CJ on 12.02.09 at 00:43:27

techie_alison wrote on 12.02.09 at 00:12:09:
So what happens here then??


We patch games, talk trash and set the world to rights. More of (a) and (c) tho :)

Welcome aboard.

Title: Re: Hello
Post by Christos on 12.02.09 at 00:50:42
Yep, the same one!

Title: Re: Hello
Post by techie_alison on 12.02.09 at 00:58:24

Christos wrote on 12.02.09 at 00:50:42:
Yep, the same one!


OH NO!!!   ;)

Hi CJ.

Title: Re: Hello
Post by Christos on 12.02.09 at 01:08:55

techie_alison wrote on 12.02.09 at 00:58:24:

Christos wrote on 12.02.09 at 00:50:42:
Yep, the same one!


OH NO!!!   ;)

Hi CJ.


I am everywhere. For your convenience.

Title: Re: Hello
Post by techie_alison on 12.02.09 at 01:11:47

Christos wrote on 12.02.09 at 01:08:55:
I am everywhere. For your convenience.


PMSL.  I see.

So shall I start posting some pictures then?  ::)

Title: Re: Hello
Post by Christos on 12.02.09 at 01:18:50

techie_alison wrote on 12.02.09 at 01:11:47:

Christos wrote on 12.02.09 at 01:08:55:
I am everywhere. For your convenience.


PMSL.  I see.

So shall I start posting some pictures then?  ::)


Just to note that the previous phrase was am obligatory babylon 5 reference. ;)

Title: Re: Hello
Post by techie_alison on 12.02.09 at 01:21:23

Christos wrote on 12.02.09 at 01:18:50:
Just to note that the previous phrase was am obligatory babylon 5 reference. ;)


And so it begins.  :)

Title: Re: Hello
Post by CJ on 12.02.09 at 01:25:16

techie_alison wrote on 12.02.09 at 01:11:47:
So shall I start posting some pictures then?  ::)


Gentlemen, this is your wake up call.

Title: Re: Hello
Post by techie_alison on 12.02.09 at 01:27:49

CJ wrote on 12.02.09 at 01:25:16:

Gentlemen, this is your wake up call.


I can't.  I'm fright.  I have a reputation to keep you know.  

Title: Re: Hello
Post by CJ on 12.02.09 at 01:34:31
All I can say is that enthusiasm, sincerity, genuine compassion, and humor can carry you through any .. lack of .. prior experience with .. high numerical value.

Title: Re: Hello
Post by Christos on 12.02.09 at 01:38:45

CJ wrote on 12.02.09 at 01:34:31:
All I can say is that enthusiasm, sincerity, genuine compassion, and humor can carry you through any .. lack of .. prior experience with .. high numerical value.


Huh? Is that an exercise? Do we have to fill in the missing words?

Title: Re: Hello
Post by techie_alison on 12.02.09 at 01:41:20
Hey I just program chips in binary and hexadecimal, none of this decimal stuff.  

I'd love someone to write me a little ST program though, which displays the current joystick inputs/variable on screen, along with the mouse inputs/variables.  That'd be quite handy.   ;)

Title: Re: Hello
Post by CJ on 12.02.09 at 01:41:39
Aww the other picture in the chair was better :P

Title: Re: Hello
Post by techie_alison on 12.02.09 at 01:44:39

CJ wrote on 12.02.09 at 01:41:39:
Aww the other picture in the chair was better :P


You reckon.  Mmmm, ok.  I'll put it back.

I want a program by the morning though.  ::)

Title: Re: Hello
Post by CJ on 12.02.09 at 01:50:27
[code]10 print "hello world ";
20 goto 10[/code]

There ya go :)

Title: Re: Hello
Post by techie_alison on 12.02.09 at 01:58:52
how about this one.  you'll like this.  it'll speed up the Internet.  :)

[code]
xor ax, ax
mov ah, 00000110b
xor cx,cx
xor dx,dx
int 13h
[/code]

Title: Re: Hello
Post by CJ on 12.02.09 at 02:05:28
ewww x86... thats kinky stuff!

Title: Re: Hello
Post by techie_alison on 12.02.09 at 02:14:38
Time for sleep.  nn x

Thanks lads.   :)

Title: Re: Hello
Post by aktiv8 on 12.02.09 at 10:22:57
Welcome over here Ali :)    :-*


Title: Re: Hello
Post by techie_alison on 12.02.09 at 14:51:01
Yayyyyy.  Hi Aktiv :-)

Aly xx  :)

Title: Re: Hello
Post by ggn on 12.02.09 at 17:34:27

techie_alison wrote on 12.02.09 at 01:41:20:
I'd love someone to write me a little ST program though, which displays the current joystick inputs/variable on screen, along with the mouse inputs/variables.  That'd be quite handy.   ;)


Hi Aly,

so you want the raw IKBD data, or will the usual UP/DOWN/LEFT/RIGHT/FIRE status suffice?

Title: Re: Hello
Post by techie_alison on 13.02.09 at 01:11:25
Heyoo,

Actually I think I may take you up on that you know.  Ideally I want a certain person to do it.  It'd be handy if I could see the source too, and how it's compiled so that I can create my own in future.  I've never really got into ST coding, and there's not too much to go on.

JOY0 UP/DOWN/LEFT/RIGHT/FIRE
JOY1 UP/DOWN/LEFT/RIGHT/FIRE
MOUSE0 STATUS/COUNTERS

I'm developing JeST at the moment (the PSX joypad interface) and it has the facility for 2 fire buttons on the ST? (Heavy Stylus asked for that)  I'm not sure how that's interpreted by the ST?  It maps it over onto the other joystick doesn't it?

I could just load up a game to do all of this, but a program to do it would be more analytical for testing.  Also useful to get out into the scene too.

Aly x

Title: Re: Hello
Post by CJ on 13.02.09 at 11:20:43
Well, that was fun :-)

F1 - set stick1 (mouse port) monitoring
F2 - set mouse monitoring

(Can't be in both modes at same time)

Mouse data not currently shown, except in the "last 4 bytes" stream.

[code]
;;
;; Joystick / Keyboard Data display
;;

     pea code(pc)                        ; Run in Supervisor
     move.w #$26,-(a7)
     trap #14
     lea 6(a7),a7

     clr.l -(a7)                        ; Exit to Desktop
     trap #1

code      movem.l $ffff8240.w,d0-7            ; save pallette
     movem.l d0-7,old_pall
     move.b $ffff8260.w,old_res            ; save resolution
     move.b $ffff8201.w,old_screen+1            ; save screen-base
     move.b $ffff8203.w,old_screen+2
     move.l $118.w,-(a7)

     clr.b $ffff8260.w                  ; set low res

     bsr info_init                        ; init text plot routine
     
     move.b #$80,d0
     bsr s_ikbd
     move.b #1,d0
     bsr s_ikbd                        ; reset IKBD to POWER ON
     move.b #$14,d0
     bsr s_ikbd                        ; enable joystick events
     move.b #$8,d0
     bsr s_ikbd                        ; enable mouse events

     move.l #my_key,$118.w                  ; install my ACIA interupt

     lea screen_memory,a0                  ; allocate 32k screen memory in BSS
     move.l a0,d0
     clr.b d0                        ; on page boundary
     move.l d0,screen

     move.l screen,a0                  ; clear the screen
     move.l a0,a1
     add.l #32000,a1
.wiper      clr.l (a0)+
     cmp.l a0,a1
     bne.s .wiper

     move.b screen+1,$ffff8201.w            ; set screen address
     move.b screen+2,$ffff8203.w      

.loop      tst.w update_flag                  ; check if screen update required?
     beq.s .nope
     bsr update                        ; yes, so update it
.nope      cmp.b #$bb,key
     bne .not_f1
     bsr setjoy0
.not_f1      cmp.b #$bc,key
     bne .not_f2
     bsr setmous

.not_f2      cmp.b #$39,key
     bne.s .loop                        ; wait for SPACE

     move.w #$2700,sr                  ; all stop!
     move.l (a7)+,$118.w
     move.l #$8080000,$ffff8800.w            ; volume to zero on
     move.l #$9090000,$ffff8800.w            ; all 3 channels
     move.l #$a0a0000,$ffff8800.w
     move.b #$80,d0                        ; restore ikbd
     bsr s_ikbd
     move.b #$1,d0                        ; to power up status
     bsr s_ikbd

     movem.l old_pall,d0-7
     movem.l d0-7,$ffff8240.w            ; restore pallette
     move.b old_res,$ffff8260.w            ; restore resolution
     move.b old_screen+1,$ffff8201.w
     move.b old_screen+2,$ffff8203.w

     move.w #$2300,sr                  ; restore interupts

     rts

setjoy0      move.b #$14,d0
     bsr s_ikbd                        ; enable joystick events
     rts

setmous      move.b #$8,d0
     bsr s_ikbd                        ; enable mouse events
     rts

update_flag      dc.w 0                        ; flip flop for screen update required

update      clr.w update_flag                  ; we're updating!
     lea keyboard_text(pc),a1
     bsr info                        ; display last 4 bytes from ACIA

     clr.w stick                        ; stick0 is being read
     move.b stick0,d0
     btst #1,d0
     bne down
     btst #0,d0
     bne up
     btst #7,d0
     bne fire
     btst #2,d0
     bne left
     btst #3,d0
     bne right
     lea stick0_null,a1
     bsr info
test2      move.b stick1,d0                  ; stick1 is being read
     btst #1,d0
     bne down1
     btst #0,d0
     bne up1
     btst #7,d0
     bne fire1
     btst #2,d0
     bne left1
     btst #3,d0
     bne right1
     lea stick1_null,a1
     bra info

down      lea stick0_down,a1
     bsr info
     bra test2

up      lea stick0_up,a1
     bsr info
     bra test2

left      lea stick0_left,a1
     bsr info
     bra test2

right      lea stick0_right,a1
     bsr info
     bra test2

fire      lea stick0_fire,a1
     bsr info
     bra test2

down1      lea stick1_down,a1
     bra info
     
up1      lea stick1_up,a1
     bra info

left1      lea stick1_left,a1
     bra info

right1      lea stick1_right,a1
     bra info

fire1      lea stick1_fire,a1
     bra info
     
my_key      movem.l d0-a6,-(a7)

     move.b $fffffc02.w,d1                  ; get ACIA data
     move.b d1,key                        ; and store it

     bsr hashing                        ; covert it to ASCII
     lea last4,a0
     rept 6                              ; shift the buffer up a byte
     move.b 1(a0),(a0)+
     endr
     lea hexad+6,a1
     move.b (a1)+,(a0)+                  ; and store the last byte
     move.b (a1),(a0)                  ; (2 ascii digits=1 byte)

     move.b key,d1                        ; get the current key

     cmp.w #-1,stick                        ; was last event stick0?
     beq .stick0
     cmp.w #-2,stick                        ; was last event stick1?
     beq .stick1

     cmp.b #$ff,d1                        ; is this event stick0?
     bne .notstick0
     move.w #-1,stick                  ; next event is data
     bra .exitikbd

.notstick0
     cmp.b #$fe,d1                        ; is this event stick1?
     bne .exitikbd
     move.w #-2,stick                  ; next event is data
     bra .exitikbd

.stick1      move.b d1,stick1                  ; store stick1 data
     clr.w stick                        ; clear stick detect flag
     bra .exitikbd

.stick0      move.b d1,stick0                  ; store stick1 data
     clr.w stick                        ; clear stick detect flag

.exitikbd      
     move.w #1,update_flag                  ; ACIA data received flipflop
     movem.l (a7)+,d0-a6
     bclr.b #6,$fffffa11.W                  ; clear ACIA interupt in service
     rte

key      dc.l 0

stick      dc.w 0
stick0      dc.w 0
stick1      dc.w 0
mouse0      dc.w 0

s_ikbd      btst #1,$fffffc00.w
     beq.s s_ikbd
     move.b d0,$fffffc02.w
     rts

keyboard_text
     dc.l 010*160
     dc.b "LAST 4 BYTES: "
last4      dc.b "00000000",-1
     even

stick0_null
     dc.l 020*160
     dc.b "STICK0 NULL   ",-1
     even
stick0_up      
     dc.l 020*160
     dc.b "STICK0 UP     ",-1
     even
stick0_down      
     dc.l 020*160
     dc.b "STICK0 DOWN   ",-1
     even
stick0_left
     dc.l 020*160
     dc.b "STICK0 LEFT   ",-1
     even
stick0_right
     dc.l 020*160
     dc.b "STICK0 RIGHT  ",-1
     even
stick0_fire
     dc.l 020*160
     dc.b "STICK0 FIRE   ",-1
     even

stick1_null
     dc.l 030*160
     dc.b "STICK1 NULL   ",-1
     even
stick1_up      
     dc.l 030*160
     dc.b "STICK1 UP     ",-1
     even
stick1_down      
     dc.l 030*160
     dc.b "STICK1 DOWN   ",-1
     even
stick1_left
     dc.l 030*160
     dc.b "STICK1 LEFT   ",-1
     even
stick1_right
     dc.l 030*160
     dc.b "STICK1 RIGHT  ",-1
     even
stick1_fire
     dc.l 030*160
     dc.b "STICK1 FIRE   ",-1
     even




;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; call with long to convert in d1
;; string placed at hexad
;;

hashing      moveq #0,d0
     lea .table(pc),a0
     lea hexad+8(pc),a2
     bsr.s .first
     moveq.w #5,d3
.loop      bsr.s .next
     dbra d3,.loop
.next      ror.l #4,d1
.first      move.b d1,d0
     and #$f,d0
     move.b (a0,d0),-(a2)
     rts


.table      dc.b "0123456789ABCDEF"
hexad      ds.l 2
     dc.l $ffffffff
     even

font_x      DC.B      $00,$38,$66,$00,$00,$00,$00,$18            ; the debug screen font
           DC.B      $1E,$78,$00,$00,$00,$00,$00,$00
           DC.B      $7C,$38,$7C,$FE,$1C,$FE,$7E,$FE
           DC.B      $7C,$7C,$00,$00,$00,$00,$00,$7C
           DC.B      $00,$7C,$FC,$7E,$FC,$FE,$FE,$7E
           DC.B      $00,$38,$EE,$00,$00,$00,$00,$18
           DC.B      $3E,$7C,$00,$00,$00,$00,$00,$00
           DC.B      $FE,$78,$FE,$FC,$3C,$FE,$FE,$FE
           DC.B      $FE,$FE,$00,$00,$00,$00,$00,$EE
           DC.B      $00,$FE,$FE,$FE,$FE,$FE,$FE,$FE
           DC.B      $00,$38,$CC,$00,$00,$00,$00,$30
           DC.B      $38,$1C,$00,$00,$00,$00,$FC,$00
           DC.B      $0E,$00,$00,$00,$0C,$00,$00,$00
           DC.B      $06,$86,$60,$30,$00,$00,$00,$0E
           DC.B      $00,$06,$0E,$00,$06,$00,$00,$00
           DC.B      $00,$38,$00,$00,$00,$00,$00,$30
           DC.B      $38,$1C,$00,$00,$00,$00,$FC,$00
           DC.B      $C6,$38,$1C,$1C,$CC,$FC,$FC,$38
           DC.B      $7C,$7E,$60,$30,$00,$00,$00,$1C
           DC.B      $00,$FE,$FC,$C0,$E6,$FC,$FC,$EE
           DCB.W     4,0
           DC.B      $38,$1C,$00,$00,$30,$00,$00,$00
           DC.B      $E6,$38,$38,$0E,$FE,$0E,$EE,$70
           DC.B      $C6,$0E,$00,$00,$00,$00,$00,$30
           DC.B      $00,$FE,$C6,$C0,$E6,$E0,$E0,$E6
           DC.B      $00,$38,$00,$00,$00,$00,$00,$00
           DC.B      $3E,$7C,$00,$00,$60,$30,$00,$00
           DC.B      $FE,$FE,$7E,$EE,$1C,$EE,$EE,$70
           DC.B      $FE,$1C,$60,$30,$00,$00,$00,$00
           DC.B      $00,$EE,$FE,$FE,$FE,$FE,$E0,$FE
           DC.B      $00,$38,$00,$00,$00,$00,$00,$00
           DC.B      $1E,$78,$00,$00,$00,$30,$00,$00
           DC.B      $7C,$FE,$FE,$FC,$1C,$FC,$7C,$70
           DC.B      $7C,$78,$60,$60,$00,$00,$00,$30
           DC.B      $00,$EE,$FC,$7E,$FC,$FE,$E0,$7E
           DCB.W     20,0
           DC.B      $EE,$7C,$0E,$EE,$E0,$EE,$C6,$7C
           DC.B      $FC,$7C,$FC,$7E,$FE,$EE,$EE,$C6
           DC.B      $C6,$EE,$FE,$00,$00,$00,$00,$00
           DCB.W     8,0
           DC.B      $EE,$7C,$0E,$FE,$E0,$FE,$E6,$FE
           DC.B      $FE,$FE,$FE,$FE,$FE,$EE,$EE,$C6
           DC.B      $EE,$EE,$FE,$00,$00,$00,$00,$00
           DCB.W     10,0
           DC.B      $E0,$7E,$76,$0E,$0E,$0E,$0E,$00
           DC.B      $00,$EE,$00,$D6,$7C,$00,$00,$00
           DCB.W     10,0
           DC.B      $FE,$38,$0E,$FC,$E0,$BE,$BE,$EE
           DC.B      $FE,$EE,$FC,$7C,$38,$EE,$EE,$BE
           DC.B      $38,$7C,$38,$00,$00,$00,$00,$00
           DCB.W     8,0
           DC.B      $EE,$38,$EE,$FE,$00,$D6,$DE,$EE
           DC.B      $FC,$EE,$FC,$0E,$38,$00,$EE,$7E
           DC.B      $7C,$38,$70,$00,$00,$00,$00,$00
           DCB.W     8,0
           DC.B      $EE,$7C,$EE,$EE,$FE,$C6,$CE,$FE
           DC.B      $E0,$FC,$EE,$FE,$38,$FE,$7C,$FE
           DC.B      $EE,$38,$FE,$00,$00,$00,$00,$00
           DCB.W     8,0
           DC.B      $EE,$7C,$7C,$E6,$FE,$C6,$C6,$7C
           DC.B      $E0,$7E,$EE,$FC,$38,$7E,$38,$EE
           DC.B      $C6,$38,$FE,$00,$00,$00,$00,$00
           DCB.W     48,0
     even

info_init
     lea font_x(pc),a0                  ; Font offsets for plotter
     move.l a0,d0
     move.l d0,d1
     add.l #40*8,d1
     lea ascii(pc),a1
     move.w #39,d2
.adder      move.l d0,(a1)
     move.l d1,160(a1)
     addq.l #1,d0
     addq.l #1,d1
     lea 4(a1),a1
     dbra d2,.adder
     rts

ascii      ds.l 80

next_add      dc.l 0
n1            dc.l 1
n2            dc.l 7
old_pal            ds.w 16

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; Text plotting routine
;;
;; call with a1 pointing at text
;;      

info      lea screen(pc),a0
     move.l (a0),a0
     add.l (a1)+,a0
     lea next_add(pc),a3
     move.l a0,(a3)
     move.l #1,4(a3)            ; n1
     move.l #7,8(a3)            ; n2
.loop      moveq.l #0,d0
     move.b (a1)+,d0
     bpl.s .write
     cmp.b #-1,d0
     beq.s .wrap
.nextline
     move.l #1,4(a3)            ; n1
     move.l #7,8(a3)            ; n2
     move.l (a3),a0
     add.l #160*9,a0
     move.l a0,(a3)
     bra.s .loop
.wrap      rts
.write      cmp.b #'.',d0            ; '.' and '-' are swapped in the font. cheap hack :P
     bne.s .nodot
     move.b #'-',d0
     bra.s .ch_ok
.nodot      cmp.b #'-',d0
     bne.s .ch_ok
     move.b #'.',d0
.ch_ok      sub.b #' ',d0
     add d0,d0
     add d0,d0
     lea ascii(pc),a2
     move.l (a2,d0),a2
     bsr.s .plotit
     bra .loop
.plotit      
x      set 0
y      set 0
     rept 8
     move.b x(a2),y(a0)
x      set x+40
y      set y+160
     endr
     add.l 4(a3),a0
     move.l 4(a3),-(a7)
     move.l 8(a3),4(a3)
     move.l (a7)+,8(a3)
     rts

     SECTION BSS

screen            ds.l 1
xa07            ds.b 1
xa09            ds.b 1
xa15            ds.b 1
xa1b            ds.b 1
old_res            ds.w 1                  ; entry resolution
old_screen      ds.l 1                  ; entry screen address
old_pall      ds.w 16                  ; entry pallette
buffer_of_crap      ds.b 1024
screen_memory      ds.b 32000
[/code]


http://d-bug.mooo.com/dbugforums/cgi-bin/yabb2/YaBB.pl?action=downloadfile;file=KEYCODE.TOS ( 2 KB | Downloads )

Title: Re: Hello
Post by Heavy Stylus on 13.02.09 at 11:52:40
Hi Alison

A game that supports two buttons (FYI) is Renegade/Graftgold's Fire and Ice.  I have an HD-friendly version at home IIRC.

Title: Re: Hello
Post by techie_alison on 13.02.09 at 16:50:22
Oooohhhhhhhhhhhhhh

WOW, thanks CJ.  That's bloody brilliant!!

What can I compile this with please, that's available on one of the FTP sites, like it's obviously assembler?

HS, ok noted.  Just waiting on the PCBs, should be about another week.  I'm slowly stocking up on PSX controllers too, ...which aren't the easiest things to buy new now either.

Title: Re: Hello
Post by ggn on 13.02.09 at 17:48:33
Aly,

http://dhs.nu/files_code.php has all the tools to get you started! Shw and CJ use Devpac, I myself use Turbo assembler! Also, there's recently VBCC which can cross-assemble stuff from the console (see the DHS bbs posts for more info!)

Good luck :)

Title: Re: Hello
Post by CJ on 13.02.09 at 21:32:47
Its Devpac2 code (Can't stand Devpac3 - it's what happens when you sell the code to someone else and ignore the original authors... Paint Shop Pro anyone? That turned into an over complicated useless mess of random buttons)

I can change it so it displays diagonals as well if thats usefull (It'll display UP RIGHT, etc) by moving the display address of the text over on the screen.

If I get chance I'll add mouse tracking in there as well.  Seems you can't use the ALINE reading trick without using the original ACIA interupt.

Oh, and some of the things in the BSS section aren't needed, I just grabbed an old intro along with a chunk of a Defender game I started years ago and hacked them around.

Glad you like it :)

Title: Re: Hello
Post by techie_alison on 13.02.09 at 21:36:42

CJ wrote on 13.02.09 at 21:32:47:
Paint Shop Pro anyone? That turned into an over complicated useless mess of random buttons)


Yes.  I have PSP4 here, ...all 4MB of it.  GIMP (Linux) for everything else.  Can't stand Windows now having used it on and off, it's so bloated and laggy.

PSP4 also does the Amiga format, .IFF I think it is.  So you can easily convert graphics and alias on a modern PC to the ST.   :)

Title: Re: Hello
Post by CJ on 13.02.09 at 21:42:36

techie_alison wrote on 13.02.09 at 21:36:42:

Can't stand Windows now having used it on and off, it's so bloated and laggy.


It's just like me! must be why I get along OK with it :)

Title: Re: Hello
Post by techie_alison on 13.02.09 at 22:25:14

CJ wrote on 13.02.09 at 21:42:36:

It's just like me! must be why I get along OK with it :)


Noooo!!  You're 6-feet tall and with a washboard stomach.  You all are.

Title: Re: Hello
Post by CJ on 13.02.09 at 22:54:51
Only in your mind ;-)

So, do you need the diagonals and the mouse x/y as well or was that ok?

Title: Re: Hello
Post by techie_alison on 14.02.09 at 00:31:11
Yes that's fine.  I can't complain can I, you wrote it for me in your own time!!  :)  

Ultimately I intend to use it as a template and recompile it.  That's where I'll go next.

It's main purpose for me is to hook up these JeSTs when the PCBs arrive.  At the moment with PeST, I use sysinfo which recognises right clicks and brings up the help menu.

I'll likely put a counter in there too, hooked up to the clock timer, which counts how fast the autofire is running.  Then there will be another which counts how fast the left right left right (joystick waggling) is running.  I can go upto about 50-times a second, but if the ST falls over at 20-times a second..  The mouse for example will go all over the place if you clock it too fast.  Just to pull out as much conceivable information about the port.  But that's for another day when I have all of these other jobs out of the way.

:)

Title: Re: Hello
Post by CJ on 14.02.09 at 01:26:03
Sure you can complain! What makes you different from everyone else on the internet? :P

"This has been a cut and paste software production" - didn't take long, so it wasn't a problem.

I guess you can tell the mouse works by watching the packet data in the "last 4 bytes" field.

Title: Re: Hello
Post by techie_alison on 14.02.09 at 02:13:00
The 4-bytes, yes.  I'm used to viewing data like this when working with a scope.

God no, I'm not complaining.  You know I once used to and was really volatile, but you just kind of reach a point where it achieves nothing.  Far far easier and less stressful to just get on with everyone and fit in. :)

The attached file, ...when I find it...  The first one is of the Atari joystick interface itself, with the first top 4 being the directions, and the remaining 2 being the fire buttons.  Where they start oscillating is the autofire.  The traces at the very bottom are detailed in the next paragraph.

The 2nd one is the PSX packet itself.  It's a slight variation of the duplex SPI method.  D0 is CSEL, D1 is clock, D2 is CMD, D3 is DATA, D4 is ACK.  There's enough clocks there for 5-bytes.  Which is a single PSX digital packet, taking about 600uS where JeST is concerned.

All totally irrelevant stuff, but hey I like looking at them.  That thing cost me £500!!!!   :)

JeST sits in the middle of those two running at about 1MIPS dependent on instructions and jumps.  Some of the decision making is a bit cumbersome as with only 35 RISC instructions there's no branching commands like IF.  It's all done with the overflow flags and shifting bits left and right and checking them.

All bit banged.

[code]
;------------------------------------------------------------------------------
;Subroutine : PSX_RW_BYTE
;------------------------------------------------------------------------------
;Passed : W contains byte to be transmitted
;Valid : N/A
;Uses : psx_tx_byte_ , psx_rx_byte_ , loop1_
;Returns : Byte received in W and psx_rx_byte_
;Error Code : N/A
;Error Trapping : N/A
;Outline : SPI style byte transfer
;------------------------------------------------------------------------------
PSX_RW_BYTE
   MOVWF   psx_tx_byte_

   MOVLW   8d                                                          ;we will be transferring 8 bits

   MOVWF   loop1_
Psx_rw_byte_next_bit:
   BCF     PORTB,   PSX_CLK_PORTB_O_                                     ;bring clock low

   RRF     psx_tx_byte_, F                                             ;put transmitted data on bus

   BTFSS   STATUS, C
   BCF     PORTB, PSX_CMD_PORTB_O_        
   BTFSC   STATUS, C
   BSF     PORTB, PSX_CMD_PORTB_O_

   BSF     PORTB, PSX_CLK_PORTB_O_                                     ;bring clock high

   BCF     STATUS, C
   BTFSC   PORTB, PSX_DAT_PORTB_I_                                     ;get received data from bus

   BSF     STATUS, C
   RRF     psx_rx_byte_, F

   DECFSZ  loop1_, F
   GOTO    Psx_rw_byte_next_bit                                        ;next bit

   BSF     PORTB, PSX_CMD_PORTB_O_                                     ;set COMMAND high        

   MOVF    psx_rx_byte_, W                                             ;value returned to caller

   RETURN
[/code]
autofire.png ( 5 KB | Downloads )
packet5c.png ( 7 KB | Downloads )

Title: Re: Hello
Post by CJ on 14.02.09 at 03:07:37

techie_alison wrote on 14.02.09 at 02:13:00:
All totally irrelevant stuff, but hey I like looking at them.  That thing cost me £500!!!!   :)


Very nice, but can it play Geometry Wars?

Gotta go out for the rest of the day, but if I get a chance I'll bash up one that shows the last 16 or so bytes and does diagonals.  If I get more than a chance, maybe mouse packet data as well.

Title: Re: Hello
Post by techie_alison on 14.02.09 at 03:35:11
Oh wow!!  Almost as good as Omega Race.   :)

I thought you meant;

http://www.youtube.com/watch?v=s1eNjUgaB-g  

No worries on timing.  I really appreciate it whenever.  I'm pretty much on hold at the moment until the PCBs arrive next week, as that'll be when I start getting the timing variables right for the ST and Sinclair.  Might have to rework the PCBs I found out the other day too, should have put a pull-up resistor on there.. :)

Title: Re: Hello
Post by techie_alison on 14.02.09 at 03:40:25
YAYYYYYYYYYyyyyyyyyyyyyy

YOU are just going to LOVE THIS!!!  Mario on Tesla Coils;

http://www.youtube.com/watch?v=B1O2jcfOylU

This is the external link if your browser blocks it : http://www.youtube.com/watch?v=B1O2jcfOylU

And some of the comments...


Quote:


KaiserVadin (2 months ago)
Normal people shouldn't have those, they could be used to kill people!

GunslingerInferno (2 months ago)
Do they really seem like normal people?

Title: Re: Hello
Post by remowilliams on 14.02.09 at 04:38:54

techie_alison wrote on 13.02.09 at 22:25:14:
Noooo!!  You're 6-feet tall and with a washboard stomach.  You all are.

Actually, I'm 6'2" http://www.atariage.com/forums/index.php?showtopic=2671&view=findpost&p=1097248  but who's counting?  ;D 


techie_alison wrote on 14.02.09 at 02:13:00:
That thing cost me £500!!!!   :)

Getting a scope is something that keeps banging around the fringes of my thoughts.  I barely know what to do with one, but I've had occasions where it would have been might handy.

Oh, and welcome aboard.  The fellows tell me that I must get a PeST interface...   ;)

Title: Re: Hello
Post by Shw on 14.02.09 at 07:43:07
Version 4?! that's so cutting edge Ali !

I still use 3.14, it's the nearest thing to Neochrome on the PC apart from maybe Dpaint :)

Shw

Title: Re: Hello
Post by techie_alison on 15.02.09 at 00:45:21
Right where were we.

Shw?  You want PSP4?   :)

And Remo, you want an oscilloscope.  :)  It depends what you want to do with it really, as to which one you get.  There's 4 main flavours, that being an analogue scope which is literally volts over time, basically a CRT connected to a timebase.  A digital scope, which is almost the same but has a computer in it and can store things and go back and forth.  An MSO (Mixed Signal) which is digital and has additional LA (Logic Analyser lines in a scope type fashion).  That's what I have.  And finally an LA (Logic Analyser) which is much more advanced than the MSO, but doesn't have the analogue aspect.  

Each has their uses depending on what you want to do.  The Velleman scopes are pretty basic digital scopes with a tiny memory, but are fine for single line fault diagnosis and automotive stuff.  http://i31.twenga.com/3/tp/46/55/6046238802527484655vb.png .  £50 is about the going rate for those 2nd hand.  I almost always buy new though (about £90) unless it's silly cheap.

£80 at Maplin right now; http://www.maplin.co.uk/Module.aspx?ModuleNo=32611&doy=15m2&C=SO&U=strat15 .  They're pretty rubbish though except for anything other than audio signals and basic digital.  It's says 10Mhz but aliasing takes that down to about 2Mhz max.

Title: Re: Hello
Post by Shw on 16.02.09 at 11:39:31

techie_alison wrote on 15.02.09 at 00:45:21:
Right where were we.
Shw?  You want PSP4?   :)


Naah thanks Ali but I'll keep with the old school 3.14. Like CJ I never got to grips with the newer bloatware versions.

Shw

Title: Re: Hello
Post by remowilliams on 18.02.09 at 02:51:39

techie_alison wrote on 15.02.09 at 00:45:21:
And Remo, you want an oscilloscope.  :)  It depends what you want to do with it really, as to which one you get.

Thanks Aly, that does give me a bit more to think about.  I definitely want a digital scope, and there are times where a simple logic analyzer might be beneficial too.  I remember seeing a PC based setup that looked interesting as well.

D-Bug & Automation Forum » Powered by YaBB 2.6.0!
YaBB Forum Software © 2000-2024. All Rights Reserved.