VIC 20 Graphics Artist
Moderator: Moderators
Re: VIC 20 Graphics Artist
This is incredibly cool stuff.
Thanks for sharing and welcome to the forum, Neil!
Thanks for sharing and welcome to the forum, Neil!
Re: VIC 20 Graphics Artist
I second that! Welcome and thanks for sharing - really cool stuff indeed!
Learning all the time...
- javierglez
- Vic 20 Hobbyist
- Posts: 107
- Joined: Sat Jun 03, 2017 3:33 pm
Re: VIC 20 Graphics Artist
It would be nice to rescue the different pieces of data or code and and put together a demo.
-
- Vic 20 Newbie
- Posts: 5
- Joined: Sat Nov 04, 2023 7:07 pm
- Website: https://www.neilhuggett.com/index.html
- Location: Adelaide, Australia
- Occupation: retired
Re: VIC 20 Graphics Artist
Thank you Mike, Sven Vasterling, and all you guys,
I have put together a zip file of some of my stuff ( ), including an installer for WinVICE 2.1 (because all of the WinVICE snapshots I have are for version 2.1). I have attached the zip file to this posting, so I hope that works okay. WinVICE 2.1 appears to be able to run from just about anywhere it is extracted to, and it even still runs nicely on my 64-bit Windows 10 laptop. One of the files included is a pdf document explaining how to load 'one of my programs' from the 4 'Vic files' I have included. These files should be able to be loaded into a real Vic-20 (with full memory loaded), or any recent version of WinVICE. Good luck!
In putting this stuff together, I realised just how time consuming it is to look back at Vic-20 stuff written more than 30 years ago (trying to reverse-engineer machine code and other Vic-20 stuff because I have lost or misplaced the documentation I made at the time)!
Kind regards,
Neil Huggett
I have put together a zip file of some of my stuff ( ), including an installer for WinVICE 2.1 (because all of the WinVICE snapshots I have are for version 2.1). I have attached the zip file to this posting, so I hope that works okay. WinVICE 2.1 appears to be able to run from just about anywhere it is extracted to, and it even still runs nicely on my 64-bit Windows 10 laptop. One of the files included is a pdf document explaining how to load 'one of my programs' from the 4 'Vic files' I have included. These files should be able to be loaded into a real Vic-20 (with full memory loaded), or any recent version of WinVICE. Good luck!
In putting this stuff together, I realised just how time consuming it is to look back at Vic-20 stuff written more than 30 years ago (trying to reverse-engineer machine code and other Vic-20 stuff because I have lost or misplaced the documentation I made at the time)!
Kind regards,
Neil Huggett
- Mike
- Herr VC
- Posts: 4856
- Joined: Wed Dec 01, 2004 1:57 pm
- Location: Munich, Germany
- Occupation: electrical engineer
Re: VIC 20 Graphics Artist
Hi, Neil,
Next action then will be extracting the relevant data from the *.vsf files. This will take some time over the next weeks, though.
Greetings,
Michael
I downloaded the *.zip archive, and as a first measure, I put a mirror up at my own web space (download here).Neil Huggett wrote:I have attached the zip file to this posting, so I hope that works okay.
Next action then will be extracting the relevant data from the *.vsf files. This will take some time over the next weeks, though.
In any case, this is a big time capsule you have unearthed here. A find like this shows how important it is to preserve and document one's own works.In putting this stuff together, I realised just how time consuming it is to look back at Vic-20 stuff written more than 30 years ago (trying to reverse-engineer machine code and other Vic-20 stuff because I have lost or misplaced the documentation I made at the time)!
Greetings,
Michael
- MrSterlingBS
- Vic 20 Enthusiast
- Posts: 187
- Joined: Tue Jan 31, 2023 2:56 am
- Location: Germany,Braunschweig
Re: VIC 20 Graphics Artist
Hi Neil,
thank you from the other side of the world. Maybe this forum will encourage you to continue publishing such great graphics.
greetings from Germany
Sven
thank you from the other side of the world. Maybe this forum will encourage you to continue publishing such great graphics.
greetings from Germany
Sven
- huffelduff
- Vic 20 Hobbyist
- Posts: 125
- Joined: Sat Sep 05, 2020 9:14 am
Re: VIC 20 Graphics Artist
Hi there Neil,
Echoing everyone in the thread: Great work!
I love the half tones you produced and the crystal shapes.
Anyway really superb.
Greetings
H
Echoing everyone in the thread: Great work!
I love the half tones you produced and the crystal shapes.
Anyway really superb.
Greetings
H
- pixel
- Vic 20 Scientist
- Posts: 1379
- Joined: Fri Feb 28, 2014 3:56 am
- Website: http://hugbox.org/
- Location: Berlin, Germany
- Occupation: Pan–galactic shaman
Re: VIC 20 Graphics Artist
Warm, fuzzy feeling here as well. Cudo!
A man without talent or ambition is most easily pleased. Others set his path and he is content.
https://github.com/SvenMichaelKlose
https://github.com/SvenMichaelKlose
- Ola H
- Vic 20 Enthusiast
- Posts: 173
- Joined: Thu Aug 20, 2015 6:08 pm
- Website: http://www.athleticdesign.se/
- Location: Sweden
Re: VIC 20 Graphics Artist
Welcome Neil, I am in awe of what you accomplished with the Vic 20. I don't think anything else I have seen in 2023 has impressed me quite as much.
-
- Vic 20 Newbie
- Posts: 5
- Joined: Sat Nov 04, 2023 7:07 pm
- Website: https://www.neilhuggett.com/index.html
- Location: Adelaide, Australia
- Occupation: retired
Re: VIC 20 Graphics Artist
Hi Michael,
The thought of you 'extracting the relevant bits' from my WinVICE 2.1 snapshots, and the time it may take you made me wonder if I could help the process a bit. I have put together an archive: that relates to loading the 'BigArt' routines into WinVICE 3.7.
I have included some more documentation in the form of a txt document. Hopefully this saves you some precious time, and provides more information on using the routines already written.
Kind regards,
Neil
The thought of you 'extracting the relevant bits' from my WinVICE 2.1 snapshots, and the time it may take you made me wonder if I could help the process a bit. I have put together an archive: that relates to loading the 'BigArt' routines into WinVICE 3.7.
I have included some more documentation in the form of a txt document. Hopefully this saves you some precious time, and provides more information on using the routines already written.
Kind regards,
Neil
- Mike
- Herr VC
- Posts: 4856
- Joined: Wed Dec 01, 2004 1:57 pm
- Location: Munich, Germany
- Occupation: electrical engineer
Re: VIC 20 Graphics Artist
Hi, Neil,
Just as an example where I am heading: I started out with the snapshot file "Crystal_8K_Basic02.vsf". In BLK5, the main BASIC program is located:
I extracted the tokenized code, and let an own de-tokenizer work on it, which incidentally also replaces control characters by quoted descriptions in curly brackets.
As such the program of course is still incomplete, as it misses the machine code parts. My aim now is to reconstruct the whole application (including the ML parts) so it can be run as supposed - either as *.d64 disk image or as collection of files in a directory for a SD2IEC device.
Greetings,
Michael
thank you for this.Neil Huggett wrote:The thought of you 'extracting the relevant bits' from my WinVICE 2.1 snapshots, and the time it may take you made me wonder if I could help the process a bit. I have put together an archive: [...] I have included some more documentation in the form of a txt document. Hopefully this saves you some precious time, and provides more information on using the routines already written.
Just as an example where I am heading: I started out with the snapshot file "Crystal_8K_Basic02.vsf". In BLK5, the main BASIC program is located:
Code: Select all
1 AX=.5:AY=AX:A=0:B=0:D=400:O=560:M=1184:W=1170:EY=12:IW=-5:X2=1:Y2=1
2 MT=0:P=1:L=1:CX=0:CY=0:CZ=0:E=1:F=1:Q=1:I=1:J=1:C=1:S=1
3 X=0:Y=0:Z=0:G=1:IM=0:A1=20:B1=25:IA=0:A7=5:L7=10:T=1:U=1:H=1:K=1:X1=1:Y1=1
4 SH=1:SL=1:YS=1:AZ=1:ML=13008:WL=13008:MD=0
5 DIMX(26),Y(26),Z(26),S%(56),E%(56),XP(26),YP(26)
70 RESTORE:DATA-25,0,-25,25,0,-25,25,0,25,-25,0,25,-25,-50.0,-25,25,-50.0,-25
71 DATA25,-50.0,25,-25,-50.0,25,0,-85.35,0,0,35.36,0
72 DATA-25,28.87,-65.82,25,28.87,-65.82,0,64.22,-40.82,0,64.22,-90.82
73 DATA-25,28.87,65.82,25,28.87,65.82,0,64.22,40.82,0,64.22,90.82
74 DATA65.82,28.87,-25,65.82,28.87,25,40.82,64.22,0,90.82,64.22,0
75 DATA-65.82,28.87,25,-65.82,28.87,-25,-40.82,64.22,0,-90.82,64.22,0
80 DATA1,2,2,3,3,4,4,1,5,6,6,7,7,8,8,5,1,5,2,6,3,7,4,8,5,9,6,9,7,9,8,9
81 DATA1,10,2,10,3,10,4,10,1,11,2,12,10,13,11,12,12,13,13,11,11,14,12,14,13,14,25,26
82 DATA3,16,4,15,10,17,15,16,16,17,17,15,15,18,16,18,17,18,2,19,3,20,10,21,19,20
83 DATA20,21,21,19,19,22,20,22,21,22,1,24,4,23,10,25,23,24,24,25,25,23,23,26,24,26
90 P=26:L=56:CX=0:CY=0:CZ=0
92 FORI=1TOP:READX(I),Y(I),Z(I):NEXT
94 FORI=1TOL:READS%(I),E%(I):NEXT
112 IFMT=0THEN118
114 C=COS(MT):S=SIN(MT):FORI=1TOP:Y=Y(I)-CY:X=X(I)-CX:F=Y*C-X*S:G=X*C+Y*S
116 Y(I)=CY+F:X(I)=CX+G:NEXT
118 PRINT"{CLR}"
120 PRINT"{CLR}":PRINTTAB(45)"DISTANCE=";D
125 PRINTTAB(45)"TH=";A1;"{2 SPACE}ALT=";B1
130 PRINTTAB(45)"SCX=";M+MD;" SCY=";W+WD
132 PRINTTAB(45)"SEP=";IW;" IM.ROT=";IA
135 PRINTTAB(45)"SC.DIST=";O+D:PRINTTAB(89)"{2 SPACE}HIT 'X' WHEN OK"
140 GETA$:IFA$=""THEN140
142 IFA$="C"THEND=D-L7:GOTO120
144 IFA$="F"THEND=D+L7:GOTO120
146 IFA$="L"THENA1=A1+A7:GOTO120
148 IFA$="R"THENA1=A1-A7:GOTO120
150 IFA$="U"THENB1=B1+A7:GOTO120
160 IFA$="D"THENB1=B1-A7:GOTO120
162 IFA$="X"THEN210
164 IFA$="{UP}"THENWD=WD-5:GOTO120
166 IFA$="{DOWN}"THENWD=WD+5:GOTO120
168 IFA$="{RIGHT}"THENMD=MD+5:GOTO120
170 IFA$="{LEFT}"THENMD=MD-5:GOTO120
172 IFA$="+"THENIW=IW+5:GOTO120
174 IFA$="-"THENIW=IW-5:GOTO120
176 IFA$="{SHIFT-C}"THENO=O-L7:GOTO120
178 IFA$="{SHIFT-F}"THENO=O+L7:GOTO120
180 IFA$="0"THENIA=IA-A7:GOTO120
182 IFA$="9"THENIA=IA+A7:GOTO120
185 GOTO140
210 PRINT:PRINT:PRINT" OK -NOW CALCULATING"
215 A=A1*{PI}/180:B=B1*{PI}/180:IM=IA*{PI}/180
218 C=COS(A):S=SIN(A)
220 FORI=1TOP:X=X(I)-CX:Z=Z(I)-CZ:E=X*C-Z*S:G=Z*C+X*S
230 X(I)=CX+E:Z(I)=CZ+G:NEXT
240 C=COS(B):S=SIN(B):FORI=1TOP:Y=Y(I)-CY:Z=Z(I)-CZ:F=Y*C+Z*S:G=Z*C-Y*S
250 Y(I)=CY+F:Z(I)=CZ+G:NEXT
260 C=COS(IM):S=SIN(IM):FORI=1TOP:Y=Y(I)-CY:X=X(I)-CX:F=Y*C-X*S:G=X*C+Y*S
270 Y(I)=CY+F:X(I)=CX+G:NEXT
360 G=M+MD:F=CX
435 SYS1166:SYS1230:SYS1264:GOSUB500
450 SYS13680
455 GETB$:IFB$=""THEN455
458 IFB$=" "THEND=D:SYS1122:PRINT"{CLR,2 RIGHT,DOWN}PLEASE WAIT":GOTO70
480 GOTO455
500 T=D+O:K=W+WD:FORI=1TOP:U=D+Z(I)-CZ:IFU=0THENU=.5
502 X=(X(I)-F)*T*AX/U:Y=(Y(I)-CY)*T*AY/U
505 XP(I)=INT(G+X):YP(I)=INT(K-Y):NEXT
510 FORI=1TOL:X1=XP(S%(I)):Y1=YP(S%(I)):X2=XP(E%(I)):Y2=YP(E%(I)):GOSUB550
520 NEXT
525 RETURN
550 IFX1<0ORX1>32000THENRETURN
555 IFY1<0ORY1>32000THENRETURN
560 IFX2<0ORX2>32000THENRETURN
565 IFY2<0ORY2>32000THENRETURN
570 X=INT(X1/256):POKE3045,X:POKE3044,X1-X*256
571 Y=INT(Y1/256):POKE3049,Y:POKE3048,Y1-Y*256
572 X=INT(X2/256):POKE3047,X:POKE3046,X2-X*256
573 Y=INT(Y2/256):POKE3051,Y:POKE3050,Y2-Y*256
575 SYS1576:SYS1264:RETURN
As such the program of course is still incomplete, as it misses the machine code parts. My aim now is to reconstruct the whole application (including the ML parts) so it can be run as supposed - either as *.d64 disk image or as collection of files in a directory for a SD2IEC device.
Greetings,
Michael
-
- Vic 20 Newbie
- Posts: 5
- Joined: Sat Nov 04, 2023 7:07 pm
- Website: https://www.neilhuggett.com/index.html
- Location: Adelaide, Australia
- Occupation: retired
Re: VIC 20 Graphics Artist
Hi Michael,
That all looks impressive. I am sure you know what you are doing. Good luck with the ML parts of it.
I was putting together a bunch of programs relating to my TonePaint series of programs (for the colour displays shown on my website) for WinVICE 3.7, but found that WinVICE 3.7 can't cope with the video arrangement, so I can't really test it out. If you would like the stuff I have, please ask, but the programs included in the WinVICE 2.1 archive I have already put up are probably all you need (and they work properly under WinVICE 2.1, like they did on my real Vic-20).
I was curious about the SD2IEC device you referred to, and after some searching through Google, found a good description of them. They sound interesting, and would be excellent with a real Vic-20.
If you need any clarification of any of my stuff, please email me at: neil.huggett@yahoo.com
Thank you to all you guys on Denial doing interesting things with the Vic-20, and passing on kind messages about the Vic-20 graphics on my website. The Vic-20 is an excellent little computer!
Kind regards,
Neil
That all looks impressive. I am sure you know what you are doing. Good luck with the ML parts of it.
I was putting together a bunch of programs relating to my TonePaint series of programs (for the colour displays shown on my website) for WinVICE 3.7, but found that WinVICE 3.7 can't cope with the video arrangement, so I can't really test it out. If you would like the stuff I have, please ask, but the programs included in the WinVICE 2.1 archive I have already put up are probably all you need (and they work properly under WinVICE 2.1, like they did on my real Vic-20).
I was curious about the SD2IEC device you referred to, and after some searching through Google, found a good description of them. They sound interesting, and would be excellent with a real Vic-20.
If you need any clarification of any of my stuff, please email me at: neil.huggett@yahoo.com
Thank you to all you guys on Denial doing interesting things with the Vic-20, and passing on kind messages about the Vic-20 graphics on my website. The Vic-20 is an excellent little computer!
Kind regards,
Neil
- Mike
- Herr VC
- Posts: 4856
- Joined: Wed Dec 01, 2004 1:57 pm
- Location: Munich, Germany
- Occupation: electrical engineer
Re: VIC 20 Graphics Artist
It was more easier than I thought.
For a starter: the whole BIGART setup revolves around the two files "BART3K" and "BARTMC". These two files are loaded to $0400..$0FFF and $2E00..$4900, respectively. The 320x352 off-screen bitmap is located at $4900..$7FFF (implying the byte at $4900 from BARTMC gets overwritten by the bitmap). The 160x176 display bitmap is located at $1000..$1DBF, with the screen at $1E00 and the addressing into the screen bitmap is done in row-major order. As whole, this leaves either $2000..$2DFF (3.5 KB) or $A000..$BFFF (8 KB) for BASIC programs that 'script' the machine code.
For convenience, I prepared this small boot program that pre-loads the machine code libraries, re-organises BASIC memory and then autostarts a client program, here, "Crystal".
Download. This example needs a full +35K RAM expansion (i.e. +24K in BLK1..3, +8K in BLK5 and +3K in RAMx!). Load the file "BOOT" and run it. There's a working preset of rotation/zoom parameters and upon confirming that preset with the X key, the crystal is rendered into the off-screen bitmap. The top-left corner of the off-screen bitmap is displayed on screen. The number keys 1..9 allow for a quick change of view, otherwise the cursor keys can be used to scroll around.
I'll experiment around with this over the next days.
Cheers,
Michael
For a starter: the whole BIGART setup revolves around the two files "BART3K" and "BARTMC". These two files are loaded to $0400..$0FFF and $2E00..$4900, respectively. The 320x352 off-screen bitmap is located at $4900..$7FFF (implying the byte at $4900 from BARTMC gets overwritten by the bitmap). The 160x176 display bitmap is located at $1000..$1DBF, with the screen at $1E00 and the addressing into the screen bitmap is done in row-major order. As whole, this leaves either $2000..$2DFF (3.5 KB) or $A000..$BFFF (8 KB) for BASIC programs that 'script' the machine code.
For convenience, I prepared this small boot program that pre-loads the machine code libraries, re-organises BASIC memory and then autostarts a client program, here, "Crystal".
Code: Select all
1 POKE55,0:POKE56,32:CLR:DN=PEEK(186)
2 POKE648,30:SYS58648
3 N$="BART3K":GOSUB9:N$="BARTMC":GOSUB9
4 PRINT"{CLR}LOAD"CHR$(34)"BASIC.PRG"CHR$(34)","MID$(STR$(DN),2)
5 POKE631,19:POKE632,131:POKE198,2
6 POKE40960,0:POKE43,1:POKE44,160:POKE55,0:POKE56,192:NEW
7 REMPOKE8192,0:POKE43,1:POKE44,32:POKE55,0:POKE56,46:NEW
8 :
9 SYS57809(N$),DN,1:POKE780,0:SYS65493:RETURN
I'll experiment around with this over the next days.
Cheers,
Michael
- MrSterlingBS
- Vic 20 Enthusiast
- Posts: 187
- Joined: Tue Jan 31, 2023 2:56 am
- Location: Germany,Braunschweig
Re: VIC 20 Graphics Artist
Hello,
The program really runs very smoothly.
The program really runs very smoothly.
-
- Vic 20 Newbie
- Posts: 5
- Joined: Sat Nov 04, 2023 7:07 pm
- Website: https://www.neilhuggett.com/index.html
- Location: Adelaide, Australia
- Occupation: retired
Re: VIC 20 Graphics Artist
Hi Michael,
That analysis of my machine code program, and the boot loader are very impressive. Thank you for doing all of that. The boot loader works a treat.
Kind regards,
Neil
That analysis of my machine code program, and the boot loader are very impressive. Thank you for doing all of that. The boot loader works a treat.
Kind regards,
Neil