Entry Summary
ID32086
TitleMICRO BUG
MachineZX81 16K
LanguagePortuguese
GenreUtility: undetermined
Max Players1
Available TypeA
Without Load ScreenNo
Without InlayNo
People
Publishers
Unknown
Downloads
TypeLinkSizeMD5FlagsDetailsComments
Remote linkhttp://zx81.eu5.org/microbug_e.htm--
None
Tape image/zxdb/sinclair/entries/0032086/MICROBUG.p.zip2,13281ade0d14b5ed3811432dea6d062f3b2
None
Opening screen/zxdb/sinclair/entries/0032086/MICROBUG-OPEN-1.scr6,912d503960b5feaa5bd36fefeceb6add481
None
Instructions/zxdb/sinclair/entries/0032086/MICROBUG.txt18,7324408e52eb40f2bab336ae1f9b0dc9475
None
Running screen/zxdb/sinclair/entries/0032086/MICROBUG-RUN-1.scr6,912c703f1c51343aa4f758ab62007c385fc
None
Source code/zxdb/sinclair/entries/0032086/MICROBUG_SourceCode.zip8,249b5ed910ddd1713967273c14fad3db558
None
BUGFIX tape image/zxdb/sinclair/entries/0032086/MICROBUG(BUGFIX).p.zip2,15757ee42dcabae3b0d85e7f393fd6ca129
None
BUGFIX file by Einar Saukas
Releases
Release #YearDownloads
#0-7
Origins
TypeTitlePublicationIssueDate
type-in from magazine issueMICRO BUGMicro Sistemas - type-in from magazine issue #31 - 1984/Apr1984/04
Relations
DirectionTypeEntry
ToAvailable add-on(s)DELETE GGMI
ToAvailable add-on(s)DEPURA ERROS
ToAvailable add-on(s)DEPURADOR FHL
ToAvailable add-on(s)DISASSEMBLER
ToAvailable add-on(s)ED-ART GGMI
ToAvailable add-on(s)LIST
ToAvailable add-on(s)RENUMERADOR GGMI
ToAvailable add-on(s)TRACE
ToAvailable add-on(s)MICRO BUG EXTRA
Tags / Members
TagTypeCategoryMember SeqLinks
Freeware (free but copyrighted)Copyright Status-
Ports
No ports recorded
Remakes
No remakes recorded
Scores
No scores recorded
Notes
TypeText
Known ErrorsBugfix provided by Einar Saukas: <UL><LI> Typing command N immediately followed by DELETE or NEW LINE will either corrupt screen or abort to BASIC, respectively. This problem is caused by printing the next input key without checking if it's printable. This is the original code: <PRE> 7D9E 2A 0E 40 LD HL,(400E) ; get PRINT AT position 7DA1 36 04 LD (HL),04 ; show cursor 7DA3 CD D3 78 CALL 78D3 ; read input key 7DA6 D7 RST 10 ; print key (even if not printable!) 7DA7 CD AA 78 CALL 78AA ; wait for key release 7DAA F5 PUSH AF ; save key 7DAB AF XOR A 7DAC D7 RST 10 ; print space 7DAD CD 52 7A CALL 7A52 ; read string 7DB0 B7 OR A 7DB1 CA 4A 7A JP Z,7A4A ; exit to main menu if empty string 7DB4 01 04 15 LD BC,1504 7DB7 CD A1 7A CALL 7AA1 ; parse numeric value 7DBA F1 POP AF ; restore key 7DBB EB EX DE,HL ; load numeric value into HL 7DBC FE 26 CP 26 ; key 'A'? 7DBE 20 03 JR NZ,7DC3 7DC0 22 36 79 LD (7936),HL ; update register pair AF 7DC3 FE 2D CP 2D ; key 'H'? 7DC5 20 03 JR NZ,7DCA 7DC7 22 38 79 LD (7938),HL ; update register pair HL 7DCA FE 29 CP 29 ; key 'D'? 7DCC 20 03 JR NZ,7DD1 7DCE 22 3A 79 LD (793A),HL ; update register pair DE 7DD1 FE 27 CP 27 ; key 'B'? 7DD3 20 03 JR NZ,7DD8 7DD5 22 3C 79 LD (793C),HL ; update register pair BC 7DD8 FE 33 CP 33 ; key 'N'? 7DDA 20 0C JR NZ,7DE8 7DDC 22 36 79 LD (7936),HL ; update register pair AF 7DDF 22 38 79 LD (7938),HL ; update register pair HL 7DE2 22 3A 79 LD (793A),HL ; update register pair DE 7DE5 22 3C 79 LD (793C),HL ; update register pair BC </PRE> To fix it, move the main part of this routine using command "O 7DAA,7DD3,7DAD" then use command "M" to make these changes: POKE 32166,203: POKE 32167,119: POKE 32168,40: POKE 32169,2: POKE 32170,62: POKE 32171,15: POKE 32177,153: POKE 32214,40: POKE 32215,13. It will produce this result: <PRE> 7D9E 2A 0E 40 LD HL,(400E) ; get PRINT AT position 7DA1 36 04 LD (HL),04 ; show cursor 7DA3 CD D3 78 CALL 78D3 ; read input key 7DA6 CB 77 BIT 6,A ; ** printable key? 7DA8 28 02 JR Z,7DAC ; ** if so, skip next instruction 7DAA 3E 0F LD A,0F ; ** otherwise replace key with '?' 7DAC D7 RST 10 ; print key 7DAD F5 PUSH AF ; save key 7DAE AF XOR A 7DAF D7 RST 10 ; print space 7DB0 CD 99 7A CALL 7A99 ; ** wait for key release, then read string 7DB3 B7 OR A 7DB4 CA 4A 7A JP Z,7A4A ; exit to main menu if empty string 7DB7 01 04 15 LD BC,1504 7DBA CD A1 7A CALL 7AA1 ; parse numeric value 7DBD F1 POP AF ; restore key 7DBE EB EX DE,HL ; load numeric value into HL 7DBF FE 26 CP 26 ; key 'A'? 7DC1 20 03 JR NZ,7DC6 7DC3 22 36 79 LD (7936),HL ; update register pair AF 7DC6 FE 2D CP 2D ; key 'H'? 7DC8 20 03 JR NZ,7DCD 7DCA 22 38 79 LD (7938),HL ; update register pair HL 7DCD FE 29 CP 29 ; key 'D'? 7DCF 20 03 JR NZ,7DD4 7DD1 22 3A 79 LD (793A),HL ; update register pair DE 7DD4 FE 27 CP 27 ; key 'B'? 7DD6 28 0D JR Z,7DE5 ; ** update register pair BC 7DD8 FE 33 CP 33 ; key 'N'? 7DDA 20 0C JR NZ,7DE8 7DDC 22 36 79 LD (7936),HL ; update register pair AF 7DDF 22 38 79 LD (7938),HL ; update register pair HL 7DE2 22 3A 79 LD (793A),HL ; update register pair DE 7DE5 22 3C 79 LD (793C),HL ; update register pair BC </PRE> </UL>
Aliases
No aliases
Licenses
No licenses linked
Web links
No web links
Files
No files linked