<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.intellivision.us/index.php?action=history&amp;feed=atom&amp;title=Saynum16.asm</id>
		<title>Saynum16.asm - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.intellivision.us/index.php?action=history&amp;feed=atom&amp;title=Saynum16.asm"/>
		<link rel="alternate" type="text/html" href="http://wiki.intellivision.us/index.php?title=Saynum16.asm&amp;action=history"/>
		<updated>2026-04-04T09:41:31Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://wiki.intellivision.us/index.php?title=Saynum16.asm&amp;diff=14904&amp;oldid=prev</id>
		<title>Mr z: Protected &quot;Saynum16.asm&quot; ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite))</title>
		<link rel="alternate" type="text/html" href="http://wiki.intellivision.us/index.php?title=Saynum16.asm&amp;diff=14904&amp;oldid=prev"/>
				<updated>2010-12-04T09:21:24Z</updated>
		
		<summary type="html">&lt;p&gt;Protected &amp;quot;&lt;a href=&quot;/index.php/Saynum16.asm&quot; title=&quot;Saynum16.asm&quot;&gt;Saynum16.asm&lt;/a&gt;&amp;quot; ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite))&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 09:21, 4 December 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Mr z</name></author>	</entry>

	<entry>
		<id>http://wiki.intellivision.us/index.php?title=Saynum16.asm&amp;diff=3045&amp;oldid=prev</id>
		<title>Mr z: /* Notes */</title>
		<link rel="alternate" type="text/html" href="http://wiki.intellivision.us/index.php?title=Saynum16.asm&amp;diff=3045&amp;oldid=prev"/>
				<updated>2008-09-13T19:52:07Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Notes&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 19:52, 13 September 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l14&quot; &gt;Line 14:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 14:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Notes =&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Notes =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This function requires the Intellivoice driver in [[ivoice.asm]].&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This function requires the Intellivoice driver in [[ivoice&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;.asm]], and the symbols defined in [[resrom&lt;/ins&gt;.asm]].&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;There's an alternate version of this code that speaks numbers using the SP0256-AL2 allophones.&amp;#160; (Link to be added.)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;There's an alternate version of this code that speaks numbers using the SP0256-AL2 allophones.&amp;#160; (Link to be added.)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Mr z</name></author>	</entry>

	<entry>
		<id>http://wiki.intellivision.us/index.php?title=Saynum16.asm&amp;diff=3039&amp;oldid=prev</id>
		<title>Mr z at 06:22, 12 September 2008</title>
		<link rel="alternate" type="text/html" href="http://wiki.intellivision.us/index.php?title=Saynum16.asm&amp;diff=3039&amp;oldid=prev"/>
				<updated>2008-09-12T06:22:52Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:Programming]] [[Category:Library]]&lt;br /&gt;
&lt;br /&gt;
= Functions Provided =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;CENTER&amp;gt;&amp;lt;TABLE BORDER&amp;gt;&amp;lt;TR&amp;gt;&amp;lt;TH&amp;gt;Entry point&amp;lt;/TH&amp;gt;&amp;lt;TH&amp;gt;Function provided&amp;lt;/TH&amp;gt;&amp;lt;TH&amp;gt;Notes&amp;lt;/TH&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;SAYNUM16&amp;lt;/TD&amp;gt;&amp;lt;TD&amp;gt;Speak a 16-bit decimal number via the Intellivoice&amp;lt;/TD&amp;gt;&amp;lt;TD&amp;gt;Queues the number fragments using [[ivoice.asm|IV_PLAYW]].  The call will block if the voice queue lacks enough room to queue the number.  Uses [[RESROM]] samples to say the number.&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&amp;lt;/TABLE&amp;gt;&amp;lt;/CENTER&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
See source code below for calling convention.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Examples =&lt;br /&gt;
&lt;br /&gt;
(todo... please contribute!)&lt;br /&gt;
&lt;br /&gt;
= Notes =&lt;br /&gt;
&lt;br /&gt;
This function requires the Intellivoice driver in [[ivoice.asm]].  &lt;br /&gt;
&lt;br /&gt;
There's an alternate version of this code that speaks numbers using the SP0256-AL2 allophones.  (Link to be added.)&lt;br /&gt;
&lt;br /&gt;
= Source Code =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
;* ======================================================================== *;&lt;br /&gt;
;*  These routines are placed into the public domain by their author.  All  *;&lt;br /&gt;
;*  copyright rights are hereby relinquished on the routines and data in    *;&lt;br /&gt;
;*  this file.  -- Joseph Zbiciak, 2008                                     *;&lt;br /&gt;
;* ======================================================================== *;&lt;br /&gt;
&lt;br /&gt;
;; ======================================================================== ;;&lt;br /&gt;
;;  NAME                                                                    ;;&lt;br /&gt;
;;      IV_SAYNUM16 Say a 16-bit unsigned number using RESROM digits        ;;&lt;br /&gt;
;;                                                                          ;;&lt;br /&gt;
;;  AUTHOR                                                                  ;;&lt;br /&gt;
;;      Joseph Zbiciak &amp;lt;intvnut AT gmail.com&amp;gt;                               ;;&lt;br /&gt;
;;                                                                          ;;&lt;br /&gt;
;;  REVISION HISTORY                                                        ;;&lt;br /&gt;
;;      16-Sep-2002 Initial revision . . . . . . . . . . .  J. Zbiciak      ;;&lt;br /&gt;
;;                                                                          ;;&lt;br /&gt;
;;  INPUTS for IV_INIT                                                      ;;&lt;br /&gt;
;;      R0      Number to &amp;quot;speak&amp;quot;                                           ;;&lt;br /&gt;
;;      R5      Return address                                              ;;&lt;br /&gt;
;;                                                                          ;;&lt;br /&gt;
;;  OUTPUTS                                                                 ;;&lt;br /&gt;
;;                                                                          ;;&lt;br /&gt;
;;  DESCRIPTION                                                             ;;&lt;br /&gt;
;;      &amp;quot;Says&amp;quot; a 16-bit number using IV_PLAYW to queue up the phrase.       ;;&lt;br /&gt;
;;      Because the number may be built from several segments, it could     ;;&lt;br /&gt;
;;      easily eat up the queue.  I believe the longest number will take    ;;&lt;br /&gt;
;;      7 queue entries -- that is, fill the queue.  Thus, this code        ;;&lt;br /&gt;
;;      could block, waiting for slots in the queue.                        ;;&lt;br /&gt;
;; ======================================================================== ;;&lt;br /&gt;
&lt;br /&gt;
IV_SAYNUM16 PROC&lt;br /&gt;
            PSHR    R5&lt;br /&gt;
&lt;br /&gt;
            TSTR    R0&lt;br /&gt;
            BEQ     @@zero          ; Special case:  Just say &amp;quot;zero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
            ;; ------------------------------------------------------------ ;;&lt;br /&gt;
            ;;  First, try to pull off 'thousands'.  We call ourselves      ;;&lt;br /&gt;
            ;;  recursively to play the the number of thousands.            ;;&lt;br /&gt;
            ;; ------------------------------------------------------------ ;;&lt;br /&gt;
            CLRR    R1&lt;br /&gt;
@@thloop:   INCR    R1&lt;br /&gt;
            SUBI    #1000,  R0&lt;br /&gt;
            BC      @@thloop&lt;br /&gt;
&lt;br /&gt;
            ADDI    #1000,  R0&lt;br /&gt;
            PSHR    R0&lt;br /&gt;
            DECR    R1&lt;br /&gt;
            BEQ     @@no_thousand&lt;br /&gt;
&lt;br /&gt;
            CALL    IV_SAYNUM16.recurse&lt;br /&gt;
&lt;br /&gt;
            CALL    IV_PLAYW&lt;br /&gt;
            DECLE   RESROM.thousand&lt;br /&gt;
            &lt;br /&gt;
@@no_thousand&lt;br /&gt;
            PULR    R1&lt;br /&gt;
&lt;br /&gt;
            ;; ------------------------------------------------------------ ;;&lt;br /&gt;
            ;;  Now try to play hundreds.                                   ;;&lt;br /&gt;
            ;; ------------------------------------------------------------ ;;&lt;br /&gt;
            MVII    #RESROM.zero-1, R0&lt;br /&gt;
            CMPI    #100,   R1&lt;br /&gt;
            BNC     @@no_hundred&lt;br /&gt;
&lt;br /&gt;
@@hloop:    INCR    R0&lt;br /&gt;
            SUBI    #100,   R1&lt;br /&gt;
            BC      @@hloop&lt;br /&gt;
            ADDI    #100,   R1&lt;br /&gt;
&lt;br /&gt;
            PSHR    R1&lt;br /&gt;
&lt;br /&gt;
            CALL    IV_PLAYW.1&lt;br /&gt;
&lt;br /&gt;
            CALL    IV_PLAYW&lt;br /&gt;
            DECLE   RESROM.hundred&lt;br /&gt;
&lt;br /&gt;
            PULR    R1&lt;br /&gt;
            B       @@notrecurse    ; skip &amp;quot;PSHR R5&amp;quot;&lt;br /&gt;
@@recurse:  PSHR    R5              ; recursive entry point for 'thousand'&lt;br /&gt;
&lt;br /&gt;
@@no_hundred:&lt;br /&gt;
@@notrecurse:&lt;br /&gt;
            MOVR    R1,     R0&lt;br /&gt;
            BEQ     @@leave&lt;br /&gt;
&lt;br /&gt;
            SUBI    #20,    R1&lt;br /&gt;
            BNC     @@teens&lt;br /&gt;
&lt;br /&gt;
            MVII    #RESROM.twenty-1, R0&lt;br /&gt;
@@tyloop    INCR    R0&lt;br /&gt;
            SUBI    #10,    R1&lt;br /&gt;
            BC      @@tyloop&lt;br /&gt;
            ADDI    #10,    R1&lt;br /&gt;
&lt;br /&gt;
            PSHR    R1&lt;br /&gt;
            CALL    IV_PLAYW.1&lt;br /&gt;
&lt;br /&gt;
            PULR    R0&lt;br /&gt;
            TSTR    R0&lt;br /&gt;
            BEQ     @@leave&lt;br /&gt;
&lt;br /&gt;
@@teens:&lt;br /&gt;
@@zero:     ADDI    #RESROM.zero, R0&lt;br /&gt;
&lt;br /&gt;
            CALL    IV_PLAYW.1&lt;br /&gt;
&lt;br /&gt;
@@leave     PULR    PC&lt;br /&gt;
            ENDP&lt;br /&gt;
&lt;br /&gt;
;; ======================================================================== ;;&lt;br /&gt;
;;  End of File:  saynum16.asm                                              ;;&lt;br /&gt;
;; ======================================================================== ;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mr z</name></author>	</entry>

	</feed>