Jump to content

SerErris

Members
  • Content Count

    130
  • Joined

  • Last visited

  • Days Won

    1

SerErris last won the day on September 11

SerErris had the most liked content!

Community Reputation

51 Excellent

About SerErris

  • Birthday 12/08/1971

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. You can switch the charset to one, that has upper and lower cases in a single set. And then you can do that. Regarding the amount of text ... we have 512k of memory for that ... quite a huge amount of text. Paired with loading from disk you can have even more text. .. But in reality ... look at what Elite did ... They generated the text from some phrases and put it together to look unique for each Planet etc. pp. so that is then generated text with pseudo random generators.
  2. Actually it is both... I have described it in another thread here. the screenram layout should change .... move the charrom to the End $1F000 and move layer 0 to $04000 ... I I’ll suggest it as a Pullrequest for the kernel
  3. And with very little change, you can get 00 terminated strings. This gives you a string routine that can print strings of any length between 0 and 255 bytes. org $1000 LDX #$00 ;set string position to 0 .loop LDA $1500,X ;read byte from string @position BEQ end ;if Value is 00 end JSR $FFD2 ;else ... print char INX ;next character in the string BNE loop ;jump back as long as X is not 0 again ... (means max string length is 256 bytes including the termination string). .end RTS org $1500 !byte $48,$45,$4C,$4C,$4F,$0D,$00 ; "HELLO<CR><STRTERM>" If you put it directly into the monitor, you need to first assemble the stuff with some placeholder addresses and then check for the correct addresses of loop and end to insert the correct address in the BEQ and BNE commands. Or you use ca65 ... or any other assembler, it does it for you.
  4. No it is actually two parameters, and they can work idependently. So you can set hscale to 64 and get 320 and vscale to 52 (as far as I remember from my old brain) and that gives you 200... So you have a resolution of 320x200. So you can scale to any value. I have not tried myself what happens if you scale to anything between 64 and 52 ... Regarding the number of characters per Row... that is also affected by vscale and hscale.. 128 for hscale equals 80 characters. Where 64 equals 40 characters and so on... 16 would equal 10 characters AFAIK (not 100% sure) you can only scale the whole VERA. That means, you cannot scale the two layers with differenet scaling parameters.
  5. Line 20 is the VERA reset. In my case that was the only way to reset the Palette and all pointers to where they belong (I moved the tilebase etc.). You can try without the VERA reset. Maybe it is enought in your case. The above resets the screen to the original setup after startup.
  6. lol .. @Fnord42 is right .. max is by all means 640x480. but other than that you are pretty free to play around with the scalings ..
  7. @Greg King answered that in this thread: Where I had pretty much the same issue: Here is the answer. My issue was even a little bit bigger (reset the palette and stuff), but if you just want to get back to a blank text mode screen that is what works. 10 SCREEN $80 20 POKE $9F25, $80 30 SYS $FF81
  8. Use some POKEs in the vscale and hscale registers of Vera. Both set to 64 gives you 320x240 . The depth is not dependent ... can be anything that fits into screenram.
  9. I bet it is Star Citizen you are working on...
  10. uhh ... and messes up my emu directory Okay, thanks, that explains a lot. I thought it would be actually an sdcard loader.
  11. Hi, does not work for me on Windows r38 emulator. I created a SDcard.img from the files and attached it to x16emu. I can see all the files in the emu and it looks like this: But when I load it the screen is getting scrambled and it stops there: The web emulator does it correctly. but I am not able to start it on my windows machine ... any idea, what happened?
  12. Is this in general true for MOD? So does this apply for any DIVISOR or if not, in which boundaries of the DIVISOR it is true? and #(DIV-1) ; .A % DIV ... for all DIV=2^n where n>=1;n<=7 I tried with my good old Windows calculator ... 21 AND 4 should equal 21 % 5. but it does not. The output is 4 and not 1. Not sure how that works or does it just work by chance with 4? /Edit ... not for any Divisor, but for any Divisor with the power of 2. So 2,4,8,16,32,64,128 ...
  13. That is great stuff. Esp if you write about the things you stumbled across during your learning experience. The X16 project really requires (right now) a bit of understanding how the C64 worked and does not touch on anything that is connected to it. On the other hand, some things work differently and things are difficult to find for a newbie. E.g. even if you know the C64 quite a bit and are used to PEEK and POKE, you will have a hard time to find the memory locations you have been used to in the past. Esp. the Memory Map is on of the things that require documentation. However as things still can massively change, it is not a good investment in time to document the memory map now, as that also might change completely. So your writeup together with other resources will get a better and better picture to enter the platform. BTW: here is another book of great value for the commodore platform ... and a lot of things still hold true on a X16 (also a lot of things are different). https://archive.org/details/Complete_Commodore_Inner_Space_Anthology_The_1985-03_Transactor_Publishing
  14. No. Assembly language is something you need to learn from other sources - like Jim Butterfields book for the C64 still one of the best books to read. Here are some links (depending on the language you speak/read) German: https://www.retro-programming.de/programming/assembler/ English: https://skilldrick.github.io/easy6502/ Here is Jim Butterfields book... http://www.1000bit.it/support/manuali/commodore/c64/ML_for_the_C64_and_Other_Commodore_Computers.pdf Also a good thing to understand the C64 book. It is actually everything that is referenced from the X16 dokumentation (e.g. BASIC, KERNAL calls etc.) http://www.zimmers.net/anonftp/pub/cbm/c64/manuals/C64_Programmers_Reference_Guide.pdf And this documentation to understand all the different inner workings of the Commodores ... very extensive and also quick reference. https://archive.org/details/Complete_Commodore_Inner_Space_Anthology_The_1985-03_Transactor_Publishing The Monitor is covered in this document: https://github.com/commanderx16/x16-docs/blob/master/Commander X16 Programmer's Reference Guide.md#machine-language-monitor
×
×
  • Create New...

Important Information

Please review our Terms of Use