{-----------------------------------------------------------------------+ | | | Reset Gigatron (pseudo) hardware | | | +-----------------------------------------------------------------------} gcl0x { Setup video } [def { Setup video indirection table } $100 p= {videoTable} $800 q= {frame} [do >q, p. q++ q if>0loop] { Clear screen } \SYS_SetMemory_v2_54 _sysFn= {!!! Not in ROM v1 !!!} 32 \sysArgs1. {Color blue} $800 [do p= _sysArgs2= {Destination} 160 \sysArgs0. {Count} 54!! {SYS call} $100 p+ if>0loop] ret ] SetupVideo= [def {PrintStartupMessage} push [def `***`Gigatron`??K`*** #10 ``TTL`microcomputer`ROM`v4 {ROM`vN for versioned release ROMs} #0 ] Text= { Convert memory size into decimal text } {StartupMessage} 13+ p= {Position within StartupMessage for memory size} $2f2f Char= {Two ASCII counters, both starting at '0'-1} \memSize, 1- 255& 1+ {Number of pages as counted at boot} [do >Char++ 40- if>=0loop] 40+ {Count number of 10K chunks} [do =0loop] {Count number of 1K chunks} >Char, p. 0 Char= Pos, 8+ >Pos. else PrintChar!] loop] pop ret ] PrintStartupMessage= {-----------------------------------------------------------------------+ |} >\vLR++ ret { RAM page 3 | +-----------------------------------------------------------------------} *=$0300 { Print ASCII character (32..127) on screen in 5x8 pixels } [def {Map ASCII code to offset in font table} Char 82- [if<0 50+ i= \font32up else i= \font82up] fontData= {Select low or high page} i 2<< i+ {Multiply by 5} fontData+ fontData= {Add to page address to reach bitmap data for Char} {Draw 5 vertical slices: 5 using font data} $3f20 _sysArgs0= {Blue/White} Pos _sysArgs4= 6+ Pos= \SYS_VDrawBits_134 _sysFn= $fb i= [do fontData 0? 0loop] ret ] PrintChar= { Play a note on one channel High byte is channel, low byte is note (should be even) Reset the oscillators and channel variables } [def {SetupChannel} i= 255| 255^ $fa| p= {Pointer to channel struct} "ABC-"} { Load and start main program } \Main _sysArgs0= $200 _vLR= \SYS_Exec_88 _sysFn= 88!! {-----------------------------------------------------------------------+ | | +-----------------------------------------------------------------------}