diff --git a/src/dhgr.tk/demos/darthgr/DARTHGR.REL b/src/dhgr.tk/demos/darthgr/DARTHGR.REL index 6d87c7b..a54168f 100644 Binary files a/src/dhgr.tk/demos/darthgr/DARTHGR.REL and b/src/dhgr.tk/demos/darthgr/DARTHGR.REL differ diff --git a/src/dhgr.tk/demos/darthgr/darthgr.pla b/src/dhgr.tk/demos/darthgr/darthgr.pla index 1ac8d2f..744c98b 100644 --- a/src/dhgr.tk/demos/darthgr/darthgr.pla +++ b/src/dhgr.tk/demos/darthgr/darthgr.pla @@ -7,11 +7,11 @@ sysflags resxtxt1|reshgr1|resxhgr1 var strWidth, strHeight char darthstr = "DartH GRaphics" -dcgrFont(fontRead("trade54.fon")) +musicPlay(musicRead("imperial.seq"), FALSE) +dcgrFont(fontRead("trade54.fon")) // This font exceeds the available memory so gets truncated strWidth, strHeight = dcgrStrExtents(@darthstr) dhgrMode(DHGR_COLOR_MODE) screenRead("darth.dhgr") -musicPlay(musicRead("imperial.seq"), FALSE) musicGetKey(0, NULL) dcgrColor(CLR_WHITE) dcgrStr((140 - strWidth) / 2, (strHeight * 7) / 8, @darthstr) diff --git a/src/dhgr.tk/libs/dhgrutils.pla b/src/dhgr.tk/libs/dhgrutils.pla index 0c76e4b..04f4328 100644 --- a/src/dhgr.tk/libs/dhgrutils.pla +++ b/src/dhgr.tk/libs/dhgrutils.pla @@ -175,6 +175,7 @@ export def fontRead(filename)#1 num = font_header->fnt_last - font_header->fnt_first if font_header->fnt_typelen & FONT_PROP gly_ptr = heapalloc(num * 2) // Allocate glyph ptrs right after + memset(gly_ptr, num * 2, NULL) if font_header->fnt_typelen & FONT_AA roundup = 1 pixbyte = 2 @@ -199,8 +200,9 @@ export def fontRead(filename)#1 glyph->gly_height = height glyph->gly_adv = adv else - heaprelease(font_header) - font_header = NULL + font_header->fnt_last = i + font_header->fnt_first - 1 // Truncate font glyphs + //heaprelease(font_header) + //font_header = NULL break fin else diff --git a/src/libsrc/apple/sndseq.pla b/src/libsrc/apple/sndseq.pla index 98e53a0..4a863a1 100755 --- a/src/libsrc/apple/sndseq.pla +++ b/src/libsrc/apple/sndseq.pla @@ -807,10 +807,14 @@ export def musicPlay(track, rept)#0 // // Select proper sequencer based on hardware // - if mbSlot > 0 - musicSequence = @mbSequence + if track + if mbSlot > 0 + musicSequence = @mbSequence + else + musicSequence = @spkrSequence + fin else - musicSequence = @spkrSequence + musicSequence = @noSequence fin // // Zero out active notes @@ -863,10 +867,19 @@ export def musicRead(filename)#1 seq = NULL ref = fileio:open(filename) if ref - seq = heapalloc(heapavail - 256) - len = fileio:read(ref, seq, heapmark - seq) + if heapavail > 128 + len = heapavail - 32 + seq = heapalloc(len) + fin + if seq + len = fileio:read(ref, seq, len) + heaprelease(seq + len) + else + puts("Unable to alloc sequence.\n") + fin fileio:close(ref) - heaprelease(seq + len) + else + puts("Unable to open: "); puts(filename); putln fin return seq end diff --git a/src/makefile b/src/makefile index b339321..91be915 100755 --- a/src/makefile +++ b/src/makefile @@ -390,7 +390,7 @@ $(FPU): libsrc/fpu.pla $(PLVM02) $(PLASM) $(FPU_MF): libsrc/fpu_mf.pla $(PLVM02) $(PLASM) ./$(PLASM) -AMOW libsrc/fpu_mf.pla - acme --setpc 4094 -o $(FPU) libsrc/fpu_mf.a + acme --setpc 4094 -o $(FPU_MF) libsrc/fpu_mf.a $(SANITY): samplesrc/sanity.pla $(PLVM02) $(PLASM) ./$(PLASM) -AMOW samplesrc/sanity.pla