; Change this to where your .bin lives ; The file is available @ ; http://www.desdes.com fG:\Spectrum\DesDes\inv_load.bin ; For versions of Zeus earlier than v2.01 ; your .DEF file window must be this wide > ; Otherwise it won't work. ; ; ; I'm vaguely contactable @ ; kilby.cta102@gmail.com ; Hopefully I will have a compatable ; save routine hacked together soon ; though from this you shouldn't ; need me to do it c; Loader for Design Design games c; c; Currently supports c; Rommels Revenge $5b00 c; Revenge of the Body ..... $5b00 c; HOTT $6000 c; ; Notes : ; The sync byte is $42 but I don't think ; it's a reference to HHGTTG (for once!) ; $42 = %01000010 and allows the same sync ; value to be used with the standard ZX ; load/save routine (it's the same when ; viewed bass ackwards) ; To get HOTT to load & run change ; Game_Entry DEFW $5B00 ; to ; Game_Entry DEFW $6000 rf000 f142 _ c; goat fish _ _ ; Equates d 4000 ScreenBase d 4001 ScreenBase+1 d 5800 Attrs LF000 Entry LF06B Attr_to_IX LF122 LDEdge1 LF124 LDEdge1Delay LF128 LDSample LF138 border_col LF076 tLoad_vector LF11c Game_Entry LF0ED LD-FLAG LF02B LD-BREAK LF02C LD-START LF034 LD-WAIT LF11E LDEDGE2 LF040 LDLEADER LF04F LDSYNC LF072 LDLOOP LF102 LD8BITS_1 LF078 wrMem_IX_1 LF085 wrMem_IX_2 LF092 wrMem_IX_3 LF09f wrScreen_IY LF0CD NextScanline LF0C2 tape_to_IY of000 c; Clear screen _ _ i 10 ;i 55 _ c; Border colour for leader _ i 55 ;i 4f _ c; Get 1st IY Byte for screen addr c; From Tape _ i 0d c; Only jp for sync byte ($42) _ i 38 _ c; Decrement for scanline position _ i 1 _ c; Not EOL _ i 2 _ c; Load next scanline addr from tape _ i a _ c; JP NZ never taken in real file c; ONLY taken if 0 is loaded on byte 192 c; Probably to stop non DESDES file from c; being loaded. _ i 3 _ c; Get IYL updates from tape executed c; $C0 times during load _ i 8 _ c; Loads IYL from tape _ i b _ c; Loads IYH from tape c; and sets up for loading scanline _ i 14 _ c; counter for complete scanline _ i2 _ c; If IY=0 then load 1 more scanline c; and set up for exucuting game _ i2 _ c; Vector for game execution i 1b _ _ c; Set to 80 if rotating bits like Sinclair _ i 9 _ _ c; Normal Sinclair does RL L_ i 13 _ c; Game execute addr _ w 2 _ _ i 19 _ c; Value of XOR controls border colour c; $F* for data $F9 for leader _ i b l.end