Hjälp ang programmering på Vic20 med CBM prg Studio

Diskussioner om Commodore VIC-20

Moderatorer: Fanta_gbg, e5frog, stonan, Zlasher, Boray

Hjälp ang programmering på Vic20 med CBM prg Studio

Inläggav corpsicle » 6 april 2015, 10:06

Japp, tänkte försöka ge mig på att programmera på Vic20.
Har kodat lite asm på c64 och amiga tidigare.
Följde snabbt denna tutorial : http://techtinkering.com/2013/04/16/beg ... re-vic-20/
Försökte sedan åstakomma samma sak i CBM prg Studio men insåg snabbt att mina kunskaper inte räcker till.

Mitt program i CBM prg studio ser ut såhär.

Kod: Markera allt
*=1400

start   ldx #$00
cycle   lda hworld,X
        beq exit
        jsr $ffd2
        sta $0400,X
        inx
        bne cycle 
exit    rts

hworld  text 'hello world'
        byte 0


Det är lite av ett hopkok från ovan nämnd tutorial och den som finns i CBM prg studio manualen.
Jag har även följt manualens instruktioner för att skapa en sån basic loader.
Resultatet i emulatorn blir ingenting.
Ingen output alls.
Bara run ... ready.

Jag antar att jag gjort tusen misstag, so bring it on. =)
corpsicle
Lärling
Lärling
 
Inlägg: 66
Blev medlem: 20 juli 2009, 12:46

Re: Hjälp ang programmering på Vic20 med CBM prg Studio

Inläggav Boray » 6 april 2015, 11:07

För det första: Vic-20ns skärm ligger inte på $0400 utan på $1E00 på oexpanderad Vic-20 eller $1000 på expanderad. För det andra: Du behöver inte använda skärmadressen över huvud taget när du använder CHROUT ($FFd2) och koderna är inte samma heller för petascii och skärmkoder. Sedan är det nog något ytterligare fel eftersom det inte funkar.
Användarvisningsbild
Boray
VIC-20-älskande musiksmurf
VIC-20-älskande musiksmurf
 
Inlägg: 1411
Blev medlem: 6 december 2005, 12:55

Re: Hjälp ang programmering på Vic20 med CBM prg Studio

Inläggav corpsicle » 6 april 2015, 12:10

Ok tack!
Jo exemplet i koden är för c64 antar jag, därav skärmadressen.

Efter lite fixande så ser koden ut såhär när jag laddat den och dissasemblerar i vicmon:
Nästan exakt som originalexemplet, men vad är frågetecknen?
Misstänker att det är där CBM prg studio lägger datat, alltså texten?

Kod: Markera allt
.d 1400,141d

., 1400 ldx #$93
., 1402 jsr $ffd2
., 1405 ldx #$00
., 1407 lda $1413,x
., 140a beq $1412
., 140c jsr $ffd2
., 140f inx
., 1410 bne $1407
., 1412 brk
., 1413 php
., 1414 ora $0c
., 1416 ???
., 1417 ???
., 1418 jsr $0f17
., 141b ???
., 141c ???
., 141d ???


Här är den som fungerar:

Kod: Markera allt
.d 1400,1422

., 1400 lda #$93
., 1402 jsr $ffd2
., 1405 ldx #$00
., 1407 lda $1413,x
., 140a beq $1412
., 140c jsr $ffd2
., 140f inx
., 1410 bne $1407
., 1412 brk
., 1413 pha
., 1414 eor $4c
., 1416 jmp $2c4f
., 1419 jsr $4f57
., 141c ???
., 141d jmp $2144
., 1420 ora $0000
corpsicle
Lärling
Lärling
 
Inlägg: 66
Blev medlem: 20 juli 2009, 12:46

Re: Hjälp ang programmering på Vic20 med CBM prg Studio

Inläggav carlsson » 7 april 2015, 15:54

Av någon anledning assembleras aldrig din "rts", så det blir en byte 00 istället, vilket är "brk" och så uppstår ett avbrott som tömmer skärmen och du får READY tillbaks. Exakt varför din miljö inte assemblerar hela programmet är svårt att säga. Posta gärna om din aktuella källkod, då du gjort ändringar. Förresten kan du trycka Alt-M i WinVICE för att använda den inbyggda monitorn, den är nog mer avancerad än Vicmon.
Användarvisningsbild
carlsson
VIC-20 Guru
VIC-20 Guru
 
Inlägg: 2325
Blev medlem: 10 oktober 2007, 16:24
Ort: Västerås

Re: Hjälp ang programmering på Vic20 med CBM prg Studio

Inläggav bjonte » 7 april 2015, 17:50

Prova att stoppa rts på en egen rad. Det kanske hjälper.
Användarvisningsbild
bjonte
Stormästare
Stormästare
 
Inlägg: 1859
Blev medlem: 17 april 2006, 23:12

Re: Hjälp ang programmering på Vic20 med CBM prg Studio

Inläggav carlsson » 7 april 2015, 19:30

Hm, din sträng är väl "hello, world!" följt av en carriage return? I alla fall är det så jag dechiffrerar den trasigt disassemblerade koden som följer. Då är ??? i ditt andra exempel hexkoden $52 för bokstaven R.

Men som sagt, lite fräsch källkod kanske gör det lättare att se vad du eller CBM Prg Studio gör fel. Har du använt den till att koda på C64 tidigare borde det inte vara några märkligheter. Labeln för cycle blir ju rätt, då borde labeln för exit också bli det.
Användarvisningsbild
carlsson
VIC-20 Guru
VIC-20 Guru
 
Inlägg: 2325
Blev medlem: 10 oktober 2007, 16:24
Ort: Västerås

Re: Hjälp ang programmering på Vic20 med CBM prg Studio

Inläggav corpsicle » 7 april 2015, 22:01

Tack för alla svar!

Detta är den senaste källkoden:

Kod: Markera allt
*=$1400

start   ldx #$93
        jsr $ffd2
        ldx #$00
cycle   lda hworld,X
        beq exit
        jsr $ffd2
        inx
        bne cycle 
exit    rts

hworld  text 'hello world'


RTS grejen kan nog ha varit på grund av att jag experimenterade lite och bytte mot BRK eventuellt.

Strängen ska vara "hello, world!" följt av en nolla ?
Men jag tror det är i hur CBM prg Studio hanterar strängen som problemet ligger.
Det ser inte alls likadant ut i dom följande minnesareorna i dom båda programmen.
Jag vet inte om jag kan kopiera text ur Vice's dissassembler, annars kan jag lägga upp bilder.
Där ser programmen ut att skilja sig åt mer än i Vicmon.
corpsicle
Lärling
Lärling
 
Inlägg: 66
Blev medlem: 20 juli 2009, 12:46

Re: Hjälp ang programmering på Vic20 med CBM prg Studio

Inläggav carlsson » 7 april 2015, 22:35

Jodå, markera texten och tryck på Ctrl-C för att kopiera den, sedan klistrar du in i webbläsaren som normalt.

Kod: Markera allt
.C:e5ef   F0 F7      BEQ $E5E8
.C:e5f1   78         SEI
.C:e5f2   A5 CF      LDA $CF
.C:e5f4   F0 0C      BEQ $E602
.C:e5f6   A5 CE      LDA $CE
.C:e5f8   AE 87 02   LDX $0287
.C:e5fb   A0 00      LDY #$00
.C:e5fd   84 CF      STY $CF
.C:e5ff   20 A1 EA   JSR $EAA1
.C:e602   20 CF E5   JSR $E5CF
.C:e605   C9 83      CMP #$83
.C:e607   D0 10      BNE $E619
.C:e609   A2 09      LDX #$09
.C:e60b   78         SEI
.C:e60c   86 C6      STX $C6
.C:e60e   BD F3 ED   LDA $EDF3,X
.C:e611   9D 76 02   STA $0276,X
.C:e614   CA         DEX
.C:e615   D0 F7      BNE $E60E
.C:e617   F0 CF      BEQ $E5E8
Användarvisningsbild
carlsson
VIC-20 Guru
VIC-20 Guru
 
Inlägg: 2325
Blev medlem: 10 oktober 2007, 16:24
Ort: Västerås

Re: Hjälp ang programmering på Vic20 med CBM prg Studio

Inläggav corpsicle » 8 april 2015, 07:01

Ok det tog lite för lång tid för mig att komma på detta. =)
Det går inte att kopiera text ur "disassembly"-fönstret, men om man disassemblerar i monitorfönstret så går det.

Kod: Markera allt
.C:1400  A2 93       LDX #$93
.C:1402  20 D2 FF    JSR $FFD2
.C:1405  A2 00       LDX #$00
.C:1407  BD 13 14    LDA $1413,X
.C:140a  F0 06       BEQ $1412
.C:140c  20 D2 FF    JSR $FFD2
.C:140f  E8          INX
.C:1410  D0 F5       BNE $1407
.C:1412  60          RTS
.C:1413  08          PHP
.C:1414  05 0C       ORA $0C
.C:1416  0C 0F 20    NOOP $200F
.C:1419  17 0F       SLO $0F,X
.C:141b  12          JAM
.C:141c  0C 04 00    NOOP $0004
.C:141f  00          BRK

corpsicle
Lärling
Lärling
 
Inlägg: 66
Blev medlem: 20 juli 2009, 12:46

Re: Hjälp ang programmering på Vic20 med CBM prg Studio

Inläggav corpsicle » 9 april 2015, 23:34

Det var både skit bakom spakarna och bugg.
1. Jag hade lyckats sabba startaddressen i basicscriptet som skulle köra koden.
2. Verkar som att CBM prg Studio skapar felaktig data för character sets för Vic20.

Skapad av CBM prg Studio:
Kod: Markera allt
104,101,108,108,111
32,119,111,114,108,100,0


Manuellt översatt av mig och inmatad i det av CBM prg Studio genererade basicscriptet:
Kod: Markera allt
72,69,76,76,79
32,87,79,82,76,68,33


Det senare exemplet fungerar. =)
corpsicle
Lärling
Lärling
 
Inlägg: 66
Blev medlem: 20 juli 2009, 12:46

Re: Hjälp ang programmering på Vic20 med CBM prg Studio

Inläggav bjonte » 10 april 2015, 07:03

Det ser ut att vara någon versal-gemen-översättning.
Användarvisningsbild
bjonte
Stormästare
Stormästare
 
Inlägg: 1859
Blev medlem: 17 april 2006, 23:12

Re: Hjälp ang programmering på Vic20 med CBM prg Studio

Inläggav carlsson » 10 april 2015, 08:37

Ja, olika assemblatorer brukar hantera översättning mellan ASCII och PETSCII lite olika. Ska man sedan plotta in texten direkt i skärmminnet gäller ytterligare en variant.

Eftersom BASIC på oexpanderad VIC-20 börjar på $1001 känns det lite överdrivet att maskinkodsprogrammet inte börjar förrän $1400 om du inte har nästan 1K data däremellan. Om du har en maskin med minst 8K expansion börjar BASIC på $1201 men även där blir det en lucka på 0,5K.
Användarvisningsbild
carlsson
VIC-20 Guru
VIC-20 Guru
 
Inlägg: 2325
Blev medlem: 10 oktober 2007, 16:24
Ort: Västerås

Re: Hjälp ang programmering på Vic20 med CBM prg Studio

Inläggav corpsicle » 10 april 2015, 08:41

Jag är total nybörjare på vic20 (och inte särskilt bevandrad i assembler på andra plattformar heller) så jag följde bara exemplet i det här fallet. =)
Jag har läst på minneskartor men det tar nog ett tag innan det sitter.
corpsicle
Lärling
Lärling
 
Inlägg: 66
Blev medlem: 20 juli 2009, 12:46

Re: Hjälp ang programmering på Vic20 med CBM prg Studio

Inläggav e5frog » 22 april 2015, 20:28

Jag har bara använt CBM prg Studio med C64-program och då används 'text' för skärmkoder och "text" för ascii/petscii - och det blir väl inte samma resultat för 'TEXT' eller "TEXT", enklast är väl att testa om man är osäker.
Kolla in mitt Fairchild System bild-galleri:
fairchild fairchild fairchild Bild fairchild fairchild fairchild
Användarvisningsbild
e5frog
Moderator
Moderator
 
Inlägg: 2761
Blev medlem: 8 augusti 2007, 18:16
Ort: Älvängen

Re: Hjälp ang programmering på Vic20 med CBM prg Studio

Inläggav corpsicle » 5 maj 2015, 12:19

Jaha det kanske är så enkelt. =)
Kodandet fick läggas på is lite när jag kom igång med Victracker och nu även med Knaecketraecker, men jag återkommer till detta så småningom!
corpsicle
Lärling
Lärling
 
Inlägg: 66
Blev medlem: 20 juli 2009, 12:46

Nästa

Återgå till VIC-20

Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 1 gäst

Banners

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