; Author: Pawel Jablonski ; E-mail: pj@xirx.net ; WWW: xirx.net ; GIT: git.xirx.net ; ; License: You can use this code however you like ; but leave information about the original author. ; Code is free for non-commercial and commercial use. include io.asm ; Arguments: ; A - note ; No return external .xSpeakerSetNote: push A ; Set address low register mov 2, A call .xIOSetRegister ; Select note field mov 0, A call .xIOWrite ; Set speaker field register mov 11, A call .xIOSetRegister pop A ; Write note call .xIOWrite ret ; Arguments: ; A - time ; No return external .xSpeakerSetTime: push A ; Set address low register mov 2, A call .xIOSetRegister ; Select time field mov 1, A call .xIOWrite ; Set speaker field register mov 11, A call .xIOSetRegister pop A ; Write time call .xIOWrite ret ; Arguments: ; A - fill ; No return external .xSpeakerSetFill: push A ; Set address low register mov 2, A call .xIOSetRegister ; Select fill field mov 2, A call .xIOWrite ; Set speaker field register mov 11, A call .xIOSetRegister pop A ; Write fill call .xIOWriteLowHalf ret ; Arguments: ; A - volume ; No return external .xSpeakerSetVolume: push A ; Set address low register mov 2, A call .xIOSetRegister ; Select volume field mov 3, A call .xIOWrite ; Set speaker field register mov 11, A call .xIOSetRegister pop A ; Write volume call .xIOWriteLowHalf ret ; No arguments ; No return external .xSpeakerClear: push A ; Set speaker command register mov 12, A call .xIOSetRegister ; Write clear command mov 0, A call .xIOWriteLowHalf pop A ret ; No arguments ; No return external .xSpeakerAddNote: push A ; IO transmission mov 12, A call .xIOSetRegister ; Write add note command mov 1, A call .xIOWriteLowHalf pop A ret