11from build .ab import simplerule , TargetsMap , filenameof , Rule , Target
2- from tools .build import mkcpmfs , mametest
2+ from tools .build import mkcpmfs , mametest , mkcbmfs
33from build .llvm import llvmrawprogram , llvmclibrary
44from config import (
55 MINIMAL_APPS ,
2121COMMODORE_ITEMS_WITH_SCREEN = COMMODORE_ITEMS | SCREEN_APPS | SCREEN_APPS_SRCS
2222
2323
24- @Rule
25- def mkcbmfs (self , name , items : TargetsMap = {}, title = "CBMFS" , id = None ):
26- cs = ["rm -f $[outs[0]]" ]
27- ins = []
28-
29- cmd = "chronic cc1541 -q "
30- if id :
31- cmd += "-i %d " % id
32- cmd += '-n "%s" $[outs[0]]' % title
33- cs += [cmd ]
34-
35- for k , v in items .items ():
36- t = "PRG"
37- if k .startswith ("&" ):
38- t = "USR"
39-
40- cs += [
41- "chronic cc1541 -q -t -u 0 -r 18 -f '%s' -T '%s' -w '%s' $[outs[0]]"
42- % (k , t , filenameof (v ))
43- ]
44- ins += [v ]
45-
46- cs += ["$[deps[0]] -f $[outs[0]]" ]
47- simplerule (
48- replaces = self ,
49- ins = ins ,
50- outs = [f"={ name } .img" ],
51- deps = ["tools+mkcombifs" ],
52- commands = cs ,
53- label = "MKCBMFS" ,
54- )
55-
56-
5724@Rule
5825def mkusr (self , name , src : Target ):
5926 simplerule (
@@ -174,7 +141,7 @@ def mkusr(self, name, src: Target):
174141)
175142
176143llvmrawprogram (
177- name = "vic20_yload_bios " ,
144+ name = "vic20_yload_1541_bios " ,
178145 srcs = [
179146 "./vic20/vic20.S" ,
180147 "./diskaccess/bios_1541.S" ,
@@ -189,11 +156,12 @@ def mkusr(self, name, src: Target):
189156 ".+commodore_lib" ,
190157 ],
191158 cflags = ["-DVIC20" ],
159+ ldflags = ["--gc-sections" ],
192160 linkscript = "./vic20/vic20.ld" ,
193161)
194162
195163llvmrawprogram (
196- name = "vic20_iec_bios " ,
164+ name = "vic20_iec_1541_bios " ,
197165 srcs = [
198166 "./vic20/vic20.S" ,
199167 "./diskaccess/bios_1541.S" ,
@@ -209,6 +177,28 @@ def mkusr(self, name, src: Target):
209177 ".+commodore_lib" ,
210178 ],
211179 cflags = ["-DVIC20" ],
180+ ldflags = ["--gc-sections" ],
181+ linkscript = "./vic20/vic20.ld" ,
182+ )
183+
184+ llvmrawprogram (
185+ name = "vic20_iec_fd2000_bios" ,
186+ srcs = [
187+ "./vic20/vic20.S" ,
188+ "./diskaccess/bios_fd2000.S" ,
189+ "./diskaccess/io_ieee488.S" ,
190+ "./diskaccess/io_ieee488_vic20.S" ,
191+ "./diskaccess/rw_ieee488.S" ,
192+ "./vic20/vic20.inc" ,
193+ ],
194+ deps = [
195+ "include" ,
196+ "src/lib+bioslib" ,
197+ "third_party/tomsfonts+4x8" ,
198+ ".+commodore_lib" ,
199+ ],
200+ cflags = ["-DVIC20" ],
201+ ldflags = ["--gc-sections" ],
212202 linkscript = "./vic20/vic20.ld" ,
213203)
214204
@@ -223,21 +213,31 @@ def mkusr(self, name, src: Target):
223213)
224214
225215mkcbmfs (
226- name = "vic20_yload_cbmfs " ,
216+ name = "vic20_yload_1541_cbmfs " ,
227217 title = "cp/m-65: vic20" ,
228218 items = {
229219 "cpm" : ".+vic20_yload_loader" ,
230220 "&yload1541" : ".+usr_yload1541" ,
231- "bios" : ".+vic20_yload_bios " ,
221+ "bios" : ".+vic20_yload_1541_bios " ,
232222 },
233223)
234224
235225mkcbmfs (
236- name = "vic20_iec_cbmfs " ,
226+ name = "vic20_iec_1541_cbmfs " ,
237227 title = "cp/m-65: vic20" ,
238228 items = {
239229 "cpm" : ".+vic20_iec_loader" ,
240- "bios" : ".+vic20_iec_bios" ,
230+ "bios" : ".+vic20_iec_1541_bios" ,
231+ },
232+ )
233+
234+ mkcbmfs (
235+ name = "vic20_iec_fd2000_cbmfs" ,
236+ title = "cp/m-65: vic20" ,
237+ type = "d2m" ,
238+ items = {
239+ "cpm" : ".+vic20_iec_loader" ,
240+ "bios" : ".+vic20_iec_fd2000_bios" ,
241241 },
242242)
243243
@@ -248,14 +248,28 @@ def mkusr(self, name, src: Target):
248248 items = {"cpm" : ".+%s_bios" % target },
249249 )
250250
251- for target in ["pet4032" , "pet8032" , "pet8096" , "c64" , "vic20_yload" , "vic20_iec" ]:
251+ for target in [
252+ "pet4032" ,
253+ "pet8032" ,
254+ "pet8096" ,
255+ "c64" ,
256+ "vic20_yload_1541" ,
257+ "vic20_iec_1541" ,
258+ ]:
252259 mkcpmfs (
253260 name = target + "_diskimage" ,
254261 format = "c1541" ,
255262 template = ".+%s_cbmfs" % target ,
256263 items = COMMODORE_ITEMS_WITH_SCREEN ,
257264 )
258265
266+ mkcpmfs (
267+ name = "vic20_iec_fd2000_diskimage" ,
268+ format = "fd2000" ,
269+ template = ".+vic20_iec_fd2000_cbmfs" ,
270+ items = COMMODORE_ITEMS_WITH_SCREEN ,
271+ )
272+
259273mametest (
260274 name = "c64_mametest" ,
261275 target = "c64" ,
0 commit comments