From b2da3c705ce587bd40b95240ee185af30a5b4514 Mon Sep 17 00:00:00 2001 From: Bobbi Webber-Manners Date: Fri, 25 Nov 2022 19:19:09 -0500 Subject: [PATCH] Work-in-progress, noise channel for Ensoniq. --- applecorn.po | Bin 819200 -> 819200 bytes auxmem.init.s | 2 +- mainmem.ensq.s | 112 ++++++++++++++++++++++++++++++++++++++++++++++--- 3 files changed, 108 insertions(+), 6 deletions(-) diff --git a/applecorn.po b/applecorn.po index cc88021af39c7167a3d4627fe6207890e7b99187..64cdb7a32b6248ecd9fdb1cc096816fcf672b2df 100644 GIT binary patch delta 702 zcmZvaPiPZC6vk&ao21>OH8u$GqJ#J^(AZGahN_Sr)HMW51y=}7vqIKP6`?nE4`vjz zN+AZC!+Mf+sU;f-Rsx0`)Cd+zE(Qf#6AuXmi3dx>LQA|j+i2;*IlS-py*Kmt4ukP9 z#={FDGjIe%1K^Iw=>&KcKm!W5nBx?4+jDB5@WR|@rKrMdJ33E&%TRP}_VOWR{{~&Z z&&xa|^R&#HWS)_Ev&>s$-YWAwGT-}(XX9hki6T!L3#)@wWi9#E20YY0~!O9F>Oxm>3Xc0 zh=2M$T5)U$@On&3%&CBk1g;i-91;5j0-FTbI z+oX00`#Cq$W>gx}Dy3m#kK2^f{bWBAsNl`421!o?Dws6XFNF;$tBfJ)RwAi`gj#rK z6p6SUQ95M&FOAd@R^Yv>H(WPEVom`0(`D~(frH~>aczb5(H59WMs%bM)>+S}7gZb` z-KSZh7YXoPTu-F>-{&7hQja1Kyd8TO5x8&`uE!;4MTF@pk#vALYZgpnm(*GPEtdRAU`M&`|Xc{1E5 zGcw(t6skI1;XBjqrm(g!#5hyh+cTzf zEmdP=-p;p=D@H;yIK?L|-DB+}&krmaK5;1-KGo?U4ztgi6rXk|^K^>O{PgLQuW>D6 zdYm%d{5n?#h+cS|E3Up`5ks%-ffo-NF8o*-0A?`&Suy=O3=db{=+_03DgAmtlA&Lp z;o+i(3%C?sr7U1rskDeiAueUnk_8+Pe#0VWAb;M=_)`Mk6BL|5G7LbO1dm%$eUDQ- zR_tU>Td|Ts;cg00FayX-U9nOD#H)XmQWdq*0U`l3w*k&t0B0S5u&RD#B;1NZHmC~7 zgBb)g=NC{KW)zTfL!mJ-TO#*y%Blp0wKfL~ekXV+JV^nvG$(NK_u3rjvpX=yetXtU zE=?x3&AqL$E7PaXyv?N>aX9^yz^|1Si`W$orza?cq_3>+ER?5k#Y0Rd2Ky4)#l z|7CZ$-c8%d%CWul6!#Ct?UrY_%b6w%Fj;QjaE{wALzJP8m6L%%fPs@Cf0GKsV+ICL MV%aWi&hyp-0IsV1F8}}l diff --git a/auxmem.init.s b/auxmem.init.s index ec2e7b9..b059093 100644 --- a/auxmem.init.s +++ b/auxmem.init.s @@ -290,7 +290,7 @@ BYTE00 BEQ BYTE00A ; OSBYTE 0,0 - generate error RTS ; %000x1xxx host type, 'A'pple BYTE00A BRK DB $F7 -HELLO ASC 'Applecorn MOS 2022-11-24' +HELLO ASC 'Applecorn MOS 2022-11-25' DB $00 ; Unify MOS messages * TO DO: Move into RAM GSSPEED DB $00 ; $80 if GS is fast, $00 for slow diff --git a/mainmem.ensq.s b/mainmem.ensq.s index c05b7a6..440d36d 100644 --- a/mainmem.ensq.s +++ b/mainmem.ensq.s @@ -20,24 +20,81 @@ ENSQINIT LDX #3 DEX BNE :L0 +* One cycle of square wave for 256 samples +* Starts at address $0000 in DOC RAM LDA ENSQSNDCTL ; Get settings ORA #$60 ; DOC RAM, autoincrement on STA ENSQSNDCTL ; Set it LDA #$00 STA ENSQADDRL ; DOC RAM addr $0000 STA ENSQADDRH ; DOC RAM addr $0000 - LDA #120 ; High value of square wave + LDA #210 ; High value of square wave LDX #$00 :L1 STA ENSQSNDDAT ; 128 cycles of high value INX CPX #128 BNE :L1 - LDA #80 ; Low value of square wave + LDA #40 ; Low value of square wave :L2 STA ENSQSNDDAT ; 128 cycles of low value INX CPX #0 BNE :L2 +* One cycle of pulse wave for 256 samples +* Starts at $0100 in DOC RAM + LDA #210 ; High value of square wave + LDX #$00 +:L3 STA ENSQSNDDAT ; 128 cycles of high value + INX + CPX #128 + BNE :L3 + LDA #40 ; Low value of square wave +:L4 STA ENSQSNDDAT ; 128 cycles of low value + INX + CPX #0 + BNE :L4 + +* Random waveform for 256 samples +* Starts at $0200 in DOC RAM + LDY #$00 +:L5 LDA $E000,Y ; Read ROM code as 'random' data + BNE :S1 ; Filter out zeros + LDA #$01 ; Change 0 -> 1 +:S1 STA ENSQSNDDAT + INY + CPY #0 + BNE :L5 + +* One cycle of pulse wave for 4096 samples +** Starts at address $1000 in DOC RAM +* LDA ENSQSNDCTL ; Get settings +* ORA #$60 ; DOC RAM, autoincrement on +* STA ENSQSNDCTL ; Set it +* LDA #$00 +* STA ENSQADDRL ; DOC RAM addr $1000 +* LDA #$10 +* STA ENSQADDRH ; DOC RAM addr $1000 +* LDA #210 ; High value of pulse wave +* LDX #$00 +*:L3 STA ENSQSNDDAT ; 128 cycles of high value +* INX +* CPX #128 +* BNE :L3 +* LDA #40 ; Low value of pulse wave +*:L4 STA ENSQSNDDAT ; 128 cycles of low value +* INX +* CPX #0 +* BNE :L4 +* LDY #$00 +*:L6 LDX #$00 +*:L5 STA ENSQSNDDAT ; 256 cycles of low value +* INX +* CPX #0 +* BNE :L5 +* INY +* CPY #16 ; Do it 15 times +* BNE :L6 + LDA #$5C ; GS IRQ.SOUND initialization STAL $E1002C LDA #