diff --git a/.DS_Store b/.DS_Store index 814c645..9669bcf 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/vocpopuli/vocpopuli.s b/vocpopuli/vocpopuli.s new file mode 100644 index 0000000..746103f --- /dev/null +++ b/vocpopuli/vocpopuli.s @@ -0,0 +1,416 @@ +* +* VOC Populi +* The features of your VOC +* +* (c) 2022, Brutal Deluxe Software +* Visit brutaldeluxe.fr +* + + xc + xc + mx %00 + + rel + typ S16 + dsk VOCPopuli.l + lst off + +*---------- + +VDNoVideoDevice = $2110 +VDAlreadyStarted = $2111 + +vdVideoOverlay = 1 ; 1st feature +vdTextMonoOver = 20 ; Last feature + +vdTrue = $01 +vdFalse = $00 +vdAvail = $01 +vdNotAvail = $00 +vdYes = $01 +vdNo = $00 +vdOn = $01 +vdOff = $00 +vdNil = $00 + +vdNone = $00 +vdNTSC = $01 +vdPAL = $02 +vdSECAM = $04 ; doc says $03 +vdSNTSC = $08 +vdSPAL = $10 +vdSSECAM = $20 +vdRGB60 = $40 +vdRGB50 = $80 + +dpTABLE = $00 ; DP index of the VOC table + +*---------- + + use 4/Int.Macs + use 4/Locator.Macs + use 4/Mem.Macs + use 4/Misc.Macs + use 4/Text.Macs + use 4/Util.Macs + use 4/Video.Macs + +GSOS = $e100a8 + +*---------- + + phk + plb + + clc + xce + rep #$30 + + _TLStartUp + pha + _MMStartUp + pla + sta appID + ora #$0100 + sta myID + + _MTStartUp + _TextStartUp + + _IMStartUp + +*---------- + + PushWord #$00FF + PushWord #$0080 + _SetInGlobals + PushWord #$00FF + PushWord #$0080 + _SetOutGlobals + PushWord #$00FF + PushWord #$0080 + _SetErrGlobals + + PushWord #0 + PushLong #3 + _SetInputDevice + PushWord #0 + PushLong #3 + _SetOutputDevice + PushWord #0 + PushLong #3 + _SetErrorDevice + + PushWord #0 + _InitTextDev + PushWord #1 + _InitTextDev + PushWord #2 + _InitTextDev + +*---------------------------- +* DO WE HAVE A VOC? +*---------------------------- + + PushWord #33 + PushWord #0 + _LoadOneTool + bcc okTOOL + + PushLong #strTOOL + bra theEND + +okTOOL _VDStartUp + bcc mainMENU + cmp #VDAlreadyStarted + beq mainMENU + + PushLong #strNOVOC + +theEND _WriteCString + PushLong #strINSTALL + _WriteCString + jsr waitKEY + jmp doQUIT + +*---------------------------- +* MAIN MENU +*---------------------------- + +mainMENU + PushWord #$0c ; home + _WriteChar + + PushLong #strMAINMENU + _WriteCString + + jsr waitKEY + cmp #"Q" + beq doQUIT + cmp #"q" + beq doQUIT + cmp #"1" + bne mainMENU + + jmp showMENU + +*---------------------------- +* QUIT PROGRAM +*---------------------------- + +doQUIT _IMShutDown + _TextShutDown + _MTShutDown + + PushWord myID + _DisposeAll + + PushWord appID + _MMShutDown + + _TLShutDown + + jsl GSOS + dw $2029 + adrl proQUIT + + brk $bd + +*---------------------------- +* ASCII DATA +*---------------------------- + +strTOOL asc 0d'Video Overlay Toolset not found!'00 +strNOVOC asc 0d'No Video Overlay card found!'00 +strINSTALL asc 0d'Please install it and come back here...'0d00 + +strMAINMENU asc 0d'VOC Populi'0d + asc '(c) 2022, Brutal Deluxe Software'0d + asc ' 1. Show VOC Features'0d + asc ' Q. Quit'0d00 + +*---------------------------- +* SEARCH MENU +*---------------------------- + +showMENU + +* 1. Get all the features + + lda #vdVideoOverlay +]lp pha ; push index + pea $0000 + pha + _VDGetFeatures + ply ; get value + + lda 1,s ; get index + asl + tax + sty dpTABLE,x ; save value + + pla ; next index + inc + cmp #vdTextMonoOver+1 + bcc ]lp + +* 2. Show the results + + lda #vdVideoOverlay ; from 1 +]lp pha + asl + tax + pea ^tblSEL + lda tblSEL,x + pha + _WriteCString + + pla + pha + asl + tax + lda dpTABLE,x ; get value + jsr (cmdSEL,x) ; show value + + pla ; next index + inc + cmp #vdTextMonoOver+1 ; to 20 + bcc ]lp + +* 3. Wait for key + + jsr waitKEY + jmp mainMENU ; loop + +*--- Data + +tblSEL da strSEL1 + da strSEL1,strSEL2,strSEL3,strSEL4,strSEL5 + da strSEL6,strSEL7,strSEL8,strSEL9,strSEL10 + da strSEL11,strSEL12,strSEL13,strSEL14,strSEL15 + da strSEL16,strSEL17,strSEL18,strSEL19,strSEL20 + +strSEL1 asc 0d'Video Overlay : '00 +strSEL2 asc 0d'Frame grabber : '00 +strSEL3 asc 0d'Input video standards : '00 +strSEL4 asc 0d'Output video standards : '00 +strSEL5 asc 0d'Key dissolve levels : '00 +strSEL6 asc 0d'Non-key dissolve levels : '00 +strSEL7 asc 0d'Adjust save side effect : '00 +strSEL8 asc 0d'Key color bits of significance : '00 +strSEL9 asc 0d'Input hue adjustment : '00 +strSEL10 asc 0d'Input saturation adjustment : '00 +strSEL11 asc 0d'Input contrast adjustment : '00 +strSEL12 asc 0d'Input brightness adjustment : '00 +strSEL13 asc 0d'Output setup : '00 +strSEL14 asc 0d'Output chroma filter : '00 +strSEL15 asc 0d'Pass external VBL interval : '00 +strSEL16 asc 0d'Enhanced dissolve mode : '00 +strSEL17 asc 0d'Scan line interrupts support : '00 +strSEL18 asc 0d'Graphics generator disability : '00 +strSEL19 asc 0d'Dual graphics display support : '00 +strSEL20 asc 0d'Text monochrome override : '00 + +cmdSEL da cmdAVAIL + da cmdAVAIL,cmdAVAIL,cmdSTDS,cmdSTDS,cmdNUM + da cmdNUM,cmdYESNO,cmdNUM,cmdAVAIL,cmdAVAIL + da cmdAVAIL,cmdAVAIL,cmdAVAIL,cmdAVAIL,cmdAVAIL + da cmdAVAIL,cmdAVAIL,cmdAVAIL,cmdAVAIL,cmdAVAIL + +*----------------------------------- + +cmdAVAIL cmp #vdAvail + bne cmdNOTAVAIL + + PushLong #strAVAIL + _WriteCString + rts + +cmdNOTAVAIL cmp #vdNotAvail + bne cmdAVAIL99 + + PushLong #strNOTAVAIL + _WriteCString + +cmdAVAIL99 rts + +*--- + +strAVAIL asc 'Available'00 +strNOTAVAIL asc 'Not available'00 + +*----------------------------------- + +cmdSTDS pha + jsr cmdNUM + pla + + ldx #0 +]lp cmp tblSTDSVAL,x + beq cmdSTDSOK + + inx + inx + cpx #9*2 + bcc ]lp + rts + +cmdSTDSOK pea ^tblSTDSSTR + lda tblSTDSSTR,x + pha + _WriteCString + rts + +*--- + +tblSTDSVAL dw vdNone,vdNTSC,vdPAL,vdSECAM,vdSNTSC + dw vdSPAL,vdSSECAM,vdRGB60,vdRGB50 + +tblSTDSSTR da strSTDS1,strSTDS2,strSTDS3,strSTDS4,strSTDS5 + da strSTDS6,strSTDS7,strSTDS8,strSTDS9 + +strSTDS1 asc ' None'00 +strSTDS2 asc ' NTSC'00 +strSTDS3 asc ' PAL'00 +strSTDS4 asc ' SECAM'00 +strSTDS5 asc ' SNTSC'00 +strSTDS6 asc ' SPAL'00 +strSTDS7 asc ' SSECAM'00 +strSTDS8 asc ' RGB60'00 +strSTDS9 asc ' RGB50'00 + +*----------------------------------- + +cmdYESNO cmp #vdYes + bne cmdNO + + PushLong #strYES + _WriteCString + rts + +cmdNO cmp #vdNo + bne cmdYESNO99 + + PushLong #strNO + _WriteCString + +cmdYESNO99 rts + +*--- + +strYES asc 'Yes'00 +strNO asc 'No'00 + +*----------------------------------- + +cmdNUM pha ; from a word to a string + pha + pha + _HexIt + PullLong strNUM + + PushLong #strNUM + _WriteCString + rts + +*--- + +strNUM asc '0000'00 + +*----------------------------------- +* COMMANDES +*----------------------------------- + +waitKEY PushWord #$0d + _WriteChar + + PushWord #0 + PushWord #0 ; don't echo char + _ReadChar + + lda 1,s ; check CR + and #$ff ; of typed + sta 1,s ; in char + cmp #$8d + beq waitKEY9 + + PushWord #$0d ; return + _WriteChar + +waitKEY9 pla ; restore entered char + rts + +*---------------------------- +* DATA +*---------------------------- + +proQUIT dw 2 ; pcount + ds 4 ; pathname + ds 2 ; flags + +*--- + +myID ds 2 +appID ds 2 + +*--- End of code \ No newline at end of file