1 REM Ins{nd av Mikael Pettersson <2195> 1987-04-11 02.57.40 (KERMIT) Kortfattad beskrivning av DESQUEEZE ----------------------------------- Programmet utvecklades p} en ABC800M med BasicII-checksumma = -10798. Fem 'magiska' adresser anv{nds, de {r adressen till basicens kommandoloop, adressen till rutinen f|r att skriva en rad p} en fil, tv} listningsrutiner (jag orkade inte unders|ka dem tillr{ckligt noga f|r att kunna skriva en egen variant av dem) samt adressen till instruktionstabellen d{r alla instruktioners kod och textutseende lagras. F|r att underl{tta portning till maskiner med annan checksumma listar jag h{r de f|rsta delarna av varje referens: (de ligger sist i assemblyfilen) PRT-3: JP 268 261: LD SP,HL 262: EX DE,HL 263: PUSH DE 264: LDIR 266: JR 306 -> 268: LD (IY+39),0 272: LD HL,(65302) 275: LD SP,HL 276: CALL 15592 279: LD HL,15686 282: LD BC,6 PRT: JP 4506 4498: POP BC 4499: RET NZ 4500: RST 16 4501: DEFB 32 ;err 'filen ej |ppnad' 4502: XOR A 4503: CALL 4488 ;<==> CALL 43 -> 4506: LD A,4 4508: LD DE,1598 4511: LD DE,1342 4514: PUSH AF 4515: PUSH HL 4516: PUSH BC 4517: CALL 18771 VLIST: JP 15823 15820: RET 15821: LD A,10 -> 15823: CALL 12402 15826: LD A,B 15827: OR C 15828: RET Z 15829: JP 13251 LISTF: JP 15712 15686: DEFM "ABC800 inline StopError #" -> 15712: CALL 16976 15715: LD A,(HL) 15716: INC HL 15717: CP 221 15719: JP NC,16054 BCTAB: LD BC,2370 2370: DEFB 134 RET 2371: DEFM "XSTM" 2375: DEFB 0 2376: DEFB 145 2377: DEFM "LET" 2380: DEFB 146 2381: DEFM "END" Jag sk{nker h{rmed DESQUEZE-programmet till ABC-klubben, f|r fri icke- kommerciell anv{ndning av klubbens medlemmar. Jag l{mnar *ingen* garanti f|r att programmet fungerar p} alla eller n}gon maskin(er). F|r att f|rst} formatet p} utskrifterna b|r man ha ganska grundliga kunskaper i hur BASICII lagrar sina program i internformat. (en kommenterad listning av BASICen b|r finnas till hands f|r den som vill s{tta sig in i hur DESQUEZE fungerar (tips: leta reda p} LIST-rutinen..)) Link|ping, 870411 Mikael Pettersson, <2195> PS: Jag gl|mde sckicka med en manul f|r *hur* man anv{nder desqueze. G|r s} h{r: 1) run desqueze.bas 2) load 3) ;call(-2048) Utdata fr}n programmet {r *inte* ett basicprogram utan snarare en beskrivning p} den stackmaskn som basicen egentligen interpreterar. F|r att kunna tolka denna beskrivning kr{vs en del kunskapre om hur internkoderna fungerarr. /Pi