;********************************************* ; ; Note from Randy ; TISQ is a times square type display for vdm ; will work on vti ; After it clears screen, type any message up ; to 255 characters in length and hit ; carriage return.After message is running, ; hitting other keys will change speed of ; display.A ctrl 'C' will stop display and ; allow you to enter new message. ; ;********************************************** ; ; ; SIGN TIMES SQUARE LETTER DISPLAY ON VDM ; ; 6/30/77 ; ; VDMSCR EQU 0E000H ; ; ORG 100H SIGN: LXI SP,1000H MVI A, 14Q CALL TTYO LXI H,SBUF MVI A,'?' CALL TTYO INPC: CALL TTYI MOV M,A INX H CPI 15Q JNZ INPC MVI A,14Q CALL TTYO LXI H,VDMSCR MVI M,40Q TISP: LXI H,SBUF TISQ: MOV A,M CPI 15Q JZ TISP INX H SUI 40Q JC TISQ CPI 100Q JNC TISQ PUSH H MOV E,A MVI D,0 LXI H,ROMT DAD D DAD D DAD D DAD D DAD D MVI B,5 COL: CALL SHFT MOV A,M PUSH H LXI H,VDMSCR-5 LXI D,060 MVI C,8 NXBT: RAL PUSH PSW JNC NDOT MVI A, 240Q CALL DOT JMP BITD NDOT: MVI A,40Q CALL DOT BITD: POP PSW DCR C JNZ NXBT POP H INX H DCR B JNZ COL CALL SHFT CALL SHFT POP H JMP TISQ DOT: MOV M,A INX H MOV M,A INX H MOV M,A INX H MOV M,A INX H MOV M,A DAD D MOV M,A INX H MOV M,A INX H MOV M,A INX H MOV M,A INX H MOV M,A DAD D RET SHFT: PUSH H PUSH D PUSH B PUSH PSW DLY: LXI D,10*256 DCX D MOV A,D ORA E JNZ DLY+3 LXI H,VDMSCR+64 MOV D,H MOV E,L LXI B,5 SHFZ: DAD B SHFU: MOV A,M STAX D INX D INX H MOV A,L ANI 77Q JNZ SHFU MVI A, 5 XCHG SHFV: MVI M,' ' INX H DCR A JNZ SHFV MOV A,H CPI VDMSCR/256+4 JNZ SHFZ CALL CSTS ANI 0000$0001B JZ NOCH CALL TTYI CPI 3 JZ SIGN SUI '0' JC NOCH CPI '9'+1 JNC NOCH RAL STA DLY+2 NOCH: POP PSW POP B POP D POP H RET ; TTYI: PUSH H! PUSH D! PUSH B MVI C,1 CALL 5 POP B! POP D! POP H RET ; ; TTYO: PUSH H! PUSH D! PUSH B PUSH PSW MOV E,A MVI C,2 CALL 5 POP PSW POP B! POP D! POP H RET ; ; CSTS: PUSH H! PUSH D! PUSH B MVI C,11 CALL 5 POP B! POP D! POP H RET ROMT: DB 0Q, 0Q, 0Q, 0Q, 0Q ;SPACE DB 0Q, 0Q, 175Q, 0Q, 0Q ; DB 0Q, 160Q, 0Q, 160Q, 0Q ;" DB 24Q, 177Q, 24Q, 177Q, 24Q ;# DB 22Q, 52Q, 177Q, 52Q, 44Q ;$ DB 142Q, 144Q, 10Q, 23Q, 43Q ;% DB 66Q, 111Q, 65Q, 2Q, 5Q ;& DB 0Q, 0Q, 160Q, 0Q, 0Q ;' DB 34Q, 42Q, 101Q, 0Q, 0Q ;( DB 0Q, 0Q, 101Q, 42Q, 34Q ;) DB 42Q, 24Q, 177Q, 24Q, 42Q ;* DB 10Q, 10Q, 76Q, 10Q, 10Q ;+ DB 0Q, 1Q, 6Q, 0Q, 0Q ;Q, DB 10Q, 10Q, 10Q, 10Q, 10Q ;- DB 0Q, 0Q, 1Q, 0Q, 0Q ;. DB 2Q, 4Q, 10Q, 20Q, 40Q ;; DB 76Q, 105Q, 111Q, 121Q, 76Q ;0 DB 0Q, 41Q, 177Q, 1Q, 0Q ;1 DB 43Q, 105Q, 111Q, 111Q, 61Q ;2 DB 102Q, 101Q, 111Q, 131Q, 146Q ;3 DB 14Q, 24Q, 44Q, 177Q, 4Q ;4 DB 162Q, 121Q, 121Q, 121Q, 116Q ;5 DB 36Q, 51Q, 111Q, 111Q, 106Q ;6 DB 100Q, 107Q, 110Q, 120Q, 140Q ;7 DB 66Q, 111Q, 111Q, 111Q, 66Q ;8 DB 61Q, 111Q, 111Q, 112Q, 74Q ;9 DB 0Q, 0Q, 24Q, 0Q, 0Q ;: DB 0Q, 1Q, 26Q, 0Q, 0Q ;; DB 10Q, 24Q, 42Q, 101Q, 0Q ;< DB 24Q, 24Q, 24Q, 24Q, 24Q ;= DB 0Q, 101Q, 42Q, 24Q, 10Q ;> DB 40Q, 100Q, 115Q, 120Q, 40Q ;? DB 76Q, 101Q, 135Q, 115Q, 71Q ;@ DB 37Q, 44Q, 104Q, 44Q, 37Q ;A DB 177Q, 111Q, 111Q, 111Q, 66Q ;B DB 76Q, 101Q, 101Q, 101Q, 42Q ;C DB 177Q, 101Q, 101Q, 101Q, 76Q ;D DB 177Q, 111Q, 111Q, 111Q, 111Q ;E