The buzzer is on PC7 which is the C01 counter output.
If I send a $07 bel character the ap2000 will beep, executing the routine at $1057.
debugger commands to make my trace log: WP 8000,1F00,w,1,{tracelog " WRITE addr=%x data=%x \n", wpaddr,wpdata;g} WP 8000,1F00,r,1,{tracelog " READ addr=%x data=%x \n", wpaddr,wpdata;g} WP FF00,100,w,1,{tracelog " WRITE addr=%x data=%x \n", wpaddr,wpdata;g} WP FF00,100,r,1,{tracelog " READ addr=%x data=%x \n", wpaddr,wpdata;g} WP 0000,8000,r,1,{tracelog " READROM addr=%x data=%x \n", wpaddr,wpdata;g} trace TRACEbeep.TXT,0,{tracelog "A=%02X EA=%04X HL=%04X DE=%04X BC=%04X SKIP=%1X | ",a,ea,hl,de,bc,(psw&0x20)!=0} 223 A=00 EA=9000 HL=13DA DE=8013 BC=FB00 SKIP=0 | 135C: ACI H,$00 224 A=00 EA=9000 HL=13DA DE=8013 BC=FB00 SKIP=0 | 135F: LDEAX (HL) 225 READROM addr=13DA data=57 226 READROM addr=13DB data=10 227 A=00 EA=1057 HL=13DA DE=8013 BC=FB00 SKIP=0 | 1361: JEA 228 A=00 EA=1057 HL=13DA DE=8013 BC=FB00 SKIP=0 | 1057: LXI HL,$0000 229 A=00 EA=1057 HL=0000 DE=8013 BC=FB00 SKIP=0 | 105A: ORIW VV:10,$04 230 READ addr=9810 data=0 231 WRITE addr=9810 data=4 232 A=00 EA=1057 HL=0000 DE=8013 BC=FB00 SKIP=0 | 105D: PUSH HL 233 A=00 EA=1057 HL=0000 DE=8013 BC=FB00 SKIP=0 | 105E: CALL $7BB1 234 A=00 EA=1057 HL=0000 DE=8013 BC=FB00 SKIP=0 | 7BB1: ONIW VV:0F,$C0 235 READ addr=980F data=0 236 A=00 EA=1057 HL=0000 DE=8013 BC=FB00 SKIP=0 | 7BB4: OFFIW VV:01,$30 237 READ addr=9801 data=8 238 A=00 EA=1057 HL=0000 DE=8013 BC=FB00 SKIP=1 | 7BB7: JR $7BA9 239 A=00 EA=1057 HL=0000 DE=8013 BC=FB00 SKIP=0 | 7BB8: RET 240 A=00 EA=1057 HL=0000 DE=8013 BC=FB00 SKIP=0 | 1061: POP HL 241 A=00 EA=1057 HL=0000 DE=8013 BC=FB00 SKIP=0 | 1062: DMOV EA,HL 242 A=00 EA=0000 HL=0000 DE=8013 BC=FB00 SKIP=0 | 1063: DMOV BC,EA 243 A=00 EA=0000 HL=0000 DE=8013 BC=0000 SKIP=0 | 1064: PUSH BC 244 A=00 EA=0000 HL=0000 DE=8013 BC=0000 SKIP=0 | 1065: PUSH BC 245 A=00 EA=0000 HL=0000 DE=8013 BC=0000 SKIP=0 | 1066: CALL $1084 246 A=00 EA=0000 HL=0000 DE=8013 BC=0000 SKIP=0 | 1084: MVI A,$00 247 A=00 EA=0000 HL=0000 DE=8013 BC=0000 SKIP=0 | 1086: MOV ETMM,A 248 A=00 EA=0000 HL=0000 DE=8013 BC=0000 SKIP=0 | 1088: MVI EOM,$B0 249 A=00 EA=0000 HL=0000 DE=8013 BC=0000 SKIP=0 | 108B: LXI EA,$008C 250 A=00 EA=008C HL=0000 DE=8013 BC=0000 SKIP=0 | 108E: DMOV ETM1,EA 251 A=00 EA=008C HL=0000 DE=8013 BC=0000 SKIP=0 | 1090: MVI A,$0C 252 A=0C EA=008C HL=0000 DE=8013 BC=0000 SKIP=0 | 1092: MOV ETMM,A 253 A=0C EA=008C HL=0000 DE=8013 BC=0000 SKIP=0 | 1094: MVI C,$3C 254 A=0C EA=008C HL=0000 DE=8013 BC=003C SKIP=0 | 1096: CALT ($0080) ... 341 342 (loops for 15827 instructions) 343 344 A=00 EA=0001 HL=0000 DE=8013 BC=FFFF SKIP=0 | 0030: JR $003D 345 A=00 EA=0001 HL=0000 DE=8013 BC=FFFF SKIP=0 | 003D: POP BC 346 A=00 EA=0001 HL=0000 DE=8013 BC=003C SKIP=0 | 003E: POP VA 347 A=0C EA=0001 HL=0000 DE=8013 BC=003C SKIP=0 | 003F: POP EA 348 A=0C EA=008C HL=0000 DE=8013 BC=003C SKIP=0 | 0040: RET 349 A=0C EA=008C HL=0000 DE=8013 BC=003C SKIP=0 | 1097: MVI EOM,$99 350 A=0C EA=008C HL=0000 DE=8013 BC=003C SKIP=0 | 109A: RET
the action looks to happen with putting EOM=B0, ETM1=8C AND ETMM=0C
to shut it off it puts EOM=99
so for kicks if you run the ap2000 in the debugger and the ap2000 is waiting for input you can make it beep with the following debugger command line:
etm1=8c;eom=b0;etmm=0c
and to shut it off
eom=99
before you do this, you may want to turn your speakers down, it's really a terrible sound. heh heh
No comments:
Post a Comment