|
Post by mirkosoft on Oct 1, 2014 17:20:48 GMT
Hi!
I was never interest in VIC2 or VIC2E programming but I have one idea - only for two purposes only - less memory costs and easy text output:
Is possible, better to say how is possible to split VIC2 or VIC2E screen to:
4 rows of text 17 rows of bitmap 4 rows of text
it reduces costs for bitmap to 5440 Bytes + 160 bytes of top text + 160 Bytes of bottom text + 680 Bytes of attributes (I mean HiRes mode only) = 6440 Bytes ~ 6K
Can help me anybody who knows VIC2 or VIC2E programming to write code? I know there is important raster IRQ, but which values to write with config:
Bitmap at $2000 - parts of bitmaps unused, but if meaning full-bitmap mode Text + attributes at $2000, so at unused bitmap area... there you can see reason why must to be 4 lines of top text (1280 Bytes - correctly 272 free bytes, 8 bytes as sprite pointers)
Thank you all for every help, first time since I'm 128'er and it's not few minutes I'm attacking VIC2 or VIC2E :)
Miro
|
|
|
Post by mirkosoft on Sept 30, 2014 17:07:52 GMT
For me is not important REU size, only EPROM socket.
Miro
|
|
|
Post by mirkosoft on Sept 27, 2014 16:12:59 GMT
REU has limit of 256 banks - it looks like indirect 24-bit addressing. But this is external, no indirect - look at my web, there is written how to do it. In reality SuperCPU has 24-bit indirect addressing - no extra operation, standard R/W... And SuperCPU has the same limit 256 banks. Before real work with SuperCPU I meant that it's true 24-bit addressing and wanted to enlarge RAM to indirect 32-bit addressing (true 24-bit + 256 banks). 32-bit addressing if it would be possible, really is not, could access 4 GB RAM. So, when you look finally at up to 16 MB. This allows 1541Ultimate - but warning - 1541U-II is not fully compatible with C128. I was owner of both 1 then 2, but later sad that I sold version 1 (compatible + nic)...
Miro
|
|
|
Post by mirkosoft on Sept 26, 2014 16:19:50 GMT
Thank you Robert. Useful and clear. I do it by this way.
Miro
|
|
|
Post by mirkosoft on Sept 26, 2014 4:14:46 GMT
Truth is that 1700 and 1750 expands C128 memory - total 256 or 640K. Else one variant exist (pre-made for C64 for users reqsts) 1764 upgrade of 256K RAM. I own modified 1764 with extended memory 1536K (1,5MB). In Basic is possibel to access up to 1MB and in assembler up to 16MB. Look at my web: commodore128.mirkosoft.sk/reu.htmlAlso - own you not modified REU 1750? I want to exchange unmodified 1750 to my modified 1764. Reason: I own SCPU128 with 16MB RAM, so capacity is not so important. For me is important free EPROM socket in 1750. My modified 1765 1,5MB works correctly, no problem. Please let me know if you want to exchange. Miro
|
|
|
Post by mirkosoft on Sept 24, 2014 13:41:20 GMT
Hi!
Everybody knows that PRG file is always saved with 2 first address bytes for loading...
Is possible to save PRG file without these 2 bytes or with modified these bytes?
Bit modification is possible to locate file in RAM1, there's only one problem: if file is too big and these 2 values makes it not possible to fit into RAM it's not possible to save it.
Thank you for all replies.
Miro
|
|
|
Post by mirkosoft on Sept 22, 2014 17:01:15 GMT
Hi! It's only in rhis case - I'm programming in Z80 mode and toggle between modes was never problem. Special is this bit of code. Z80 programming and use with C128 is clear and easy, this case confuses me.
Miro
|
|
|
Post by mirkosoft on Sept 13, 2014 8:16:22 GMT
Hi Robert!
I tried your correction. OK, now it crashes not but in 128 mode it outputs flag then ready and computer hangs until I hit STOP+RESTORE. In 64 mode or test on +4 it works correctly. Really don't see problem to rewrite Z80 code to use subroutine, but I see not reason why - please explain it me better.
Miro
|
|
|
Post by mirkosoft on Sept 11, 2014 18:48:16 GMT
Hi!
I created simple Z80 CPU check if is available/accessible to avoid conflicts with SuperCPU
All is ok, output too, but after RTS it jumps to MONITOR and pointer shows $00ba, in case of turned on SCPU it outputs BREAK text in forever loop. This behavior after succesfull code run I don't understand. Can anybody explain it me?
Here's code:
*=$2000
start:
nop ; this will be later flag lda $ff00 ; store RAM config
pha ; to stack
sei ; disable interrupts
lda #$60 ; store RTS (LD H,B) instruction for Z80 mode start
sta $ffee ; where PC points
lda #$c3 ; store JP
sta $ffef ; to next byte
lda #$50 ; lo-byte of jump
sta $fff0 ; to next byte
lda #$20 ; hi-byte of jump
sta $fff1 ; to next byte
lda #$3e ; select RAM config for Z80
sta $ff00 ;
lda $d505 ; store mode
pha ; to stack
lda #$b0 ; set Z80 mode
sta $d505 ; this instruction deactivates 8502 and jumps by Z80 PC to $ffee
nop ; when is 8502 again activated 8502 PC points here
lda #$00 ; set bank 15
sta $ff00 ;
wri: lda $2000 ; read Z80 flag ($ea - inactive / $31 - active) cmp #$ea
bne skip
lda #$30
skip: jsr $ffd2 ; print character (universal C128/C64/C+4)
lda #$ea
sta $2000
rts ; here it ends and after RTS execution it jumps/break to $00ba
*=$2050
.byte $3e, $31, $32, $00, $20, $3e, $3e, $32, $00, $ff, $c3, $e0, $ff
; Z80 Code ; ; LD A, $31 ; set Z80 flag (character "1")
; LD ($2000),A ; as active
; activate 8502:
; LD A, $3e ; store memory
; LD ($ff00),A ; configuration
; JP $ffe0 ; activate 8502
|
|
|
Post by mirkosoft on Sept 9, 2014 17:20:01 GMT
Anyway if I could to hack it by hardware and write software, then will be applicable only for me. I mean no one do the same hack, so, thank you Robert for explaining.
Miro
|
|