Egna characters och bakgrund i Basic 7.0

Diskussioner om Commodore 128

Moderatorer: Fanta_gbg, e5frog, stonan, Zlasher

Egna characters och bakgrund i Basic 7.0

Inläggav Mozartkügel » 14 december 2018, 09:29

Hej! Finns det något enkelt sätt att göra egna custom characters och måla upp dem som en bakgrund i Basic 7.0? Det gör ingenting fast det skulle gå långsamt. Eller måste man definiera charsen i assembler som på c64? Typ nånting sånthär:

Kod: Markera allt
*=$3a00
;char $40
!byte %01111110
!byte %10000001
!byte %10100101
!byte %10000001
!byte %10111101
!byte %10000001
!byte %01111110
!byte %00000000

osv...

Kom ihåg att jag är en commodore programmeringsnybörjare :oops: Man kan säkert pokea in domdär värdena med basic också förståss. Jag antar man kan göra loopen som målar upp skärmen/bakgrunden likväl i basic som assembler oavsett om man definierar charsen i assembler.

Jag försökte läsa lite i c128 system guiden. CHAR kommandot skulle ju vara behändigt, men det verkar inte som att man kan peka funktionen till egna custom chars? Utan den läser alltid från ROM?
Användarvisningsbild
Mozartkügel
Erfaren lärling
Erfaren lärling
 
Inlägg: 107
Blev medlem: 6 juni 2010, 13:39
Ort: Finland

Re: Egna characters och bakgrund i Basic 7.0

Inläggav herdware » 14 december 2018, 18:38

Är inte helt säker på vad du menar med bakgrund men...
Du kan ladda in en egen font på detta vis:
Kod: Markera allt
BLOAD "FONT",B0,P8192
POKE 2604,24

(Enligt första inlägget i denna tråd https://www.lemon64.com/forum/viewtopic.php?t=63182)

Antar att CHAR kommer använda den också sen men har inte provat det eller ens fontladdningen. GLHF! 8)
Användarvisningsbild
herdware
Stormästare
Stormästare
 
Inlägg: 1481
Blev medlem: 6 mars 2008, 21:07
Ort: Nordvästra Småland

Re: Egna characters och bakgrund i Basic 7.0

Inläggav Mozartkügel » 15 december 2018, 10:28

Tusen tack för ledtråden, jag ska studera vidare!
Användarvisningsbild
Mozartkügel
Erfaren lärling
Erfaren lärling
 
Inlägg: 107
Blev medlem: 6 juni 2010, 13:39
Ort: Finland

Re: Egna characters och bakgrund i Basic 7.0

Inläggav Mozartkügel » 15 december 2018, 11:15

Om jag gör en bunt custom chars i charpad på pc och exporterar dem som binary, undras vad som är det enklaste sättet att flytta över denna binary-kod till en c128 diskett? Så man kunde ladda in dem med bload? Man kan ju inte copy/paste binary heller?
Användarvisningsbild
Mozartkügel
Erfaren lärling
Erfaren lärling
 
Inlägg: 107
Blev medlem: 6 juni 2010, 13:39
Ort: Finland

Re: Egna characters och bakgrund i Basic 7.0

Inläggav herdware » 15 december 2018, 15:40

Allt beror ju på vad du har för hårdvara. Idag skulle jagl rekommendera alla att skaffa en sd2iec (eller en 1541U som är dyrare och kan ha lång leveranstid).
Har du en 1581 så kan du överföra till en 3.5" floppy från både PC och Amiga. Har du ett terminalprogram till C128? Annars är det Star Commander, C2N232, cbmlink osv som gäller.
http://www.zimmers.net/anonftp/pub/cbm/crossplatform/transfer/index.html
Användarvisningsbild
herdware
Stormästare
Stormästare
 
Inlägg: 1481
Blev medlem: 6 mars 2008, 21:07
Ort: Nordvästra Småland

Re: Egna characters och bakgrund i Basic 7.0

Inläggav bjonte » 16 december 2018, 21:47

Det allra enklaste om du inte ska föra över ofta är en låtsasdiskdrive, som SD2IEC. Zoomfloppy är ett ganska bra alternativ för att föra över filer utan att flytta runt minneskort. Nätverkskort är ett alternativ. Jag kör serieportsöverföring. Det går att använda MIDI-interface med.
Användarvisningsbild
bjonte
Stormästare
Stormästare
 
Inlägg: 2016
Blev medlem: 17 april 2006, 23:12

Re: Egna characters och bakgrund i Basic 7.0

Inläggav Mozartkügel » 16 december 2018, 22:33

Hej, tack för all hjälp! Jag har faktiskt en 1541 Ultimate II+ :cart: för att föra över stuff till riktig diskett (eller ännu bättre, till kassett! Hahaa!). Jag uttryckte mig lite klumpigt, det jag egentligen menade var alltså att jag har ett character set och en map uppbyggt av det charsettet i CharPad vilka jag skulle exportera till bin och sedan lägga på en virtuell diskett, men jag har ingen aning om hur man ska hanskas med bin-filer på en c64 eller c128.

Hur som helst, nu då jag kikade ikväll så kan ju CharPad också exportera assembler, och där ser man ju charset datan och map datan uppradade i bytes, så det borde ju bara vara att ändra datan till basic programformat, klistra in den rakt i emulatorn och sedan save på virtuell diskett. Förståss blir det ju också att programmera nån loop i basic som ritar upp mappen med custom charsen. Det jag menade med bakgrund var alltså "map" i CharPad terminologi.

Kod: Markera allt
; CHAR SET DATA : 256 (8 byte) chars : total size is 2048 ($800) bytes.

* = ADDR_CHARSET_DATA
charset_data

.byte $00,$00,$ff,$ff,$ff,$ff,$00,$aa,$00,$00,$3f,$3f,$3f,$3f,$00,$2a
.byte $00,$00,$ff,$ff,$ff,$ff,$00,$aa,$00,$00,$fc,$fc,$fc,$fc,$00,$a8
.byte $00,$00,$3f,$3f,$3f,$3f,$00,$2a,$00,$00,$fc,$fc,$fc,$fc,$00,$a8
.byte $25,$26,$25,$25,$25,$26,$25,$25,$9a,$6a,$9a,$6a,$9a,$6a,$9a,$6a
.byte $a0,$a0,$a0,$a0,$a0,$a0,$a0,$a0,$00,$00,$00,$00,$3c,$fc,$ff,$ff
;osv...

; MAP DATA : 1 (40x25) map : total size is 1000 ($3e8) bytes.

* = ADDR_MAP_DATA
map_data

.byte $ff,$ff,$22,$24,$22,$23,$23,$24,$06,$07,$08,$22,$23,$23,$24,$22
.byte $24,$06,$07,$08,$22,$23,$23,$24,$22,$24,$c7,$ff,$ff,$ff,$ff,$ff
.byte $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
.byte $06,$07,$08,$ff,$ff,$ff,$ff,$ff,$ff,$06,$07,$08,$ff,$ff,$ff,$ff
.byte $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
.byte $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$06,$07,$08,$ff,$ff,$ff,$ff,$ff
.byte $ff,$06,$07,$08,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
;osv...


Screenshot_121618_113051_PM.jpg
Användarvisningsbild
Mozartkügel
Erfaren lärling
Erfaren lärling
 
Inlägg: 107
Blev medlem: 6 juni 2010, 13:39
Ort: Finland

Re: Egna characters och bakgrund i Basic 7.0

Inläggav bjonte » 17 december 2018, 06:41

Jag tror att Charpad kan spara i binärformat med startadress i filen. Då går den att ladda in från BASIC-programmet med LOAD”FIL”,8,1. Det är nog smidigast om du ändrar lite då och då.
Användarvisningsbild
bjonte
Stormästare
Stormästare
 
Inlägg: 2016
Blev medlem: 17 april 2006, 23:12

Re: Egna characters och bakgrund i Basic 7.0

Inläggav bjonte » 17 december 2018, 06:42

...eller BLOAD heter det väl på 128:an.
Användarvisningsbild
bjonte
Stormästare
Stormästare
 
Inlägg: 2016
Blev medlem: 17 april 2006, 23:12

Re: Egna characters och bakgrund i Basic 7.0

Inläggav Mozartkügel » 17 december 2018, 07:55

Ahaa, så det är så lätt! Tusen tack för tipset!
Användarvisningsbild
Mozartkügel
Erfaren lärling
Erfaren lärling
 
Inlägg: 107
Blev medlem: 6 juni 2010, 13:39
Ort: Finland

Re: Egna characters och bakgrund i Basic 7.0

Inläggav Mozartkügel » 18 december 2018, 21:15

bjonte skrev:Jag tror att Charpad kan spara i binärformat med startadress i filen. Då går den att ladda in från BASIC-programmet med LOAD”FIL”,8,1. Det är nog smidigast om du ändrar lite då och då.
bjonte skrev:...eller BLOAD heter det väl på 128:an.


Ja men nu fattar jag inte heller hur jag ska få bin filen på en .d64 fil :? Man kan ju inte attacha bin filer rakt av på winvice.

Jag såg inga inställningar i charpad för att ställa in minnesadress, men om man exporterar asm filen så ser man ju adresserna (förutsatt att dom är dom samma i bin filerna)

Supertacksam om nån kan hjälpa!

Kod: Markera allt
; Data block size constants:-

SZ_CHARSET_DATA        = 2048
SZ_CHARSET_ATTRIB_DATA = 256
SZ_MAP_DATA            = 1000


; Data block address constants (dummy values):-

ADDR_CHARSET_DATA        = $1000   ; nb. label = 'charset_data'        (block size = $800).
ADDR_CHARSET_ATTRIB_DATA = $2000   ; nb. label = 'charset_attrib_data' (block size = $100).
ADDR_MAP_DATA            = $5000   ; nb. label = 'map_data'            (block size = $3e8).
Användarvisningsbild
Mozartkügel
Erfaren lärling
Erfaren lärling
 
Inlägg: 107
Blev medlem: 6 juni 2010, 13:39
Ort: Finland

Re: Egna characters och bakgrund i Basic 7.0

Inläggav bjonte » 18 december 2018, 21:24

Använd DirMaster för att flytta in filer till en d64.

Det finns ett verktyg som följer med Vice som heter något med 1541. Det kan användas på kommandorad om det passar dig bättre.

Jag kan se om jag kan starta upp Charpad och testa sparningen.
Användarvisningsbild
bjonte
Stormästare
Stormästare
 
Inlägg: 2016
Blev medlem: 17 april 2006, 23:12

Re: Egna characters och bakgrund i Basic 7.0

Inläggav Mozartkügel » 18 december 2018, 21:41

Hej, tack igen! Jag hittade just c1541 och lyckades spara på d64: http://codebase64.org/doku.php?id=base: ... .d64_image

Jag ska kolla in DirMaster också, jag använder nog ofta hellre program med gui :D
Användarvisningsbild
Mozartkügel
Erfaren lärling
Erfaren lärling
 
Inlägg: 107
Blev medlem: 6 juni 2010, 13:39
Ort: Finland

Re: Egna characters och bakgrund i Basic 7.0

Inläggav Mozartkügel » 19 december 2018, 07:59

Jag trodde att dethär skulle bli ett par kvällars "mysprogrammering" eftersom Basic 7 såg såpass advancerat ut. Jag googlade och grävde i c128 manualen + programmers guide, men jag hade nog underskattat svårigheten på att lära sig dethär från grunden. Det är lite störande att det inte finns exempel (eller metoder?) varken för basic eller asm för att göra det mest självklara en liten aspirerande programmerare skulle ha viljat göra då det begav sig, att måla upp en fullskärms färgbakgrund och röra sprites på den. :roll:

Jag får antagligen hoppa tillbaka till c64 där jag har fungerande assemblerexempel på hur det kan göras. Det är förståss det mest logiska beslutet, men jag har alltid haft en drömm om att myskoda nå små spel i c128 basic. Det är bara så svårt att lära sig från grunden upp då man inte riktigt är en programmerartyp, det mesta programmerande jag lärt mig över åren har varit baklänges genom att titta på, och experimentera med fungerande exempel.

Screenshot_121918_085058_AM.jpg


Jag lyckades som sagt spara binfilerna på d64 och även ladda in nånting i mitt basic program med bload, men problemen är mångfaldiga:

- Vid närmare granskning verkar CHAR funktionen endast stöda en färg per tecken, vilket skulle innebära att den inte duger till att rita upp skärmen med custom fyra färgers multicolor chars. (Man kunde förståss rita upp skärmen med commodores egna tecken, en färg per tecken).
- Eftersom CHAR funktionen bara kan peka på förgrundsfärgen, bakgrundsfärgen och multicolor1 färgen och multicolor2 färgen så skulle det bli att byta multicolorfärgerna för varje 8x8 cell som byter färg med COLOR
- Jag vet inte till vilken adress det skulle vara smart att ladda in custom charsettet, mappen och färgdatan än mindre till vilken bank.
- Jag fattar inte heller just nu hur man kombinerar färgdatan med cellerna (men jag ska förfriska minnet med c64 asm exemplet jag har).

Om jag laddar in binfilen i standard character mode så ser man då tecken ändras eller möjligen ersätts (men man kan väl inte skriva över rom?)
Screenshot_121918_085153_AM.jpg


Kod: Markera allt
10 :rem bload"bljmap015.bin"
15 graphic 3,1 :rem nulticolor bitmap mode
20 color 4,1 :rem border
30 color 0,7 :rem bg color
40 color 2,3 :rem multicolor 1
50 color 3,1 :rem multicolor 2
60 char 2,1,1,"qwertyuiop" :rem colorsource,x,y,string


*Bifogar också diskettfilen om nån vill prova ladda in och skriva ut nånting (men grafiken hade jag kanske själv tänkt använda till nånting).
Bilagor
blj001.zip
(1.47 KiB) Nerladdad 97 gånger
Användarvisningsbild
Mozartkügel
Erfaren lärling
Erfaren lärling
 
Inlägg: 107
Blev medlem: 6 juni 2010, 13:39
Ort: Finland

Re: Egna characters och bakgrund i Basic 7.0

Inläggav Mozartkügel » 19 december 2018, 13:27

Jag hörde talas om Simon's Basic nyligen vilket också lät lovande för slö- och mys- söndagsprogrammering i Basic, men jag ögnade igenom en del dokumentation för det och hittade:

NOTE User-defined graphics characters CANNOT be used on a high-resolution or multi-colour graphics screen.

:(

Det verkar som att måla upp en bakgrund/skärm/map med custom chars på ett enkelt sätt är utom räckhåll i basic. Det kan ju förståss hända att det finns andra custom basics som har understöd för det, måste kolla. Det blir väl att ta skeden i vacker hand och fortsätta knåpa i assembler på c64 istället. :lol:
Användarvisningsbild
Mozartkügel
Erfaren lärling
Erfaren lärling
 
Inlägg: 107
Blev medlem: 6 juni 2010, 13:39
Ort: Finland

Nästa

Återgå till Commodore 128

Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 3 gäster

Banners

BOA Japon Mediapalatset Nostalgibutiken
Quartex Retro Overlays Retroplay Spel och sånt
Super Motaro Söders Serie & Skivhandel vintagegames.se RG 2016