7930
DEMO -> Divers
© _Public_Domain_ (1991)
 
 
 
Joker Messages
cpc
 
 

NOTICE / MANUAL

TXT (1)

NOTICE TEXTE n° 1 (7.74 Ko)

; ***** MESSAGES by THE JOKER ***** ; Assemblerlisting to study (--- please do not change anything !!! ---) ; to use with MAXAM --------------------------------- ; Anfang - &5B12 ; AnfangSound - &1000 (&4000) ; AnfangGrafix - &4B71 org &5b12,&52b1 firsttrack equ 5 firstsector equ &c1 ;sound von &4000 an &1000 vorverlegen ld hl,&4000 ld de,&1000 ld bc,&b72 ldir call &1000 ld a,2 call &bc0e ; mode 2 ld hl,scrolltext ld (textadr),hl call &b906 ld de,char ld hl,&3800 ld bc,&800 ldir call &b909 call lesen ld a,(buffer) ld (platz2),a cp 255 ; kein platz mehr fuer neue messages jp z,haupt ; dann zum Hauptprogramm ld h,0 ld l,a ld bc,vs1 call decstr ld a,(buffer+1) ld h,0 ld l,a ld bc,vs2 call decstr ld bc,scrolltext2-scrolltext loopscroll push bc call scroll_1 call scroll_2 call &bd19 pop bc dec bc ld a,b or c jr nz,loopscroll ld de,511 ; ziffern-ausgabe call &bb06 cp 13 ; enter ? jp z,haupt ld hl,buffer push hl push de jp sprungweiter nextchar push hl push de ld hl,platz ld (textadr),hl ld (platz),a call &bd19 call scroll_1 call scroll_2 call &bb06 sprungweiter pop de pop hl ld (hl),a inc hl cp 13 jp z,next_schritt dec de ld b,a ld a,d or e jp z,chr_13 ld a,b push af push hl push de pop hl ld bc,platz4 push de call decstr pop de ld hl,&2010 call &bb75 ld b,5 ld hl,platz4 next_ziffer ld a,(hl) inc hl call &bb5a djnz next_ziffer pop hl pop af jp nextchar chr_13 ld (hl),13 next_schritt ld a,(platz2) ld b,a inc b wiederholen call next_sector djnz wiederholen call schreiben ld hl,sectornr ld (hl),firstsector ld hl,tracknr ld (hl),firsttrack call lesen ld hl,scrolltext2 ld (textadr),hl ld bc,scrolltext3-scrolltext2 loopscroll2 push bc call scroll_1 call scroll_2 call &bd19 pop bc dec bc ld a,b or c jr nz,loopscroll2 ld hl,buffer+1 ld b,(hl) push bc jp sprung next_char2 cp 13 ; enter ? jp z,erneuern ld hl,platz ld (textadr),hl ld (platz),a xor b ld b,a push bc call &bd19 call scroll_1 call scroll_2 sprung call &bb06 pop bc jp next_char2 erneuern ld hl,buffer inc (hl) inc hl ld (hl),b call schreiben haupt ld a,firstsector ld (sectornr),a ld a,firsttrack ld (tracknr),a call next_sector call lesen ld hl,buffer ld (textadr),hl ld a,0 call &bc0e ; set mode 0 call show call textart ld a,(6) cp 128 ; 464 ? jp nz,unterschied ld hl,unterschied inc hl ld (hl),&39 unterschied ld hl,&b941 ld (hl),&c9 ;hauptprogramm endlos call &bd19 call interrupt jp endlos rasteradr db 84,68,85,92,88,93,76,69,77,86,70,87,94,64,95,78,71,79,82,66,83,90 db 89,91,74,67,75,75,67,74,91,89,90,83,66,82,79,71,78,95,64,94,87,70,86,77,69 db 76,93,88,92,85,68,84,84 ink_tab db 84,68,92,93,69,86,87,64,78,79,82,83,89,74,75 rasteradr2 db 50,50,50,50,50,50,50,50,50,50,50,50,50,142 db 142,142,142,142,142,142,142,142,142,142,142,53,53,53 db 53,142,142,142,142,142,142,142,142,142,142,142,142,142,53,53 db 53,142,142,142 ;ink-scroll interrupt call scroll_1 ; scroll teil 1 ld b,&7f ld hl,ink_tab ld d,15 ld c,1 next_ink ld a,(hl) out (c),c out (c),a inc c inc hl dec d jp nz,next_ink ;***** raster ld b,1 warte1 djnz warte1 nop di ld hl,rasteradr ld b,55 ; anzahl next_raster push bc ld b,6 verzoegerung2 djnz verzoegerung2 nop nop nop ld bc,&7f10 ld a,(hl) inc hl out (c),c out (c),a ld c,0 out (c),c out (c),a pop bc djnz next_raster ei ;***** new colours new_colours ld b,7 ld d,1 ld hl,farben next_farbe push bc ld b,&7f ld a,(hl) inc hl out (c),d out (c),a inc d pop bc djnz next_farbe ; ***** schwabbler ld bc,120 warte2 dec bc ld a,b or c jp nz,warte2 ld hl,rasteradr2 ld b,48 ; anzahl next_raster2 push bc ld b,8 verzoegerung3 djnz verzoegerung3 ld bc,&bc03 ld a,(hl) inc hl out (c),c ld b,&bd out (c),a pop bc djnz next_raster2 ld hl,rasteradr2 push hl pop de inc hl ld a,(de) ld bc,46 ldir dec hl ld (hl),a ;****** ende schwabbler call &1003 ; sound_routine mode_2_rasterscroll ld b,&7f ld a,%10000010 out (c),a ; mode 2 exx push bc exx pop bc ld a,c and %11111100 or 2 ld c,a ld b,&7f push bc exx pop bc exx ld bc,&7f01 ld a,75 out (c),c out (c),a ld hl,rasteradr ld a,(hl) push hl pop de inc hl ld bc,53 ldir dec hl ld (hl),a ;***** scroll ***** call scroll_2 ;inks scrollen ld de,ink_tab push de pop hl inc hl ld a,(de) ld bc,14 ldir dec hl ld (hl),a ;***** ld bc,400 loopwarte dec bc ld a,b or c jp nz,loopwarte ld b,&7f ld a,%10000000 out (c),a ; mode 0 exx push bc exx pop bc ld a,c and %11111100 ld c,a ld b,&7f push bc exx pop bc exx ; alter mode geloescht ret ;textart aussuchen textart call &b906 ld de,char ld hl,&3800 ld bc,&800 ldir call &b909 ld hl,platz3 nicht_in_ordnung ld a,r cp (hl) jp nz,in_ordnung jp nicht_in_ordnung in_ordnung ld (hl),a rra call c,duenn rra call c,fett rra call c,kursiv rra call c,unterstrichen ret duenn push af ld hl,char ld c,255 dnext1 ld b,8 dnext2 ld a,(hl) srl a and (hl) ld (hl),a inc hl djnz dnext2 dec c jr nz,dnext1 pop af ret fett push af ld hl,char ld c,255 fnext1 ld b,8 fnext2 ld a,(hl) srl a or (hl) ld (hl),a inc hl djnz fnext2 dec c jr nz,fnext1 pop af ret kursiv ld hl,char ld b,255 knext srl (hl) srl (hl) inc hl srl (hl) inc hl srl (hl) inc hl inc hl inc hl sla (hl) inc hl sla (hl) inc hl sla (hl) sla (hl) inc hl djnz knext ret unterstrichen ld hl,char ld b,255 ld de,8 dec hl unext add hl,de ld (hl),&ff djnz unext ret scroll_1 ld b,8 ; scroll teil 1 ld hl,&c731 ldirlp push bc push hl push hl pop de dec de ld bc,&4f ldir pop hl ld de,&800 add hl,de pop bc djnz ldirlp ret scroll_2 ld hl,(textadr) ; scroll teil 2 ld a,(hl) inc hl cp 13 ; end-byte bei message call z,rout ld (textadr),hl or a ret z ld l,a ld h,0 add hl,hl ; *8 add hl,hl add hl,hl ld de,char ex de,hl add hl,de ex de,hl ld hl,&c731+78 ld b,8 nextzeile ld a,(de) ld (hl),a inc de push de ld de,&800 add hl,de pop de djnz nextzeile ret decstr ld de,10000 call subtst ld de,1000 call subtst ld de,100 call subtst ld de,10 call subtst ld de,1 subtst ld a,47 and a subcnt sbc hl,de inc a jr nc,subcnt add hl,de ld (bc),a inc bc ret lesen ld e,0 ld hl,tracknr ld d,(hl) inc hl ld c,(hl) ld hl,buffer rst &18 dw lesenadr ret schreiben ld e,0 ld hl,tracknr ld d,(hl) inc hl ld c,(hl) ld hl,buffer rst &18 dw schreibenadr ret next_sector ld hl,sectornr inc (hl) ld a,(hl) cp &ca ret nz ld (hl),&c1 dec hl inc (hl) ret tracknr db firsttrack sectornr db firstsector lesenadr dw &c666 db 7 schreibenadr dw &c64e db 7 rout call textart call next_sector call lesen ld hl,buffer ld a,(hl) cp &e5 jp nz,kein_ende ld hl,rout ld (hl),&c3 ld hl,vector ld (rout+1),hl vector ld hl,scrolltext3 kein_ende ld a,32 ret show ld de,&c000 ld hl,&4b71 show2 ld b,(hl) inc hl ld a,(hl) inc hl or a ret z push af push bc pop af pop bc show1 ld (de),a inc de djnz show1 jp show2 textadr dw scrolltext scrolltext defm "This is JOKER's MESSAGES vs." vs1 defm "------" vs2 defm "-----. You have now the possibility to enter a message. " defm "If you don't want to write a message, then press 'ENTER'. So please " defm "press now 'ENTER' or write your message >" scrolltext2 defm "------- Please enter now your name for the new " defm "version number >" scrolltext3 defm "THIS IS THE END !!! " db 13 farben db 68,85,93,76,69,78,71 platz ds 1 platz2 ds 1 platz3 db 0 platz4 ds 5 char ds &800 buffer ds 512
 



Goto Top
CPC-POWER/CPCSOFTS, programmation par Kukulcan © 2007-2024 tous droits réservés.
Reproduction sans autorisation interdite. Tous les titres utilisés appartiennent à leurs propriétaires respectifs.
Hébergement Web, Mail et serveurs de jeux haute performance