fi \
 
 #-----------------------------------------------------------------------------
-# Apple //e
+# enhanced Apple //e
 
 apple2enhlib:
        for i in apple2enh common runtime conio dbg em joystick mouse serial tgi zlib; do \
        cp apple2enh/apple2-ssc.ser a2e.ssc.ser
        cp apple2enh/apple2-280-192-8.tgi a2e.hi.tgi
        cp apple2enh/apple2-40-48-16.tgi a2e.lo.tgi
+       if [ -d apple2enh/extra ]; then \
+           for i in apple2enh/extra/*.o; do \
+               cp $$i apple2enh-`basename $$i`; \
+           done \
+       fi \
 
 #-----------------------------------------------------------------------------
 # Atari
 
 %.o:   ../apple2/%.s
        @$(AS) -g -o $@ $(AFLAGS) $<
 
+extra/%.o: ../apple2/extra/%.s
+       @$(AS) -g -o $@ $(AFLAGS) $<
+
 %.emd: %.o ../runtime/zeropage.o
        @$(LD) -t module -o $@ $^
 
                wherey.o        \
        write.o
 
+S_EXTRA_OBJS=                  \
+       extra/iobuf-0800.o
+
 #--------------------------------------------------------------------------
 # Drivers
 
 
 .PHONY:        all clean zap
 
-all:   $(C_OBJS) $(S_OBJS) $(EMDS) $(JOYS) $(MOUS) $(SERS) $(TGIS)
+all:   $(C_OBJS) $(S_OBJS) $(S_EXTRA_OBJS) $(EMDS) $(JOYS) $(MOUS) $(SERS) $(TGIS)
 
 ../runtime/zeropage.o:
        $(MAKE) -C $(dir $@) $(notdir $@)
 
 clean:
-       @$(RM) $(C_OBJS:.o=.s) $(C_OBJS) $(S_OBJS) $(EMDS:.emd=.o) $(JOYS:.joy=.o) $(MOUS:.mou=.o) $(SERS:.ser=.o) $(TGIS:.tgi=.o)
+       @$(RM) $(C_OBJS:.o=.s) $(C_OBJS) $(S_OBJS) $(S_EXTRA_OBJS) $(EMDS:.emd=.o) $(JOYS:.joy=.o) $(MOUS:.mou=.o) $(SERS:.ser=.o) $(TGIS:.tgi=.o)
 
 zap:           clean
        @$(RM) $(EMDS) $(JOYS) $(MOUS) $(SERS) $(TGIS)