Jump to content

fedepede04

Members
  • Posts

    169
  • Joined

  • Last visited

Everything posted by fedepede04

  1. You still use Seka? I could make a source code that can do what you need and uploaded it... and you can take what you need from it, and if you have any questions to it just ask. But it have to wait for tomorrow I am going out for the rest of the day ? Btw how much do you know to the Atari hardware like video chip ect.
  2. You are right to a certain degree, but since you always or nearly always do a -(sp) you need to point byte outside the memory, I don't know what Atari you have but I will bet that you memory have ended at address $F80000
  3. Hi Wally a couple of things, lets start with -(Sp) and (SP)+ or -(Ax) (Ax)+. ok it actual telling you what its doing. In case of -(SP),-(Ax) what it means is, it first start with subtracting the length of the data to the Ax/SP pointer and after that is finish, its moves the data , so in case if you use a long word. and let say A0 points Address 1000 and you write Move.l #$12345678,-(A0) it will start with subtracting 4 from A0 so it now pointing to 996, and if you look in address 996 it would say $12345678 same with move.w but its only 2 bytes and of cause move.b its only a byte, but i am not sure that it work when using a byte on the stack Pointer (SP) same with (SP)+,(Ax)+ it just mean that the SP or AX will be add to instead of being subtracted from, one more thing to beware of here, is that the add fist will be add after the memory operations. same example as before let say A0 points address 996 and the contains in 996 is #$12345678 and if you write Move.l #$0,(A0)+ it will start by moving #0, to address 996 and after that have been done, it now add 4 to the address register. before the move #0 the address contain the value of #$12345678 after the move.l. A0 now pointing to address 1000 and if you look in memory address 996 it should say zero but you can remember it like this is the mathematical symbols before the Parenthesis it will do the sub first (and in this case) the move after. and if the mathematical symbols are after Parenthesis. it will do the (in this case) move first and the add after but the party don't stop here. you can do the same with clr.b.w.l -(ax/sp)+ tst.b.w.l -(ax/sp)+ cmp.b.w.l -(ax/sp)+ or.b.w.l -(ax/sp)+ and.b.w.l -(ax/sp)+ and more why use the -()/()+, I think you get the add and the sub for free. (but I am not 100% sure maybe an other can tell you). one more thing don't use jmp or jsr there can be cases where you only can use the like jmp (A0) use bra and brs i hope you get my nonsense, i have been very sick the last week, and still not 100%.
  4. Hi. for the lack of answers, i think it could be, because its an hard question to answer, without getting too technicall i also saw it the other day, and thought maybe an other would answer it, but tonight when i saw no other had answer it. then I thought that i would give it a try, even if my English knowledge are not the best maybe i read one of your answer wrong, but the Sega was made in 1988, and the ST was first showed at a Exhibition in 1984 so the Atari was 4 years ahead of the Sega. overall i think that the ST was a great machine, it was not made to be a gaming machine, but to compete with the Apple computer. so it was not so important that it did not features all those co processor. I also think that was the reason for the 72HZ high resolutions on the ST, to make it a good allaround computer. I have ones read that the blitter was intended to be in from the first ST computer but it was delay or something(but i don't really know) but you can get ST with a socket for the blitter, that you could add one later. also some said that they also had planed for a another sound chip, (again don't know is true). in the end i think, it was more important to get it finish and out of the door, instead of waiting for something that was not so important, for what it was intended for. but the reason why i did loved the ST back then and probably also now, is because its very simple to code on. You did not have to learn a lot of the co processors like you had on the Amiga, it was very straight for. me and one of my good friends both had MSX prior, and we both used to coded on the MSX. i chose the ST and he chose the Amiga, but the Amiga was to complicate so he stop coding, and he first started again when we moved on to the PC. but the ST also had some advanced over the Amiga. and today you can do stuff on the ST/STE that you are not able to do on the Amiga 500, 1000, 2000, due to its hardware limitations. sorry no book here, but when i am coding i use "Atari ST internals" to look up stuff, and if you are thinking on, starting coding on the ST and if you run into some problem, just post you question, and we will try and help you out. and last congratulations with your Atari, i hope it will bring some inside and joy to the Atari
  5. its not as simple, the Sega Genesis had alot of hardware options to help, like hardware sprite, more color on the screen, also think to remember it had hardware zoom. to describe the plane ST. it have a video chip, that in low resolutions had 16 colors out of a palette of 512 color, and 320x200 pixel, and that was it. so all you wanted it to do you need to code for it. even a simple task, like putting a character on the screen(i know it had rom call for this, but they was still soft coded). Sprite also need to be soft code. so the video shifter on the ST was very simple. i would even say, that many of the 8bit computer had more advanced video chips that the ST. but they was lacking in resolutions, color on the screen and cpu speed. the STE did improve little on the video chip, it expanded the palette to 4096 but it still only 16 color on the screen but it also add the blitter to help move memory from one places to an other places. (plus it have some other functions like scrolling the bit planes). it also had hardware scrolling. so you really need to know the hardware on the ST/STE to do wonders, this is also the reason in my book, why many of the new things that have been done on the ST/STE, the last couple of years, is even more impressed
  6. yes you need to clean up the stack imagine that you stack is a glass, and every time you put something on the stack, was like you put some water to the glass. and ever time you clean up the stack was if you drain some water from the glass. when you can imagine when would happen if you don't clean up the stack. it will in the long run crash you program, it could also crash the ST.
  7. the STE also only had 16 but out of a palette of 4096 colors but you could do some trick, to get more on the screen. edit add some info. The St and STE had a 32000k Screen array. and it had 4 bit planes in low res 2 bit planes in medium res and 1 bit plane in high res giving it 320x200 and 16 colors in low res from a palette 512 (ST) and 4096(STE) in medium res it had 640x200 4 colors and i high res 640x400 Black and white the formula in low res is (320 / 16 pixel) * 4 (bit plane) * (2 for word for the 16 pixel) it have a interleave for the graphic, so first one word (16pixel) for bit plane so a word for bit plane 2 so a word for bit plane 3 so a word for bit plane 4 then word for bit plane 1 ect.
  8. here is the text scroller that i use in my outrun demo. it don't scroll a very big array, but it could maybe give you some ideas and it should be easy to modified.. ;--------------------------------------------------------------------- ; Radio Scroll ;--------------------------------------------------------------------- lea FontGfx,a3 moveq #0,d6 Moveq #0,D0 Moveq #0,D0 subq.w #1,ScrollCounter Bpl.s TextScroll_No_new_char Move.w #5,ScrollCounter lea ScrollWorkSpace(pc),a1 move.l ScrollTxtPointer(pc),A2 Move.b (a2)+,d6 tst.b d6 bne.s ScrollTxtNotFinish Move.l ActiveScrollName(PC),A2 NoRestartScrollList: Move.b (a2)+,d6 Move.l a2,ScrollTxtPointer ScrollTxtNotFinish: Cmp.b #216,d6 beq.s CharIsAO Cmp.b #248,d6 bne.s CharIsAO1 CharIsAO: move.b #']',d6 CharIsAO1: Sub.w #32,d6 move.l a2,ScrollTxtPointer cmp.w #64,d6 ble.s ScrollTxtIsNotLowerCase sub.w #32,d6 ScrollTxtIsNotLowerCase: lsl.w #3,d6 Lea (a3,d6.w),a3 move.l (a3)+,(a1)+ move.l (a3)+,(a1)+ TextScroll_No_new_char: Lea ScrollArray,A0 lea ScrollWorkSpace(PC),a1 Moveq #5,d1 Moveq #0,d3 Scroll_loop: And.w #%1111111111101111,sr move.b (a1),d3 Roxl.b #1,d3 Move.b d3,(a1)+ Roxl.w 12(a0) Roxl.w 8(a0) Roxl.w 4(a0) Move.b 1(a0),d3 Roxl.w #1,d3 Move.b d3,1(a0) And.w #%1111111111101111,sr Lea 16(a0),a0 Dbra d1,Scroll_loop Lea ScrollArray,A1 Move.l LogBase(PC),A0 lea $5C24(a0),a0 Moveq #5,d1 SCLoop: Move.b 1(A1),1(A0) Move.w 4(A1),8(A0) Move.w 8(A1),16(A0) Move.w 12(A1),24(A0) Lea 160(A0),A0 Lea 16(A1),A1 Dbra D1,SCLoop
  9. can i asked what you are doing,is it a text scroller? you also need to feed you scroller with some graphic.... a couple of tips. if the value is between -128,127, instead of using a move.l use moveq it clear the upper byte and word, it's faster and take less memory. when you set up a dbra loop use moveq or move.w, dbra is only word so it does not matter what in the upper word. when you add a value there is less then a word to an address register, use add.w or lea (Ax,Dx.w),Ax again its faster and take less memory example lea (A0,D0.w),A0
  10. btw here is an example of some YM2149 sound, from my old Atari ST editor that i am giving a overhaul
  11. i do think that the YM2149 have a very clean sound and that's probably one of it only forces also that it have full 8 octave (output freq around 125khz) but the chip is it self is very simple so if you want it to sound any special you need to soft code the chip, and that takes process power(can take a lot). the most complex synth chip in home computers was the Sid in the C64 and the Yamaha FM chip found in the MSX2. but i would also say that the Pokey is more complex that the YM2149 because you could distortion the output wave.
  12. why do you put 256 in d7, for me it look like its the Y Loop, so max 199 lines, or else you write out side your video array it can make the program crash. instead of add.l #156,A6 use lea 156(A6),A6 its faster and i would make the rol loop something like this Moveq #15,D7 YLoop: Moveq #3,D5 BpLoop: lsl.w 152(A6) rol 144(A6) rol 136(A6) rol 128(A6) ect. rol 8(A6) rol (A6) Addq.w #2,A6 Dbra d5,BPloop Lea 152(A6),A6 ; NextLine Dbra D7,Yloop edit: had an other look, and it look like that d7 is number of time to scroll so probably not why it crash
  13. Just saw your video, it looks great, keep up the good work
  14. yes it means one instruction, else if it is a 4bp, 8bit graphic on a odd addresse you need to move them as byte instructions 4 times.
  15. and also an other great feature in devpac is that you can include source code, so you can spilt you source code in different files and also inc binary so you can include all you data files, so you don't have to make a load routine to include you datas.
  16. hi friend i just saw your post now, i could not get movep to work in Seka. but what you describe is not what movep does. movep work like if you put a value in a address register d0 example #$ffff,d0 and you have $78000, in a0 and you use movep d0,(A0) you will get $ff in 78000 and $ff in 78002, if you do the same in 78001 you will put data in 78001 and 78003, if you movep.l if will put data in 78000, 78002, 78004, 78006 and the same if you do in on a odd address it will move datas to 78001,78003, 78005, 78007. and that is total super on how the video memory is on the Atari ST. if you store you graphic right you can move 8 pixel to all bit planes in one go
  17. yes its dc.w you need, seka does not know the ds.w function. if you need a data array in seka you have to do blk.w
  18. Hi Wally1 Good to hear that you reach so fare with the Seka, but you should really consider switching to Devpac, its just so much better in every way. I only see one advantage that Seka have over Devpac. its that it show the register when you are exit. Seka does not support Movep, and Movep is a very nice command on the ST due to how the bitplane is works on the ST. and it also have many others advantage. i have never regretted the shift.
  19. thx Steve, i like you new video intro, nice a short. i saw it in the 2 last MM video you posted. 2 more levels
  20. Hi i have been working on Manic Miner from just before April . not finish yet, but Steve of AtariCrypt have made a preview of it. http://ataricrypt.blogspot.com/
  21. Could you not STeem to be in write protect mode, so you cant wirte to the floppy
  22. for the moment when i have the energy, i am working on optimizing and adding / changing some of the graphic / music Enduro Racer. else i have been working on a Atari drawing also a music program for windows. Enduro Racer. btw the number in the top is not a fps counter, it is how long its take for it to make a frame.
  23. Hi thx yes i can see that now, i must a misread that first time, i read it as, that it was after you work on it, that it run 50fps yes it can be very hard to add things to an others program, you don't know what the idea mind set was when they coded it, i have had the same joy doing enduro racer, there are places in the data, where i can't make new variables it will stop the program from running. but you know all about this, all your work is great and to good use for many. hope you keep doing it. one thing that could be great was if a person like you did a tutorial on how to dissemble a game/program, that show us mortal how to see if code is program or data and where to start
×
×
  • Create New...